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_CreateAction(struct ndr_push
*ndr
, int ndr_flags
, enum winreg_CreateAction 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_CreateAction(struct ndr_pull
*ndr
, int ndr_flags
, enum winreg_CreateAction
*r
)
229 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
231 return NDR_ERR_SUCCESS
;
234 _PUBLIC_
void ndr_print_winreg_CreateAction(struct ndr_print
*ndr
, const char *name
, enum winreg_CreateAction r
)
236 const char *val
= NULL
;
239 case REG_ACTION_NONE
: val
= "REG_ACTION_NONE"; break;
240 case REG_CREATED_NEW_KEY
: val
= "REG_CREATED_NEW_KEY"; break;
241 case REG_OPENED_EXISTING_KEY
: val
= "REG_OPENED_EXISTING_KEY"; break;
243 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
246 static enum ndr_err_code
ndr_push_winreg_StringBuf(struct ndr_push
*ndr
, int ndr_flags
, const struct winreg_StringBuf
*r
)
248 if (ndr_flags
& NDR_SCALARS
) {
249 NDR_CHECK(ndr_push_align(ndr
, 5));
250 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, strlen_m_term_null(r
->name
) * 2));
251 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->size
));
252 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->name
));
253 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
255 if (ndr_flags
& NDR_BUFFERS
) {
257 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->size
/ 2));
258 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
259 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, strlen_m_term_null(r
->name
) * 2 / 2));
260 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->name
, strlen_m_term_null(r
->name
) * 2 / 2, sizeof(uint16_t), CH_UTF16
));
263 return NDR_ERR_SUCCESS
;
266 static enum ndr_err_code
ndr_pull_winreg_StringBuf(struct ndr_pull
*ndr
, int ndr_flags
, struct winreg_StringBuf
*r
)
269 TALLOC_CTX
*_mem_save_name_0
;
270 if (ndr_flags
& NDR_SCALARS
) {
271 NDR_CHECK(ndr_pull_align(ndr
, 5));
272 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->length
));
273 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->size
));
274 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
276 NDR_PULL_ALLOC(ndr
, r
->name
);
280 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
282 if (ndr_flags
& NDR_BUFFERS
) {
284 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
285 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
286 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->name
));
287 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->name
));
288 if (ndr_get_array_length(ndr
, &r
->name
) > ndr_get_array_size(ndr
, &r
->name
)) {
289 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
));
291 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->name
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t), CH_UTF16
));
292 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
295 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->name
, r
->size
/ 2));
298 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->name
, r
->length
/ 2));
301 return NDR_ERR_SUCCESS
;
304 _PUBLIC_
void ndr_print_winreg_StringBuf(struct ndr_print
*ndr
, const char *name
, const struct winreg_StringBuf
*r
)
306 ndr_print_struct(ndr
, name
, "winreg_StringBuf");
308 ndr_print_uint16(ndr
, "length", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?strlen_m_term_null(r
->name
) * 2:r
->length
);
309 ndr_print_uint16(ndr
, "size", r
->size
);
310 ndr_print_ptr(ndr
, "name", r
->name
);
313 ndr_print_string(ndr
, "name", r
->name
);
319 static enum ndr_err_code
ndr_push_winreg_ValNameBuf(struct ndr_push
*ndr
, int ndr_flags
, const struct winreg_ValNameBuf
*r
)
321 if (ndr_flags
& NDR_SCALARS
) {
322 NDR_CHECK(ndr_push_align(ndr
, 5));
323 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, strlen_m_term(r
->name
) * 2));
324 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->size
));
325 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->name
));
326 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
328 if (ndr_flags
& NDR_BUFFERS
) {
330 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->size
/ 2));
331 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
332 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, strlen_m_term(r
->name
) * 2 / 2));
333 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->name
, strlen_m_term(r
->name
) * 2 / 2, sizeof(uint16_t), CH_UTF16
));
336 return NDR_ERR_SUCCESS
;
339 static enum ndr_err_code
ndr_pull_winreg_ValNameBuf(struct ndr_pull
*ndr
, int ndr_flags
, struct winreg_ValNameBuf
*r
)
342 TALLOC_CTX
*_mem_save_name_0
;
343 if (ndr_flags
& NDR_SCALARS
) {
344 NDR_CHECK(ndr_pull_align(ndr
, 5));
345 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->length
));
346 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->size
));
347 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
349 NDR_PULL_ALLOC(ndr
, r
->name
);
353 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
355 if (ndr_flags
& NDR_BUFFERS
) {
357 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
358 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
359 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->name
));
360 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->name
));
361 if (ndr_get_array_length(ndr
, &r
->name
) > ndr_get_array_size(ndr
, &r
->name
)) {
362 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
));
364 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->name
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t), CH_UTF16
));
365 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
368 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->name
, r
->size
/ 2));
371 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->name
, r
->length
/ 2));
374 return NDR_ERR_SUCCESS
;
377 _PUBLIC_
void ndr_print_winreg_ValNameBuf(struct ndr_print
*ndr
, const char *name
, const struct winreg_ValNameBuf
*r
)
379 ndr_print_struct(ndr
, name
, "winreg_ValNameBuf");
381 ndr_print_uint16(ndr
, "length", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?strlen_m_term(r
->name
) * 2:r
->length
);
382 ndr_print_uint16(ndr
, "size", r
->size
);
383 ndr_print_ptr(ndr
, "name", r
->name
);
386 ndr_print_string(ndr
, "name", r
->name
);
392 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_NotifyChangeType(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
394 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
395 return NDR_ERR_SUCCESS
;
398 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_NotifyChangeType(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
401 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
403 return NDR_ERR_SUCCESS
;
406 _PUBLIC_
void ndr_print_winreg_NotifyChangeType(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
408 ndr_print_uint32(ndr
, name
, r
);
410 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "REG_NOTIFY_CHANGE_NAME", REG_NOTIFY_CHANGE_NAME
, r
);
411 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "REG_NOTIFY_CHANGE_ATTRIBUTES", REG_NOTIFY_CHANGE_ATTRIBUTES
, r
);
412 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "REG_NOTIFY_CHANGE_LAST_SET", REG_NOTIFY_CHANGE_LAST_SET
, r
);
413 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "REG_NOTIFY_CHANGE_SECURITY", REG_NOTIFY_CHANGE_SECURITY
, r
);
417 static enum ndr_err_code
ndr_push_KeySecurityAttribute(struct ndr_push
*ndr
, int ndr_flags
, const struct KeySecurityAttribute
*r
)
419 if (ndr_flags
& NDR_SCALARS
) {
420 NDR_CHECK(ndr_push_align(ndr
, 5));
421 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->data_size
));
422 NDR_CHECK(ndr_push_KeySecurityData(ndr
, NDR_SCALARS
, &r
->sec_data
));
423 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->inherit
));
424 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
426 if (ndr_flags
& NDR_BUFFERS
) {
427 NDR_CHECK(ndr_push_KeySecurityData(ndr
, NDR_BUFFERS
, &r
->sec_data
));
429 return NDR_ERR_SUCCESS
;
432 static enum ndr_err_code
ndr_pull_KeySecurityAttribute(struct ndr_pull
*ndr
, int ndr_flags
, struct KeySecurityAttribute
*r
)
434 if (ndr_flags
& NDR_SCALARS
) {
435 NDR_CHECK(ndr_pull_align(ndr
, 5));
436 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->data_size
));
437 NDR_CHECK(ndr_pull_KeySecurityData(ndr
, NDR_SCALARS
, &r
->sec_data
));
438 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->inherit
));
439 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
441 if (ndr_flags
& NDR_BUFFERS
) {
442 NDR_CHECK(ndr_pull_KeySecurityData(ndr
, NDR_BUFFERS
, &r
->sec_data
));
444 return NDR_ERR_SUCCESS
;
447 _PUBLIC_
void ndr_print_KeySecurityAttribute(struct ndr_print
*ndr
, const char *name
, const struct KeySecurityAttribute
*r
)
449 ndr_print_struct(ndr
, name
, "KeySecurityAttribute");
451 ndr_print_uint32(ndr
, "data_size", r
->data_size
);
452 ndr_print_KeySecurityData(ndr
, "sec_data", &r
->sec_data
);
453 ndr_print_uint8(ndr
, "inherit", r
->inherit
);
457 static enum ndr_err_code
ndr_push_QueryMultipleValue(struct ndr_push
*ndr
, int ndr_flags
, const struct QueryMultipleValue
*r
)
459 if (ndr_flags
& NDR_SCALARS
) {
460 NDR_CHECK(ndr_push_align(ndr
, 5));
461 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->name
));
462 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->type
));
463 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->offset
));
464 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
465 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
467 if (ndr_flags
& NDR_BUFFERS
) {
469 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->name
));
472 return NDR_ERR_SUCCESS
;
475 static enum ndr_err_code
ndr_pull_QueryMultipleValue(struct ndr_pull
*ndr
, int ndr_flags
, struct QueryMultipleValue
*r
)
478 TALLOC_CTX
*_mem_save_name_0
;
479 if (ndr_flags
& NDR_SCALARS
) {
480 NDR_CHECK(ndr_pull_align(ndr
, 5));
481 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
483 NDR_PULL_ALLOC(ndr
, r
->name
);
487 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->type
));
488 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->offset
));
489 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->length
));
490 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
492 if (ndr_flags
& NDR_BUFFERS
) {
494 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
495 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
496 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->name
));
497 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
500 return NDR_ERR_SUCCESS
;
503 _PUBLIC_
void ndr_print_QueryMultipleValue(struct ndr_print
*ndr
, const char *name
, const struct QueryMultipleValue
*r
)
505 ndr_print_struct(ndr
, name
, "QueryMultipleValue");
507 ndr_print_ptr(ndr
, "name", r
->name
);
510 ndr_print_winreg_String(ndr
, "name", r
->name
);
513 ndr_print_winreg_Type(ndr
, "type", r
->type
);
514 ndr_print_uint32(ndr
, "offset", r
->offset
);
515 ndr_print_uint32(ndr
, "length", r
->length
);
519 static enum ndr_err_code
ndr_push_winreg_OpenHKCR(struct ndr_push
*ndr
, int flags
, const struct winreg_OpenHKCR
*r
)
521 if (flags
& NDR_IN
) {
522 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.system_name
));
523 if (r
->in
.system_name
) {
524 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.system_name
));
526 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
528 if (flags
& NDR_OUT
) {
529 if (r
->out
.handle
== NULL
) {
530 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
532 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
533 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
535 return NDR_ERR_SUCCESS
;
538 static enum ndr_err_code
ndr_pull_winreg_OpenHKCR(struct ndr_pull
*ndr
, int flags
, struct winreg_OpenHKCR
*r
)
540 uint32_t _ptr_system_name
;
541 TALLOC_CTX
*_mem_save_system_name_0
;
542 TALLOC_CTX
*_mem_save_handle_0
;
543 if (flags
& NDR_IN
) {
546 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_system_name
));
547 if (_ptr_system_name
) {
548 NDR_PULL_ALLOC(ndr
, r
->in
.system_name
);
550 r
->in
.system_name
= NULL
;
552 if (r
->in
.system_name
) {
553 _mem_save_system_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
554 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.system_name
, 0);
555 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.system_name
));
556 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_system_name_0
, 0);
558 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
559 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
560 ZERO_STRUCTP(r
->out
.handle
);
562 if (flags
& NDR_OUT
) {
563 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
564 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
566 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
567 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
568 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
569 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
570 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
572 return NDR_ERR_SUCCESS
;
575 _PUBLIC_
void ndr_print_winreg_OpenHKCR(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_OpenHKCR
*r
)
577 ndr_print_struct(ndr
, name
, "winreg_OpenHKCR");
579 if (flags
& NDR_SET_VALUES
) {
580 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
582 if (flags
& NDR_IN
) {
583 ndr_print_struct(ndr
, "in", "winreg_OpenHKCR");
585 ndr_print_ptr(ndr
, "system_name", r
->in
.system_name
);
587 if (r
->in
.system_name
) {
588 ndr_print_uint16(ndr
, "system_name", *r
->in
.system_name
);
591 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
594 if (flags
& NDR_OUT
) {
595 ndr_print_struct(ndr
, "out", "winreg_OpenHKCR");
597 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
599 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
601 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
607 static enum ndr_err_code
ndr_push_winreg_OpenHKCU(struct ndr_push
*ndr
, int flags
, const struct winreg_OpenHKCU
*r
)
609 if (flags
& NDR_IN
) {
610 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.system_name
));
611 if (r
->in
.system_name
) {
612 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.system_name
));
614 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
616 if (flags
& NDR_OUT
) {
617 if (r
->out
.handle
== NULL
) {
618 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
620 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
621 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
623 return NDR_ERR_SUCCESS
;
626 static enum ndr_err_code
ndr_pull_winreg_OpenHKCU(struct ndr_pull
*ndr
, int flags
, struct winreg_OpenHKCU
*r
)
628 uint32_t _ptr_system_name
;
629 TALLOC_CTX
*_mem_save_system_name_0
;
630 TALLOC_CTX
*_mem_save_handle_0
;
631 if (flags
& NDR_IN
) {
634 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_system_name
));
635 if (_ptr_system_name
) {
636 NDR_PULL_ALLOC(ndr
, r
->in
.system_name
);
638 r
->in
.system_name
= NULL
;
640 if (r
->in
.system_name
) {
641 _mem_save_system_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
642 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.system_name
, 0);
643 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.system_name
));
644 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_system_name_0
, 0);
646 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
647 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
648 ZERO_STRUCTP(r
->out
.handle
);
650 if (flags
& NDR_OUT
) {
651 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
652 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
654 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
655 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
656 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
657 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
658 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
660 return NDR_ERR_SUCCESS
;
663 _PUBLIC_
void ndr_print_winreg_OpenHKCU(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_OpenHKCU
*r
)
665 ndr_print_struct(ndr
, name
, "winreg_OpenHKCU");
667 if (flags
& NDR_SET_VALUES
) {
668 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
670 if (flags
& NDR_IN
) {
671 ndr_print_struct(ndr
, "in", "winreg_OpenHKCU");
673 ndr_print_ptr(ndr
, "system_name", r
->in
.system_name
);
675 if (r
->in
.system_name
) {
676 ndr_print_uint16(ndr
, "system_name", *r
->in
.system_name
);
679 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
682 if (flags
& NDR_OUT
) {
683 ndr_print_struct(ndr
, "out", "winreg_OpenHKCU");
685 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
687 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
689 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
695 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_OpenHKLM(struct ndr_push
*ndr
, int flags
, const struct winreg_OpenHKLM
*r
)
697 if (flags
& NDR_IN
) {
698 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.system_name
));
699 if (r
->in
.system_name
) {
700 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.system_name
));
702 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
704 if (flags
& NDR_OUT
) {
705 if (r
->out
.handle
== NULL
) {
706 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
708 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
709 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
711 return NDR_ERR_SUCCESS
;
714 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_OpenHKLM(struct ndr_pull
*ndr
, int flags
, struct winreg_OpenHKLM
*r
)
716 uint32_t _ptr_system_name
;
717 TALLOC_CTX
*_mem_save_system_name_0
;
718 TALLOC_CTX
*_mem_save_handle_0
;
719 if (flags
& NDR_IN
) {
722 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_system_name
));
723 if (_ptr_system_name
) {
724 NDR_PULL_ALLOC(ndr
, r
->in
.system_name
);
726 r
->in
.system_name
= NULL
;
728 if (r
->in
.system_name
) {
729 _mem_save_system_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
730 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.system_name
, 0);
731 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.system_name
));
732 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_system_name_0
, 0);
734 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
735 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
736 ZERO_STRUCTP(r
->out
.handle
);
738 if (flags
& NDR_OUT
) {
739 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
740 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
742 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
743 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
744 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
745 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
746 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
748 return NDR_ERR_SUCCESS
;
751 _PUBLIC_
void ndr_print_winreg_OpenHKLM(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_OpenHKLM
*r
)
753 ndr_print_struct(ndr
, name
, "winreg_OpenHKLM");
755 if (flags
& NDR_SET_VALUES
) {
756 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
758 if (flags
& NDR_IN
) {
759 ndr_print_struct(ndr
, "in", "winreg_OpenHKLM");
761 ndr_print_ptr(ndr
, "system_name", r
->in
.system_name
);
763 if (r
->in
.system_name
) {
764 ndr_print_uint16(ndr
, "system_name", *r
->in
.system_name
);
767 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
770 if (flags
& NDR_OUT
) {
771 ndr_print_struct(ndr
, "out", "winreg_OpenHKLM");
773 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
775 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
777 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
783 static enum ndr_err_code
ndr_push_winreg_OpenHKPD(struct ndr_push
*ndr
, int flags
, const struct winreg_OpenHKPD
*r
)
785 if (flags
& NDR_IN
) {
786 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.system_name
));
787 if (r
->in
.system_name
) {
788 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.system_name
));
790 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
792 if (flags
& NDR_OUT
) {
793 if (r
->out
.handle
== NULL
) {
794 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
796 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
797 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
799 return NDR_ERR_SUCCESS
;
802 static enum ndr_err_code
ndr_pull_winreg_OpenHKPD(struct ndr_pull
*ndr
, int flags
, struct winreg_OpenHKPD
*r
)
804 uint32_t _ptr_system_name
;
805 TALLOC_CTX
*_mem_save_system_name_0
;
806 TALLOC_CTX
*_mem_save_handle_0
;
807 if (flags
& NDR_IN
) {
810 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_system_name
));
811 if (_ptr_system_name
) {
812 NDR_PULL_ALLOC(ndr
, r
->in
.system_name
);
814 r
->in
.system_name
= NULL
;
816 if (r
->in
.system_name
) {
817 _mem_save_system_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
818 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.system_name
, 0);
819 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.system_name
));
820 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_system_name_0
, 0);
822 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
823 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
824 ZERO_STRUCTP(r
->out
.handle
);
826 if (flags
& NDR_OUT
) {
827 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
828 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
830 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
831 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
832 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
833 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
834 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
836 return NDR_ERR_SUCCESS
;
839 _PUBLIC_
void ndr_print_winreg_OpenHKPD(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_OpenHKPD
*r
)
841 ndr_print_struct(ndr
, name
, "winreg_OpenHKPD");
843 if (flags
& NDR_SET_VALUES
) {
844 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
846 if (flags
& NDR_IN
) {
847 ndr_print_struct(ndr
, "in", "winreg_OpenHKPD");
849 ndr_print_ptr(ndr
, "system_name", r
->in
.system_name
);
851 if (r
->in
.system_name
) {
852 ndr_print_uint16(ndr
, "system_name", *r
->in
.system_name
);
855 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
858 if (flags
& NDR_OUT
) {
859 ndr_print_struct(ndr
, "out", "winreg_OpenHKPD");
861 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
863 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
865 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
871 static enum ndr_err_code
ndr_push_winreg_OpenHKU(struct ndr_push
*ndr
, int flags
, const struct winreg_OpenHKU
*r
)
873 if (flags
& NDR_IN
) {
874 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.system_name
));
875 if (r
->in
.system_name
) {
876 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.system_name
));
878 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
880 if (flags
& NDR_OUT
) {
881 if (r
->out
.handle
== NULL
) {
882 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
884 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
885 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
887 return NDR_ERR_SUCCESS
;
890 static enum ndr_err_code
ndr_pull_winreg_OpenHKU(struct ndr_pull
*ndr
, int flags
, struct winreg_OpenHKU
*r
)
892 uint32_t _ptr_system_name
;
893 TALLOC_CTX
*_mem_save_system_name_0
;
894 TALLOC_CTX
*_mem_save_handle_0
;
895 if (flags
& NDR_IN
) {
898 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_system_name
));
899 if (_ptr_system_name
) {
900 NDR_PULL_ALLOC(ndr
, r
->in
.system_name
);
902 r
->in
.system_name
= NULL
;
904 if (r
->in
.system_name
) {
905 _mem_save_system_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
906 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.system_name
, 0);
907 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.system_name
));
908 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_system_name_0
, 0);
910 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
911 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
912 ZERO_STRUCTP(r
->out
.handle
);
914 if (flags
& NDR_OUT
) {
915 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
916 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
918 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
919 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
920 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
921 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
922 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
924 return NDR_ERR_SUCCESS
;
927 _PUBLIC_
void ndr_print_winreg_OpenHKU(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_OpenHKU
*r
)
929 ndr_print_struct(ndr
, name
, "winreg_OpenHKU");
931 if (flags
& NDR_SET_VALUES
) {
932 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
934 if (flags
& NDR_IN
) {
935 ndr_print_struct(ndr
, "in", "winreg_OpenHKU");
937 ndr_print_ptr(ndr
, "system_name", r
->in
.system_name
);
939 if (r
->in
.system_name
) {
940 ndr_print_uint16(ndr
, "system_name", *r
->in
.system_name
);
943 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
946 if (flags
& NDR_OUT
) {
947 ndr_print_struct(ndr
, "out", "winreg_OpenHKU");
949 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
951 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
953 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
959 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_CloseKey(struct ndr_push
*ndr
, int flags
, const struct winreg_CloseKey
*r
)
961 if (flags
& NDR_IN
) {
962 if (r
->in
.handle
== NULL
) {
963 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
965 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
967 if (flags
& NDR_OUT
) {
968 if (r
->out
.handle
== NULL
) {
969 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
971 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
972 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
974 return NDR_ERR_SUCCESS
;
977 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_CloseKey(struct ndr_pull
*ndr
, int flags
, struct winreg_CloseKey
*r
)
979 TALLOC_CTX
*_mem_save_handle_0
;
980 if (flags
& NDR_IN
) {
983 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
984 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
986 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
987 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
988 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
989 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
990 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
991 *r
->out
.handle
= *r
->in
.handle
;
993 if (flags
& NDR_OUT
) {
994 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
995 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
997 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
998 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
999 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
1000 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
1001 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
1003 return NDR_ERR_SUCCESS
;
1006 _PUBLIC_
void ndr_print_winreg_CloseKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_CloseKey
*r
)
1008 ndr_print_struct(ndr
, name
, "winreg_CloseKey");
1010 if (flags
& NDR_SET_VALUES
) {
1011 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
1013 if (flags
& NDR_IN
) {
1014 ndr_print_struct(ndr
, "in", "winreg_CloseKey");
1016 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
1018 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
1022 if (flags
& NDR_OUT
) {
1023 ndr_print_struct(ndr
, "out", "winreg_CloseKey");
1025 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
1027 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
1029 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
1035 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_CreateKey(struct ndr_push
*ndr
, int flags
, const struct winreg_CreateKey
*r
)
1037 if (flags
& NDR_IN
) {
1038 if (r
->in
.handle
== NULL
) {
1039 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1041 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1042 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.name
));
1043 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.keyclass
));
1044 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.options
));
1045 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
1046 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.secdesc
));
1047 if (r
->in
.secdesc
) {
1048 NDR_CHECK(ndr_push_winreg_SecBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc
));
1050 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.action_taken
));
1051 if (r
->in
.action_taken
) {
1052 NDR_CHECK(ndr_push_winreg_CreateAction(ndr
, NDR_SCALARS
, *r
->in
.action_taken
));
1055 if (flags
& NDR_OUT
) {
1056 if (r
->out
.new_handle
== NULL
) {
1057 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1059 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.new_handle
));
1060 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.action_taken
));
1061 if (r
->out
.action_taken
) {
1062 NDR_CHECK(ndr_push_winreg_CreateAction(ndr
, NDR_SCALARS
, *r
->out
.action_taken
));
1064 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
1066 return NDR_ERR_SUCCESS
;
1069 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_CreateKey(struct ndr_pull
*ndr
, int flags
, struct winreg_CreateKey
*r
)
1071 uint32_t _ptr_secdesc
;
1072 uint32_t _ptr_action_taken
;
1073 TALLOC_CTX
*_mem_save_handle_0
;
1074 TALLOC_CTX
*_mem_save_secdesc_0
;
1075 TALLOC_CTX
*_mem_save_new_handle_0
;
1076 TALLOC_CTX
*_mem_save_action_taken_0
;
1077 if (flags
& NDR_IN
) {
1078 ZERO_STRUCT(r
->out
);
1080 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1081 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
1083 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1084 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
1085 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1086 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
1087 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.name
));
1088 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.keyclass
));
1089 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.options
));
1090 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
1091 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
1093 NDR_PULL_ALLOC(ndr
, r
->in
.secdesc
);
1095 r
->in
.secdesc
= NULL
;
1097 if (r
->in
.secdesc
) {
1098 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1099 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.secdesc
, 0);
1100 NDR_CHECK(ndr_pull_winreg_SecBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc
));
1101 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
1103 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_action_taken
));
1104 if (_ptr_action_taken
) {
1105 NDR_PULL_ALLOC(ndr
, r
->in
.action_taken
);
1107 r
->in
.action_taken
= NULL
;
1109 if (r
->in
.action_taken
) {
1110 _mem_save_action_taken_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1111 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.action_taken
, 0);
1112 NDR_CHECK(ndr_pull_winreg_CreateAction(ndr
, NDR_SCALARS
, r
->in
.action_taken
));
1113 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_action_taken_0
, 0);
1115 NDR_PULL_ALLOC(ndr
, r
->out
.new_handle
);
1116 ZERO_STRUCTP(r
->out
.new_handle
);
1118 if (flags
& NDR_OUT
) {
1119 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1120 NDR_PULL_ALLOC(ndr
, r
->out
.new_handle
);
1122 _mem_save_new_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1123 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.new_handle
, LIBNDR_FLAG_REF_ALLOC
);
1124 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.new_handle
));
1125 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_new_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
1126 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_action_taken
));
1127 if (_ptr_action_taken
) {
1128 NDR_PULL_ALLOC(ndr
, r
->out
.action_taken
);
1130 r
->out
.action_taken
= NULL
;
1132 if (r
->out
.action_taken
) {
1133 _mem_save_action_taken_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1134 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.action_taken
, 0);
1135 NDR_CHECK(ndr_pull_winreg_CreateAction(ndr
, NDR_SCALARS
, r
->out
.action_taken
));
1136 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_action_taken_0
, 0);
1138 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
1140 return NDR_ERR_SUCCESS
;
1143 _PUBLIC_
void ndr_print_winreg_CreateKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_CreateKey
*r
)
1145 ndr_print_struct(ndr
, name
, "winreg_CreateKey");
1147 if (flags
& NDR_SET_VALUES
) {
1148 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
1150 if (flags
& NDR_IN
) {
1151 ndr_print_struct(ndr
, "in", "winreg_CreateKey");
1153 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
1155 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
1157 ndr_print_winreg_String(ndr
, "name", &r
->in
.name
);
1158 ndr_print_winreg_String(ndr
, "keyclass", &r
->in
.keyclass
);
1159 ndr_print_uint32(ndr
, "options", r
->in
.options
);
1160 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
1161 ndr_print_ptr(ndr
, "secdesc", r
->in
.secdesc
);
1163 if (r
->in
.secdesc
) {
1164 ndr_print_winreg_SecBuf(ndr
, "secdesc", r
->in
.secdesc
);
1167 ndr_print_ptr(ndr
, "action_taken", r
->in
.action_taken
);
1169 if (r
->in
.action_taken
) {
1170 ndr_print_winreg_CreateAction(ndr
, "action_taken", *r
->in
.action_taken
);
1175 if (flags
& NDR_OUT
) {
1176 ndr_print_struct(ndr
, "out", "winreg_CreateKey");
1178 ndr_print_ptr(ndr
, "new_handle", r
->out
.new_handle
);
1180 ndr_print_policy_handle(ndr
, "new_handle", r
->out
.new_handle
);
1182 ndr_print_ptr(ndr
, "action_taken", r
->out
.action_taken
);
1184 if (r
->out
.action_taken
) {
1185 ndr_print_winreg_CreateAction(ndr
, "action_taken", *r
->out
.action_taken
);
1188 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
1194 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_DeleteKey(struct ndr_push
*ndr
, int flags
, const struct winreg_DeleteKey
*r
)
1196 if (flags
& NDR_IN
) {
1197 if (r
->in
.handle
== NULL
) {
1198 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1200 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1201 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.key
));
1203 if (flags
& NDR_OUT
) {
1204 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
1206 return NDR_ERR_SUCCESS
;
1209 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_DeleteKey(struct ndr_pull
*ndr
, int flags
, struct winreg_DeleteKey
*r
)
1211 TALLOC_CTX
*_mem_save_handle_0
;
1212 if (flags
& NDR_IN
) {
1213 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1214 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
1216 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1217 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
1218 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1219 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
1220 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.key
));
1222 if (flags
& NDR_OUT
) {
1223 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
1225 return NDR_ERR_SUCCESS
;
1228 _PUBLIC_
void ndr_print_winreg_DeleteKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_DeleteKey
*r
)
1230 ndr_print_struct(ndr
, name
, "winreg_DeleteKey");
1232 if (flags
& NDR_SET_VALUES
) {
1233 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
1235 if (flags
& NDR_IN
) {
1236 ndr_print_struct(ndr
, "in", "winreg_DeleteKey");
1238 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
1240 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
1242 ndr_print_winreg_String(ndr
, "key", &r
->in
.key
);
1245 if (flags
& NDR_OUT
) {
1246 ndr_print_struct(ndr
, "out", "winreg_DeleteKey");
1248 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
1254 static enum ndr_err_code
ndr_push_winreg_DeleteValue(struct ndr_push
*ndr
, int flags
, const struct winreg_DeleteValue
*r
)
1256 if (flags
& NDR_IN
) {
1257 if (r
->in
.handle
== NULL
) {
1258 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1260 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1261 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.value
));
1263 if (flags
& NDR_OUT
) {
1264 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
1266 return NDR_ERR_SUCCESS
;
1269 static enum ndr_err_code
ndr_pull_winreg_DeleteValue(struct ndr_pull
*ndr
, int flags
, struct winreg_DeleteValue
*r
)
1271 TALLOC_CTX
*_mem_save_handle_0
;
1272 if (flags
& NDR_IN
) {
1273 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1274 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
1276 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1277 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
1278 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1279 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
1280 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.value
));
1282 if (flags
& NDR_OUT
) {
1283 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
1285 return NDR_ERR_SUCCESS
;
1288 _PUBLIC_
void ndr_print_winreg_DeleteValue(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_DeleteValue
*r
)
1290 ndr_print_struct(ndr
, name
, "winreg_DeleteValue");
1292 if (flags
& NDR_SET_VALUES
) {
1293 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
1295 if (flags
& NDR_IN
) {
1296 ndr_print_struct(ndr
, "in", "winreg_DeleteValue");
1298 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
1300 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
1302 ndr_print_winreg_String(ndr
, "value", &r
->in
.value
);
1305 if (flags
& NDR_OUT
) {
1306 ndr_print_struct(ndr
, "out", "winreg_DeleteValue");
1308 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
1314 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_EnumKey(struct ndr_push
*ndr
, int flags
, const struct winreg_EnumKey
*r
)
1316 if (flags
& NDR_IN
) {
1317 if (r
->in
.handle
== NULL
) {
1318 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1320 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1321 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.enum_index
));
1322 if (r
->in
.name
== NULL
) {
1323 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1325 NDR_CHECK(ndr_push_winreg_StringBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.name
));
1326 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.keyclass
));
1327 if (r
->in
.keyclass
) {
1328 NDR_CHECK(ndr_push_winreg_StringBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.keyclass
));
1330 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.last_changed_time
));
1331 if (r
->in
.last_changed_time
) {
1332 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, *r
->in
.last_changed_time
));
1335 if (flags
& NDR_OUT
) {
1336 if (r
->out
.name
== NULL
) {
1337 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1339 NDR_CHECK(ndr_push_winreg_StringBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.name
));
1340 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.keyclass
));
1341 if (r
->out
.keyclass
) {
1342 NDR_CHECK(ndr_push_winreg_StringBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.keyclass
));
1344 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.last_changed_time
));
1345 if (r
->out
.last_changed_time
) {
1346 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, *r
->out
.last_changed_time
));
1348 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
1350 return NDR_ERR_SUCCESS
;
1353 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_EnumKey(struct ndr_pull
*ndr
, int flags
, struct winreg_EnumKey
*r
)
1355 uint32_t _ptr_keyclass
;
1356 uint32_t _ptr_last_changed_time
;
1357 TALLOC_CTX
*_mem_save_handle_0
;
1358 TALLOC_CTX
*_mem_save_name_0
;
1359 TALLOC_CTX
*_mem_save_keyclass_0
;
1360 TALLOC_CTX
*_mem_save_last_changed_time_0
;
1361 if (flags
& NDR_IN
) {
1362 ZERO_STRUCT(r
->out
);
1364 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1365 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
1367 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1368 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
1369 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1370 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
1371 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.enum_index
));
1372 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1373 NDR_PULL_ALLOC(ndr
, r
->in
.name
);
1375 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1376 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.name
, LIBNDR_FLAG_REF_ALLOC
);
1377 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.name
));
1378 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, LIBNDR_FLAG_REF_ALLOC
);
1379 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_keyclass
));
1380 if (_ptr_keyclass
) {
1381 NDR_PULL_ALLOC(ndr
, r
->in
.keyclass
);
1383 r
->in
.keyclass
= NULL
;
1385 if (r
->in
.keyclass
) {
1386 _mem_save_keyclass_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1387 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.keyclass
, 0);
1388 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.keyclass
));
1389 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_keyclass_0
, 0);
1391 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_last_changed_time
));
1392 if (_ptr_last_changed_time
) {
1393 NDR_PULL_ALLOC(ndr
, r
->in
.last_changed_time
);
1395 r
->in
.last_changed_time
= NULL
;
1397 if (r
->in
.last_changed_time
) {
1398 _mem_save_last_changed_time_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1399 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.last_changed_time
, 0);
1400 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, r
->in
.last_changed_time
));
1401 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_last_changed_time_0
, 0);
1403 NDR_PULL_ALLOC(ndr
, r
->out
.name
);
1404 *r
->out
.name
= *r
->in
.name
;
1406 if (flags
& NDR_OUT
) {
1407 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1408 NDR_PULL_ALLOC(ndr
, r
->out
.name
);
1410 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1411 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.name
, LIBNDR_FLAG_REF_ALLOC
);
1412 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.name
));
1413 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, LIBNDR_FLAG_REF_ALLOC
);
1414 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_keyclass
));
1415 if (_ptr_keyclass
) {
1416 NDR_PULL_ALLOC(ndr
, r
->out
.keyclass
);
1418 r
->out
.keyclass
= NULL
;
1420 if (r
->out
.keyclass
) {
1421 _mem_save_keyclass_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1422 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.keyclass
, 0);
1423 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.keyclass
));
1424 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_keyclass_0
, 0);
1426 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_last_changed_time
));
1427 if (_ptr_last_changed_time
) {
1428 NDR_PULL_ALLOC(ndr
, r
->out
.last_changed_time
);
1430 r
->out
.last_changed_time
= NULL
;
1432 if (r
->out
.last_changed_time
) {
1433 _mem_save_last_changed_time_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1434 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.last_changed_time
, 0);
1435 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, r
->out
.last_changed_time
));
1436 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_last_changed_time_0
, 0);
1438 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
1440 return NDR_ERR_SUCCESS
;
1443 _PUBLIC_
void ndr_print_winreg_EnumKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_EnumKey
*r
)
1445 ndr_print_struct(ndr
, name
, "winreg_EnumKey");
1447 if (flags
& NDR_SET_VALUES
) {
1448 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
1450 if (flags
& NDR_IN
) {
1451 ndr_print_struct(ndr
, "in", "winreg_EnumKey");
1453 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
1455 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
1457 ndr_print_uint32(ndr
, "enum_index", r
->in
.enum_index
);
1458 ndr_print_ptr(ndr
, "name", r
->in
.name
);
1460 ndr_print_winreg_StringBuf(ndr
, "name", r
->in
.name
);
1462 ndr_print_ptr(ndr
, "keyclass", r
->in
.keyclass
);
1464 if (r
->in
.keyclass
) {
1465 ndr_print_winreg_StringBuf(ndr
, "keyclass", r
->in
.keyclass
);
1468 ndr_print_ptr(ndr
, "last_changed_time", r
->in
.last_changed_time
);
1470 if (r
->in
.last_changed_time
) {
1471 ndr_print_NTTIME(ndr
, "last_changed_time", *r
->in
.last_changed_time
);
1476 if (flags
& NDR_OUT
) {
1477 ndr_print_struct(ndr
, "out", "winreg_EnumKey");
1479 ndr_print_ptr(ndr
, "name", r
->out
.name
);
1481 ndr_print_winreg_StringBuf(ndr
, "name", r
->out
.name
);
1483 ndr_print_ptr(ndr
, "keyclass", r
->out
.keyclass
);
1485 if (r
->out
.keyclass
) {
1486 ndr_print_winreg_StringBuf(ndr
, "keyclass", r
->out
.keyclass
);
1489 ndr_print_ptr(ndr
, "last_changed_time", r
->out
.last_changed_time
);
1491 if (r
->out
.last_changed_time
) {
1492 ndr_print_NTTIME(ndr
, "last_changed_time", *r
->out
.last_changed_time
);
1495 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
1501 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_EnumValue(struct ndr_push
*ndr
, int flags
, const struct winreg_EnumValue
*r
)
1503 if (flags
& NDR_IN
) {
1504 if (r
->in
.handle
== NULL
) {
1505 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1507 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1508 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.enum_index
));
1509 if (r
->in
.name
== NULL
) {
1510 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1512 NDR_CHECK(ndr_push_winreg_ValNameBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.name
));
1513 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.type
));
1515 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, *r
->in
.type
));
1517 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.value
));
1519 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, *r
->in
.size
));
1520 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
1521 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, *r
->in
.length
));
1522 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.value
, *r
->in
.length
));
1524 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.size
));
1526 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.size
));
1528 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.length
));
1530 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.length
));
1533 if (flags
& NDR_OUT
) {
1534 if (r
->out
.name
== NULL
) {
1535 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1537 NDR_CHECK(ndr_push_winreg_ValNameBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.name
));
1538 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.type
));
1540 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, *r
->out
.type
));
1542 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.value
));
1544 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, *r
->out
.size
));
1545 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
1546 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, *r
->out
.length
));
1547 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.value
, *r
->out
.length
));
1549 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.size
));
1551 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.size
));
1553 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.length
));
1554 if (r
->out
.length
) {
1555 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.length
));
1557 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
1559 return NDR_ERR_SUCCESS
;
1562 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_EnumValue(struct ndr_pull
*ndr
, int flags
, struct winreg_EnumValue
*r
)
1565 uint32_t _ptr_value
;
1567 uint32_t _ptr_length
;
1568 TALLOC_CTX
*_mem_save_handle_0
;
1569 TALLOC_CTX
*_mem_save_name_0
;
1570 TALLOC_CTX
*_mem_save_type_0
;
1571 TALLOC_CTX
*_mem_save_value_0
;
1572 TALLOC_CTX
*_mem_save_size_0
;
1573 TALLOC_CTX
*_mem_save_length_0
;
1574 if (flags
& NDR_IN
) {
1575 ZERO_STRUCT(r
->out
);
1577 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1578 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
1580 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1581 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
1582 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1583 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
1584 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.enum_index
));
1585 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1586 NDR_PULL_ALLOC(ndr
, r
->in
.name
);
1588 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1589 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.name
, LIBNDR_FLAG_REF_ALLOC
);
1590 NDR_CHECK(ndr_pull_winreg_ValNameBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.name
));
1591 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, LIBNDR_FLAG_REF_ALLOC
);
1592 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_type
));
1594 NDR_PULL_ALLOC(ndr
, r
->in
.type
);
1599 _mem_save_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1600 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.type
, 0);
1601 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
1602 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_type_0
, 0);
1604 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_value
));
1606 NDR_PULL_ALLOC(ndr
, r
->in
.value
);
1611 _mem_save_value_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1612 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.value
, 0);
1613 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value
));
1614 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value
));
1615 if (ndr_get_array_length(ndr
, &r
->in
.value
) > ndr_get_array_size(ndr
, &r
->in
.value
)) {
1616 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
));
1618 NDR_PULL_ALLOC_N(ndr
, r
->in
.value
, ndr_get_array_size(ndr
, &r
->in
.value
));
1619 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.value
, ndr_get_array_length(ndr
, &r
->in
.value
)));
1620 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_value_0
, 0);
1622 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_size
));
1624 NDR_PULL_ALLOC(ndr
, r
->in
.size
);
1629 _mem_save_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1630 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.size
, 0);
1631 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.size
));
1632 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_size_0
, 0);
1634 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_length
));
1636 NDR_PULL_ALLOC(ndr
, r
->in
.length
);
1638 r
->in
.length
= NULL
;
1641 _mem_save_length_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1642 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.length
, 0);
1643 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.length
));
1644 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_length_0
, 0);
1646 NDR_PULL_ALLOC(ndr
, r
->out
.name
);
1647 *r
->out
.name
= *r
->in
.name
;
1649 if (r
->in
.size
== NULL
) return ndr_pull_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL Pointer for size_is()");
1650 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.value
, *r
->in
.size
));
1653 if (r
->in
.length
== NULL
) return ndr_pull_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL Pointer for length_is()");
1654 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->in
.value
, *r
->in
.length
));
1657 if (flags
& NDR_OUT
) {
1658 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1659 NDR_PULL_ALLOC(ndr
, r
->out
.name
);
1661 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1662 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.name
, LIBNDR_FLAG_REF_ALLOC
);
1663 NDR_CHECK(ndr_pull_winreg_ValNameBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.name
));
1664 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, LIBNDR_FLAG_REF_ALLOC
);
1665 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_type
));
1667 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
1672 _mem_save_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1673 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.type
, 0);
1674 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, r
->out
.type
));
1675 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_type_0
, 0);
1677 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_value
));
1679 NDR_PULL_ALLOC(ndr
, r
->out
.value
);
1681 r
->out
.value
= NULL
;
1684 _mem_save_value_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1685 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.value
, 0);
1686 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.value
));
1687 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->out
.value
));
1688 if (ndr_get_array_length(ndr
, &r
->out
.value
) > ndr_get_array_size(ndr
, &r
->out
.value
)) {
1689 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
));
1691 NDR_PULL_ALLOC_N(ndr
, r
->out
.value
, ndr_get_array_size(ndr
, &r
->out
.value
));
1692 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.value
, ndr_get_array_length(ndr
, &r
->out
.value
)));
1693 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_value_0
, 0);
1695 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_size
));
1697 NDR_PULL_ALLOC(ndr
, r
->out
.size
);
1702 _mem_save_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1703 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.size
, 0);
1704 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.size
));
1705 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_size_0
, 0);
1707 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_length
));
1709 NDR_PULL_ALLOC(ndr
, r
->out
.length
);
1711 r
->out
.length
= NULL
;
1713 if (r
->out
.length
) {
1714 _mem_save_length_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1715 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.length
, 0);
1716 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.length
));
1717 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_length_0
, 0);
1719 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
1721 if (r
->out
.size
== NULL
) return ndr_pull_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL Pointer for size_is()");
1722 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.value
, *r
->out
.size
));
1725 if (r
->out
.length
== NULL
) return ndr_pull_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL Pointer for length_is()");
1726 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->out
.value
, *r
->out
.length
));
1729 return NDR_ERR_SUCCESS
;
1732 _PUBLIC_
void ndr_print_winreg_EnumValue(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_EnumValue
*r
)
1734 ndr_print_struct(ndr
, name
, "winreg_EnumValue");
1736 if (flags
& NDR_SET_VALUES
) {
1737 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
1739 if (flags
& NDR_IN
) {
1740 ndr_print_struct(ndr
, "in", "winreg_EnumValue");
1742 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
1744 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
1746 ndr_print_uint32(ndr
, "enum_index", r
->in
.enum_index
);
1747 ndr_print_ptr(ndr
, "name", r
->in
.name
);
1749 ndr_print_winreg_ValNameBuf(ndr
, "name", r
->in
.name
);
1751 ndr_print_ptr(ndr
, "type", r
->in
.type
);
1754 ndr_print_winreg_Type(ndr
, "type", *r
->in
.type
);
1757 ndr_print_ptr(ndr
, "value", r
->in
.value
);
1760 if (r
->in
.length
== NULL
) return;
1761 ndr_print_array_uint8(ndr
, "value", r
->in
.value
, *r
->in
.length
);
1764 ndr_print_ptr(ndr
, "size", r
->in
.size
);
1767 ndr_print_uint32(ndr
, "size", *r
->in
.size
);
1770 ndr_print_ptr(ndr
, "length", r
->in
.length
);
1773 ndr_print_uint32(ndr
, "length", *r
->in
.length
);
1778 if (flags
& NDR_OUT
) {
1779 ndr_print_struct(ndr
, "out", "winreg_EnumValue");
1781 ndr_print_ptr(ndr
, "name", r
->out
.name
);
1783 ndr_print_winreg_ValNameBuf(ndr
, "name", r
->out
.name
);
1785 ndr_print_ptr(ndr
, "type", r
->out
.type
);
1788 ndr_print_winreg_Type(ndr
, "type", *r
->out
.type
);
1791 ndr_print_ptr(ndr
, "value", r
->out
.value
);
1794 if (r
->out
.length
== NULL
) return;
1795 ndr_print_array_uint8(ndr
, "value", r
->out
.value
, *r
->out
.length
);
1798 ndr_print_ptr(ndr
, "size", r
->out
.size
);
1801 ndr_print_uint32(ndr
, "size", *r
->out
.size
);
1804 ndr_print_ptr(ndr
, "length", r
->out
.length
);
1806 if (r
->out
.length
) {
1807 ndr_print_uint32(ndr
, "length", *r
->out
.length
);
1810 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
1816 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_FlushKey(struct ndr_push
*ndr
, int flags
, const struct winreg_FlushKey
*r
)
1818 if (flags
& NDR_IN
) {
1819 if (r
->in
.handle
== NULL
) {
1820 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1822 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1824 if (flags
& NDR_OUT
) {
1825 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
1827 return NDR_ERR_SUCCESS
;
1830 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_FlushKey(struct ndr_pull
*ndr
, int flags
, struct winreg_FlushKey
*r
)
1832 TALLOC_CTX
*_mem_save_handle_0
;
1833 if (flags
& NDR_IN
) {
1834 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1835 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
1837 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1838 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
1839 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1840 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
1842 if (flags
& NDR_OUT
) {
1843 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
1845 return NDR_ERR_SUCCESS
;
1848 _PUBLIC_
void ndr_print_winreg_FlushKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_FlushKey
*r
)
1850 ndr_print_struct(ndr
, name
, "winreg_FlushKey");
1852 if (flags
& NDR_SET_VALUES
) {
1853 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
1855 if (flags
& NDR_IN
) {
1856 ndr_print_struct(ndr
, "in", "winreg_FlushKey");
1858 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
1860 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
1864 if (flags
& NDR_OUT
) {
1865 ndr_print_struct(ndr
, "out", "winreg_FlushKey");
1867 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
1873 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_GetKeySecurity(struct ndr_push
*ndr
, int flags
, const struct winreg_GetKeySecurity
*r
)
1875 if (flags
& NDR_IN
) {
1876 if (r
->in
.handle
== NULL
) {
1877 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1879 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1880 NDR_CHECK(ndr_push_security_secinfo(ndr
, NDR_SCALARS
, r
->in
.sec_info
));
1881 if (r
->in
.sd
== NULL
) {
1882 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1884 NDR_CHECK(ndr_push_KeySecurityData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.sd
));
1886 if (flags
& NDR_OUT
) {
1887 if (r
->out
.sd
== NULL
) {
1888 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1890 NDR_CHECK(ndr_push_KeySecurityData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.sd
));
1891 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
1893 return NDR_ERR_SUCCESS
;
1896 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_GetKeySecurity(struct ndr_pull
*ndr
, int flags
, struct winreg_GetKeySecurity
*r
)
1898 TALLOC_CTX
*_mem_save_handle_0
;
1899 TALLOC_CTX
*_mem_save_sd_0
;
1900 if (flags
& NDR_IN
) {
1901 ZERO_STRUCT(r
->out
);
1903 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1904 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
1906 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1907 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
1908 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1909 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
1910 NDR_CHECK(ndr_pull_security_secinfo(ndr
, NDR_SCALARS
, &r
->in
.sec_info
));
1911 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1912 NDR_PULL_ALLOC(ndr
, r
->in
.sd
);
1914 _mem_save_sd_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1915 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.sd
, LIBNDR_FLAG_REF_ALLOC
);
1916 NDR_CHECK(ndr_pull_KeySecurityData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.sd
));
1917 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sd_0
, LIBNDR_FLAG_REF_ALLOC
);
1918 NDR_PULL_ALLOC(ndr
, r
->out
.sd
);
1919 *r
->out
.sd
= *r
->in
.sd
;
1921 if (flags
& NDR_OUT
) {
1922 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1923 NDR_PULL_ALLOC(ndr
, r
->out
.sd
);
1925 _mem_save_sd_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1926 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.sd
, LIBNDR_FLAG_REF_ALLOC
);
1927 NDR_CHECK(ndr_pull_KeySecurityData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.sd
));
1928 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sd_0
, LIBNDR_FLAG_REF_ALLOC
);
1929 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
1931 return NDR_ERR_SUCCESS
;
1934 _PUBLIC_
void ndr_print_winreg_GetKeySecurity(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_GetKeySecurity
*r
)
1936 ndr_print_struct(ndr
, name
, "winreg_GetKeySecurity");
1938 if (flags
& NDR_SET_VALUES
) {
1939 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
1941 if (flags
& NDR_IN
) {
1942 ndr_print_struct(ndr
, "in", "winreg_GetKeySecurity");
1944 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
1946 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
1948 ndr_print_security_secinfo(ndr
, "sec_info", r
->in
.sec_info
);
1949 ndr_print_ptr(ndr
, "sd", r
->in
.sd
);
1951 ndr_print_KeySecurityData(ndr
, "sd", r
->in
.sd
);
1955 if (flags
& NDR_OUT
) {
1956 ndr_print_struct(ndr
, "out", "winreg_GetKeySecurity");
1958 ndr_print_ptr(ndr
, "sd", r
->out
.sd
);
1960 ndr_print_KeySecurityData(ndr
, "sd", r
->out
.sd
);
1962 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
1968 static enum ndr_err_code
ndr_push_winreg_LoadKey(struct ndr_push
*ndr
, int flags
, const struct winreg_LoadKey
*r
)
1970 if (flags
& NDR_IN
) {
1971 if (r
->in
.handle
== NULL
) {
1972 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1974 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1975 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.keyname
));
1976 if (r
->in
.keyname
) {
1977 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.keyname
));
1979 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.filename
));
1980 if (r
->in
.filename
) {
1981 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.filename
));
1984 if (flags
& NDR_OUT
) {
1985 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
1987 return NDR_ERR_SUCCESS
;
1990 static enum ndr_err_code
ndr_pull_winreg_LoadKey(struct ndr_pull
*ndr
, int flags
, struct winreg_LoadKey
*r
)
1992 uint32_t _ptr_keyname
;
1993 uint32_t _ptr_filename
;
1994 TALLOC_CTX
*_mem_save_handle_0
;
1995 TALLOC_CTX
*_mem_save_keyname_0
;
1996 TALLOC_CTX
*_mem_save_filename_0
;
1997 if (flags
& NDR_IN
) {
1998 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1999 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
2001 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2002 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
2003 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
2004 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
2005 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_keyname
));
2007 NDR_PULL_ALLOC(ndr
, r
->in
.keyname
);
2009 r
->in
.keyname
= NULL
;
2011 if (r
->in
.keyname
) {
2012 _mem_save_keyname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2013 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.keyname
, 0);
2014 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.keyname
));
2015 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_keyname_0
, 0);
2017 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_filename
));
2018 if (_ptr_filename
) {
2019 NDR_PULL_ALLOC(ndr
, r
->in
.filename
);
2021 r
->in
.filename
= NULL
;
2023 if (r
->in
.filename
) {
2024 _mem_save_filename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2025 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.filename
, 0);
2026 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.filename
));
2027 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_filename_0
, 0);
2030 if (flags
& NDR_OUT
) {
2031 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
2033 return NDR_ERR_SUCCESS
;
2036 _PUBLIC_
void ndr_print_winreg_LoadKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_LoadKey
*r
)
2038 ndr_print_struct(ndr
, name
, "winreg_LoadKey");
2040 if (flags
& NDR_SET_VALUES
) {
2041 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
2043 if (flags
& NDR_IN
) {
2044 ndr_print_struct(ndr
, "in", "winreg_LoadKey");
2046 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
2048 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
2050 ndr_print_ptr(ndr
, "keyname", r
->in
.keyname
);
2052 if (r
->in
.keyname
) {
2053 ndr_print_winreg_String(ndr
, "keyname", r
->in
.keyname
);
2056 ndr_print_ptr(ndr
, "filename", r
->in
.filename
);
2058 if (r
->in
.filename
) {
2059 ndr_print_winreg_String(ndr
, "filename", r
->in
.filename
);
2064 if (flags
& NDR_OUT
) {
2065 ndr_print_struct(ndr
, "out", "winreg_LoadKey");
2067 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
2073 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_NotifyChangeKeyValue(struct ndr_push
*ndr
, int flags
, const struct winreg_NotifyChangeKeyValue
*r
)
2075 if (flags
& NDR_IN
) {
2076 if (r
->in
.handle
== NULL
) {
2077 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2079 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
2080 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->in
.watch_subtree
));
2081 NDR_CHECK(ndr_push_winreg_NotifyChangeType(ndr
, NDR_SCALARS
, r
->in
.notify_filter
));
2082 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.unknown
));
2083 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.string1
));
2084 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.string2
));
2085 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.unknown2
));
2087 if (flags
& NDR_OUT
) {
2088 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
2090 return NDR_ERR_SUCCESS
;
2093 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_NotifyChangeKeyValue(struct ndr_pull
*ndr
, int flags
, struct winreg_NotifyChangeKeyValue
*r
)
2095 TALLOC_CTX
*_mem_save_handle_0
;
2096 if (flags
& NDR_IN
) {
2097 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2098 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
2100 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2101 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
2102 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
2103 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
2104 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->in
.watch_subtree
));
2105 NDR_CHECK(ndr_pull_winreg_NotifyChangeType(ndr
, NDR_SCALARS
, &r
->in
.notify_filter
));
2106 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.unknown
));
2107 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.string1
));
2108 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.string2
));
2109 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.unknown2
));
2111 if (flags
& NDR_OUT
) {
2112 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
2114 return NDR_ERR_SUCCESS
;
2117 _PUBLIC_
void ndr_print_winreg_NotifyChangeKeyValue(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_NotifyChangeKeyValue
*r
)
2119 ndr_print_struct(ndr
, name
, "winreg_NotifyChangeKeyValue");
2121 if (flags
& NDR_SET_VALUES
) {
2122 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
2124 if (flags
& NDR_IN
) {
2125 ndr_print_struct(ndr
, "in", "winreg_NotifyChangeKeyValue");
2127 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
2129 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
2131 ndr_print_uint8(ndr
, "watch_subtree", r
->in
.watch_subtree
);
2132 ndr_print_winreg_NotifyChangeType(ndr
, "notify_filter", r
->in
.notify_filter
);
2133 ndr_print_uint32(ndr
, "unknown", r
->in
.unknown
);
2134 ndr_print_winreg_String(ndr
, "string1", &r
->in
.string1
);
2135 ndr_print_winreg_String(ndr
, "string2", &r
->in
.string2
);
2136 ndr_print_uint32(ndr
, "unknown2", r
->in
.unknown2
);
2139 if (flags
& NDR_OUT
) {
2140 ndr_print_struct(ndr
, "out", "winreg_NotifyChangeKeyValue");
2142 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
2148 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_OpenKey(struct ndr_push
*ndr
, int flags
, const struct winreg_OpenKey
*r
)
2150 if (flags
& NDR_IN
) {
2151 if (r
->in
.parent_handle
== NULL
) {
2152 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2154 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.parent_handle
));
2155 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.keyname
));
2156 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.unknown
));
2157 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
2159 if (flags
& NDR_OUT
) {
2160 if (r
->out
.handle
== NULL
) {
2161 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2163 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
2164 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
2166 return NDR_ERR_SUCCESS
;
2169 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_OpenKey(struct ndr_pull
*ndr
, int flags
, struct winreg_OpenKey
*r
)
2171 TALLOC_CTX
*_mem_save_parent_handle_0
;
2172 TALLOC_CTX
*_mem_save_handle_0
;
2173 if (flags
& NDR_IN
) {
2174 ZERO_STRUCT(r
->out
);
2176 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2177 NDR_PULL_ALLOC(ndr
, r
->in
.parent_handle
);
2179 _mem_save_parent_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2180 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.parent_handle
, LIBNDR_FLAG_REF_ALLOC
);
2181 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.parent_handle
));
2182 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parent_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
2183 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.keyname
));
2184 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.unknown
));
2185 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
2186 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
2187 ZERO_STRUCTP(r
->out
.handle
);
2189 if (flags
& NDR_OUT
) {
2190 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2191 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
2193 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2194 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
2195 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
2196 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
2197 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
2199 return NDR_ERR_SUCCESS
;
2202 _PUBLIC_
void ndr_print_winreg_OpenKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_OpenKey
*r
)
2204 ndr_print_struct(ndr
, name
, "winreg_OpenKey");
2206 if (flags
& NDR_SET_VALUES
) {
2207 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
2209 if (flags
& NDR_IN
) {
2210 ndr_print_struct(ndr
, "in", "winreg_OpenKey");
2212 ndr_print_ptr(ndr
, "parent_handle", r
->in
.parent_handle
);
2214 ndr_print_policy_handle(ndr
, "parent_handle", r
->in
.parent_handle
);
2216 ndr_print_winreg_String(ndr
, "keyname", &r
->in
.keyname
);
2217 ndr_print_uint32(ndr
, "unknown", r
->in
.unknown
);
2218 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
2221 if (flags
& NDR_OUT
) {
2222 ndr_print_struct(ndr
, "out", "winreg_OpenKey");
2224 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
2226 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
2228 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
2234 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_QueryInfoKey(struct ndr_push
*ndr
, int flags
, const struct winreg_QueryInfoKey
*r
)
2236 if (flags
& NDR_IN
) {
2237 if (r
->in
.handle
== NULL
) {
2238 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2240 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
2241 if (r
->in
.classname
== NULL
) {
2242 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2244 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.classname
));
2246 if (flags
& NDR_OUT
) {
2247 if (r
->out
.classname
== NULL
) {
2248 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2250 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.classname
));
2251 if (r
->out
.num_subkeys
== NULL
) {
2252 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2254 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.num_subkeys
));
2255 if (r
->out
.max_subkeylen
== NULL
) {
2256 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2258 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.max_subkeylen
));
2259 if (r
->out
.max_classlen
== NULL
) {
2260 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2262 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.max_classlen
));
2263 if (r
->out
.num_values
== NULL
) {
2264 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2266 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.num_values
));
2267 if (r
->out
.max_valnamelen
== NULL
) {
2268 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2270 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.max_valnamelen
));
2271 if (r
->out
.max_valbufsize
== NULL
) {
2272 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2274 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.max_valbufsize
));
2275 if (r
->out
.secdescsize
== NULL
) {
2276 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2278 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.secdescsize
));
2279 if (r
->out
.last_changed_time
== NULL
) {
2280 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2282 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, *r
->out
.last_changed_time
));
2283 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
2285 return NDR_ERR_SUCCESS
;
2288 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_QueryInfoKey(struct ndr_pull
*ndr
, int flags
, struct winreg_QueryInfoKey
*r
)
2290 TALLOC_CTX
*_mem_save_handle_0
;
2291 TALLOC_CTX
*_mem_save_classname_0
;
2292 TALLOC_CTX
*_mem_save_num_subkeys_0
;
2293 TALLOC_CTX
*_mem_save_max_subkeylen_0
;
2294 TALLOC_CTX
*_mem_save_max_classlen_0
;
2295 TALLOC_CTX
*_mem_save_num_values_0
;
2296 TALLOC_CTX
*_mem_save_max_valnamelen_0
;
2297 TALLOC_CTX
*_mem_save_max_valbufsize_0
;
2298 TALLOC_CTX
*_mem_save_secdescsize_0
;
2299 TALLOC_CTX
*_mem_save_last_changed_time_0
;
2300 if (flags
& NDR_IN
) {
2301 ZERO_STRUCT(r
->out
);
2303 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2304 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
2306 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2307 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
2308 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
2309 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
2310 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2311 NDR_PULL_ALLOC(ndr
, r
->in
.classname
);
2313 _mem_save_classname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2314 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.classname
, LIBNDR_FLAG_REF_ALLOC
);
2315 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.classname
));
2316 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_classname_0
, LIBNDR_FLAG_REF_ALLOC
);
2317 NDR_PULL_ALLOC(ndr
, r
->out
.classname
);
2318 *r
->out
.classname
= *r
->in
.classname
;
2319 NDR_PULL_ALLOC(ndr
, r
->out
.num_subkeys
);
2320 ZERO_STRUCTP(r
->out
.num_subkeys
);
2321 NDR_PULL_ALLOC(ndr
, r
->out
.max_subkeylen
);
2322 ZERO_STRUCTP(r
->out
.max_subkeylen
);
2323 NDR_PULL_ALLOC(ndr
, r
->out
.max_classlen
);
2324 ZERO_STRUCTP(r
->out
.max_classlen
);
2325 NDR_PULL_ALLOC(ndr
, r
->out
.num_values
);
2326 ZERO_STRUCTP(r
->out
.num_values
);
2327 NDR_PULL_ALLOC(ndr
, r
->out
.max_valnamelen
);
2328 ZERO_STRUCTP(r
->out
.max_valnamelen
);
2329 NDR_PULL_ALLOC(ndr
, r
->out
.max_valbufsize
);
2330 ZERO_STRUCTP(r
->out
.max_valbufsize
);
2331 NDR_PULL_ALLOC(ndr
, r
->out
.secdescsize
);
2332 ZERO_STRUCTP(r
->out
.secdescsize
);
2333 NDR_PULL_ALLOC(ndr
, r
->out
.last_changed_time
);
2334 ZERO_STRUCTP(r
->out
.last_changed_time
);
2336 if (flags
& NDR_OUT
) {
2337 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2338 NDR_PULL_ALLOC(ndr
, r
->out
.classname
);
2340 _mem_save_classname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2341 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.classname
, LIBNDR_FLAG_REF_ALLOC
);
2342 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.classname
));
2343 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_classname_0
, LIBNDR_FLAG_REF_ALLOC
);
2344 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2345 NDR_PULL_ALLOC(ndr
, r
->out
.num_subkeys
);
2347 _mem_save_num_subkeys_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2348 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.num_subkeys
, LIBNDR_FLAG_REF_ALLOC
);
2349 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.num_subkeys
));
2350 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_num_subkeys_0
, LIBNDR_FLAG_REF_ALLOC
);
2351 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2352 NDR_PULL_ALLOC(ndr
, r
->out
.max_subkeylen
);
2354 _mem_save_max_subkeylen_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2355 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.max_subkeylen
, LIBNDR_FLAG_REF_ALLOC
);
2356 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.max_subkeylen
));
2357 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_max_subkeylen_0
, LIBNDR_FLAG_REF_ALLOC
);
2358 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2359 NDR_PULL_ALLOC(ndr
, r
->out
.max_classlen
);
2361 _mem_save_max_classlen_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2362 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.max_classlen
, LIBNDR_FLAG_REF_ALLOC
);
2363 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.max_classlen
));
2364 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_max_classlen_0
, LIBNDR_FLAG_REF_ALLOC
);
2365 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2366 NDR_PULL_ALLOC(ndr
, r
->out
.num_values
);
2368 _mem_save_num_values_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2369 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.num_values
, LIBNDR_FLAG_REF_ALLOC
);
2370 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.num_values
));
2371 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_num_values_0
, LIBNDR_FLAG_REF_ALLOC
);
2372 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2373 NDR_PULL_ALLOC(ndr
, r
->out
.max_valnamelen
);
2375 _mem_save_max_valnamelen_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2376 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.max_valnamelen
, LIBNDR_FLAG_REF_ALLOC
);
2377 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.max_valnamelen
));
2378 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_max_valnamelen_0
, LIBNDR_FLAG_REF_ALLOC
);
2379 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2380 NDR_PULL_ALLOC(ndr
, r
->out
.max_valbufsize
);
2382 _mem_save_max_valbufsize_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2383 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.max_valbufsize
, LIBNDR_FLAG_REF_ALLOC
);
2384 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.max_valbufsize
));
2385 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_max_valbufsize_0
, LIBNDR_FLAG_REF_ALLOC
);
2386 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2387 NDR_PULL_ALLOC(ndr
, r
->out
.secdescsize
);
2389 _mem_save_secdescsize_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2390 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.secdescsize
, LIBNDR_FLAG_REF_ALLOC
);
2391 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.secdescsize
));
2392 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdescsize_0
, LIBNDR_FLAG_REF_ALLOC
);
2393 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2394 NDR_PULL_ALLOC(ndr
, r
->out
.last_changed_time
);
2396 _mem_save_last_changed_time_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2397 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.last_changed_time
, LIBNDR_FLAG_REF_ALLOC
);
2398 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, r
->out
.last_changed_time
));
2399 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_last_changed_time_0
, LIBNDR_FLAG_REF_ALLOC
);
2400 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
2402 return NDR_ERR_SUCCESS
;
2405 _PUBLIC_
void ndr_print_winreg_QueryInfoKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_QueryInfoKey
*r
)
2407 ndr_print_struct(ndr
, name
, "winreg_QueryInfoKey");
2409 if (flags
& NDR_SET_VALUES
) {
2410 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
2412 if (flags
& NDR_IN
) {
2413 ndr_print_struct(ndr
, "in", "winreg_QueryInfoKey");
2415 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
2417 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
2419 ndr_print_ptr(ndr
, "classname", r
->in
.classname
);
2421 ndr_print_winreg_String(ndr
, "classname", r
->in
.classname
);
2425 if (flags
& NDR_OUT
) {
2426 ndr_print_struct(ndr
, "out", "winreg_QueryInfoKey");
2428 ndr_print_ptr(ndr
, "classname", r
->out
.classname
);
2430 ndr_print_winreg_String(ndr
, "classname", r
->out
.classname
);
2432 ndr_print_ptr(ndr
, "num_subkeys", r
->out
.num_subkeys
);
2434 ndr_print_uint32(ndr
, "num_subkeys", *r
->out
.num_subkeys
);
2436 ndr_print_ptr(ndr
, "max_subkeylen", r
->out
.max_subkeylen
);
2438 ndr_print_uint32(ndr
, "max_subkeylen", *r
->out
.max_subkeylen
);
2440 ndr_print_ptr(ndr
, "max_classlen", r
->out
.max_classlen
);
2442 ndr_print_uint32(ndr
, "max_classlen", *r
->out
.max_classlen
);
2444 ndr_print_ptr(ndr
, "num_values", r
->out
.num_values
);
2446 ndr_print_uint32(ndr
, "num_values", *r
->out
.num_values
);
2448 ndr_print_ptr(ndr
, "max_valnamelen", r
->out
.max_valnamelen
);
2450 ndr_print_uint32(ndr
, "max_valnamelen", *r
->out
.max_valnamelen
);
2452 ndr_print_ptr(ndr
, "max_valbufsize", r
->out
.max_valbufsize
);
2454 ndr_print_uint32(ndr
, "max_valbufsize", *r
->out
.max_valbufsize
);
2456 ndr_print_ptr(ndr
, "secdescsize", r
->out
.secdescsize
);
2458 ndr_print_uint32(ndr
, "secdescsize", *r
->out
.secdescsize
);
2460 ndr_print_ptr(ndr
, "last_changed_time", r
->out
.last_changed_time
);
2462 ndr_print_NTTIME(ndr
, "last_changed_time", *r
->out
.last_changed_time
);
2464 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
2470 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_QueryValue(struct ndr_push
*ndr
, int flags
, const struct winreg_QueryValue
*r
)
2472 if (flags
& NDR_IN
) {
2473 if (r
->in
.handle
== NULL
) {
2474 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2476 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
2477 if (r
->in
.value_name
== NULL
) {
2478 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2480 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.value_name
));
2481 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.type
));
2483 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, *r
->in
.type
));
2485 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.data
));
2487 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, *r
->in
.data_size
));
2488 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
2489 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, *r
->in
.data_length
));
2490 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.data
, *r
->in
.data_length
));
2492 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.data_size
));
2493 if (r
->in
.data_size
) {
2494 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.data_size
));
2496 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.data_length
));
2497 if (r
->in
.data_length
) {
2498 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.data_length
));
2501 if (flags
& NDR_OUT
) {
2502 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.type
));
2504 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, *r
->out
.type
));
2506 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.data
));
2508 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, *r
->out
.data_size
));
2509 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
2510 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, *r
->out
.data_length
));
2511 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, *r
->out
.data_length
));
2513 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.data_size
));
2514 if (r
->out
.data_size
) {
2515 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.data_size
));
2517 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.data_length
));
2518 if (r
->out
.data_length
) {
2519 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.data_length
));
2521 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
2523 return NDR_ERR_SUCCESS
;
2526 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_QueryValue(struct ndr_pull
*ndr
, int flags
, struct winreg_QueryValue
*r
)
2530 uint32_t _ptr_data_size
;
2531 uint32_t _ptr_data_length
;
2532 TALLOC_CTX
*_mem_save_handle_0
;
2533 TALLOC_CTX
*_mem_save_value_name_0
;
2534 TALLOC_CTX
*_mem_save_type_0
;
2535 TALLOC_CTX
*_mem_save_data_0
;
2536 TALLOC_CTX
*_mem_save_data_size_0
;
2537 TALLOC_CTX
*_mem_save_data_length_0
;
2538 if (flags
& NDR_IN
) {
2539 ZERO_STRUCT(r
->out
);
2541 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2542 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
2544 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2545 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
2546 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
2547 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
2548 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2549 NDR_PULL_ALLOC(ndr
, r
->in
.value_name
);
2551 _mem_save_value_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2552 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.value_name
, LIBNDR_FLAG_REF_ALLOC
);
2553 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.value_name
));
2554 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_value_name_0
, LIBNDR_FLAG_REF_ALLOC
);
2555 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_type
));
2557 NDR_PULL_ALLOC(ndr
, r
->in
.type
);
2562 _mem_save_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2563 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.type
, 0);
2564 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
2565 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_type_0
, 0);
2567 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data
));
2569 NDR_PULL_ALLOC(ndr
, r
->in
.data
);
2574 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2575 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.data
, 0);
2576 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.data
));
2577 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.data
));
2578 if (ndr_get_array_length(ndr
, &r
->in
.data
) > ndr_get_array_size(ndr
, &r
->in
.data
)) {
2579 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
));
2581 NDR_PULL_ALLOC_N(ndr
, r
->in
.data
, ndr_get_array_size(ndr
, &r
->in
.data
));
2582 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.data
, ndr_get_array_length(ndr
, &r
->in
.data
)));
2583 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, 0);
2585 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_size
));
2586 if (_ptr_data_size
) {
2587 NDR_PULL_ALLOC(ndr
, r
->in
.data_size
);
2589 r
->in
.data_size
= NULL
;
2591 if (r
->in
.data_size
) {
2592 _mem_save_data_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2593 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.data_size
, 0);
2594 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.data_size
));
2595 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_size_0
, 0);
2597 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_length
));
2598 if (_ptr_data_length
) {
2599 NDR_PULL_ALLOC(ndr
, r
->in
.data_length
);
2601 r
->in
.data_length
= NULL
;
2603 if (r
->in
.data_length
) {
2604 _mem_save_data_length_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2605 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.data_length
, 0);
2606 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.data_length
));
2607 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_length_0
, 0);
2610 if (r
->in
.data_size
== NULL
) return ndr_pull_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL Pointer for size_is()");
2611 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.data
, *r
->in
.data_size
));
2614 if (r
->in
.data_length
== NULL
) return ndr_pull_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL Pointer for length_is()");
2615 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->in
.data
, *r
->in
.data_length
));
2618 if (flags
& NDR_OUT
) {
2619 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_type
));
2621 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
2626 _mem_save_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2627 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.type
, 0);
2628 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, r
->out
.type
));
2629 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_type_0
, 0);
2631 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data
));
2633 NDR_PULL_ALLOC(ndr
, r
->out
.data
);
2638 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2639 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.data
, 0);
2640 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.data
));
2641 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->out
.data
));
2642 if (ndr_get_array_length(ndr
, &r
->out
.data
) > ndr_get_array_size(ndr
, &r
->out
.data
)) {
2643 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
));
2645 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, ndr_get_array_size(ndr
, &r
->out
.data
));
2646 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, ndr_get_array_length(ndr
, &r
->out
.data
)));
2647 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, 0);
2649 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_size
));
2650 if (_ptr_data_size
) {
2651 NDR_PULL_ALLOC(ndr
, r
->out
.data_size
);
2653 r
->out
.data_size
= NULL
;
2655 if (r
->out
.data_size
) {
2656 _mem_save_data_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2657 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.data_size
, 0);
2658 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.data_size
));
2659 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_size_0
, 0);
2661 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_length
));
2662 if (_ptr_data_length
) {
2663 NDR_PULL_ALLOC(ndr
, r
->out
.data_length
);
2665 r
->out
.data_length
= NULL
;
2667 if (r
->out
.data_length
) {
2668 _mem_save_data_length_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2669 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.data_length
, 0);
2670 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.data_length
));
2671 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_length_0
, 0);
2673 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
2675 if (r
->out
.data_size
== NULL
) return ndr_pull_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL Pointer for size_is()");
2676 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.data
, *r
->out
.data_size
));
2679 if (r
->out
.data_length
== NULL
) return ndr_pull_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL Pointer for length_is()");
2680 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->out
.data
, *r
->out
.data_length
));
2683 return NDR_ERR_SUCCESS
;
2686 _PUBLIC_
void ndr_print_winreg_QueryValue(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_QueryValue
*r
)
2688 ndr_print_struct(ndr
, name
, "winreg_QueryValue");
2690 if (flags
& NDR_SET_VALUES
) {
2691 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
2693 if (flags
& NDR_IN
) {
2694 ndr_print_struct(ndr
, "in", "winreg_QueryValue");
2696 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
2698 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
2700 ndr_print_ptr(ndr
, "value_name", r
->in
.value_name
);
2702 ndr_print_winreg_String(ndr
, "value_name", r
->in
.value_name
);
2704 ndr_print_ptr(ndr
, "type", r
->in
.type
);
2707 ndr_print_winreg_Type(ndr
, "type", *r
->in
.type
);
2710 ndr_print_ptr(ndr
, "data", r
->in
.data
);
2713 if (r
->in
.data_length
== NULL
) return;
2714 ndr_print_array_uint8(ndr
, "data", r
->in
.data
, *r
->in
.data_length
);
2717 ndr_print_ptr(ndr
, "data_size", r
->in
.data_size
);
2719 if (r
->in
.data_size
) {
2720 ndr_print_uint32(ndr
, "data_size", *r
->in
.data_size
);
2723 ndr_print_ptr(ndr
, "data_length", r
->in
.data_length
);
2725 if (r
->in
.data_length
) {
2726 ndr_print_uint32(ndr
, "data_length", *r
->in
.data_length
);
2731 if (flags
& NDR_OUT
) {
2732 ndr_print_struct(ndr
, "out", "winreg_QueryValue");
2734 ndr_print_ptr(ndr
, "type", r
->out
.type
);
2737 ndr_print_winreg_Type(ndr
, "type", *r
->out
.type
);
2740 ndr_print_ptr(ndr
, "data", r
->out
.data
);
2743 if (r
->out
.data_length
== NULL
) return;
2744 ndr_print_array_uint8(ndr
, "data", r
->out
.data
, *r
->out
.data_length
);
2747 ndr_print_ptr(ndr
, "data_size", r
->out
.data_size
);
2749 if (r
->out
.data_size
) {
2750 ndr_print_uint32(ndr
, "data_size", *r
->out
.data_size
);
2753 ndr_print_ptr(ndr
, "data_length", r
->out
.data_length
);
2755 if (r
->out
.data_length
) {
2756 ndr_print_uint32(ndr
, "data_length", *r
->out
.data_length
);
2759 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
2765 static enum ndr_err_code
ndr_push_winreg_ReplaceKey(struct ndr_push
*ndr
, int flags
, const struct winreg_ReplaceKey
*r
)
2767 if (flags
& NDR_IN
) {
2769 if (flags
& NDR_OUT
) {
2770 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
2772 return NDR_ERR_SUCCESS
;
2775 static enum ndr_err_code
ndr_pull_winreg_ReplaceKey(struct ndr_pull
*ndr
, int flags
, struct winreg_ReplaceKey
*r
)
2777 if (flags
& NDR_IN
) {
2779 if (flags
& NDR_OUT
) {
2780 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
2782 return NDR_ERR_SUCCESS
;
2785 _PUBLIC_
void ndr_print_winreg_ReplaceKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_ReplaceKey
*r
)
2787 ndr_print_struct(ndr
, name
, "winreg_ReplaceKey");
2789 if (flags
& NDR_SET_VALUES
) {
2790 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
2792 if (flags
& NDR_IN
) {
2793 ndr_print_struct(ndr
, "in", "winreg_ReplaceKey");
2797 if (flags
& NDR_OUT
) {
2798 ndr_print_struct(ndr
, "out", "winreg_ReplaceKey");
2800 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
2806 static enum ndr_err_code
ndr_push_winreg_RestoreKey(struct ndr_push
*ndr
, int flags
, const struct winreg_RestoreKey
*r
)
2808 if (flags
& NDR_IN
) {
2809 if (r
->in
.handle
== NULL
) {
2810 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2812 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
2813 if (r
->in
.filename
== NULL
) {
2814 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2816 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.filename
));
2817 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.flags
));
2819 if (flags
& NDR_OUT
) {
2820 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
2822 return NDR_ERR_SUCCESS
;
2825 static enum ndr_err_code
ndr_pull_winreg_RestoreKey(struct ndr_pull
*ndr
, int flags
, struct winreg_RestoreKey
*r
)
2827 TALLOC_CTX
*_mem_save_handle_0
;
2828 TALLOC_CTX
*_mem_save_filename_0
;
2829 if (flags
& NDR_IN
) {
2830 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2831 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
2833 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2834 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
2835 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
2836 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
2837 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2838 NDR_PULL_ALLOC(ndr
, r
->in
.filename
);
2840 _mem_save_filename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2841 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.filename
, LIBNDR_FLAG_REF_ALLOC
);
2842 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.filename
));
2843 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_filename_0
, LIBNDR_FLAG_REF_ALLOC
);
2844 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.flags
));
2846 if (flags
& NDR_OUT
) {
2847 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
2849 return NDR_ERR_SUCCESS
;
2852 _PUBLIC_
void ndr_print_winreg_RestoreKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_RestoreKey
*r
)
2854 ndr_print_struct(ndr
, name
, "winreg_RestoreKey");
2856 if (flags
& NDR_SET_VALUES
) {
2857 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
2859 if (flags
& NDR_IN
) {
2860 ndr_print_struct(ndr
, "in", "winreg_RestoreKey");
2862 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
2864 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
2866 ndr_print_ptr(ndr
, "filename", r
->in
.filename
);
2868 ndr_print_winreg_String(ndr
, "filename", r
->in
.filename
);
2870 ndr_print_uint32(ndr
, "flags", r
->in
.flags
);
2873 if (flags
& NDR_OUT
) {
2874 ndr_print_struct(ndr
, "out", "winreg_RestoreKey");
2876 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
2882 static enum ndr_err_code
ndr_push_winreg_SaveKey(struct ndr_push
*ndr
, int flags
, const struct winreg_SaveKey
*r
)
2884 if (flags
& NDR_IN
) {
2885 if (r
->in
.handle
== NULL
) {
2886 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2888 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
2889 if (r
->in
.filename
== NULL
) {
2890 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2892 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.filename
));
2893 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.sec_attrib
));
2894 if (r
->in
.sec_attrib
) {
2895 NDR_CHECK(ndr_push_KeySecurityAttribute(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.sec_attrib
));
2898 if (flags
& NDR_OUT
) {
2899 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
2901 return NDR_ERR_SUCCESS
;
2904 static enum ndr_err_code
ndr_pull_winreg_SaveKey(struct ndr_pull
*ndr
, int flags
, struct winreg_SaveKey
*r
)
2906 uint32_t _ptr_sec_attrib
;
2907 TALLOC_CTX
*_mem_save_handle_0
;
2908 TALLOC_CTX
*_mem_save_filename_0
;
2909 TALLOC_CTX
*_mem_save_sec_attrib_0
;
2910 if (flags
& NDR_IN
) {
2911 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2912 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
2914 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2915 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
2916 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
2917 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
2918 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2919 NDR_PULL_ALLOC(ndr
, r
->in
.filename
);
2921 _mem_save_filename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2922 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.filename
, LIBNDR_FLAG_REF_ALLOC
);
2923 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.filename
));
2924 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_filename_0
, LIBNDR_FLAG_REF_ALLOC
);
2925 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sec_attrib
));
2926 if (_ptr_sec_attrib
) {
2927 NDR_PULL_ALLOC(ndr
, r
->in
.sec_attrib
);
2929 r
->in
.sec_attrib
= NULL
;
2931 if (r
->in
.sec_attrib
) {
2932 _mem_save_sec_attrib_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2933 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.sec_attrib
, 0);
2934 NDR_CHECK(ndr_pull_KeySecurityAttribute(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.sec_attrib
));
2935 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sec_attrib_0
, 0);
2938 if (flags
& NDR_OUT
) {
2939 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
2941 return NDR_ERR_SUCCESS
;
2944 _PUBLIC_
void ndr_print_winreg_SaveKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_SaveKey
*r
)
2946 ndr_print_struct(ndr
, name
, "winreg_SaveKey");
2948 if (flags
& NDR_SET_VALUES
) {
2949 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
2951 if (flags
& NDR_IN
) {
2952 ndr_print_struct(ndr
, "in", "winreg_SaveKey");
2954 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
2956 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
2958 ndr_print_ptr(ndr
, "filename", r
->in
.filename
);
2960 ndr_print_winreg_String(ndr
, "filename", r
->in
.filename
);
2962 ndr_print_ptr(ndr
, "sec_attrib", r
->in
.sec_attrib
);
2964 if (r
->in
.sec_attrib
) {
2965 ndr_print_KeySecurityAttribute(ndr
, "sec_attrib", r
->in
.sec_attrib
);
2970 if (flags
& NDR_OUT
) {
2971 ndr_print_struct(ndr
, "out", "winreg_SaveKey");
2973 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
2979 static enum ndr_err_code
ndr_push_winreg_SetKeySecurity(struct ndr_push
*ndr
, int flags
, const struct winreg_SetKeySecurity
*r
)
2981 if (flags
& NDR_IN
) {
2982 if (r
->in
.handle
== NULL
) {
2983 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2985 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
2986 NDR_CHECK(ndr_push_security_secinfo(ndr
, NDR_SCALARS
, r
->in
.sec_info
));
2987 if (r
->in
.sd
== NULL
) {
2988 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2990 NDR_CHECK(ndr_push_KeySecurityData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.sd
));
2992 if (flags
& NDR_OUT
) {
2993 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
2995 return NDR_ERR_SUCCESS
;
2998 static enum ndr_err_code
ndr_pull_winreg_SetKeySecurity(struct ndr_pull
*ndr
, int flags
, struct winreg_SetKeySecurity
*r
)
3000 TALLOC_CTX
*_mem_save_handle_0
;
3001 TALLOC_CTX
*_mem_save_sd_0
;
3002 if (flags
& NDR_IN
) {
3003 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3004 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
3006 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3007 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
3008 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
3009 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
3010 NDR_CHECK(ndr_pull_security_secinfo(ndr
, NDR_SCALARS
, &r
->in
.sec_info
));
3011 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3012 NDR_PULL_ALLOC(ndr
, r
->in
.sd
);
3014 _mem_save_sd_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3015 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.sd
, LIBNDR_FLAG_REF_ALLOC
);
3016 NDR_CHECK(ndr_pull_KeySecurityData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.sd
));
3017 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sd_0
, LIBNDR_FLAG_REF_ALLOC
);
3019 if (flags
& NDR_OUT
) {
3020 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
3022 return NDR_ERR_SUCCESS
;
3025 _PUBLIC_
void ndr_print_winreg_SetKeySecurity(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_SetKeySecurity
*r
)
3027 ndr_print_struct(ndr
, name
, "winreg_SetKeySecurity");
3029 if (flags
& NDR_SET_VALUES
) {
3030 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
3032 if (flags
& NDR_IN
) {
3033 ndr_print_struct(ndr
, "in", "winreg_SetKeySecurity");
3035 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
3037 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
3039 ndr_print_security_secinfo(ndr
, "sec_info", r
->in
.sec_info
);
3040 ndr_print_ptr(ndr
, "sd", r
->in
.sd
);
3042 ndr_print_KeySecurityData(ndr
, "sd", r
->in
.sd
);
3046 if (flags
& NDR_OUT
) {
3047 ndr_print_struct(ndr
, "out", "winreg_SetKeySecurity");
3049 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
3055 static enum ndr_err_code
ndr_push_winreg_SetValue(struct ndr_push
*ndr
, int flags
, const struct winreg_SetValue
*r
)
3057 if (flags
& NDR_IN
) {
3058 if (r
->in
.handle
== NULL
) {
3059 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3061 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
3062 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.name
));
3063 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
3064 if (r
->in
.data
== NULL
) {
3065 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3067 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.size
));
3068 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.data
, r
->in
.size
));
3069 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.size
));
3071 if (flags
& NDR_OUT
) {
3072 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
3074 return NDR_ERR_SUCCESS
;
3077 static enum ndr_err_code
ndr_pull_winreg_SetValue(struct ndr_pull
*ndr
, int flags
, struct winreg_SetValue
*r
)
3079 TALLOC_CTX
*_mem_save_handle_0
;
3080 if (flags
& NDR_IN
) {
3081 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3082 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
3084 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3085 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
3086 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
3087 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
3088 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.name
));
3089 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->in
.type
));
3090 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.data
));
3091 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3092 NDR_PULL_ALLOC_N(ndr
, r
->in
.data
, ndr_get_array_size(ndr
, &r
->in
.data
));
3094 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.data
, ndr_get_array_size(ndr
, &r
->in
.data
)));
3095 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.size
));
3097 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.data
, r
->in
.size
));
3100 if (flags
& NDR_OUT
) {
3101 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
3103 return NDR_ERR_SUCCESS
;
3106 _PUBLIC_
void ndr_print_winreg_SetValue(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_SetValue
*r
)
3108 ndr_print_struct(ndr
, name
, "winreg_SetValue");
3110 if (flags
& NDR_SET_VALUES
) {
3111 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
3113 if (flags
& NDR_IN
) {
3114 ndr_print_struct(ndr
, "in", "winreg_SetValue");
3116 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
3118 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
3120 ndr_print_winreg_String(ndr
, "name", &r
->in
.name
);
3121 ndr_print_winreg_Type(ndr
, "type", r
->in
.type
);
3122 ndr_print_ptr(ndr
, "data", r
->in
.data
);
3124 ndr_print_array_uint8(ndr
, "data", r
->in
.data
, r
->in
.size
);
3126 ndr_print_uint32(ndr
, "size", r
->in
.size
);
3129 if (flags
& NDR_OUT
) {
3130 ndr_print_struct(ndr
, "out", "winreg_SetValue");
3132 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
3138 static enum ndr_err_code
ndr_push_winreg_UnLoadKey(struct ndr_push
*ndr
, int flags
, const struct winreg_UnLoadKey
*r
)
3140 if (flags
& NDR_IN
) {
3142 if (flags
& NDR_OUT
) {
3143 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
3145 return NDR_ERR_SUCCESS
;
3148 static enum ndr_err_code
ndr_pull_winreg_UnLoadKey(struct ndr_pull
*ndr
, int flags
, struct winreg_UnLoadKey
*r
)
3150 if (flags
& NDR_IN
) {
3152 if (flags
& NDR_OUT
) {
3153 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
3155 return NDR_ERR_SUCCESS
;
3158 _PUBLIC_
void ndr_print_winreg_UnLoadKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_UnLoadKey
*r
)
3160 ndr_print_struct(ndr
, name
, "winreg_UnLoadKey");
3162 if (flags
& NDR_SET_VALUES
) {
3163 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
3165 if (flags
& NDR_IN
) {
3166 ndr_print_struct(ndr
, "in", "winreg_UnLoadKey");
3170 if (flags
& NDR_OUT
) {
3171 ndr_print_struct(ndr
, "out", "winreg_UnLoadKey");
3173 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
3179 static enum ndr_err_code
ndr_push_winreg_InitiateSystemShutdown(struct ndr_push
*ndr
, int flags
, const struct winreg_InitiateSystemShutdown
*r
)
3181 if (flags
& NDR_IN
) {
3182 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.hostname
));
3183 if (r
->in
.hostname
) {
3184 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.hostname
));
3186 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.message
));
3187 if (r
->in
.message
) {
3188 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.message
));
3190 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.timeout
));
3191 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->in
.force_apps
));
3192 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->in
.do_reboot
));
3194 if (flags
& NDR_OUT
) {
3195 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
3197 return NDR_ERR_SUCCESS
;
3200 static enum ndr_err_code
ndr_pull_winreg_InitiateSystemShutdown(struct ndr_pull
*ndr
, int flags
, struct winreg_InitiateSystemShutdown
*r
)
3202 uint32_t _ptr_hostname
;
3203 uint32_t _ptr_message
;
3204 TALLOC_CTX
*_mem_save_hostname_0
;
3205 TALLOC_CTX
*_mem_save_message_0
;
3206 if (flags
& NDR_IN
) {
3207 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hostname
));
3208 if (_ptr_hostname
) {
3209 NDR_PULL_ALLOC(ndr
, r
->in
.hostname
);
3211 r
->in
.hostname
= NULL
;
3213 if (r
->in
.hostname
) {
3214 _mem_save_hostname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3215 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.hostname
, 0);
3216 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.hostname
));
3217 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hostname_0
, 0);
3219 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_message
));
3221 NDR_PULL_ALLOC(ndr
, r
->in
.message
);
3223 r
->in
.message
= NULL
;
3225 if (r
->in
.message
) {
3226 _mem_save_message_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3227 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.message
, 0);
3228 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.message
));
3229 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_message_0
, 0);
3231 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.timeout
));
3232 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->in
.force_apps
));
3233 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->in
.do_reboot
));
3235 if (flags
& NDR_OUT
) {
3236 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
3238 return NDR_ERR_SUCCESS
;
3241 _PUBLIC_
void ndr_print_winreg_InitiateSystemShutdown(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_InitiateSystemShutdown
*r
)
3243 ndr_print_struct(ndr
, name
, "winreg_InitiateSystemShutdown");
3245 if (flags
& NDR_SET_VALUES
) {
3246 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
3248 if (flags
& NDR_IN
) {
3249 ndr_print_struct(ndr
, "in", "winreg_InitiateSystemShutdown");
3251 ndr_print_ptr(ndr
, "hostname", r
->in
.hostname
);
3253 if (r
->in
.hostname
) {
3254 ndr_print_uint16(ndr
, "hostname", *r
->in
.hostname
);
3257 ndr_print_ptr(ndr
, "message", r
->in
.message
);
3259 if (r
->in
.message
) {
3260 ndr_print_lsa_StringLarge(ndr
, "message", r
->in
.message
);
3263 ndr_print_uint32(ndr
, "timeout", r
->in
.timeout
);
3264 ndr_print_uint8(ndr
, "force_apps", r
->in
.force_apps
);
3265 ndr_print_uint8(ndr
, "do_reboot", r
->in
.do_reboot
);
3268 if (flags
& NDR_OUT
) {
3269 ndr_print_struct(ndr
, "out", "winreg_InitiateSystemShutdown");
3271 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
3277 static enum ndr_err_code
ndr_push_winreg_AbortSystemShutdown(struct ndr_push
*ndr
, int flags
, const struct winreg_AbortSystemShutdown
*r
)
3279 if (flags
& NDR_IN
) {
3280 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
3282 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.server
));
3285 if (flags
& NDR_OUT
) {
3286 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
3288 return NDR_ERR_SUCCESS
;
3291 static enum ndr_err_code
ndr_pull_winreg_AbortSystemShutdown(struct ndr_pull
*ndr
, int flags
, struct winreg_AbortSystemShutdown
*r
)
3293 uint32_t _ptr_server
;
3294 TALLOC_CTX
*_mem_save_server_0
;
3295 if (flags
& NDR_IN
) {
3296 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
3298 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
3300 r
->in
.server
= NULL
;
3303 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3304 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
3305 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.server
));
3306 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
3309 if (flags
& NDR_OUT
) {
3310 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
3312 return NDR_ERR_SUCCESS
;
3315 _PUBLIC_
void ndr_print_winreg_AbortSystemShutdown(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_AbortSystemShutdown
*r
)
3317 ndr_print_struct(ndr
, name
, "winreg_AbortSystemShutdown");
3319 if (flags
& NDR_SET_VALUES
) {
3320 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
3322 if (flags
& NDR_IN
) {
3323 ndr_print_struct(ndr
, "in", "winreg_AbortSystemShutdown");
3325 ndr_print_ptr(ndr
, "server", r
->in
.server
);
3328 ndr_print_uint16(ndr
, "server", *r
->in
.server
);
3333 if (flags
& NDR_OUT
) {
3334 ndr_print_struct(ndr
, "out", "winreg_AbortSystemShutdown");
3336 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
3342 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_GetVersion(struct ndr_push
*ndr
, int flags
, const struct winreg_GetVersion
*r
)
3344 if (flags
& NDR_IN
) {
3345 if (r
->in
.handle
== NULL
) {
3346 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3348 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
3350 if (flags
& NDR_OUT
) {
3351 if (r
->out
.version
== NULL
) {
3352 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3354 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.version
));
3355 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
3357 return NDR_ERR_SUCCESS
;
3360 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_GetVersion(struct ndr_pull
*ndr
, int flags
, struct winreg_GetVersion
*r
)
3362 TALLOC_CTX
*_mem_save_handle_0
;
3363 TALLOC_CTX
*_mem_save_version_0
;
3364 if (flags
& NDR_IN
) {
3365 ZERO_STRUCT(r
->out
);
3367 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3368 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
3370 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3371 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
3372 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
3373 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
3374 NDR_PULL_ALLOC(ndr
, r
->out
.version
);
3375 ZERO_STRUCTP(r
->out
.version
);
3377 if (flags
& NDR_OUT
) {
3378 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3379 NDR_PULL_ALLOC(ndr
, r
->out
.version
);
3381 _mem_save_version_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3382 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.version
, LIBNDR_FLAG_REF_ALLOC
);
3383 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.version
));
3384 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_version_0
, LIBNDR_FLAG_REF_ALLOC
);
3385 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
3387 return NDR_ERR_SUCCESS
;
3390 _PUBLIC_
void ndr_print_winreg_GetVersion(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_GetVersion
*r
)
3392 ndr_print_struct(ndr
, name
, "winreg_GetVersion");
3394 if (flags
& NDR_SET_VALUES
) {
3395 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
3397 if (flags
& NDR_IN
) {
3398 ndr_print_struct(ndr
, "in", "winreg_GetVersion");
3400 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
3402 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
3406 if (flags
& NDR_OUT
) {
3407 ndr_print_struct(ndr
, "out", "winreg_GetVersion");
3409 ndr_print_ptr(ndr
, "version", r
->out
.version
);
3411 ndr_print_uint32(ndr
, "version", *r
->out
.version
);
3413 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
3419 static enum ndr_err_code
ndr_push_winreg_OpenHKCC(struct ndr_push
*ndr
, int flags
, const struct winreg_OpenHKCC
*r
)
3421 if (flags
& NDR_IN
) {
3422 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.system_name
));
3423 if (r
->in
.system_name
) {
3424 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.system_name
));
3426 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
3428 if (flags
& NDR_OUT
) {
3429 if (r
->out
.handle
== NULL
) {
3430 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3432 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
3433 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
3435 return NDR_ERR_SUCCESS
;
3438 static enum ndr_err_code
ndr_pull_winreg_OpenHKCC(struct ndr_pull
*ndr
, int flags
, struct winreg_OpenHKCC
*r
)
3440 uint32_t _ptr_system_name
;
3441 TALLOC_CTX
*_mem_save_system_name_0
;
3442 TALLOC_CTX
*_mem_save_handle_0
;
3443 if (flags
& NDR_IN
) {
3444 ZERO_STRUCT(r
->out
);
3446 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_system_name
));
3447 if (_ptr_system_name
) {
3448 NDR_PULL_ALLOC(ndr
, r
->in
.system_name
);
3450 r
->in
.system_name
= NULL
;
3452 if (r
->in
.system_name
) {
3453 _mem_save_system_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3454 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.system_name
, 0);
3455 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.system_name
));
3456 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_system_name_0
, 0);
3458 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
3459 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
3460 ZERO_STRUCTP(r
->out
.handle
);
3462 if (flags
& NDR_OUT
) {
3463 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3464 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
3466 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3467 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
3468 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
3469 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
3470 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
3472 return NDR_ERR_SUCCESS
;
3475 _PUBLIC_
void ndr_print_winreg_OpenHKCC(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_OpenHKCC
*r
)
3477 ndr_print_struct(ndr
, name
, "winreg_OpenHKCC");
3479 if (flags
& NDR_SET_VALUES
) {
3480 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
3482 if (flags
& NDR_IN
) {
3483 ndr_print_struct(ndr
, "in", "winreg_OpenHKCC");
3485 ndr_print_ptr(ndr
, "system_name", r
->in
.system_name
);
3487 if (r
->in
.system_name
) {
3488 ndr_print_uint16(ndr
, "system_name", *r
->in
.system_name
);
3491 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
3494 if (flags
& NDR_OUT
) {
3495 ndr_print_struct(ndr
, "out", "winreg_OpenHKCC");
3497 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
3499 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
3501 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
3507 static enum ndr_err_code
ndr_push_winreg_OpenHKDD(struct ndr_push
*ndr
, int flags
, const struct winreg_OpenHKDD
*r
)
3509 if (flags
& NDR_IN
) {
3510 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.system_name
));
3511 if (r
->in
.system_name
) {
3512 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.system_name
));
3514 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
3516 if (flags
& NDR_OUT
) {
3517 if (r
->out
.handle
== NULL
) {
3518 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3520 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
3521 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
3523 return NDR_ERR_SUCCESS
;
3526 static enum ndr_err_code
ndr_pull_winreg_OpenHKDD(struct ndr_pull
*ndr
, int flags
, struct winreg_OpenHKDD
*r
)
3528 uint32_t _ptr_system_name
;
3529 TALLOC_CTX
*_mem_save_system_name_0
;
3530 TALLOC_CTX
*_mem_save_handle_0
;
3531 if (flags
& NDR_IN
) {
3532 ZERO_STRUCT(r
->out
);
3534 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_system_name
));
3535 if (_ptr_system_name
) {
3536 NDR_PULL_ALLOC(ndr
, r
->in
.system_name
);
3538 r
->in
.system_name
= NULL
;
3540 if (r
->in
.system_name
) {
3541 _mem_save_system_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3542 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.system_name
, 0);
3543 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.system_name
));
3544 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_system_name_0
, 0);
3546 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
3547 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
3548 ZERO_STRUCTP(r
->out
.handle
);
3550 if (flags
& NDR_OUT
) {
3551 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3552 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
3554 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3555 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
3556 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
3557 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
3558 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
3560 return NDR_ERR_SUCCESS
;
3563 _PUBLIC_
void ndr_print_winreg_OpenHKDD(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_OpenHKDD
*r
)
3565 ndr_print_struct(ndr
, name
, "winreg_OpenHKDD");
3567 if (flags
& NDR_SET_VALUES
) {
3568 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
3570 if (flags
& NDR_IN
) {
3571 ndr_print_struct(ndr
, "in", "winreg_OpenHKDD");
3573 ndr_print_ptr(ndr
, "system_name", r
->in
.system_name
);
3575 if (r
->in
.system_name
) {
3576 ndr_print_uint16(ndr
, "system_name", *r
->in
.system_name
);
3579 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
3582 if (flags
& NDR_OUT
) {
3583 ndr_print_struct(ndr
, "out", "winreg_OpenHKDD");
3585 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
3587 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
3589 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
3595 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_QueryMultipleValues(struct ndr_push
*ndr
, int flags
, const struct winreg_QueryMultipleValues
*r
)
3597 uint32_t cntr_values_1
;
3598 if (flags
& NDR_IN
) {
3599 if (r
->in
.key_handle
== NULL
) {
3600 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3602 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.key_handle
));
3603 if (r
->in
.values
== NULL
) {
3604 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3606 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.num_values
));
3607 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
3608 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.num_values
));
3609 for (cntr_values_1
= 0; cntr_values_1
< r
->in
.num_values
; cntr_values_1
++) {
3610 NDR_CHECK(ndr_push_QueryMultipleValue(ndr
, NDR_SCALARS
, &r
->in
.values
[cntr_values_1
]));
3612 for (cntr_values_1
= 0; cntr_values_1
< r
->in
.num_values
; cntr_values_1
++) {
3613 NDR_CHECK(ndr_push_QueryMultipleValue(ndr
, NDR_BUFFERS
, &r
->in
.values
[cntr_values_1
]));
3615 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.num_values
));
3616 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
3618 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, *r
->in
.buffer_size
));
3619 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
3620 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, *r
->in
.buffer_size
));
3621 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, *r
->in
.buffer_size
));
3623 if (r
->in
.buffer_size
== NULL
) {
3624 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3626 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.buffer_size
));
3628 if (flags
& NDR_OUT
) {
3629 if (r
->out
.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
->out
.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
->out
.values
[cntr_values_1
]));
3641 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.buffer
));
3642 if (r
->out
.buffer
) {
3643 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, *r
->out
.buffer_size
));
3644 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
3645 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, *r
->out
.buffer_size
));
3646 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, *r
->out
.buffer_size
));
3648 if (r
->out
.buffer_size
== NULL
) {
3649 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3651 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.buffer_size
));
3652 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
3654 return NDR_ERR_SUCCESS
;
3657 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_QueryMultipleValues(struct ndr_pull
*ndr
, int flags
, struct winreg_QueryMultipleValues
*r
)
3659 uint32_t cntr_values_1
;
3660 uint32_t _ptr_buffer
;
3661 TALLOC_CTX
*_mem_save_key_handle_0
;
3662 TALLOC_CTX
*_mem_save_values_1
;
3663 TALLOC_CTX
*_mem_save_buffer_0
;
3664 TALLOC_CTX
*_mem_save_buffer_size_0
;
3665 if (flags
& NDR_IN
) {
3666 ZERO_STRUCT(r
->out
);
3668 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3669 NDR_PULL_ALLOC(ndr
, r
->in
.key_handle
);
3671 _mem_save_key_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3672 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.key_handle
, LIBNDR_FLAG_REF_ALLOC
);
3673 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.key_handle
));
3674 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_key_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
3675 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.values
));
3676 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.values
));
3677 if (ndr_get_array_length(ndr
, &r
->in
.values
) > ndr_get_array_size(ndr
, &r
->in
.values
)) {
3678 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
));
3680 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3681 NDR_PULL_ALLOC_N(ndr
, r
->in
.values
, ndr_get_array_size(ndr
, &r
->in
.values
));
3683 memcpy(r
->out
.values
, r
->in
.values
, (ndr_get_array_size(ndr
, &r
->in
.values
)) * sizeof(*r
->in
.values
));
3684 _mem_save_values_1
= NDR_PULL_GET_MEM_CTX(ndr
);
3685 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.values
, 0);
3686 for (cntr_values_1
= 0; cntr_values_1
< ndr_get_array_length(ndr
, &r
->in
.values
); cntr_values_1
++) {
3687 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr
, NDR_SCALARS
, &r
->in
.values
[cntr_values_1
]));
3689 for (cntr_values_1
= 0; cntr_values_1
< ndr_get_array_length(ndr
, &r
->in
.values
); cntr_values_1
++) {
3690 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr
, NDR_BUFFERS
, &r
->in
.values
[cntr_values_1
]));
3692 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_values_1
, 0);
3693 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.num_values
));
3694 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
3696 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
3698 r
->in
.buffer
= NULL
;
3701 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3702 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
3703 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.buffer
));
3704 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.buffer
));
3705 if (ndr_get_array_length(ndr
, &r
->in
.buffer
) > ndr_get_array_size(ndr
, &r
->in
.buffer
)) {
3706 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
));
3708 NDR_PULL_ALLOC_N(ndr
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
));
3709 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, ndr_get_array_length(ndr
, &r
->in
.buffer
)));
3710 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
3712 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3713 NDR_PULL_ALLOC(ndr
, r
->in
.buffer_size
);
3715 _mem_save_buffer_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3716 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer_size
, LIBNDR_FLAG_REF_ALLOC
);
3717 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.buffer_size
));
3718 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_size_0
, LIBNDR_FLAG_REF_ALLOC
);
3719 NDR_PULL_ALLOC_N(ndr
, r
->out
.values
, r
->in
.num_values
);
3720 memcpy(r
->out
.values
, r
->in
.values
, (r
->in
.num_values
) * sizeof(*r
->in
.values
));
3721 NDR_PULL_ALLOC(ndr
, r
->out
.buffer_size
);
3722 *r
->out
.buffer_size
= *r
->in
.buffer_size
;
3724 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.values
, r
->in
.num_values
));
3727 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->in
.values
, r
->in
.num_values
));
3730 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.buffer
, *r
->in
.buffer_size
));
3733 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->in
.buffer
, *r
->in
.buffer_size
));
3736 if (flags
& NDR_OUT
) {
3737 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.values
));
3738 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->out
.values
));
3739 if (ndr_get_array_length(ndr
, &r
->out
.values
) > ndr_get_array_size(ndr
, &r
->out
.values
)) {
3740 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
));
3742 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3743 NDR_PULL_ALLOC_N(ndr
, r
->out
.values
, ndr_get_array_size(ndr
, &r
->out
.values
));
3745 memcpy(r
->out
.values
, r
->in
.values
, (ndr_get_array_size(ndr
, &r
->out
.values
)) * sizeof(*r
->in
.values
));
3746 _mem_save_values_1
= NDR_PULL_GET_MEM_CTX(ndr
);
3747 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.values
, 0);
3748 for (cntr_values_1
= 0; cntr_values_1
< ndr_get_array_length(ndr
, &r
->out
.values
); cntr_values_1
++) {
3749 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr
, NDR_SCALARS
, &r
->out
.values
[cntr_values_1
]));
3751 for (cntr_values_1
= 0; cntr_values_1
< ndr_get_array_length(ndr
, &r
->out
.values
); cntr_values_1
++) {
3752 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr
, NDR_BUFFERS
, &r
->out
.values
[cntr_values_1
]));
3754 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_values_1
, 0);
3755 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
3757 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
3759 r
->out
.buffer
= NULL
;
3761 if (r
->out
.buffer
) {
3762 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3763 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.buffer
, 0);
3764 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.buffer
));
3765 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->out
.buffer
));
3766 if (ndr_get_array_length(ndr
, &r
->out
.buffer
) > ndr_get_array_size(ndr
, &r
->out
.buffer
)) {
3767 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
));
3769 NDR_PULL_ALLOC_N(ndr
, r
->out
.buffer
, ndr_get_array_size(ndr
, &r
->out
.buffer
));
3770 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, ndr_get_array_length(ndr
, &r
->out
.buffer
)));
3771 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
3773 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3774 NDR_PULL_ALLOC(ndr
, r
->out
.buffer_size
);
3776 _mem_save_buffer_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3777 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.buffer_size
, LIBNDR_FLAG_REF_ALLOC
);
3778 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.buffer_size
));
3779 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_size_0
, LIBNDR_FLAG_REF_ALLOC
);
3780 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
3781 if (r
->out
.values
) {
3782 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.values
, r
->in
.num_values
));
3784 if (r
->out
.values
) {
3785 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->out
.values
, r
->in
.num_values
));
3787 if (r
->out
.buffer
) {
3788 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.buffer
, *r
->out
.buffer_size
));
3790 if (r
->out
.buffer
) {
3791 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->out
.buffer
, *r
->out
.buffer_size
));
3794 return NDR_ERR_SUCCESS
;
3797 _PUBLIC_
void ndr_print_winreg_QueryMultipleValues(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_QueryMultipleValues
*r
)
3799 uint32_t cntr_values_1
;
3800 ndr_print_struct(ndr
, name
, "winreg_QueryMultipleValues");
3802 if (flags
& NDR_SET_VALUES
) {
3803 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
3805 if (flags
& NDR_IN
) {
3806 ndr_print_struct(ndr
, "in", "winreg_QueryMultipleValues");
3808 ndr_print_ptr(ndr
, "key_handle", r
->in
.key_handle
);
3810 ndr_print_policy_handle(ndr
, "key_handle", r
->in
.key_handle
);
3812 ndr_print_ptr(ndr
, "values", r
->in
.values
);
3814 ndr
->print(ndr
, "%s: ARRAY(%d)", "values", (int)r
->in
.num_values
);
3816 for (cntr_values_1
=0;cntr_values_1
<r
->in
.num_values
;cntr_values_1
++) {
3818 if (asprintf(&idx_1
, "[%d]", cntr_values_1
) != -1) {
3819 ndr_print_QueryMultipleValue(ndr
, "values", &r
->in
.values
[cntr_values_1
]);
3825 ndr_print_uint32(ndr
, "num_values", r
->in
.num_values
);
3826 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
3829 ndr_print_array_uint8(ndr
, "buffer", r
->in
.buffer
, *r
->in
.buffer_size
);
3832 ndr_print_ptr(ndr
, "buffer_size", r
->in
.buffer_size
);
3834 ndr_print_uint32(ndr
, "buffer_size", *r
->in
.buffer_size
);
3838 if (flags
& NDR_OUT
) {
3839 ndr_print_struct(ndr
, "out", "winreg_QueryMultipleValues");
3841 ndr_print_ptr(ndr
, "values", r
->out
.values
);
3843 ndr
->print(ndr
, "%s: ARRAY(%d)", "values", (int)r
->in
.num_values
);
3845 for (cntr_values_1
=0;cntr_values_1
<r
->in
.num_values
;cntr_values_1
++) {
3847 if (asprintf(&idx_1
, "[%d]", cntr_values_1
) != -1) {
3848 ndr_print_QueryMultipleValue(ndr
, "values", &r
->out
.values
[cntr_values_1
]);
3854 ndr_print_ptr(ndr
, "buffer", r
->out
.buffer
);
3856 if (r
->out
.buffer
) {
3857 ndr_print_array_uint8(ndr
, "buffer", r
->out
.buffer
, *r
->out
.buffer_size
);
3860 ndr_print_ptr(ndr
, "buffer_size", r
->out
.buffer_size
);
3862 ndr_print_uint32(ndr
, "buffer_size", *r
->out
.buffer_size
);
3864 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
3870 static enum ndr_err_code
ndr_push_winreg_InitiateSystemShutdownEx(struct ndr_push
*ndr
, int flags
, const struct winreg_InitiateSystemShutdownEx
*r
)
3872 if (flags
& NDR_IN
) {
3873 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.hostname
));
3874 if (r
->in
.hostname
) {
3875 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.hostname
));
3877 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.message
));
3878 if (r
->in
.message
) {
3879 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.message
));
3881 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.timeout
));
3882 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->in
.force_apps
));
3883 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->in
.do_reboot
));
3884 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.reason
));
3886 if (flags
& NDR_OUT
) {
3887 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
3889 return NDR_ERR_SUCCESS
;
3892 static enum ndr_err_code
ndr_pull_winreg_InitiateSystemShutdownEx(struct ndr_pull
*ndr
, int flags
, struct winreg_InitiateSystemShutdownEx
*r
)
3894 uint32_t _ptr_hostname
;
3895 uint32_t _ptr_message
;
3896 TALLOC_CTX
*_mem_save_hostname_0
;
3897 TALLOC_CTX
*_mem_save_message_0
;
3898 if (flags
& NDR_IN
) {
3899 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hostname
));
3900 if (_ptr_hostname
) {
3901 NDR_PULL_ALLOC(ndr
, r
->in
.hostname
);
3903 r
->in
.hostname
= NULL
;
3905 if (r
->in
.hostname
) {
3906 _mem_save_hostname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3907 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.hostname
, 0);
3908 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.hostname
));
3909 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hostname_0
, 0);
3911 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_message
));
3913 NDR_PULL_ALLOC(ndr
, r
->in
.message
);
3915 r
->in
.message
= NULL
;
3917 if (r
->in
.message
) {
3918 _mem_save_message_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3919 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.message
, 0);
3920 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.message
));
3921 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_message_0
, 0);
3923 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.timeout
));
3924 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->in
.force_apps
));
3925 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->in
.do_reboot
));
3926 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.reason
));
3928 if (flags
& NDR_OUT
) {
3929 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
3931 return NDR_ERR_SUCCESS
;
3934 _PUBLIC_
void ndr_print_winreg_InitiateSystemShutdownEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_InitiateSystemShutdownEx
*r
)
3936 ndr_print_struct(ndr
, name
, "winreg_InitiateSystemShutdownEx");
3938 if (flags
& NDR_SET_VALUES
) {
3939 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
3941 if (flags
& NDR_IN
) {
3942 ndr_print_struct(ndr
, "in", "winreg_InitiateSystemShutdownEx");
3944 ndr_print_ptr(ndr
, "hostname", r
->in
.hostname
);
3946 if (r
->in
.hostname
) {
3947 ndr_print_uint16(ndr
, "hostname", *r
->in
.hostname
);
3950 ndr_print_ptr(ndr
, "message", r
->in
.message
);
3952 if (r
->in
.message
) {
3953 ndr_print_lsa_StringLarge(ndr
, "message", r
->in
.message
);
3956 ndr_print_uint32(ndr
, "timeout", r
->in
.timeout
);
3957 ndr_print_uint8(ndr
, "force_apps", r
->in
.force_apps
);
3958 ndr_print_uint8(ndr
, "do_reboot", r
->in
.do_reboot
);
3959 ndr_print_uint32(ndr
, "reason", r
->in
.reason
);
3962 if (flags
& NDR_OUT
) {
3963 ndr_print_struct(ndr
, "out", "winreg_InitiateSystemShutdownEx");
3965 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
3971 static enum ndr_err_code
ndr_push_winreg_SaveKeyEx(struct ndr_push
*ndr
, int flags
, const struct winreg_SaveKeyEx
*r
)
3973 if (flags
& NDR_IN
) {
3975 if (flags
& NDR_OUT
) {
3976 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
3978 return NDR_ERR_SUCCESS
;
3981 static enum ndr_err_code
ndr_pull_winreg_SaveKeyEx(struct ndr_pull
*ndr
, int flags
, struct winreg_SaveKeyEx
*r
)
3983 if (flags
& NDR_IN
) {
3985 if (flags
& NDR_OUT
) {
3986 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
3988 return NDR_ERR_SUCCESS
;
3991 _PUBLIC_
void ndr_print_winreg_SaveKeyEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_SaveKeyEx
*r
)
3993 ndr_print_struct(ndr
, name
, "winreg_SaveKeyEx");
3995 if (flags
& NDR_SET_VALUES
) {
3996 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
3998 if (flags
& NDR_IN
) {
3999 ndr_print_struct(ndr
, "in", "winreg_SaveKeyEx");
4003 if (flags
& NDR_OUT
) {
4004 ndr_print_struct(ndr
, "out", "winreg_SaveKeyEx");
4006 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
4012 static enum ndr_err_code
ndr_push_winreg_OpenHKPT(struct ndr_push
*ndr
, int flags
, const struct winreg_OpenHKPT
*r
)
4014 if (flags
& NDR_IN
) {
4015 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.system_name
));
4016 if (r
->in
.system_name
) {
4017 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.system_name
));
4019 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
4021 if (flags
& NDR_OUT
) {
4022 if (r
->out
.handle
== NULL
) {
4023 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
4025 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
4026 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
4028 return NDR_ERR_SUCCESS
;
4031 static enum ndr_err_code
ndr_pull_winreg_OpenHKPT(struct ndr_pull
*ndr
, int flags
, struct winreg_OpenHKPT
*r
)
4033 uint32_t _ptr_system_name
;
4034 TALLOC_CTX
*_mem_save_system_name_0
;
4035 TALLOC_CTX
*_mem_save_handle_0
;
4036 if (flags
& NDR_IN
) {
4037 ZERO_STRUCT(r
->out
);
4039 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_system_name
));
4040 if (_ptr_system_name
) {
4041 NDR_PULL_ALLOC(ndr
, r
->in
.system_name
);
4043 r
->in
.system_name
= NULL
;
4045 if (r
->in
.system_name
) {
4046 _mem_save_system_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4047 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.system_name
, 0);
4048 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.system_name
));
4049 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_system_name_0
, 0);
4051 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
4052 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
4053 ZERO_STRUCTP(r
->out
.handle
);
4055 if (flags
& NDR_OUT
) {
4056 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
4057 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
4059 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4060 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
4061 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
4062 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
4063 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
4065 return NDR_ERR_SUCCESS
;
4068 _PUBLIC_
void ndr_print_winreg_OpenHKPT(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_OpenHKPT
*r
)
4070 ndr_print_struct(ndr
, name
, "winreg_OpenHKPT");
4072 if (flags
& NDR_SET_VALUES
) {
4073 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
4075 if (flags
& NDR_IN
) {
4076 ndr_print_struct(ndr
, "in", "winreg_OpenHKPT");
4078 ndr_print_ptr(ndr
, "system_name", r
->in
.system_name
);
4080 if (r
->in
.system_name
) {
4081 ndr_print_uint16(ndr
, "system_name", *r
->in
.system_name
);
4084 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
4087 if (flags
& NDR_OUT
) {
4088 ndr_print_struct(ndr
, "out", "winreg_OpenHKPT");
4090 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
4092 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
4094 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
4100 static enum ndr_err_code
ndr_push_winreg_OpenHKPN(struct ndr_push
*ndr
, int flags
, const struct winreg_OpenHKPN
*r
)
4102 if (flags
& NDR_IN
) {
4103 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.system_name
));
4104 if (r
->in
.system_name
) {
4105 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.system_name
));
4107 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
4109 if (flags
& NDR_OUT
) {
4110 if (r
->out
.handle
== NULL
) {
4111 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
4113 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
4114 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
4116 return NDR_ERR_SUCCESS
;
4119 static enum ndr_err_code
ndr_pull_winreg_OpenHKPN(struct ndr_pull
*ndr
, int flags
, struct winreg_OpenHKPN
*r
)
4121 uint32_t _ptr_system_name
;
4122 TALLOC_CTX
*_mem_save_system_name_0
;
4123 TALLOC_CTX
*_mem_save_handle_0
;
4124 if (flags
& NDR_IN
) {
4125 ZERO_STRUCT(r
->out
);
4127 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_system_name
));
4128 if (_ptr_system_name
) {
4129 NDR_PULL_ALLOC(ndr
, r
->in
.system_name
);
4131 r
->in
.system_name
= NULL
;
4133 if (r
->in
.system_name
) {
4134 _mem_save_system_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4135 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.system_name
, 0);
4136 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.system_name
));
4137 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_system_name_0
, 0);
4139 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
4140 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
4141 ZERO_STRUCTP(r
->out
.handle
);
4143 if (flags
& NDR_OUT
) {
4144 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
4145 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
4147 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4148 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
4149 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
4150 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
4151 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
4153 return NDR_ERR_SUCCESS
;
4156 _PUBLIC_
void ndr_print_winreg_OpenHKPN(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_OpenHKPN
*r
)
4158 ndr_print_struct(ndr
, name
, "winreg_OpenHKPN");
4160 if (flags
& NDR_SET_VALUES
) {
4161 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
4163 if (flags
& NDR_IN
) {
4164 ndr_print_struct(ndr
, "in", "winreg_OpenHKPN");
4166 ndr_print_ptr(ndr
, "system_name", r
->in
.system_name
);
4168 if (r
->in
.system_name
) {
4169 ndr_print_uint16(ndr
, "system_name", *r
->in
.system_name
);
4172 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
4175 if (flags
& NDR_OUT
) {
4176 ndr_print_struct(ndr
, "out", "winreg_OpenHKPN");
4178 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
4180 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
4182 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
4188 static enum ndr_err_code
ndr_push_winreg_QueryMultipleValues2(struct ndr_push
*ndr
, int flags
, const struct winreg_QueryMultipleValues2
*r
)
4190 if (flags
& NDR_IN
) {
4192 if (flags
& NDR_OUT
) {
4193 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
4195 return NDR_ERR_SUCCESS
;
4198 static enum ndr_err_code
ndr_pull_winreg_QueryMultipleValues2(struct ndr_pull
*ndr
, int flags
, struct winreg_QueryMultipleValues2
*r
)
4200 if (flags
& NDR_IN
) {
4202 if (flags
& NDR_OUT
) {
4203 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
4205 return NDR_ERR_SUCCESS
;
4208 _PUBLIC_
void ndr_print_winreg_QueryMultipleValues2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_QueryMultipleValues2
*r
)
4210 ndr_print_struct(ndr
, name
, "winreg_QueryMultipleValues2");
4212 if (flags
& NDR_SET_VALUES
) {
4213 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
4215 if (flags
& NDR_IN
) {
4216 ndr_print_struct(ndr
, "in", "winreg_QueryMultipleValues2");
4220 if (flags
& NDR_OUT
) {
4221 ndr_print_struct(ndr
, "out", "winreg_QueryMultipleValues2");
4223 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
4229 static const struct ndr_interface_call winreg_calls
[] = {
4232 sizeof(struct winreg_OpenHKCR
),
4233 (ndr_push_flags_fn_t
) ndr_push_winreg_OpenHKCR
,
4234 (ndr_pull_flags_fn_t
) ndr_pull_winreg_OpenHKCR
,
4235 (ndr_print_function_t
) ndr_print_winreg_OpenHKCR
,
4240 sizeof(struct winreg_OpenHKCU
),
4241 (ndr_push_flags_fn_t
) ndr_push_winreg_OpenHKCU
,
4242 (ndr_pull_flags_fn_t
) ndr_pull_winreg_OpenHKCU
,
4243 (ndr_print_function_t
) ndr_print_winreg_OpenHKCU
,
4248 sizeof(struct winreg_OpenHKLM
),
4249 (ndr_push_flags_fn_t
) ndr_push_winreg_OpenHKLM
,
4250 (ndr_pull_flags_fn_t
) ndr_pull_winreg_OpenHKLM
,
4251 (ndr_print_function_t
) ndr_print_winreg_OpenHKLM
,
4256 sizeof(struct winreg_OpenHKPD
),
4257 (ndr_push_flags_fn_t
) ndr_push_winreg_OpenHKPD
,
4258 (ndr_pull_flags_fn_t
) ndr_pull_winreg_OpenHKPD
,
4259 (ndr_print_function_t
) ndr_print_winreg_OpenHKPD
,
4264 sizeof(struct winreg_OpenHKU
),
4265 (ndr_push_flags_fn_t
) ndr_push_winreg_OpenHKU
,
4266 (ndr_pull_flags_fn_t
) ndr_pull_winreg_OpenHKU
,
4267 (ndr_print_function_t
) ndr_print_winreg_OpenHKU
,
4272 sizeof(struct winreg_CloseKey
),
4273 (ndr_push_flags_fn_t
) ndr_push_winreg_CloseKey
,
4274 (ndr_pull_flags_fn_t
) ndr_pull_winreg_CloseKey
,
4275 (ndr_print_function_t
) ndr_print_winreg_CloseKey
,
4280 sizeof(struct winreg_CreateKey
),
4281 (ndr_push_flags_fn_t
) ndr_push_winreg_CreateKey
,
4282 (ndr_pull_flags_fn_t
) ndr_pull_winreg_CreateKey
,
4283 (ndr_print_function_t
) ndr_print_winreg_CreateKey
,
4288 sizeof(struct winreg_DeleteKey
),
4289 (ndr_push_flags_fn_t
) ndr_push_winreg_DeleteKey
,
4290 (ndr_pull_flags_fn_t
) ndr_pull_winreg_DeleteKey
,
4291 (ndr_print_function_t
) ndr_print_winreg_DeleteKey
,
4295 "winreg_DeleteValue",
4296 sizeof(struct winreg_DeleteValue
),
4297 (ndr_push_flags_fn_t
) ndr_push_winreg_DeleteValue
,
4298 (ndr_pull_flags_fn_t
) ndr_pull_winreg_DeleteValue
,
4299 (ndr_print_function_t
) ndr_print_winreg_DeleteValue
,
4304 sizeof(struct winreg_EnumKey
),
4305 (ndr_push_flags_fn_t
) ndr_push_winreg_EnumKey
,
4306 (ndr_pull_flags_fn_t
) ndr_pull_winreg_EnumKey
,
4307 (ndr_print_function_t
) ndr_print_winreg_EnumKey
,
4312 sizeof(struct winreg_EnumValue
),
4313 (ndr_push_flags_fn_t
) ndr_push_winreg_EnumValue
,
4314 (ndr_pull_flags_fn_t
) ndr_pull_winreg_EnumValue
,
4315 (ndr_print_function_t
) ndr_print_winreg_EnumValue
,
4320 sizeof(struct winreg_FlushKey
),
4321 (ndr_push_flags_fn_t
) ndr_push_winreg_FlushKey
,
4322 (ndr_pull_flags_fn_t
) ndr_pull_winreg_FlushKey
,
4323 (ndr_print_function_t
) ndr_print_winreg_FlushKey
,
4327 "winreg_GetKeySecurity",
4328 sizeof(struct winreg_GetKeySecurity
),
4329 (ndr_push_flags_fn_t
) ndr_push_winreg_GetKeySecurity
,
4330 (ndr_pull_flags_fn_t
) ndr_pull_winreg_GetKeySecurity
,
4331 (ndr_print_function_t
) ndr_print_winreg_GetKeySecurity
,
4336 sizeof(struct winreg_LoadKey
),
4337 (ndr_push_flags_fn_t
) ndr_push_winreg_LoadKey
,
4338 (ndr_pull_flags_fn_t
) ndr_pull_winreg_LoadKey
,
4339 (ndr_print_function_t
) ndr_print_winreg_LoadKey
,
4343 "winreg_NotifyChangeKeyValue",
4344 sizeof(struct winreg_NotifyChangeKeyValue
),
4345 (ndr_push_flags_fn_t
) ndr_push_winreg_NotifyChangeKeyValue
,
4346 (ndr_pull_flags_fn_t
) ndr_pull_winreg_NotifyChangeKeyValue
,
4347 (ndr_print_function_t
) ndr_print_winreg_NotifyChangeKeyValue
,
4352 sizeof(struct winreg_OpenKey
),
4353 (ndr_push_flags_fn_t
) ndr_push_winreg_OpenKey
,
4354 (ndr_pull_flags_fn_t
) ndr_pull_winreg_OpenKey
,
4355 (ndr_print_function_t
) ndr_print_winreg_OpenKey
,
4359 "winreg_QueryInfoKey",
4360 sizeof(struct winreg_QueryInfoKey
),
4361 (ndr_push_flags_fn_t
) ndr_push_winreg_QueryInfoKey
,
4362 (ndr_pull_flags_fn_t
) ndr_pull_winreg_QueryInfoKey
,
4363 (ndr_print_function_t
) ndr_print_winreg_QueryInfoKey
,
4367 "winreg_QueryValue",
4368 sizeof(struct winreg_QueryValue
),
4369 (ndr_push_flags_fn_t
) ndr_push_winreg_QueryValue
,
4370 (ndr_pull_flags_fn_t
) ndr_pull_winreg_QueryValue
,
4371 (ndr_print_function_t
) ndr_print_winreg_QueryValue
,
4375 "winreg_ReplaceKey",
4376 sizeof(struct winreg_ReplaceKey
),
4377 (ndr_push_flags_fn_t
) ndr_push_winreg_ReplaceKey
,
4378 (ndr_pull_flags_fn_t
) ndr_pull_winreg_ReplaceKey
,
4379 (ndr_print_function_t
) ndr_print_winreg_ReplaceKey
,
4383 "winreg_RestoreKey",
4384 sizeof(struct winreg_RestoreKey
),
4385 (ndr_push_flags_fn_t
) ndr_push_winreg_RestoreKey
,
4386 (ndr_pull_flags_fn_t
) ndr_pull_winreg_RestoreKey
,
4387 (ndr_print_function_t
) ndr_print_winreg_RestoreKey
,
4392 sizeof(struct winreg_SaveKey
),
4393 (ndr_push_flags_fn_t
) ndr_push_winreg_SaveKey
,
4394 (ndr_pull_flags_fn_t
) ndr_pull_winreg_SaveKey
,
4395 (ndr_print_function_t
) ndr_print_winreg_SaveKey
,
4399 "winreg_SetKeySecurity",
4400 sizeof(struct winreg_SetKeySecurity
),
4401 (ndr_push_flags_fn_t
) ndr_push_winreg_SetKeySecurity
,
4402 (ndr_pull_flags_fn_t
) ndr_pull_winreg_SetKeySecurity
,
4403 (ndr_print_function_t
) ndr_print_winreg_SetKeySecurity
,
4408 sizeof(struct winreg_SetValue
),
4409 (ndr_push_flags_fn_t
) ndr_push_winreg_SetValue
,
4410 (ndr_pull_flags_fn_t
) ndr_pull_winreg_SetValue
,
4411 (ndr_print_function_t
) ndr_print_winreg_SetValue
,
4416 sizeof(struct winreg_UnLoadKey
),
4417 (ndr_push_flags_fn_t
) ndr_push_winreg_UnLoadKey
,
4418 (ndr_pull_flags_fn_t
) ndr_pull_winreg_UnLoadKey
,
4419 (ndr_print_function_t
) ndr_print_winreg_UnLoadKey
,
4423 "winreg_InitiateSystemShutdown",
4424 sizeof(struct winreg_InitiateSystemShutdown
),
4425 (ndr_push_flags_fn_t
) ndr_push_winreg_InitiateSystemShutdown
,
4426 (ndr_pull_flags_fn_t
) ndr_pull_winreg_InitiateSystemShutdown
,
4427 (ndr_print_function_t
) ndr_print_winreg_InitiateSystemShutdown
,
4431 "winreg_AbortSystemShutdown",
4432 sizeof(struct winreg_AbortSystemShutdown
),
4433 (ndr_push_flags_fn_t
) ndr_push_winreg_AbortSystemShutdown
,
4434 (ndr_pull_flags_fn_t
) ndr_pull_winreg_AbortSystemShutdown
,
4435 (ndr_print_function_t
) ndr_print_winreg_AbortSystemShutdown
,
4439 "winreg_GetVersion",
4440 sizeof(struct winreg_GetVersion
),
4441 (ndr_push_flags_fn_t
) ndr_push_winreg_GetVersion
,
4442 (ndr_pull_flags_fn_t
) ndr_pull_winreg_GetVersion
,
4443 (ndr_print_function_t
) ndr_print_winreg_GetVersion
,
4448 sizeof(struct winreg_OpenHKCC
),
4449 (ndr_push_flags_fn_t
) ndr_push_winreg_OpenHKCC
,
4450 (ndr_pull_flags_fn_t
) ndr_pull_winreg_OpenHKCC
,
4451 (ndr_print_function_t
) ndr_print_winreg_OpenHKCC
,
4456 sizeof(struct winreg_OpenHKDD
),
4457 (ndr_push_flags_fn_t
) ndr_push_winreg_OpenHKDD
,
4458 (ndr_pull_flags_fn_t
) ndr_pull_winreg_OpenHKDD
,
4459 (ndr_print_function_t
) ndr_print_winreg_OpenHKDD
,
4463 "winreg_QueryMultipleValues",
4464 sizeof(struct winreg_QueryMultipleValues
),
4465 (ndr_push_flags_fn_t
) ndr_push_winreg_QueryMultipleValues
,
4466 (ndr_pull_flags_fn_t
) ndr_pull_winreg_QueryMultipleValues
,
4467 (ndr_print_function_t
) ndr_print_winreg_QueryMultipleValues
,
4471 "winreg_InitiateSystemShutdownEx",
4472 sizeof(struct winreg_InitiateSystemShutdownEx
),
4473 (ndr_push_flags_fn_t
) ndr_push_winreg_InitiateSystemShutdownEx
,
4474 (ndr_pull_flags_fn_t
) ndr_pull_winreg_InitiateSystemShutdownEx
,
4475 (ndr_print_function_t
) ndr_print_winreg_InitiateSystemShutdownEx
,
4480 sizeof(struct winreg_SaveKeyEx
),
4481 (ndr_push_flags_fn_t
) ndr_push_winreg_SaveKeyEx
,
4482 (ndr_pull_flags_fn_t
) ndr_pull_winreg_SaveKeyEx
,
4483 (ndr_print_function_t
) ndr_print_winreg_SaveKeyEx
,
4488 sizeof(struct winreg_OpenHKPT
),
4489 (ndr_push_flags_fn_t
) ndr_push_winreg_OpenHKPT
,
4490 (ndr_pull_flags_fn_t
) ndr_pull_winreg_OpenHKPT
,
4491 (ndr_print_function_t
) ndr_print_winreg_OpenHKPT
,
4496 sizeof(struct winreg_OpenHKPN
),
4497 (ndr_push_flags_fn_t
) ndr_push_winreg_OpenHKPN
,
4498 (ndr_pull_flags_fn_t
) ndr_pull_winreg_OpenHKPN
,
4499 (ndr_print_function_t
) ndr_print_winreg_OpenHKPN
,
4503 "winreg_QueryMultipleValues2",
4504 sizeof(struct winreg_QueryMultipleValues2
),
4505 (ndr_push_flags_fn_t
) ndr_push_winreg_QueryMultipleValues2
,
4506 (ndr_pull_flags_fn_t
) ndr_pull_winreg_QueryMultipleValues2
,
4507 (ndr_print_function_t
) ndr_print_winreg_QueryMultipleValues2
,
4510 { NULL
, 0, NULL
, NULL
, NULL
, false }
4513 static const char * const winreg_endpoint_strings
[] = {
4514 "ncacn_np:[\\pipe\\winreg]",
4519 static const struct ndr_interface_string_array winreg_endpoints
= {
4521 .names
= winreg_endpoint_strings
4524 static const char * const winreg_authservice_strings
[] = {
4528 static const struct ndr_interface_string_array winreg_authservices
= {
4530 .names
= winreg_authservice_strings
4534 const struct ndr_interface_table ndr_table_winreg
= {
4537 {0x338cd001,0x2244,0x31f1,{0xaa,0xaa},{0x90,0x00,0x38,0x00,0x10,0x03}},
4540 .helpstring
= NDR_WINREG_HELPSTRING
,
4542 .calls
= winreg_calls
,
4543 .endpoints
= &winreg_endpoints
,
4544 .authservices
= &winreg_authservices