1 /* parser auto-generated by pidl */
4 #include "librpc/gen_ndr/ndr_winreg.h"
6 #include "librpc/gen_ndr/ndr_lsa.h"
7 #include "librpc/gen_ndr/ndr_initshutdown.h"
8 #include "librpc/gen_ndr/ndr_security.h"
9 NTSTATUS
ndr_push_winreg_AccessMask(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
11 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
15 NTSTATUS
ndr_pull_winreg_AccessMask(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
18 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
23 _PUBLIC_
void ndr_print_winreg_AccessMask(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
25 ndr_print_uint32(ndr
, name
, r
);
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 NTSTATUS
ndr_push_winreg_Type(struct ndr_push
*ndr
, int ndr_flags
, enum winreg_Type r
)
40 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
44 NTSTATUS
ndr_pull_winreg_Type(struct ndr_pull
*ndr
, int ndr_flags
, enum winreg_Type
*r
)
47 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
52 _PUBLIC_
void ndr_print_winreg_Type(struct ndr_print
*ndr
, const char *name
, enum winreg_Type r
)
54 const char *val
= NULL
;
57 case REG_NONE
: val
= "REG_NONE"; break;
58 case REG_SZ
: val
= "REG_SZ"; break;
59 case REG_EXPAND_SZ
: val
= "REG_EXPAND_SZ"; break;
60 case REG_BINARY
: val
= "REG_BINARY"; break;
61 case REG_DWORD
: val
= "REG_DWORD"; break;
62 case REG_DWORD_BIG_ENDIAN
: val
= "REG_DWORD_BIG_ENDIAN"; break;
63 case REG_LINK
: val
= "REG_LINK"; break;
64 case REG_MULTI_SZ
: val
= "REG_MULTI_SZ"; break;
65 case REG_RESOURCE_LIST
: val
= "REG_RESOURCE_LIST"; break;
66 case REG_FULL_RESOURCE_DESCRIPTOR
: val
= "REG_FULL_RESOURCE_DESCRIPTOR"; break;
67 case REG_RESOURCE_REQUIREMENTS_LIST
: val
= "REG_RESOURCE_REQUIREMENTS_LIST"; break;
68 case REG_QWORD
: val
= "REG_QWORD"; break;
70 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
73 _PUBLIC_ NTSTATUS
ndr_push_winreg_String(struct ndr_push
*ndr
, int ndr_flags
, const struct winreg_String
*r
)
75 if (ndr_flags
& NDR_SCALARS
) {
76 NDR_CHECK(ndr_push_align(ndr
, 4));
77 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, strlen_m_term(r
->name
) * 2));
78 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, strlen_m_term(r
->name
) * 2));
79 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->name
));
81 if (ndr_flags
& NDR_BUFFERS
) {
83 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
84 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
85 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
86 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->name
, ndr_charset_length(r
->name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
92 _PUBLIC_ NTSTATUS
ndr_pull_winreg_String(struct ndr_pull
*ndr
, int ndr_flags
, struct winreg_String
*r
)
95 TALLOC_CTX
*_mem_save_name_0
;
96 if (ndr_flags
& NDR_SCALARS
) {
97 NDR_CHECK(ndr_pull_align(ndr
, 4));
98 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->name_len
));
99 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->name_size
));
100 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
102 NDR_PULL_ALLOC(ndr
, r
->name
);
107 if (ndr_flags
& NDR_BUFFERS
) {
109 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
110 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
111 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->name
));
112 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->name
));
113 if (ndr_get_array_length(ndr
, &r
->name
) > ndr_get_array_size(ndr
, &r
->name
)) {
114 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
));
116 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t)));
117 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->name
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t), CH_UTF16
));
118 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
124 _PUBLIC_
void ndr_print_winreg_String(struct ndr_print
*ndr
, const char *name
, const struct winreg_String
*r
)
126 ndr_print_struct(ndr
, name
, "winreg_String");
128 ndr_print_uint16(ndr
, "name_len", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?strlen_m_term(r
->name
) * 2:r
->name_len
);
129 ndr_print_uint16(ndr
, "name_size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?strlen_m_term(r
->name
) * 2:r
->name_size
);
130 ndr_print_ptr(ndr
, "name", r
->name
);
133 ndr_print_string(ndr
, "name", r
->name
);
139 NTSTATUS
ndr_push_KeySecurityData(struct ndr_push
*ndr
, int ndr_flags
, const struct KeySecurityData
*r
)
141 if (ndr_flags
& NDR_SCALARS
) {
142 NDR_CHECK(ndr_push_align(ndr
, 4));
143 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data
));
144 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
145 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->len
));
147 if (ndr_flags
& NDR_BUFFERS
) {
149 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
150 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
151 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->len
));
152 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->data
, r
->len
));
158 NTSTATUS
ndr_pull_KeySecurityData(struct ndr_pull
*ndr
, int ndr_flags
, struct KeySecurityData
*r
)
161 TALLOC_CTX
*_mem_save_data_0
;
162 if (ndr_flags
& NDR_SCALARS
) {
163 NDR_CHECK(ndr_pull_align(ndr
, 4));
164 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data
));
166 NDR_PULL_ALLOC(ndr
, r
->data
);
170 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
171 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->len
));
173 if (ndr_flags
& NDR_BUFFERS
) {
175 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
176 NDR_PULL_SET_MEM_CTX(ndr
, r
->data
, 0);
177 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data
));
178 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data
));
179 if (ndr_get_array_length(ndr
, &r
->data
) > ndr_get_array_size(ndr
, &r
->data
)) {
180 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
));
182 NDR_PULL_ALLOC_N(ndr
, r
->data
, ndr_get_array_size(ndr
, &r
->data
));
183 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->data
, ndr_get_array_length(ndr
, &r
->data
)));
184 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, 0);
187 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->data
, r
->size
));
190 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->data
, r
->len
));
196 _PUBLIC_
void ndr_print_KeySecurityData(struct ndr_print
*ndr
, const char *name
, const struct KeySecurityData
*r
)
198 ndr_print_struct(ndr
, name
, "KeySecurityData");
200 ndr_print_ptr(ndr
, "data", r
->data
);
203 ndr_print_array_uint8(ndr
, "data", r
->data
, r
->len
);
206 ndr_print_uint32(ndr
, "size", r
->size
);
207 ndr_print_uint32(ndr
, "len", r
->len
);
211 NTSTATUS
ndr_push_winreg_SecBuf(struct ndr_push
*ndr
, int ndr_flags
, const struct winreg_SecBuf
*r
)
213 if (ndr_flags
& NDR_SCALARS
) {
214 NDR_CHECK(ndr_push_align(ndr
, 4));
215 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
216 NDR_CHECK(ndr_push_KeySecurityData(ndr
, NDR_SCALARS
, &r
->sd
));
217 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->inherit
));
219 if (ndr_flags
& NDR_BUFFERS
) {
220 NDR_CHECK(ndr_push_KeySecurityData(ndr
, NDR_BUFFERS
, &r
->sd
));
225 NTSTATUS
ndr_pull_winreg_SecBuf(struct ndr_pull
*ndr
, int ndr_flags
, struct winreg_SecBuf
*r
)
227 if (ndr_flags
& NDR_SCALARS
) {
228 NDR_CHECK(ndr_pull_align(ndr
, 4));
229 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->length
));
230 NDR_CHECK(ndr_pull_KeySecurityData(ndr
, NDR_SCALARS
, &r
->sd
));
231 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->inherit
));
233 if (ndr_flags
& NDR_BUFFERS
) {
234 NDR_CHECK(ndr_pull_KeySecurityData(ndr
, NDR_BUFFERS
, &r
->sd
));
239 _PUBLIC_
void ndr_print_winreg_SecBuf(struct ndr_print
*ndr
, const char *name
, const struct winreg_SecBuf
*r
)
241 ndr_print_struct(ndr
, name
, "winreg_SecBuf");
243 ndr_print_uint32(ndr
, "length", r
->length
);
244 ndr_print_KeySecurityData(ndr
, "sd", &r
->sd
);
245 ndr_print_uint8(ndr
, "inherit", r
->inherit
);
249 NTSTATUS
ndr_push_winreg_CreateAction(struct ndr_push
*ndr
, int ndr_flags
, enum winreg_CreateAction r
)
251 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
255 NTSTATUS
ndr_pull_winreg_CreateAction(struct ndr_pull
*ndr
, int ndr_flags
, enum winreg_CreateAction
*r
)
258 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
263 _PUBLIC_
void ndr_print_winreg_CreateAction(struct ndr_print
*ndr
, const char *name
, enum winreg_CreateAction r
)
265 const char *val
= NULL
;
268 case REG_ACTION_NONE
: val
= "REG_ACTION_NONE"; break;
269 case REG_CREATED_NEW_KEY
: val
= "REG_CREATED_NEW_KEY"; break;
270 case REG_OPENED_EXISTING_KEY
: val
= "REG_OPENED_EXISTING_KEY"; break;
272 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
275 NTSTATUS
ndr_push_winreg_StringBuf(struct ndr_push
*ndr
, int ndr_flags
, const struct winreg_StringBuf
*r
)
277 if (ndr_flags
& NDR_SCALARS
) {
278 NDR_CHECK(ndr_push_align(ndr
, 4));
279 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, strlen_m_term_null(r
->name
) * 2));
280 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->size
));
281 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->name
));
283 if (ndr_flags
& NDR_BUFFERS
) {
285 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
/ 2));
286 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
287 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, strlen_m_term_null(r
->name
) * 2 / 2));
288 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->name
, strlen_m_term_null(r
->name
) * 2 / 2, sizeof(uint16_t), CH_UTF16
));
294 NTSTATUS
ndr_pull_winreg_StringBuf(struct ndr_pull
*ndr
, int ndr_flags
, struct winreg_StringBuf
*r
)
297 TALLOC_CTX
*_mem_save_name_0
;
298 if (ndr_flags
& NDR_SCALARS
) {
299 NDR_CHECK(ndr_pull_align(ndr
, 4));
300 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->length
));
301 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->size
));
302 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
304 NDR_PULL_ALLOC(ndr
, r
->name
);
309 if (ndr_flags
& NDR_BUFFERS
) {
311 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
312 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
313 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->name
));
314 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->name
));
315 if (ndr_get_array_length(ndr
, &r
->name
) > ndr_get_array_size(ndr
, &r
->name
)) {
316 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
));
318 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->name
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t), CH_UTF16
));
319 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
322 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->name
, r
->size
/ 2));
325 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->name
, r
->length
/ 2));
331 _PUBLIC_
void ndr_print_winreg_StringBuf(struct ndr_print
*ndr
, const char *name
, const struct winreg_StringBuf
*r
)
333 ndr_print_struct(ndr
, name
, "winreg_StringBuf");
335 ndr_print_uint16(ndr
, "length", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?strlen_m_term_null(r
->name
) * 2:r
->length
);
336 ndr_print_uint16(ndr
, "size", r
->size
);
337 ndr_print_ptr(ndr
, "name", r
->name
);
340 ndr_print_string(ndr
, "name", r
->name
);
346 NTSTATUS
ndr_push_winreg_ValNameBuf(struct ndr_push
*ndr
, int ndr_flags
, const struct winreg_ValNameBuf
*r
)
348 if (ndr_flags
& NDR_SCALARS
) {
349 NDR_CHECK(ndr_push_align(ndr
, 4));
350 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, strlen_m_term(r
->name
) * 2));
351 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->size
));
352 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->name
));
354 if (ndr_flags
& NDR_BUFFERS
) {
356 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
/ 2));
357 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
358 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, strlen_m_term(r
->name
) * 2 / 2));
359 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->name
, strlen_m_term(r
->name
) * 2 / 2, sizeof(uint16_t), CH_UTF16
));
365 NTSTATUS
ndr_pull_winreg_ValNameBuf(struct ndr_pull
*ndr
, int ndr_flags
, struct winreg_ValNameBuf
*r
)
368 TALLOC_CTX
*_mem_save_name_0
;
369 if (ndr_flags
& NDR_SCALARS
) {
370 NDR_CHECK(ndr_pull_align(ndr
, 4));
371 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->length
));
372 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->size
));
373 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
375 NDR_PULL_ALLOC(ndr
, r
->name
);
380 if (ndr_flags
& NDR_BUFFERS
) {
382 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
383 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
384 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->name
));
385 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->name
));
386 if (ndr_get_array_length(ndr
, &r
->name
) > ndr_get_array_size(ndr
, &r
->name
)) {
387 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->name
), ndr_get_array_length(ndr
, &r
->name
));
389 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->name
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t), CH_UTF16
));
390 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
393 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->name
, r
->size
/ 2));
396 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->name
, r
->length
/ 2));
402 _PUBLIC_
void ndr_print_winreg_ValNameBuf(struct ndr_print
*ndr
, const char *name
, const struct winreg_ValNameBuf
*r
)
404 ndr_print_struct(ndr
, name
, "winreg_ValNameBuf");
406 ndr_print_uint16(ndr
, "length", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?strlen_m_term(r
->name
) * 2:r
->length
);
407 ndr_print_uint16(ndr
, "size", r
->size
);
408 ndr_print_ptr(ndr
, "name", r
->name
);
411 ndr_print_string(ndr
, "name", r
->name
);
417 NTSTATUS
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
, 4));
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
));
425 if (ndr_flags
& NDR_BUFFERS
) {
426 NDR_CHECK(ndr_push_KeySecurityData(ndr
, NDR_BUFFERS
, &r
->sec_data
));
431 NTSTATUS
ndr_pull_KeySecurityAttribute(struct ndr_pull
*ndr
, int ndr_flags
, struct KeySecurityAttribute
*r
)
433 if (ndr_flags
& NDR_SCALARS
) {
434 NDR_CHECK(ndr_pull_align(ndr
, 4));
435 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->data_size
));
436 NDR_CHECK(ndr_pull_KeySecurityData(ndr
, NDR_SCALARS
, &r
->sec_data
));
437 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->inherit
));
439 if (ndr_flags
& NDR_BUFFERS
) {
440 NDR_CHECK(ndr_pull_KeySecurityData(ndr
, NDR_BUFFERS
, &r
->sec_data
));
445 _PUBLIC_
void ndr_print_KeySecurityAttribute(struct ndr_print
*ndr
, const char *name
, const struct KeySecurityAttribute
*r
)
447 ndr_print_struct(ndr
, name
, "KeySecurityAttribute");
449 ndr_print_uint32(ndr
, "data_size", r
->data_size
);
450 ndr_print_KeySecurityData(ndr
, "sec_data", &r
->sec_data
);
451 ndr_print_uint8(ndr
, "inherit", r
->inherit
);
455 NTSTATUS
ndr_push_QueryMultipleValue(struct ndr_push
*ndr
, int ndr_flags
, const struct QueryMultipleValue
*r
)
457 if (ndr_flags
& NDR_SCALARS
) {
458 NDR_CHECK(ndr_push_align(ndr
, 4));
459 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->name
));
460 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->type
));
461 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->offset
));
462 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
464 if (ndr_flags
& NDR_BUFFERS
) {
466 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->name
));
472 NTSTATUS
ndr_pull_QueryMultipleValue(struct ndr_pull
*ndr
, int ndr_flags
, struct QueryMultipleValue
*r
)
475 TALLOC_CTX
*_mem_save_name_0
;
476 if (ndr_flags
& NDR_SCALARS
) {
477 NDR_CHECK(ndr_pull_align(ndr
, 4));
478 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
480 NDR_PULL_ALLOC(ndr
, r
->name
);
484 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->type
));
485 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->offset
));
486 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->length
));
488 if (ndr_flags
& NDR_BUFFERS
) {
490 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
491 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
492 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->name
));
493 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
499 _PUBLIC_
void ndr_print_QueryMultipleValue(struct ndr_print
*ndr
, const char *name
, const struct QueryMultipleValue
*r
)
501 ndr_print_struct(ndr
, name
, "QueryMultipleValue");
503 ndr_print_ptr(ndr
, "name", r
->name
);
506 ndr_print_winreg_String(ndr
, "name", r
->name
);
509 ndr_print_winreg_Type(ndr
, "type", r
->type
);
510 ndr_print_uint32(ndr
, "offset", r
->offset
);
511 ndr_print_uint32(ndr
, "length", r
->length
);
515 NTSTATUS
ndr_push_winreg_OpenHKCR(struct ndr_push
*ndr
, int flags
, const struct winreg_OpenHKCR
*r
)
517 if (flags
& NDR_IN
) {
518 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.system_name
));
519 if (r
->in
.system_name
) {
520 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.system_name
));
522 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
524 if (flags
& NDR_OUT
) {
525 if (r
->out
.handle
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
526 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.handle
));
527 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
532 NTSTATUS
ndr_pull_winreg_OpenHKCR(struct ndr_pull
*ndr
, int flags
, struct winreg_OpenHKCR
*r
)
534 uint32_t _ptr_system_name
;
535 TALLOC_CTX
*_mem_save_system_name_0
;
536 TALLOC_CTX
*_mem_save_handle_0
;
537 if (flags
& NDR_IN
) {
540 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_system_name
));
541 if (_ptr_system_name
) {
542 NDR_PULL_ALLOC(ndr
, r
->in
.system_name
);
544 r
->in
.system_name
= NULL
;
546 if (r
->in
.system_name
) {
547 _mem_save_system_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
548 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.system_name
, 0);
549 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.system_name
));
550 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_system_name_0
, 0);
552 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
553 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
554 ZERO_STRUCTP(r
->out
.handle
);
556 if (flags
& NDR_OUT
) {
557 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
558 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
560 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
561 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
562 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.handle
));
563 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
564 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
569 _PUBLIC_
void ndr_print_winreg_OpenHKCR(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_OpenHKCR
*r
)
571 ndr_print_struct(ndr
, name
, "winreg_OpenHKCR");
573 if (flags
& NDR_SET_VALUES
) {
574 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
576 if (flags
& NDR_IN
) {
577 ndr_print_struct(ndr
, "in", "winreg_OpenHKCR");
579 ndr_print_ptr(ndr
, "system_name", r
->in
.system_name
);
581 if (r
->in
.system_name
) {
582 ndr_print_uint16(ndr
, "system_name", *r
->in
.system_name
);
585 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
588 if (flags
& NDR_OUT
) {
589 ndr_print_struct(ndr
, "out", "winreg_OpenHKCR");
591 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
593 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
595 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
601 NTSTATUS
ndr_push_winreg_OpenHKCU(struct ndr_push
*ndr
, int flags
, const struct winreg_OpenHKCU
*r
)
603 if (flags
& NDR_IN
) {
604 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.system_name
));
605 if (r
->in
.system_name
) {
606 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.system_name
));
608 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
610 if (flags
& NDR_OUT
) {
611 if (r
->out
.handle
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
612 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.handle
));
613 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
618 NTSTATUS
ndr_pull_winreg_OpenHKCU(struct ndr_pull
*ndr
, int flags
, struct winreg_OpenHKCU
*r
)
620 uint32_t _ptr_system_name
;
621 TALLOC_CTX
*_mem_save_system_name_0
;
622 TALLOC_CTX
*_mem_save_handle_0
;
623 if (flags
& NDR_IN
) {
626 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_system_name
));
627 if (_ptr_system_name
) {
628 NDR_PULL_ALLOC(ndr
, r
->in
.system_name
);
630 r
->in
.system_name
= NULL
;
632 if (r
->in
.system_name
) {
633 _mem_save_system_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
634 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.system_name
, 0);
635 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.system_name
));
636 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_system_name_0
, 0);
638 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
639 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
640 ZERO_STRUCTP(r
->out
.handle
);
642 if (flags
& NDR_OUT
) {
643 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
644 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
646 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
647 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
648 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.handle
));
649 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
650 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
655 _PUBLIC_
void ndr_print_winreg_OpenHKCU(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_OpenHKCU
*r
)
657 ndr_print_struct(ndr
, name
, "winreg_OpenHKCU");
659 if (flags
& NDR_SET_VALUES
) {
660 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
662 if (flags
& NDR_IN
) {
663 ndr_print_struct(ndr
, "in", "winreg_OpenHKCU");
665 ndr_print_ptr(ndr
, "system_name", r
->in
.system_name
);
667 if (r
->in
.system_name
) {
668 ndr_print_uint16(ndr
, "system_name", *r
->in
.system_name
);
671 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
674 if (flags
& NDR_OUT
) {
675 ndr_print_struct(ndr
, "out", "winreg_OpenHKCU");
677 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
679 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
681 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
687 NTSTATUS
ndr_push_winreg_OpenHKLM(struct ndr_push
*ndr
, int flags
, const struct winreg_OpenHKLM
*r
)
689 if (flags
& NDR_IN
) {
690 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.system_name
));
691 if (r
->in
.system_name
) {
692 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.system_name
));
694 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
696 if (flags
& NDR_OUT
) {
697 if (r
->out
.handle
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
698 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.handle
));
699 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
704 NTSTATUS
ndr_pull_winreg_OpenHKLM(struct ndr_pull
*ndr
, int flags
, struct winreg_OpenHKLM
*r
)
706 uint32_t _ptr_system_name
;
707 TALLOC_CTX
*_mem_save_system_name_0
;
708 TALLOC_CTX
*_mem_save_handle_0
;
709 if (flags
& NDR_IN
) {
712 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_system_name
));
713 if (_ptr_system_name
) {
714 NDR_PULL_ALLOC(ndr
, r
->in
.system_name
);
716 r
->in
.system_name
= NULL
;
718 if (r
->in
.system_name
) {
719 _mem_save_system_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
720 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.system_name
, 0);
721 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.system_name
));
722 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_system_name_0
, 0);
724 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
725 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
726 ZERO_STRUCTP(r
->out
.handle
);
728 if (flags
& NDR_OUT
) {
729 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
730 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
732 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
733 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
734 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.handle
));
735 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
736 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
741 _PUBLIC_
void ndr_print_winreg_OpenHKLM(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_OpenHKLM
*r
)
743 ndr_print_struct(ndr
, name
, "winreg_OpenHKLM");
745 if (flags
& NDR_SET_VALUES
) {
746 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
748 if (flags
& NDR_IN
) {
749 ndr_print_struct(ndr
, "in", "winreg_OpenHKLM");
751 ndr_print_ptr(ndr
, "system_name", r
->in
.system_name
);
753 if (r
->in
.system_name
) {
754 ndr_print_uint16(ndr
, "system_name", *r
->in
.system_name
);
757 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
760 if (flags
& NDR_OUT
) {
761 ndr_print_struct(ndr
, "out", "winreg_OpenHKLM");
763 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
765 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
767 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
773 NTSTATUS
ndr_push_winreg_OpenHKPD(struct ndr_push
*ndr
, int flags
, const struct winreg_OpenHKPD
*r
)
775 if (flags
& NDR_IN
) {
776 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.system_name
));
777 if (r
->in
.system_name
) {
778 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.system_name
));
780 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
782 if (flags
& NDR_OUT
) {
783 if (r
->out
.handle
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
784 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.handle
));
785 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
790 NTSTATUS
ndr_pull_winreg_OpenHKPD(struct ndr_pull
*ndr
, int flags
, struct winreg_OpenHKPD
*r
)
792 uint32_t _ptr_system_name
;
793 TALLOC_CTX
*_mem_save_system_name_0
;
794 TALLOC_CTX
*_mem_save_handle_0
;
795 if (flags
& NDR_IN
) {
798 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_system_name
));
799 if (_ptr_system_name
) {
800 NDR_PULL_ALLOC(ndr
, r
->in
.system_name
);
802 r
->in
.system_name
= NULL
;
804 if (r
->in
.system_name
) {
805 _mem_save_system_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
806 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.system_name
, 0);
807 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.system_name
));
808 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_system_name_0
, 0);
810 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
811 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
812 ZERO_STRUCTP(r
->out
.handle
);
814 if (flags
& NDR_OUT
) {
815 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
816 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
818 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
819 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
820 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.handle
));
821 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
822 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
827 _PUBLIC_
void ndr_print_winreg_OpenHKPD(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_OpenHKPD
*r
)
829 ndr_print_struct(ndr
, name
, "winreg_OpenHKPD");
831 if (flags
& NDR_SET_VALUES
) {
832 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
834 if (flags
& NDR_IN
) {
835 ndr_print_struct(ndr
, "in", "winreg_OpenHKPD");
837 ndr_print_ptr(ndr
, "system_name", r
->in
.system_name
);
839 if (r
->in
.system_name
) {
840 ndr_print_uint16(ndr
, "system_name", *r
->in
.system_name
);
843 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
846 if (flags
& NDR_OUT
) {
847 ndr_print_struct(ndr
, "out", "winreg_OpenHKPD");
849 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
851 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
853 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
859 NTSTATUS
ndr_push_winreg_OpenHKU(struct ndr_push
*ndr
, int flags
, const struct winreg_OpenHKU
*r
)
861 if (flags
& NDR_IN
) {
862 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.system_name
));
863 if (r
->in
.system_name
) {
864 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.system_name
));
866 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
868 if (flags
& NDR_OUT
) {
869 if (r
->out
.handle
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
870 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.handle
));
871 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
876 NTSTATUS
ndr_pull_winreg_OpenHKU(struct ndr_pull
*ndr
, int flags
, struct winreg_OpenHKU
*r
)
878 uint32_t _ptr_system_name
;
879 TALLOC_CTX
*_mem_save_system_name_0
;
880 TALLOC_CTX
*_mem_save_handle_0
;
881 if (flags
& NDR_IN
) {
884 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_system_name
));
885 if (_ptr_system_name
) {
886 NDR_PULL_ALLOC(ndr
, r
->in
.system_name
);
888 r
->in
.system_name
= NULL
;
890 if (r
->in
.system_name
) {
891 _mem_save_system_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
892 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.system_name
, 0);
893 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.system_name
));
894 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_system_name_0
, 0);
896 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
897 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
898 ZERO_STRUCTP(r
->out
.handle
);
900 if (flags
& NDR_OUT
) {
901 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
902 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
904 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
905 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
906 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.handle
));
907 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
908 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
913 _PUBLIC_
void ndr_print_winreg_OpenHKU(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_OpenHKU
*r
)
915 ndr_print_struct(ndr
, name
, "winreg_OpenHKU");
917 if (flags
& NDR_SET_VALUES
) {
918 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
920 if (flags
& NDR_IN
) {
921 ndr_print_struct(ndr
, "in", "winreg_OpenHKU");
923 ndr_print_ptr(ndr
, "system_name", r
->in
.system_name
);
925 if (r
->in
.system_name
) {
926 ndr_print_uint16(ndr
, "system_name", *r
->in
.system_name
);
929 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
932 if (flags
& NDR_OUT
) {
933 ndr_print_struct(ndr
, "out", "winreg_OpenHKU");
935 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
937 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
939 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
945 NTSTATUS
ndr_push_winreg_CloseKey(struct ndr_push
*ndr
, int flags
, const struct winreg_CloseKey
*r
)
947 if (flags
& NDR_IN
) {
948 if (r
->in
.handle
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
949 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.handle
));
951 if (flags
& NDR_OUT
) {
952 if (r
->out
.handle
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
953 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.handle
));
954 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
959 NTSTATUS
ndr_pull_winreg_CloseKey(struct ndr_pull
*ndr
, int flags
, struct winreg_CloseKey
*r
)
961 TALLOC_CTX
*_mem_save_handle_0
;
962 if (flags
& NDR_IN
) {
965 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
966 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
968 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
969 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
970 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.handle
));
971 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
972 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
973 *r
->out
.handle
= *r
->in
.handle
;
975 if (flags
& NDR_OUT
) {
976 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
977 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
979 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
980 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
981 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.handle
));
982 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
983 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
988 _PUBLIC_
void ndr_print_winreg_CloseKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_CloseKey
*r
)
990 ndr_print_struct(ndr
, name
, "winreg_CloseKey");
992 if (flags
& NDR_SET_VALUES
) {
993 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
995 if (flags
& NDR_IN
) {
996 ndr_print_struct(ndr
, "in", "winreg_CloseKey");
998 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
1000 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
1004 if (flags
& NDR_OUT
) {
1005 ndr_print_struct(ndr
, "out", "winreg_CloseKey");
1007 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
1009 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
1011 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
1017 NTSTATUS
ndr_push_winreg_CreateKey(struct ndr_push
*ndr
, int flags
, const struct winreg_CreateKey
*r
)
1019 if (flags
& NDR_IN
) {
1020 if (r
->in
.handle
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
1021 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.handle
));
1022 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.name
));
1023 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.keyclass
));
1024 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.options
));
1025 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
1026 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.secdesc
));
1027 if (r
->in
.secdesc
) {
1028 NDR_CHECK(ndr_push_winreg_SecBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc
));
1030 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.action_taken
));
1031 if (r
->in
.action_taken
) {
1032 NDR_CHECK(ndr_push_winreg_CreateAction(ndr
, NDR_SCALARS
, *r
->in
.action_taken
));
1035 if (flags
& NDR_OUT
) {
1036 if (r
->out
.new_handle
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
1037 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.new_handle
));
1038 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.action_taken
));
1039 if (r
->out
.action_taken
) {
1040 NDR_CHECK(ndr_push_winreg_CreateAction(ndr
, NDR_SCALARS
, *r
->out
.action_taken
));
1042 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
1044 return NT_STATUS_OK
;
1047 NTSTATUS
ndr_pull_winreg_CreateKey(struct ndr_pull
*ndr
, int flags
, struct winreg_CreateKey
*r
)
1049 uint32_t _ptr_secdesc
;
1050 uint32_t _ptr_action_taken
;
1051 TALLOC_CTX
*_mem_save_handle_0
;
1052 TALLOC_CTX
*_mem_save_secdesc_0
;
1053 TALLOC_CTX
*_mem_save_new_handle_0
;
1054 TALLOC_CTX
*_mem_save_action_taken_0
;
1055 if (flags
& NDR_IN
) {
1056 ZERO_STRUCT(r
->out
);
1058 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1059 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
1061 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1062 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
1063 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.handle
));
1064 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
1065 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.name
));
1066 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.keyclass
));
1067 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.options
));
1068 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
1069 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
1071 NDR_PULL_ALLOC(ndr
, r
->in
.secdesc
);
1073 r
->in
.secdesc
= NULL
;
1075 if (r
->in
.secdesc
) {
1076 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1077 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.secdesc
, 0);
1078 NDR_CHECK(ndr_pull_winreg_SecBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc
));
1079 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
1081 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_action_taken
));
1082 if (_ptr_action_taken
) {
1083 NDR_PULL_ALLOC(ndr
, r
->in
.action_taken
);
1085 r
->in
.action_taken
= NULL
;
1087 if (r
->in
.action_taken
) {
1088 _mem_save_action_taken_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1089 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.action_taken
, 0);
1090 NDR_CHECK(ndr_pull_winreg_CreateAction(ndr
, NDR_SCALARS
, r
->in
.action_taken
));
1091 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_action_taken_0
, 0);
1093 NDR_PULL_ALLOC(ndr
, r
->out
.new_handle
);
1094 ZERO_STRUCTP(r
->out
.new_handle
);
1096 if (flags
& NDR_OUT
) {
1097 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1098 NDR_PULL_ALLOC(ndr
, r
->out
.new_handle
);
1100 _mem_save_new_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1101 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.new_handle
, LIBNDR_FLAG_REF_ALLOC
);
1102 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.new_handle
));
1103 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_new_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
1104 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_action_taken
));
1105 if (_ptr_action_taken
) {
1106 NDR_PULL_ALLOC(ndr
, r
->out
.action_taken
);
1108 r
->out
.action_taken
= NULL
;
1110 if (r
->out
.action_taken
) {
1111 _mem_save_action_taken_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1112 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.action_taken
, 0);
1113 NDR_CHECK(ndr_pull_winreg_CreateAction(ndr
, NDR_SCALARS
, r
->out
.action_taken
));
1114 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_action_taken_0
, 0);
1116 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
1118 return NT_STATUS_OK
;
1121 _PUBLIC_
void ndr_print_winreg_CreateKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_CreateKey
*r
)
1123 ndr_print_struct(ndr
, name
, "winreg_CreateKey");
1125 if (flags
& NDR_SET_VALUES
) {
1126 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
1128 if (flags
& NDR_IN
) {
1129 ndr_print_struct(ndr
, "in", "winreg_CreateKey");
1131 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
1133 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
1135 ndr_print_winreg_String(ndr
, "name", &r
->in
.name
);
1136 ndr_print_winreg_String(ndr
, "keyclass", &r
->in
.keyclass
);
1137 ndr_print_uint32(ndr
, "options", r
->in
.options
);
1138 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
1139 ndr_print_ptr(ndr
, "secdesc", r
->in
.secdesc
);
1141 if (r
->in
.secdesc
) {
1142 ndr_print_winreg_SecBuf(ndr
, "secdesc", r
->in
.secdesc
);
1145 ndr_print_ptr(ndr
, "action_taken", r
->in
.action_taken
);
1147 if (r
->in
.action_taken
) {
1148 ndr_print_winreg_CreateAction(ndr
, "action_taken", *r
->in
.action_taken
);
1153 if (flags
& NDR_OUT
) {
1154 ndr_print_struct(ndr
, "out", "winreg_CreateKey");
1156 ndr_print_ptr(ndr
, "new_handle", r
->out
.new_handle
);
1158 ndr_print_policy_handle(ndr
, "new_handle", r
->out
.new_handle
);
1160 ndr_print_ptr(ndr
, "action_taken", r
->out
.action_taken
);
1162 if (r
->out
.action_taken
) {
1163 ndr_print_winreg_CreateAction(ndr
, "action_taken", *r
->out
.action_taken
);
1166 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
1172 NTSTATUS
ndr_push_winreg_DeleteKey(struct ndr_push
*ndr
, int flags
, const struct winreg_DeleteKey
*r
)
1174 if (flags
& NDR_IN
) {
1175 if (r
->in
.handle
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
1176 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.handle
));
1177 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.key
));
1179 if (flags
& NDR_OUT
) {
1180 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
1182 return NT_STATUS_OK
;
1185 NTSTATUS
ndr_pull_winreg_DeleteKey(struct ndr_pull
*ndr
, int flags
, struct winreg_DeleteKey
*r
)
1187 TALLOC_CTX
*_mem_save_handle_0
;
1188 if (flags
& NDR_IN
) {
1189 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1190 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
1192 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1193 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
1194 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.handle
));
1195 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
1196 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.key
));
1198 if (flags
& NDR_OUT
) {
1199 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
1201 return NT_STATUS_OK
;
1204 _PUBLIC_
void ndr_print_winreg_DeleteKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_DeleteKey
*r
)
1206 ndr_print_struct(ndr
, name
, "winreg_DeleteKey");
1208 if (flags
& NDR_SET_VALUES
) {
1209 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
1211 if (flags
& NDR_IN
) {
1212 ndr_print_struct(ndr
, "in", "winreg_DeleteKey");
1214 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
1216 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
1218 ndr_print_winreg_String(ndr
, "key", &r
->in
.key
);
1221 if (flags
& NDR_OUT
) {
1222 ndr_print_struct(ndr
, "out", "winreg_DeleteKey");
1224 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
1230 NTSTATUS
ndr_push_winreg_DeleteValue(struct ndr_push
*ndr
, int flags
, const struct winreg_DeleteValue
*r
)
1232 if (flags
& NDR_IN
) {
1233 if (r
->in
.handle
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
1234 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.handle
));
1235 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.value
));
1237 if (flags
& NDR_OUT
) {
1238 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
1240 return NT_STATUS_OK
;
1243 NTSTATUS
ndr_pull_winreg_DeleteValue(struct ndr_pull
*ndr
, int flags
, struct winreg_DeleteValue
*r
)
1245 TALLOC_CTX
*_mem_save_handle_0
;
1246 if (flags
& NDR_IN
) {
1247 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1248 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
1250 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1251 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
1252 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.handle
));
1253 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
1254 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.value
));
1256 if (flags
& NDR_OUT
) {
1257 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
1259 return NT_STATUS_OK
;
1262 _PUBLIC_
void ndr_print_winreg_DeleteValue(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_DeleteValue
*r
)
1264 ndr_print_struct(ndr
, name
, "winreg_DeleteValue");
1266 if (flags
& NDR_SET_VALUES
) {
1267 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
1269 if (flags
& NDR_IN
) {
1270 ndr_print_struct(ndr
, "in", "winreg_DeleteValue");
1272 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
1274 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
1276 ndr_print_winreg_String(ndr
, "value", &r
->in
.value
);
1279 if (flags
& NDR_OUT
) {
1280 ndr_print_struct(ndr
, "out", "winreg_DeleteValue");
1282 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
1288 NTSTATUS
ndr_push_winreg_EnumKey(struct ndr_push
*ndr
, int flags
, const struct winreg_EnumKey
*r
)
1290 if (flags
& NDR_IN
) {
1291 if (r
->in
.handle
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
1292 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.handle
));
1293 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.enum_index
));
1294 if (r
->in
.name
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
1295 NDR_CHECK(ndr_push_winreg_StringBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.name
));
1296 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.keyclass
));
1297 if (r
->in
.keyclass
) {
1298 NDR_CHECK(ndr_push_winreg_StringBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.keyclass
));
1300 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.last_changed_time
));
1301 if (r
->in
.last_changed_time
) {
1302 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, *r
->in
.last_changed_time
));
1305 if (flags
& NDR_OUT
) {
1306 if (r
->out
.name
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
1307 NDR_CHECK(ndr_push_winreg_StringBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.name
));
1308 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.keyclass
));
1309 if (r
->out
.keyclass
) {
1310 NDR_CHECK(ndr_push_winreg_StringBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.keyclass
));
1312 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.last_changed_time
));
1313 if (r
->out
.last_changed_time
) {
1314 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, *r
->out
.last_changed_time
));
1316 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
1318 return NT_STATUS_OK
;
1321 NTSTATUS
ndr_pull_winreg_EnumKey(struct ndr_pull
*ndr
, int flags
, struct winreg_EnumKey
*r
)
1323 uint32_t _ptr_keyclass
;
1324 uint32_t _ptr_last_changed_time
;
1325 TALLOC_CTX
*_mem_save_handle_0
;
1326 TALLOC_CTX
*_mem_save_name_0
;
1327 TALLOC_CTX
*_mem_save_keyclass_0
;
1328 TALLOC_CTX
*_mem_save_last_changed_time_0
;
1329 if (flags
& NDR_IN
) {
1330 ZERO_STRUCT(r
->out
);
1332 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1333 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
1335 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1336 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
1337 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.handle
));
1338 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
1339 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.enum_index
));
1340 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1341 NDR_PULL_ALLOC(ndr
, r
->in
.name
);
1343 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1344 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.name
, LIBNDR_FLAG_REF_ALLOC
);
1345 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.name
));
1346 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, LIBNDR_FLAG_REF_ALLOC
);
1347 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_keyclass
));
1348 if (_ptr_keyclass
) {
1349 NDR_PULL_ALLOC(ndr
, r
->in
.keyclass
);
1351 r
->in
.keyclass
= NULL
;
1353 if (r
->in
.keyclass
) {
1354 _mem_save_keyclass_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1355 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.keyclass
, 0);
1356 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.keyclass
));
1357 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_keyclass_0
, 0);
1359 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_last_changed_time
));
1360 if (_ptr_last_changed_time
) {
1361 NDR_PULL_ALLOC(ndr
, r
->in
.last_changed_time
);
1363 r
->in
.last_changed_time
= NULL
;
1365 if (r
->in
.last_changed_time
) {
1366 _mem_save_last_changed_time_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1367 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.last_changed_time
, 0);
1368 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, r
->in
.last_changed_time
));
1369 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_last_changed_time_0
, 0);
1371 NDR_PULL_ALLOC(ndr
, r
->out
.name
);
1372 *r
->out
.name
= *r
->in
.name
;
1374 if (flags
& NDR_OUT
) {
1375 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1376 NDR_PULL_ALLOC(ndr
, r
->out
.name
);
1378 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1379 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.name
, LIBNDR_FLAG_REF_ALLOC
);
1380 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.name
));
1381 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, LIBNDR_FLAG_REF_ALLOC
);
1382 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_keyclass
));
1383 if (_ptr_keyclass
) {
1384 NDR_PULL_ALLOC(ndr
, r
->out
.keyclass
);
1386 r
->out
.keyclass
= NULL
;
1388 if (r
->out
.keyclass
) {
1389 _mem_save_keyclass_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1390 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.keyclass
, 0);
1391 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.keyclass
));
1392 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_keyclass_0
, 0);
1394 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_last_changed_time
));
1395 if (_ptr_last_changed_time
) {
1396 NDR_PULL_ALLOC(ndr
, r
->out
.last_changed_time
);
1398 r
->out
.last_changed_time
= NULL
;
1400 if (r
->out
.last_changed_time
) {
1401 _mem_save_last_changed_time_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1402 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.last_changed_time
, 0);
1403 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, r
->out
.last_changed_time
));
1404 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_last_changed_time_0
, 0);
1406 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
1408 return NT_STATUS_OK
;
1411 _PUBLIC_
void ndr_print_winreg_EnumKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_EnumKey
*r
)
1413 ndr_print_struct(ndr
, name
, "winreg_EnumKey");
1415 if (flags
& NDR_SET_VALUES
) {
1416 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
1418 if (flags
& NDR_IN
) {
1419 ndr_print_struct(ndr
, "in", "winreg_EnumKey");
1421 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
1423 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
1425 ndr_print_uint32(ndr
, "enum_index", r
->in
.enum_index
);
1426 ndr_print_ptr(ndr
, "name", r
->in
.name
);
1428 ndr_print_winreg_StringBuf(ndr
, "name", r
->in
.name
);
1430 ndr_print_ptr(ndr
, "keyclass", r
->in
.keyclass
);
1432 if (r
->in
.keyclass
) {
1433 ndr_print_winreg_StringBuf(ndr
, "keyclass", r
->in
.keyclass
);
1436 ndr_print_ptr(ndr
, "last_changed_time", r
->in
.last_changed_time
);
1438 if (r
->in
.last_changed_time
) {
1439 ndr_print_NTTIME(ndr
, "last_changed_time", *r
->in
.last_changed_time
);
1444 if (flags
& NDR_OUT
) {
1445 ndr_print_struct(ndr
, "out", "winreg_EnumKey");
1447 ndr_print_ptr(ndr
, "name", r
->out
.name
);
1449 ndr_print_winreg_StringBuf(ndr
, "name", r
->out
.name
);
1451 ndr_print_ptr(ndr
, "keyclass", r
->out
.keyclass
);
1453 if (r
->out
.keyclass
) {
1454 ndr_print_winreg_StringBuf(ndr
, "keyclass", r
->out
.keyclass
);
1457 ndr_print_ptr(ndr
, "last_changed_time", r
->out
.last_changed_time
);
1459 if (r
->out
.last_changed_time
) {
1460 ndr_print_NTTIME(ndr
, "last_changed_time", *r
->out
.last_changed_time
);
1463 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
1469 NTSTATUS
ndr_push_winreg_EnumValue(struct ndr_push
*ndr
, int flags
, const struct winreg_EnumValue
*r
)
1471 if (flags
& NDR_IN
) {
1472 if (r
->in
.handle
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
1473 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.handle
));
1474 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.enum_index
));
1475 if (r
->in
.name
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
1476 NDR_CHECK(ndr_push_winreg_ValNameBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.name
));
1477 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.type
));
1479 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, *r
->in
.type
));
1481 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.value
));
1483 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.size
));
1484 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
1485 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.length
));
1486 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.value
, *r
->in
.length
));
1488 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.size
));
1490 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.size
));
1492 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.length
));
1494 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.length
));
1497 if (flags
& NDR_OUT
) {
1498 if (r
->out
.name
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
1499 NDR_CHECK(ndr_push_winreg_ValNameBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.name
));
1500 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.type
));
1502 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, *r
->out
.type
));
1504 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.value
));
1506 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.size
));
1507 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
1508 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.length
));
1509 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.value
, *r
->out
.length
));
1511 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.size
));
1513 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.size
));
1515 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.length
));
1516 if (r
->out
.length
) {
1517 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.length
));
1519 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
1521 return NT_STATUS_OK
;
1524 NTSTATUS
ndr_pull_winreg_EnumValue(struct ndr_pull
*ndr
, int flags
, struct winreg_EnumValue
*r
)
1527 uint32_t _ptr_value
;
1529 uint32_t _ptr_length
;
1530 TALLOC_CTX
*_mem_save_handle_0
;
1531 TALLOC_CTX
*_mem_save_name_0
;
1532 TALLOC_CTX
*_mem_save_type_0
;
1533 TALLOC_CTX
*_mem_save_value_0
;
1534 TALLOC_CTX
*_mem_save_size_0
;
1535 TALLOC_CTX
*_mem_save_length_0
;
1536 if (flags
& NDR_IN
) {
1537 ZERO_STRUCT(r
->out
);
1539 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1540 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
1542 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1543 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
1544 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.handle
));
1545 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
1546 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.enum_index
));
1547 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1548 NDR_PULL_ALLOC(ndr
, r
->in
.name
);
1550 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1551 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.name
, LIBNDR_FLAG_REF_ALLOC
);
1552 NDR_CHECK(ndr_pull_winreg_ValNameBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.name
));
1553 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, LIBNDR_FLAG_REF_ALLOC
);
1554 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_type
));
1556 NDR_PULL_ALLOC(ndr
, r
->in
.type
);
1561 _mem_save_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1562 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.type
, 0);
1563 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
1564 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_type_0
, 0);
1566 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_value
));
1568 NDR_PULL_ALLOC(ndr
, r
->in
.value
);
1573 _mem_save_value_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1574 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.value
, 0);
1575 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value
));
1576 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value
));
1577 if (ndr_get_array_length(ndr
, &r
->in
.value
) > ndr_get_array_size(ndr
, &r
->in
.value
)) {
1578 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
));
1580 NDR_PULL_ALLOC_N(ndr
, r
->in
.value
, ndr_get_array_size(ndr
, &r
->in
.value
));
1581 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.value
, ndr_get_array_length(ndr
, &r
->in
.value
)));
1582 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_value_0
, 0);
1584 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_size
));
1586 NDR_PULL_ALLOC(ndr
, r
->in
.size
);
1591 _mem_save_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1592 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.size
, 0);
1593 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.size
));
1594 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_size_0
, 0);
1596 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_length
));
1598 NDR_PULL_ALLOC(ndr
, r
->in
.length
);
1600 r
->in
.length
= NULL
;
1603 _mem_save_length_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1604 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.length
, 0);
1605 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.length
));
1606 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_length_0
, 0);
1608 NDR_PULL_ALLOC(ndr
, r
->out
.name
);
1609 *r
->out
.name
= *r
->in
.name
;
1611 if (r
->in
.size
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
1612 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.value
, *r
->in
.size
));
1615 if (r
->in
.length
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
1616 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->in
.value
, *r
->in
.length
));
1619 if (flags
& NDR_OUT
) {
1620 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1621 NDR_PULL_ALLOC(ndr
, r
->out
.name
);
1623 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1624 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.name
, LIBNDR_FLAG_REF_ALLOC
);
1625 NDR_CHECK(ndr_pull_winreg_ValNameBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.name
));
1626 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, LIBNDR_FLAG_REF_ALLOC
);
1627 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_type
));
1629 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
1634 _mem_save_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1635 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.type
, 0);
1636 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, r
->out
.type
));
1637 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_type_0
, 0);
1639 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_value
));
1641 NDR_PULL_ALLOC(ndr
, r
->out
.value
);
1643 r
->out
.value
= NULL
;
1646 _mem_save_value_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1647 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.value
, 0);
1648 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.value
));
1649 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->out
.value
));
1650 if (ndr_get_array_length(ndr
, &r
->out
.value
) > ndr_get_array_size(ndr
, &r
->out
.value
)) {
1651 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
));
1653 NDR_PULL_ALLOC_N(ndr
, r
->out
.value
, ndr_get_array_size(ndr
, &r
->out
.value
));
1654 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.value
, ndr_get_array_length(ndr
, &r
->out
.value
)));
1655 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_value_0
, 0);
1657 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_size
));
1659 NDR_PULL_ALLOC(ndr
, r
->out
.size
);
1664 _mem_save_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1665 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.size
, 0);
1666 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.size
));
1667 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_size_0
, 0);
1669 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_length
));
1671 NDR_PULL_ALLOC(ndr
, r
->out
.length
);
1673 r
->out
.length
= NULL
;
1675 if (r
->out
.length
) {
1676 _mem_save_length_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1677 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.length
, 0);
1678 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.length
));
1679 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_length_0
, 0);
1681 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
1683 if (r
->out
.size
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
1684 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.value
, *r
->out
.size
));
1687 if (r
->out
.length
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
1688 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->out
.value
, *r
->out
.length
));
1691 return NT_STATUS_OK
;
1694 _PUBLIC_
void ndr_print_winreg_EnumValue(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_EnumValue
*r
)
1696 ndr_print_struct(ndr
, name
, "winreg_EnumValue");
1698 if (flags
& NDR_SET_VALUES
) {
1699 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
1701 if (flags
& NDR_IN
) {
1702 ndr_print_struct(ndr
, "in", "winreg_EnumValue");
1704 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
1706 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
1708 ndr_print_uint32(ndr
, "enum_index", r
->in
.enum_index
);
1709 ndr_print_ptr(ndr
, "name", r
->in
.name
);
1711 ndr_print_winreg_ValNameBuf(ndr
, "name", r
->in
.name
);
1713 ndr_print_ptr(ndr
, "type", r
->in
.type
);
1716 ndr_print_winreg_Type(ndr
, "type", *r
->in
.type
);
1719 ndr_print_ptr(ndr
, "value", r
->in
.value
);
1722 if (r
->in
.length
== NULL
) return;
1723 ndr_print_array_uint8(ndr
, "value", r
->in
.value
, *r
->in
.length
);
1726 ndr_print_ptr(ndr
, "size", r
->in
.size
);
1729 ndr_print_uint32(ndr
, "size", *r
->in
.size
);
1732 ndr_print_ptr(ndr
, "length", r
->in
.length
);
1735 ndr_print_uint32(ndr
, "length", *r
->in
.length
);
1740 if (flags
& NDR_OUT
) {
1741 ndr_print_struct(ndr
, "out", "winreg_EnumValue");
1743 ndr_print_ptr(ndr
, "name", r
->out
.name
);
1745 ndr_print_winreg_ValNameBuf(ndr
, "name", r
->out
.name
);
1747 ndr_print_ptr(ndr
, "type", r
->out
.type
);
1750 ndr_print_winreg_Type(ndr
, "type", *r
->out
.type
);
1753 ndr_print_ptr(ndr
, "value", r
->out
.value
);
1756 if (r
->out
.length
== NULL
) return;
1757 ndr_print_array_uint8(ndr
, "value", r
->out
.value
, *r
->out
.length
);
1760 ndr_print_ptr(ndr
, "size", r
->out
.size
);
1763 ndr_print_uint32(ndr
, "size", *r
->out
.size
);
1766 ndr_print_ptr(ndr
, "length", r
->out
.length
);
1768 if (r
->out
.length
) {
1769 ndr_print_uint32(ndr
, "length", *r
->out
.length
);
1772 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
1778 NTSTATUS
ndr_push_winreg_FlushKey(struct ndr_push
*ndr
, int flags
, const struct winreg_FlushKey
*r
)
1780 if (flags
& NDR_IN
) {
1781 if (r
->in
.handle
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
1782 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.handle
));
1784 if (flags
& NDR_OUT
) {
1785 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
1787 return NT_STATUS_OK
;
1790 NTSTATUS
ndr_pull_winreg_FlushKey(struct ndr_pull
*ndr
, int flags
, struct winreg_FlushKey
*r
)
1792 TALLOC_CTX
*_mem_save_handle_0
;
1793 if (flags
& NDR_IN
) {
1794 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1795 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
1797 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1798 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
1799 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.handle
));
1800 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
1802 if (flags
& NDR_OUT
) {
1803 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
1805 return NT_STATUS_OK
;
1808 _PUBLIC_
void ndr_print_winreg_FlushKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_FlushKey
*r
)
1810 ndr_print_struct(ndr
, name
, "winreg_FlushKey");
1812 if (flags
& NDR_SET_VALUES
) {
1813 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
1815 if (flags
& NDR_IN
) {
1816 ndr_print_struct(ndr
, "in", "winreg_FlushKey");
1818 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
1820 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
1824 if (flags
& NDR_OUT
) {
1825 ndr_print_struct(ndr
, "out", "winreg_FlushKey");
1827 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
1833 NTSTATUS
ndr_push_winreg_GetKeySecurity(struct ndr_push
*ndr
, int flags
, const struct winreg_GetKeySecurity
*r
)
1835 if (flags
& NDR_IN
) {
1836 if (r
->in
.handle
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
1837 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.handle
));
1838 NDR_CHECK(ndr_push_security_secinfo(ndr
, NDR_SCALARS
, r
->in
.sec_info
));
1839 if (r
->in
.sd
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
1840 NDR_CHECK(ndr_push_KeySecurityData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.sd
));
1842 if (flags
& NDR_OUT
) {
1843 if (r
->out
.sd
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
1844 NDR_CHECK(ndr_push_KeySecurityData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.sd
));
1845 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
1847 return NT_STATUS_OK
;
1850 NTSTATUS
ndr_pull_winreg_GetKeySecurity(struct ndr_pull
*ndr
, int flags
, struct winreg_GetKeySecurity
*r
)
1852 TALLOC_CTX
*_mem_save_handle_0
;
1853 TALLOC_CTX
*_mem_save_sd_0
;
1854 if (flags
& NDR_IN
) {
1855 ZERO_STRUCT(r
->out
);
1857 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1858 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
1860 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1861 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
1862 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.handle
));
1863 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
1864 NDR_CHECK(ndr_pull_security_secinfo(ndr
, NDR_SCALARS
, &r
->in
.sec_info
));
1865 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1866 NDR_PULL_ALLOC(ndr
, r
->in
.sd
);
1868 _mem_save_sd_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1869 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.sd
, LIBNDR_FLAG_REF_ALLOC
);
1870 NDR_CHECK(ndr_pull_KeySecurityData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.sd
));
1871 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sd_0
, LIBNDR_FLAG_REF_ALLOC
);
1872 NDR_PULL_ALLOC(ndr
, r
->out
.sd
);
1873 *r
->out
.sd
= *r
->in
.sd
;
1875 if (flags
& NDR_OUT
) {
1876 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1877 NDR_PULL_ALLOC(ndr
, r
->out
.sd
);
1879 _mem_save_sd_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1880 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.sd
, LIBNDR_FLAG_REF_ALLOC
);
1881 NDR_CHECK(ndr_pull_KeySecurityData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.sd
));
1882 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sd_0
, LIBNDR_FLAG_REF_ALLOC
);
1883 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
1885 return NT_STATUS_OK
;
1888 _PUBLIC_
void ndr_print_winreg_GetKeySecurity(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_GetKeySecurity
*r
)
1890 ndr_print_struct(ndr
, name
, "winreg_GetKeySecurity");
1892 if (flags
& NDR_SET_VALUES
) {
1893 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
1895 if (flags
& NDR_IN
) {
1896 ndr_print_struct(ndr
, "in", "winreg_GetKeySecurity");
1898 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
1900 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
1902 ndr_print_security_secinfo(ndr
, "sec_info", r
->in
.sec_info
);
1903 ndr_print_ptr(ndr
, "sd", r
->in
.sd
);
1905 ndr_print_KeySecurityData(ndr
, "sd", r
->in
.sd
);
1909 if (flags
& NDR_OUT
) {
1910 ndr_print_struct(ndr
, "out", "winreg_GetKeySecurity");
1912 ndr_print_ptr(ndr
, "sd", r
->out
.sd
);
1914 ndr_print_KeySecurityData(ndr
, "sd", r
->out
.sd
);
1916 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
1922 NTSTATUS
ndr_push_winreg_LoadKey(struct ndr_push
*ndr
, int flags
, const struct winreg_LoadKey
*r
)
1924 if (flags
& NDR_IN
) {
1925 if (r
->in
.handle
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
1926 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.handle
));
1927 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.keyname
));
1928 if (r
->in
.keyname
) {
1929 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.keyname
));
1931 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.filename
));
1932 if (r
->in
.filename
) {
1933 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.filename
));
1936 if (flags
& NDR_OUT
) {
1937 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
1939 return NT_STATUS_OK
;
1942 NTSTATUS
ndr_pull_winreg_LoadKey(struct ndr_pull
*ndr
, int flags
, struct winreg_LoadKey
*r
)
1944 uint32_t _ptr_keyname
;
1945 uint32_t _ptr_filename
;
1946 TALLOC_CTX
*_mem_save_handle_0
;
1947 TALLOC_CTX
*_mem_save_keyname_0
;
1948 TALLOC_CTX
*_mem_save_filename_0
;
1949 if (flags
& NDR_IN
) {
1950 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1951 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
1953 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1954 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
1955 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.handle
));
1956 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
1957 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_keyname
));
1959 NDR_PULL_ALLOC(ndr
, r
->in
.keyname
);
1961 r
->in
.keyname
= NULL
;
1963 if (r
->in
.keyname
) {
1964 _mem_save_keyname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1965 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.keyname
, 0);
1966 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.keyname
));
1967 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_keyname_0
, 0);
1969 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_filename
));
1970 if (_ptr_filename
) {
1971 NDR_PULL_ALLOC(ndr
, r
->in
.filename
);
1973 r
->in
.filename
= NULL
;
1975 if (r
->in
.filename
) {
1976 _mem_save_filename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1977 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.filename
, 0);
1978 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.filename
));
1979 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_filename_0
, 0);
1982 if (flags
& NDR_OUT
) {
1983 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
1985 return NT_STATUS_OK
;
1988 _PUBLIC_
void ndr_print_winreg_LoadKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_LoadKey
*r
)
1990 ndr_print_struct(ndr
, name
, "winreg_LoadKey");
1992 if (flags
& NDR_SET_VALUES
) {
1993 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
1995 if (flags
& NDR_IN
) {
1996 ndr_print_struct(ndr
, "in", "winreg_LoadKey");
1998 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
2000 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
2002 ndr_print_ptr(ndr
, "keyname", r
->in
.keyname
);
2004 if (r
->in
.keyname
) {
2005 ndr_print_winreg_String(ndr
, "keyname", r
->in
.keyname
);
2008 ndr_print_ptr(ndr
, "filename", r
->in
.filename
);
2010 if (r
->in
.filename
) {
2011 ndr_print_winreg_String(ndr
, "filename", r
->in
.filename
);
2016 if (flags
& NDR_OUT
) {
2017 ndr_print_struct(ndr
, "out", "winreg_LoadKey");
2019 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
2025 NTSTATUS
ndr_push_winreg_NotifyChangeKeyValue(struct ndr_push
*ndr
, int flags
, const struct winreg_NotifyChangeKeyValue
*r
)
2027 if (flags
& NDR_IN
) {
2028 if (r
->in
.handle
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
2029 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.handle
));
2030 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->in
.watch_subtree
));
2031 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.notify_filter
));
2032 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.unknown
));
2033 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.string1
));
2034 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.string2
));
2035 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.unknown2
));
2037 if (flags
& NDR_OUT
) {
2038 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
2040 return NT_STATUS_OK
;
2043 NTSTATUS
ndr_pull_winreg_NotifyChangeKeyValue(struct ndr_pull
*ndr
, int flags
, struct winreg_NotifyChangeKeyValue
*r
)
2045 TALLOC_CTX
*_mem_save_handle_0
;
2046 if (flags
& NDR_IN
) {
2047 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2048 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
2050 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2051 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
2052 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.handle
));
2053 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
2054 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->in
.watch_subtree
));
2055 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.notify_filter
));
2056 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.unknown
));
2057 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.string1
));
2058 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.string2
));
2059 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.unknown2
));
2061 if (flags
& NDR_OUT
) {
2062 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
2064 return NT_STATUS_OK
;
2067 _PUBLIC_
void ndr_print_winreg_NotifyChangeKeyValue(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_NotifyChangeKeyValue
*r
)
2069 ndr_print_struct(ndr
, name
, "winreg_NotifyChangeKeyValue");
2071 if (flags
& NDR_SET_VALUES
) {
2072 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
2074 if (flags
& NDR_IN
) {
2075 ndr_print_struct(ndr
, "in", "winreg_NotifyChangeKeyValue");
2077 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
2079 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
2081 ndr_print_uint8(ndr
, "watch_subtree", r
->in
.watch_subtree
);
2082 ndr_print_uint32(ndr
, "notify_filter", r
->in
.notify_filter
);
2083 ndr_print_uint32(ndr
, "unknown", r
->in
.unknown
);
2084 ndr_print_winreg_String(ndr
, "string1", &r
->in
.string1
);
2085 ndr_print_winreg_String(ndr
, "string2", &r
->in
.string2
);
2086 ndr_print_uint32(ndr
, "unknown2", r
->in
.unknown2
);
2089 if (flags
& NDR_OUT
) {
2090 ndr_print_struct(ndr
, "out", "winreg_NotifyChangeKeyValue");
2092 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
2098 NTSTATUS
ndr_push_winreg_OpenKey(struct ndr_push
*ndr
, int flags
, const struct winreg_OpenKey
*r
)
2100 if (flags
& NDR_IN
) {
2101 if (r
->in
.parent_handle
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
2102 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.parent_handle
));
2103 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.keyname
));
2104 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.unknown
));
2105 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
2107 if (flags
& NDR_OUT
) {
2108 if (r
->out
.handle
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
2109 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.handle
));
2110 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
2112 return NT_STATUS_OK
;
2115 NTSTATUS
ndr_pull_winreg_OpenKey(struct ndr_pull
*ndr
, int flags
, struct winreg_OpenKey
*r
)
2117 TALLOC_CTX
*_mem_save_parent_handle_0
;
2118 TALLOC_CTX
*_mem_save_handle_0
;
2119 if (flags
& NDR_IN
) {
2120 ZERO_STRUCT(r
->out
);
2122 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2123 NDR_PULL_ALLOC(ndr
, r
->in
.parent_handle
);
2125 _mem_save_parent_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2126 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.parent_handle
, LIBNDR_FLAG_REF_ALLOC
);
2127 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.parent_handle
));
2128 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parent_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
2129 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.keyname
));
2130 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.unknown
));
2131 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
2132 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
2133 ZERO_STRUCTP(r
->out
.handle
);
2135 if (flags
& NDR_OUT
) {
2136 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2137 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
2139 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2140 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
2141 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.handle
));
2142 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
2143 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
2145 return NT_STATUS_OK
;
2148 _PUBLIC_
void ndr_print_winreg_OpenKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_OpenKey
*r
)
2150 ndr_print_struct(ndr
, name
, "winreg_OpenKey");
2152 if (flags
& NDR_SET_VALUES
) {
2153 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
2155 if (flags
& NDR_IN
) {
2156 ndr_print_struct(ndr
, "in", "winreg_OpenKey");
2158 ndr_print_ptr(ndr
, "parent_handle", r
->in
.parent_handle
);
2160 ndr_print_policy_handle(ndr
, "parent_handle", r
->in
.parent_handle
);
2162 ndr_print_winreg_String(ndr
, "keyname", &r
->in
.keyname
);
2163 ndr_print_uint32(ndr
, "unknown", r
->in
.unknown
);
2164 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
2167 if (flags
& NDR_OUT
) {
2168 ndr_print_struct(ndr
, "out", "winreg_OpenKey");
2170 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
2172 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
2174 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
2180 NTSTATUS
ndr_push_winreg_QueryInfoKey(struct ndr_push
*ndr
, int flags
, const struct winreg_QueryInfoKey
*r
)
2182 if (flags
& NDR_IN
) {
2183 if (r
->in
.handle
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
2184 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.handle
));
2185 if (r
->in
.classname
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
2186 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.classname
));
2188 if (flags
& NDR_OUT
) {
2189 if (r
->out
.classname
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
2190 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.classname
));
2191 if (r
->out
.num_subkeys
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
2192 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.num_subkeys
));
2193 if (r
->out
.max_subkeylen
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
2194 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.max_subkeylen
));
2195 if (r
->out
.max_classlen
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
2196 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.max_classlen
));
2197 if (r
->out
.num_values
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
2198 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.num_values
));
2199 if (r
->out
.max_valnamelen
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
2200 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.max_valnamelen
));
2201 if (r
->out
.max_valbufsize
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
2202 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.max_valbufsize
));
2203 if (r
->out
.secdescsize
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
2204 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.secdescsize
));
2205 if (r
->out
.last_changed_time
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
2206 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, *r
->out
.last_changed_time
));
2207 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
2209 return NT_STATUS_OK
;
2212 NTSTATUS
ndr_pull_winreg_QueryInfoKey(struct ndr_pull
*ndr
, int flags
, struct winreg_QueryInfoKey
*r
)
2214 TALLOC_CTX
*_mem_save_handle_0
;
2215 TALLOC_CTX
*_mem_save_classname_0
;
2216 TALLOC_CTX
*_mem_save_num_subkeys_0
;
2217 TALLOC_CTX
*_mem_save_max_subkeylen_0
;
2218 TALLOC_CTX
*_mem_save_max_classlen_0
;
2219 TALLOC_CTX
*_mem_save_num_values_0
;
2220 TALLOC_CTX
*_mem_save_max_valnamelen_0
;
2221 TALLOC_CTX
*_mem_save_max_valbufsize_0
;
2222 TALLOC_CTX
*_mem_save_secdescsize_0
;
2223 TALLOC_CTX
*_mem_save_last_changed_time_0
;
2224 if (flags
& NDR_IN
) {
2225 ZERO_STRUCT(r
->out
);
2227 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2228 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
2230 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2231 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
2232 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.handle
));
2233 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
2234 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2235 NDR_PULL_ALLOC(ndr
, r
->in
.classname
);
2237 _mem_save_classname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2238 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.classname
, LIBNDR_FLAG_REF_ALLOC
);
2239 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.classname
));
2240 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_classname_0
, LIBNDR_FLAG_REF_ALLOC
);
2241 NDR_PULL_ALLOC(ndr
, r
->out
.classname
);
2242 *r
->out
.classname
= *r
->in
.classname
;
2243 NDR_PULL_ALLOC(ndr
, r
->out
.num_subkeys
);
2244 ZERO_STRUCTP(r
->out
.num_subkeys
);
2245 NDR_PULL_ALLOC(ndr
, r
->out
.max_subkeylen
);
2246 ZERO_STRUCTP(r
->out
.max_subkeylen
);
2247 NDR_PULL_ALLOC(ndr
, r
->out
.max_classlen
);
2248 ZERO_STRUCTP(r
->out
.max_classlen
);
2249 NDR_PULL_ALLOC(ndr
, r
->out
.num_values
);
2250 ZERO_STRUCTP(r
->out
.num_values
);
2251 NDR_PULL_ALLOC(ndr
, r
->out
.max_valnamelen
);
2252 ZERO_STRUCTP(r
->out
.max_valnamelen
);
2253 NDR_PULL_ALLOC(ndr
, r
->out
.max_valbufsize
);
2254 ZERO_STRUCTP(r
->out
.max_valbufsize
);
2255 NDR_PULL_ALLOC(ndr
, r
->out
.secdescsize
);
2256 ZERO_STRUCTP(r
->out
.secdescsize
);
2257 NDR_PULL_ALLOC(ndr
, r
->out
.last_changed_time
);
2258 ZERO_STRUCTP(r
->out
.last_changed_time
);
2260 if (flags
& NDR_OUT
) {
2261 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2262 NDR_PULL_ALLOC(ndr
, r
->out
.classname
);
2264 _mem_save_classname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2265 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.classname
, LIBNDR_FLAG_REF_ALLOC
);
2266 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.classname
));
2267 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_classname_0
, LIBNDR_FLAG_REF_ALLOC
);
2268 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2269 NDR_PULL_ALLOC(ndr
, r
->out
.num_subkeys
);
2271 _mem_save_num_subkeys_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2272 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.num_subkeys
, LIBNDR_FLAG_REF_ALLOC
);
2273 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.num_subkeys
));
2274 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_num_subkeys_0
, LIBNDR_FLAG_REF_ALLOC
);
2275 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2276 NDR_PULL_ALLOC(ndr
, r
->out
.max_subkeylen
);
2278 _mem_save_max_subkeylen_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2279 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.max_subkeylen
, LIBNDR_FLAG_REF_ALLOC
);
2280 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.max_subkeylen
));
2281 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_max_subkeylen_0
, LIBNDR_FLAG_REF_ALLOC
);
2282 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2283 NDR_PULL_ALLOC(ndr
, r
->out
.max_classlen
);
2285 _mem_save_max_classlen_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2286 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.max_classlen
, LIBNDR_FLAG_REF_ALLOC
);
2287 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.max_classlen
));
2288 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_max_classlen_0
, LIBNDR_FLAG_REF_ALLOC
);
2289 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2290 NDR_PULL_ALLOC(ndr
, r
->out
.num_values
);
2292 _mem_save_num_values_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2293 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.num_values
, LIBNDR_FLAG_REF_ALLOC
);
2294 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.num_values
));
2295 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_num_values_0
, LIBNDR_FLAG_REF_ALLOC
);
2296 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2297 NDR_PULL_ALLOC(ndr
, r
->out
.max_valnamelen
);
2299 _mem_save_max_valnamelen_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2300 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.max_valnamelen
, LIBNDR_FLAG_REF_ALLOC
);
2301 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.max_valnamelen
));
2302 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_max_valnamelen_0
, LIBNDR_FLAG_REF_ALLOC
);
2303 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2304 NDR_PULL_ALLOC(ndr
, r
->out
.max_valbufsize
);
2306 _mem_save_max_valbufsize_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2307 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.max_valbufsize
, LIBNDR_FLAG_REF_ALLOC
);
2308 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.max_valbufsize
));
2309 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_max_valbufsize_0
, LIBNDR_FLAG_REF_ALLOC
);
2310 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2311 NDR_PULL_ALLOC(ndr
, r
->out
.secdescsize
);
2313 _mem_save_secdescsize_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2314 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.secdescsize
, LIBNDR_FLAG_REF_ALLOC
);
2315 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.secdescsize
));
2316 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdescsize_0
, LIBNDR_FLAG_REF_ALLOC
);
2317 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2318 NDR_PULL_ALLOC(ndr
, r
->out
.last_changed_time
);
2320 _mem_save_last_changed_time_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2321 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.last_changed_time
, LIBNDR_FLAG_REF_ALLOC
);
2322 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, r
->out
.last_changed_time
));
2323 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_last_changed_time_0
, LIBNDR_FLAG_REF_ALLOC
);
2324 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
2326 return NT_STATUS_OK
;
2329 _PUBLIC_
void ndr_print_winreg_QueryInfoKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_QueryInfoKey
*r
)
2331 ndr_print_struct(ndr
, name
, "winreg_QueryInfoKey");
2333 if (flags
& NDR_SET_VALUES
) {
2334 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
2336 if (flags
& NDR_IN
) {
2337 ndr_print_struct(ndr
, "in", "winreg_QueryInfoKey");
2339 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
2341 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
2343 ndr_print_ptr(ndr
, "classname", r
->in
.classname
);
2345 ndr_print_winreg_String(ndr
, "classname", r
->in
.classname
);
2349 if (flags
& NDR_OUT
) {
2350 ndr_print_struct(ndr
, "out", "winreg_QueryInfoKey");
2352 ndr_print_ptr(ndr
, "classname", r
->out
.classname
);
2354 ndr_print_winreg_String(ndr
, "classname", r
->out
.classname
);
2356 ndr_print_ptr(ndr
, "num_subkeys", r
->out
.num_subkeys
);
2358 ndr_print_uint32(ndr
, "num_subkeys", *r
->out
.num_subkeys
);
2360 ndr_print_ptr(ndr
, "max_subkeylen", r
->out
.max_subkeylen
);
2362 ndr_print_uint32(ndr
, "max_subkeylen", *r
->out
.max_subkeylen
);
2364 ndr_print_ptr(ndr
, "max_classlen", r
->out
.max_classlen
);
2366 ndr_print_uint32(ndr
, "max_classlen", *r
->out
.max_classlen
);
2368 ndr_print_ptr(ndr
, "num_values", r
->out
.num_values
);
2370 ndr_print_uint32(ndr
, "num_values", *r
->out
.num_values
);
2372 ndr_print_ptr(ndr
, "max_valnamelen", r
->out
.max_valnamelen
);
2374 ndr_print_uint32(ndr
, "max_valnamelen", *r
->out
.max_valnamelen
);
2376 ndr_print_ptr(ndr
, "max_valbufsize", r
->out
.max_valbufsize
);
2378 ndr_print_uint32(ndr
, "max_valbufsize", *r
->out
.max_valbufsize
);
2380 ndr_print_ptr(ndr
, "secdescsize", r
->out
.secdescsize
);
2382 ndr_print_uint32(ndr
, "secdescsize", *r
->out
.secdescsize
);
2384 ndr_print_ptr(ndr
, "last_changed_time", r
->out
.last_changed_time
);
2386 ndr_print_NTTIME(ndr
, "last_changed_time", *r
->out
.last_changed_time
);
2388 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
2394 NTSTATUS
ndr_push_winreg_QueryValue(struct ndr_push
*ndr
, int flags
, const struct winreg_QueryValue
*r
)
2396 if (flags
& NDR_IN
) {
2397 if (r
->in
.handle
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
2398 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.handle
));
2399 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.value_name
));
2400 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.type
));
2402 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, *r
->in
.type
));
2404 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.data
));
2406 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.data_size
));
2407 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
2408 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.value_length
));
2409 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.data
, *r
->in
.value_length
));
2411 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.data_size
));
2412 if (r
->in
.data_size
) {
2413 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.data_size
));
2415 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.value_length
));
2416 if (r
->in
.value_length
) {
2417 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.value_length
));
2420 if (flags
& NDR_OUT
) {
2421 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.type
));
2423 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, *r
->out
.type
));
2425 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.data
));
2427 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.data_size
));
2428 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
2429 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.value_length
));
2430 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, *r
->out
.value_length
));
2432 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.data_size
));
2433 if (r
->out
.data_size
) {
2434 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.data_size
));
2436 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.value_length
));
2437 if (r
->out
.value_length
) {
2438 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.value_length
));
2440 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
2442 return NT_STATUS_OK
;
2445 NTSTATUS
ndr_pull_winreg_QueryValue(struct ndr_pull
*ndr
, int flags
, struct winreg_QueryValue
*r
)
2449 uint32_t _ptr_data_size
;
2450 uint32_t _ptr_value_length
;
2451 TALLOC_CTX
*_mem_save_handle_0
;
2452 TALLOC_CTX
*_mem_save_type_0
;
2453 TALLOC_CTX
*_mem_save_data_0
;
2454 TALLOC_CTX
*_mem_save_data_size_0
;
2455 TALLOC_CTX
*_mem_save_value_length_0
;
2456 if (flags
& NDR_IN
) {
2457 ZERO_STRUCT(r
->out
);
2459 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2460 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
2462 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2463 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
2464 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.handle
));
2465 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
2466 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.value_name
));
2467 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_type
));
2469 NDR_PULL_ALLOC(ndr
, r
->in
.type
);
2474 _mem_save_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2475 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.type
, 0);
2476 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
2477 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_type_0
, 0);
2479 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data
));
2481 NDR_PULL_ALLOC(ndr
, r
->in
.data
);
2486 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2487 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.data
, 0);
2488 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.data
));
2489 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.data
));
2490 if (ndr_get_array_length(ndr
, &r
->in
.data
) > ndr_get_array_size(ndr
, &r
->in
.data
)) {
2491 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
));
2493 NDR_PULL_ALLOC_N(ndr
, r
->in
.data
, ndr_get_array_size(ndr
, &r
->in
.data
));
2494 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.data
, ndr_get_array_length(ndr
, &r
->in
.data
)));
2495 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, 0);
2497 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_size
));
2498 if (_ptr_data_size
) {
2499 NDR_PULL_ALLOC(ndr
, r
->in
.data_size
);
2501 r
->in
.data_size
= NULL
;
2503 if (r
->in
.data_size
) {
2504 _mem_save_data_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2505 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.data_size
, 0);
2506 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.data_size
));
2507 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_size_0
, 0);
2509 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_value_length
));
2510 if (_ptr_value_length
) {
2511 NDR_PULL_ALLOC(ndr
, r
->in
.value_length
);
2513 r
->in
.value_length
= NULL
;
2515 if (r
->in
.value_length
) {
2516 _mem_save_value_length_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2517 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.value_length
, 0);
2518 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.value_length
));
2519 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_value_length_0
, 0);
2522 if (r
->in
.data_size
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
2523 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.data
, *r
->in
.data_size
));
2526 if (r
->in
.value_length
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
2527 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->in
.data
, *r
->in
.value_length
));
2530 if (flags
& NDR_OUT
) {
2531 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_type
));
2533 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
2538 _mem_save_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2539 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.type
, 0);
2540 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, r
->out
.type
));
2541 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_type_0
, 0);
2543 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data
));
2545 NDR_PULL_ALLOC(ndr
, r
->out
.data
);
2550 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2551 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.data
, 0);
2552 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.data
));
2553 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->out
.data
));
2554 if (ndr_get_array_length(ndr
, &r
->out
.data
) > ndr_get_array_size(ndr
, &r
->out
.data
)) {
2555 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
));
2557 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, ndr_get_array_size(ndr
, &r
->out
.data
));
2558 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, ndr_get_array_length(ndr
, &r
->out
.data
)));
2559 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, 0);
2561 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_size
));
2562 if (_ptr_data_size
) {
2563 NDR_PULL_ALLOC(ndr
, r
->out
.data_size
);
2565 r
->out
.data_size
= NULL
;
2567 if (r
->out
.data_size
) {
2568 _mem_save_data_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2569 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.data_size
, 0);
2570 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.data_size
));
2571 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_size_0
, 0);
2573 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_value_length
));
2574 if (_ptr_value_length
) {
2575 NDR_PULL_ALLOC(ndr
, r
->out
.value_length
);
2577 r
->out
.value_length
= NULL
;
2579 if (r
->out
.value_length
) {
2580 _mem_save_value_length_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2581 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.value_length
, 0);
2582 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.value_length
));
2583 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_value_length_0
, 0);
2585 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
2587 if (r
->out
.data_size
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
2588 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.data
, *r
->out
.data_size
));
2591 if (r
->out
.value_length
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
2592 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->out
.data
, *r
->out
.value_length
));
2595 return NT_STATUS_OK
;
2598 _PUBLIC_
void ndr_print_winreg_QueryValue(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_QueryValue
*r
)
2600 ndr_print_struct(ndr
, name
, "winreg_QueryValue");
2602 if (flags
& NDR_SET_VALUES
) {
2603 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
2605 if (flags
& NDR_IN
) {
2606 ndr_print_struct(ndr
, "in", "winreg_QueryValue");
2608 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
2610 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
2612 ndr_print_winreg_String(ndr
, "value_name", &r
->in
.value_name
);
2613 ndr_print_ptr(ndr
, "type", r
->in
.type
);
2616 ndr_print_winreg_Type(ndr
, "type", *r
->in
.type
);
2619 ndr_print_ptr(ndr
, "data", r
->in
.data
);
2622 if (r
->in
.value_length
== NULL
) return;
2623 ndr_print_array_uint8(ndr
, "data", r
->in
.data
, *r
->in
.value_length
);
2626 ndr_print_ptr(ndr
, "data_size", r
->in
.data_size
);
2628 if (r
->in
.data_size
) {
2629 ndr_print_uint32(ndr
, "data_size", *r
->in
.data_size
);
2632 ndr_print_ptr(ndr
, "value_length", r
->in
.value_length
);
2634 if (r
->in
.value_length
) {
2635 ndr_print_uint32(ndr
, "value_length", *r
->in
.value_length
);
2640 if (flags
& NDR_OUT
) {
2641 ndr_print_struct(ndr
, "out", "winreg_QueryValue");
2643 ndr_print_ptr(ndr
, "type", r
->out
.type
);
2646 ndr_print_winreg_Type(ndr
, "type", *r
->out
.type
);
2649 ndr_print_ptr(ndr
, "data", r
->out
.data
);
2652 if (r
->out
.value_length
== NULL
) return;
2653 ndr_print_array_uint8(ndr
, "data", r
->out
.data
, *r
->out
.value_length
);
2656 ndr_print_ptr(ndr
, "data_size", r
->out
.data_size
);
2658 if (r
->out
.data_size
) {
2659 ndr_print_uint32(ndr
, "data_size", *r
->out
.data_size
);
2662 ndr_print_ptr(ndr
, "value_length", r
->out
.value_length
);
2664 if (r
->out
.value_length
) {
2665 ndr_print_uint32(ndr
, "value_length", *r
->out
.value_length
);
2668 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
2674 NTSTATUS
ndr_push_winreg_ReplaceKey(struct ndr_push
*ndr
, int flags
, const struct winreg_ReplaceKey
*r
)
2676 if (flags
& NDR_IN
) {
2678 if (flags
& NDR_OUT
) {
2679 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
2681 return NT_STATUS_OK
;
2684 NTSTATUS
ndr_pull_winreg_ReplaceKey(struct ndr_pull
*ndr
, int flags
, struct winreg_ReplaceKey
*r
)
2686 if (flags
& NDR_IN
) {
2688 if (flags
& NDR_OUT
) {
2689 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
2691 return NT_STATUS_OK
;
2694 _PUBLIC_
void ndr_print_winreg_ReplaceKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_ReplaceKey
*r
)
2696 ndr_print_struct(ndr
, name
, "winreg_ReplaceKey");
2698 if (flags
& NDR_SET_VALUES
) {
2699 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
2701 if (flags
& NDR_IN
) {
2702 ndr_print_struct(ndr
, "in", "winreg_ReplaceKey");
2706 if (flags
& NDR_OUT
) {
2707 ndr_print_struct(ndr
, "out", "winreg_ReplaceKey");
2709 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
2715 NTSTATUS
ndr_push_winreg_RestoreKey(struct ndr_push
*ndr
, int flags
, const struct winreg_RestoreKey
*r
)
2717 if (flags
& NDR_IN
) {
2718 if (r
->in
.handle
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
2719 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.handle
));
2720 if (r
->in
.filename
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
2721 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.filename
));
2722 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.flags
));
2724 if (flags
& NDR_OUT
) {
2725 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
2727 return NT_STATUS_OK
;
2730 NTSTATUS
ndr_pull_winreg_RestoreKey(struct ndr_pull
*ndr
, int flags
, struct winreg_RestoreKey
*r
)
2732 TALLOC_CTX
*_mem_save_handle_0
;
2733 TALLOC_CTX
*_mem_save_filename_0
;
2734 if (flags
& NDR_IN
) {
2735 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2736 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
2738 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2739 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
2740 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.handle
));
2741 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
2742 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2743 NDR_PULL_ALLOC(ndr
, r
->in
.filename
);
2745 _mem_save_filename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2746 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.filename
, LIBNDR_FLAG_REF_ALLOC
);
2747 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.filename
));
2748 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_filename_0
, LIBNDR_FLAG_REF_ALLOC
);
2749 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.flags
));
2751 if (flags
& NDR_OUT
) {
2752 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
2754 return NT_STATUS_OK
;
2757 _PUBLIC_
void ndr_print_winreg_RestoreKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_RestoreKey
*r
)
2759 ndr_print_struct(ndr
, name
, "winreg_RestoreKey");
2761 if (flags
& NDR_SET_VALUES
) {
2762 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
2764 if (flags
& NDR_IN
) {
2765 ndr_print_struct(ndr
, "in", "winreg_RestoreKey");
2767 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
2769 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
2771 ndr_print_ptr(ndr
, "filename", r
->in
.filename
);
2773 ndr_print_winreg_String(ndr
, "filename", r
->in
.filename
);
2775 ndr_print_uint32(ndr
, "flags", r
->in
.flags
);
2778 if (flags
& NDR_OUT
) {
2779 ndr_print_struct(ndr
, "out", "winreg_RestoreKey");
2781 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
2787 NTSTATUS
ndr_push_winreg_SaveKey(struct ndr_push
*ndr
, int flags
, const struct winreg_SaveKey
*r
)
2789 if (flags
& NDR_IN
) {
2790 if (r
->in
.handle
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
2791 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.handle
));
2792 if (r
->in
.filename
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
2793 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.filename
));
2794 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.sec_attrib
));
2795 if (r
->in
.sec_attrib
) {
2796 NDR_CHECK(ndr_push_KeySecurityAttribute(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.sec_attrib
));
2799 if (flags
& NDR_OUT
) {
2800 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
2802 return NT_STATUS_OK
;
2805 NTSTATUS
ndr_pull_winreg_SaveKey(struct ndr_pull
*ndr
, int flags
, struct winreg_SaveKey
*r
)
2807 uint32_t _ptr_sec_attrib
;
2808 TALLOC_CTX
*_mem_save_handle_0
;
2809 TALLOC_CTX
*_mem_save_filename_0
;
2810 TALLOC_CTX
*_mem_save_sec_attrib_0
;
2811 if (flags
& NDR_IN
) {
2812 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2813 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
2815 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2816 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
2817 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.handle
));
2818 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
2819 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2820 NDR_PULL_ALLOC(ndr
, r
->in
.filename
);
2822 _mem_save_filename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2823 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.filename
, LIBNDR_FLAG_REF_ALLOC
);
2824 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.filename
));
2825 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_filename_0
, LIBNDR_FLAG_REF_ALLOC
);
2826 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sec_attrib
));
2827 if (_ptr_sec_attrib
) {
2828 NDR_PULL_ALLOC(ndr
, r
->in
.sec_attrib
);
2830 r
->in
.sec_attrib
= NULL
;
2832 if (r
->in
.sec_attrib
) {
2833 _mem_save_sec_attrib_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2834 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.sec_attrib
, 0);
2835 NDR_CHECK(ndr_pull_KeySecurityAttribute(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.sec_attrib
));
2836 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sec_attrib_0
, 0);
2839 if (flags
& NDR_OUT
) {
2840 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
2842 return NT_STATUS_OK
;
2845 _PUBLIC_
void ndr_print_winreg_SaveKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_SaveKey
*r
)
2847 ndr_print_struct(ndr
, name
, "winreg_SaveKey");
2849 if (flags
& NDR_SET_VALUES
) {
2850 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
2852 if (flags
& NDR_IN
) {
2853 ndr_print_struct(ndr
, "in", "winreg_SaveKey");
2855 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
2857 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
2859 ndr_print_ptr(ndr
, "filename", r
->in
.filename
);
2861 ndr_print_winreg_String(ndr
, "filename", r
->in
.filename
);
2863 ndr_print_ptr(ndr
, "sec_attrib", r
->in
.sec_attrib
);
2865 if (r
->in
.sec_attrib
) {
2866 ndr_print_KeySecurityAttribute(ndr
, "sec_attrib", r
->in
.sec_attrib
);
2871 if (flags
& NDR_OUT
) {
2872 ndr_print_struct(ndr
, "out", "winreg_SaveKey");
2874 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
2880 NTSTATUS
ndr_push_winreg_SetKeySecurity(struct ndr_push
*ndr
, int flags
, const struct winreg_SetKeySecurity
*r
)
2882 if (flags
& NDR_IN
) {
2883 if (r
->in
.handle
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
2884 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.handle
));
2885 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
2886 if (r
->in
.sd
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
2887 NDR_CHECK(ndr_push_KeySecurityData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.sd
));
2889 if (flags
& NDR_OUT
) {
2890 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
2892 return NT_STATUS_OK
;
2895 NTSTATUS
ndr_pull_winreg_SetKeySecurity(struct ndr_pull
*ndr
, int flags
, struct winreg_SetKeySecurity
*r
)
2897 TALLOC_CTX
*_mem_save_handle_0
;
2898 TALLOC_CTX
*_mem_save_sd_0
;
2899 if (flags
& NDR_IN
) {
2900 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2901 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
2903 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2904 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
2905 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.handle
));
2906 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
2907 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
2908 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2909 NDR_PULL_ALLOC(ndr
, r
->in
.sd
);
2911 _mem_save_sd_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2912 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.sd
, LIBNDR_FLAG_REF_ALLOC
);
2913 NDR_CHECK(ndr_pull_KeySecurityData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.sd
));
2914 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sd_0
, LIBNDR_FLAG_REF_ALLOC
);
2916 if (flags
& NDR_OUT
) {
2917 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
2919 return NT_STATUS_OK
;
2922 _PUBLIC_
void ndr_print_winreg_SetKeySecurity(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_SetKeySecurity
*r
)
2924 ndr_print_struct(ndr
, name
, "winreg_SetKeySecurity");
2926 if (flags
& NDR_SET_VALUES
) {
2927 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
2929 if (flags
& NDR_IN
) {
2930 ndr_print_struct(ndr
, "in", "winreg_SetKeySecurity");
2932 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
2934 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
2936 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
2937 ndr_print_ptr(ndr
, "sd", r
->in
.sd
);
2939 ndr_print_KeySecurityData(ndr
, "sd", r
->in
.sd
);
2943 if (flags
& NDR_OUT
) {
2944 ndr_print_struct(ndr
, "out", "winreg_SetKeySecurity");
2946 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
2952 NTSTATUS
ndr_push_winreg_SetValue(struct ndr_push
*ndr
, int flags
, const struct winreg_SetValue
*r
)
2954 if (flags
& NDR_IN
) {
2955 if (r
->in
.handle
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
2956 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.handle
));
2957 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.name
));
2958 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
2959 if (r
->in
.data
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
2960 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.size
));
2961 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.data
, r
->in
.size
));
2962 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.size
));
2964 if (flags
& NDR_OUT
) {
2965 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
2967 return NT_STATUS_OK
;
2970 NTSTATUS
ndr_pull_winreg_SetValue(struct ndr_pull
*ndr
, int flags
, struct winreg_SetValue
*r
)
2972 TALLOC_CTX
*_mem_save_handle_0
;
2973 if (flags
& NDR_IN
) {
2974 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2975 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
2977 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2978 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
2979 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.handle
));
2980 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
2981 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.name
));
2982 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->in
.type
));
2983 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.data
));
2984 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2985 NDR_PULL_ALLOC_N(ndr
, r
->in
.data
, ndr_get_array_size(ndr
, &r
->in
.data
));
2987 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.data
, ndr_get_array_size(ndr
, &r
->in
.data
)));
2988 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.size
));
2990 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.data
, r
->in
.size
));
2993 if (flags
& NDR_OUT
) {
2994 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
2996 return NT_STATUS_OK
;
2999 _PUBLIC_
void ndr_print_winreg_SetValue(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_SetValue
*r
)
3001 ndr_print_struct(ndr
, name
, "winreg_SetValue");
3003 if (flags
& NDR_SET_VALUES
) {
3004 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
3006 if (flags
& NDR_IN
) {
3007 ndr_print_struct(ndr
, "in", "winreg_SetValue");
3009 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
3011 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
3013 ndr_print_winreg_String(ndr
, "name", &r
->in
.name
);
3014 ndr_print_winreg_Type(ndr
, "type", r
->in
.type
);
3015 ndr_print_ptr(ndr
, "data", r
->in
.data
);
3017 ndr_print_array_uint8(ndr
, "data", r
->in
.data
, r
->in
.size
);
3019 ndr_print_uint32(ndr
, "size", r
->in
.size
);
3022 if (flags
& NDR_OUT
) {
3023 ndr_print_struct(ndr
, "out", "winreg_SetValue");
3025 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
3031 NTSTATUS
ndr_push_winreg_UnLoadKey(struct ndr_push
*ndr
, int flags
, const struct winreg_UnLoadKey
*r
)
3033 if (flags
& NDR_IN
) {
3035 if (flags
& NDR_OUT
) {
3036 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
3038 return NT_STATUS_OK
;
3041 NTSTATUS
ndr_pull_winreg_UnLoadKey(struct ndr_pull
*ndr
, int flags
, struct winreg_UnLoadKey
*r
)
3043 if (flags
& NDR_IN
) {
3045 if (flags
& NDR_OUT
) {
3046 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
3048 return NT_STATUS_OK
;
3051 _PUBLIC_
void ndr_print_winreg_UnLoadKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_UnLoadKey
*r
)
3053 ndr_print_struct(ndr
, name
, "winreg_UnLoadKey");
3055 if (flags
& NDR_SET_VALUES
) {
3056 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
3058 if (flags
& NDR_IN
) {
3059 ndr_print_struct(ndr
, "in", "winreg_UnLoadKey");
3063 if (flags
& NDR_OUT
) {
3064 ndr_print_struct(ndr
, "out", "winreg_UnLoadKey");
3066 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
3072 NTSTATUS
ndr_push_winreg_InitiateSystemShutdown(struct ndr_push
*ndr
, int flags
, const struct winreg_InitiateSystemShutdown
*r
)
3074 if (flags
& NDR_IN
) {
3075 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.hostname
));
3076 if (r
->in
.hostname
) {
3077 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.hostname
));
3079 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.message
));
3080 if (r
->in
.message
) {
3081 NDR_CHECK(ndr_push_initshutdown_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.message
));
3083 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.timeout
));
3084 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->in
.force_apps
));
3085 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->in
.reboot
));
3087 if (flags
& NDR_OUT
) {
3088 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
3090 return NT_STATUS_OK
;
3093 NTSTATUS
ndr_pull_winreg_InitiateSystemShutdown(struct ndr_pull
*ndr
, int flags
, struct winreg_InitiateSystemShutdown
*r
)
3095 uint32_t _ptr_hostname
;
3096 uint32_t _ptr_message
;
3097 TALLOC_CTX
*_mem_save_hostname_0
;
3098 TALLOC_CTX
*_mem_save_message_0
;
3099 if (flags
& NDR_IN
) {
3100 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hostname
));
3101 if (_ptr_hostname
) {
3102 NDR_PULL_ALLOC(ndr
, r
->in
.hostname
);
3104 r
->in
.hostname
= NULL
;
3106 if (r
->in
.hostname
) {
3107 _mem_save_hostname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3108 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.hostname
, 0);
3109 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.hostname
));
3110 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hostname_0
, 0);
3112 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_message
));
3114 NDR_PULL_ALLOC(ndr
, r
->in
.message
);
3116 r
->in
.message
= NULL
;
3118 if (r
->in
.message
) {
3119 _mem_save_message_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3120 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.message
, 0);
3121 NDR_CHECK(ndr_pull_initshutdown_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.message
));
3122 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_message_0
, 0);
3124 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.timeout
));
3125 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->in
.force_apps
));
3126 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->in
.reboot
));
3128 if (flags
& NDR_OUT
) {
3129 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
3131 return NT_STATUS_OK
;
3134 _PUBLIC_
void ndr_print_winreg_InitiateSystemShutdown(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_InitiateSystemShutdown
*r
)
3136 ndr_print_struct(ndr
, name
, "winreg_InitiateSystemShutdown");
3138 if (flags
& NDR_SET_VALUES
) {
3139 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
3141 if (flags
& NDR_IN
) {
3142 ndr_print_struct(ndr
, "in", "winreg_InitiateSystemShutdown");
3144 ndr_print_ptr(ndr
, "hostname", r
->in
.hostname
);
3146 if (r
->in
.hostname
) {
3147 ndr_print_uint16(ndr
, "hostname", *r
->in
.hostname
);
3150 ndr_print_ptr(ndr
, "message", r
->in
.message
);
3152 if (r
->in
.message
) {
3153 ndr_print_initshutdown_String(ndr
, "message", r
->in
.message
);
3156 ndr_print_uint32(ndr
, "timeout", r
->in
.timeout
);
3157 ndr_print_uint8(ndr
, "force_apps", r
->in
.force_apps
);
3158 ndr_print_uint8(ndr
, "reboot", r
->in
.reboot
);
3161 if (flags
& NDR_OUT
) {
3162 ndr_print_struct(ndr
, "out", "winreg_InitiateSystemShutdown");
3164 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
3170 NTSTATUS
ndr_push_winreg_AbortSystemShutdown(struct ndr_push
*ndr
, int flags
, const struct winreg_AbortSystemShutdown
*r
)
3172 if (flags
& NDR_IN
) {
3173 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
3175 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.server
));
3178 if (flags
& NDR_OUT
) {
3179 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
3181 return NT_STATUS_OK
;
3184 NTSTATUS
ndr_pull_winreg_AbortSystemShutdown(struct ndr_pull
*ndr
, int flags
, struct winreg_AbortSystemShutdown
*r
)
3186 uint32_t _ptr_server
;
3187 TALLOC_CTX
*_mem_save_server_0
;
3188 if (flags
& NDR_IN
) {
3189 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
3191 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
3193 r
->in
.server
= NULL
;
3196 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3197 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
3198 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.server
));
3199 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
3202 if (flags
& NDR_OUT
) {
3203 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
3205 return NT_STATUS_OK
;
3208 _PUBLIC_
void ndr_print_winreg_AbortSystemShutdown(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_AbortSystemShutdown
*r
)
3210 ndr_print_struct(ndr
, name
, "winreg_AbortSystemShutdown");
3212 if (flags
& NDR_SET_VALUES
) {
3213 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
3215 if (flags
& NDR_IN
) {
3216 ndr_print_struct(ndr
, "in", "winreg_AbortSystemShutdown");
3218 ndr_print_ptr(ndr
, "server", r
->in
.server
);
3221 ndr_print_uint16(ndr
, "server", *r
->in
.server
);
3226 if (flags
& NDR_OUT
) {
3227 ndr_print_struct(ndr
, "out", "winreg_AbortSystemShutdown");
3229 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
3235 NTSTATUS
ndr_push_winreg_GetVersion(struct ndr_push
*ndr
, int flags
, const struct winreg_GetVersion
*r
)
3237 if (flags
& NDR_IN
) {
3238 if (r
->in
.handle
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
3239 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.handle
));
3241 if (flags
& NDR_OUT
) {
3242 if (r
->out
.version
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
3243 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.version
));
3244 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
3246 return NT_STATUS_OK
;
3249 NTSTATUS
ndr_pull_winreg_GetVersion(struct ndr_pull
*ndr
, int flags
, struct winreg_GetVersion
*r
)
3251 TALLOC_CTX
*_mem_save_handle_0
;
3252 TALLOC_CTX
*_mem_save_version_0
;
3253 if (flags
& NDR_IN
) {
3254 ZERO_STRUCT(r
->out
);
3256 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3257 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
3259 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3260 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
3261 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.handle
));
3262 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
3263 NDR_PULL_ALLOC(ndr
, r
->out
.version
);
3264 ZERO_STRUCTP(r
->out
.version
);
3266 if (flags
& NDR_OUT
) {
3267 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3268 NDR_PULL_ALLOC(ndr
, r
->out
.version
);
3270 _mem_save_version_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3271 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.version
, LIBNDR_FLAG_REF_ALLOC
);
3272 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.version
));
3273 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_version_0
, LIBNDR_FLAG_REF_ALLOC
);
3274 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
3276 return NT_STATUS_OK
;
3279 _PUBLIC_
void ndr_print_winreg_GetVersion(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_GetVersion
*r
)
3281 ndr_print_struct(ndr
, name
, "winreg_GetVersion");
3283 if (flags
& NDR_SET_VALUES
) {
3284 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
3286 if (flags
& NDR_IN
) {
3287 ndr_print_struct(ndr
, "in", "winreg_GetVersion");
3289 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
3291 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
3295 if (flags
& NDR_OUT
) {
3296 ndr_print_struct(ndr
, "out", "winreg_GetVersion");
3298 ndr_print_ptr(ndr
, "version", r
->out
.version
);
3300 ndr_print_uint32(ndr
, "version", *r
->out
.version
);
3302 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
3308 NTSTATUS
ndr_push_winreg_OpenHKCC(struct ndr_push
*ndr
, int flags
, const struct winreg_OpenHKCC
*r
)
3310 if (flags
& NDR_IN
) {
3311 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.system_name
));
3312 if (r
->in
.system_name
) {
3313 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.system_name
));
3315 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
3317 if (flags
& NDR_OUT
) {
3318 if (r
->out
.handle
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
3319 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.handle
));
3320 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
3322 return NT_STATUS_OK
;
3325 NTSTATUS
ndr_pull_winreg_OpenHKCC(struct ndr_pull
*ndr
, int flags
, struct winreg_OpenHKCC
*r
)
3327 uint32_t _ptr_system_name
;
3328 TALLOC_CTX
*_mem_save_system_name_0
;
3329 TALLOC_CTX
*_mem_save_handle_0
;
3330 if (flags
& NDR_IN
) {
3331 ZERO_STRUCT(r
->out
);
3333 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_system_name
));
3334 if (_ptr_system_name
) {
3335 NDR_PULL_ALLOC(ndr
, r
->in
.system_name
);
3337 r
->in
.system_name
= NULL
;
3339 if (r
->in
.system_name
) {
3340 _mem_save_system_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3341 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.system_name
, 0);
3342 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.system_name
));
3343 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_system_name_0
, 0);
3345 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
3346 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
3347 ZERO_STRUCTP(r
->out
.handle
);
3349 if (flags
& NDR_OUT
) {
3350 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3351 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
3353 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3354 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
3355 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.handle
));
3356 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
3357 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
3359 return NT_STATUS_OK
;
3362 _PUBLIC_
void ndr_print_winreg_OpenHKCC(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_OpenHKCC
*r
)
3364 ndr_print_struct(ndr
, name
, "winreg_OpenHKCC");
3366 if (flags
& NDR_SET_VALUES
) {
3367 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
3369 if (flags
& NDR_IN
) {
3370 ndr_print_struct(ndr
, "in", "winreg_OpenHKCC");
3372 ndr_print_ptr(ndr
, "system_name", r
->in
.system_name
);
3374 if (r
->in
.system_name
) {
3375 ndr_print_uint16(ndr
, "system_name", *r
->in
.system_name
);
3378 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
3381 if (flags
& NDR_OUT
) {
3382 ndr_print_struct(ndr
, "out", "winreg_OpenHKCC");
3384 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
3386 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
3388 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
3394 NTSTATUS
ndr_push_winreg_OpenHKDD(struct ndr_push
*ndr
, int flags
, const struct winreg_OpenHKDD
*r
)
3396 if (flags
& NDR_IN
) {
3397 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.system_name
));
3398 if (r
->in
.system_name
) {
3399 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.system_name
));
3401 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
3403 if (flags
& NDR_OUT
) {
3404 if (r
->out
.handle
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
3405 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.handle
));
3406 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
3408 return NT_STATUS_OK
;
3411 NTSTATUS
ndr_pull_winreg_OpenHKDD(struct ndr_pull
*ndr
, int flags
, struct winreg_OpenHKDD
*r
)
3413 uint32_t _ptr_system_name
;
3414 TALLOC_CTX
*_mem_save_system_name_0
;
3415 TALLOC_CTX
*_mem_save_handle_0
;
3416 if (flags
& NDR_IN
) {
3417 ZERO_STRUCT(r
->out
);
3419 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_system_name
));
3420 if (_ptr_system_name
) {
3421 NDR_PULL_ALLOC(ndr
, r
->in
.system_name
);
3423 r
->in
.system_name
= NULL
;
3425 if (r
->in
.system_name
) {
3426 _mem_save_system_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3427 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.system_name
, 0);
3428 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.system_name
));
3429 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_system_name_0
, 0);
3431 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
3432 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
3433 ZERO_STRUCTP(r
->out
.handle
);
3435 if (flags
& NDR_OUT
) {
3436 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3437 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
3439 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3440 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
3441 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.handle
));
3442 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
3443 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
3445 return NT_STATUS_OK
;
3448 _PUBLIC_
void ndr_print_winreg_OpenHKDD(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_OpenHKDD
*r
)
3450 ndr_print_struct(ndr
, name
, "winreg_OpenHKDD");
3452 if (flags
& NDR_SET_VALUES
) {
3453 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
3455 if (flags
& NDR_IN
) {
3456 ndr_print_struct(ndr
, "in", "winreg_OpenHKDD");
3458 ndr_print_ptr(ndr
, "system_name", r
->in
.system_name
);
3460 if (r
->in
.system_name
) {
3461 ndr_print_uint16(ndr
, "system_name", *r
->in
.system_name
);
3464 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
3467 if (flags
& NDR_OUT
) {
3468 ndr_print_struct(ndr
, "out", "winreg_OpenHKDD");
3470 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
3472 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
3474 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
3480 NTSTATUS
ndr_push_winreg_QueryMultipleValues(struct ndr_push
*ndr
, int flags
, const struct winreg_QueryMultipleValues
*r
)
3482 uint32_t cntr_values_1
;
3483 if (flags
& NDR_IN
) {
3484 if (r
->in
.key_handle
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
3485 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.key_handle
));
3486 if (r
->in
.values
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
3487 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.num_values
));
3488 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
3489 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.num_values
));
3490 for (cntr_values_1
= 0; cntr_values_1
< r
->in
.num_values
; cntr_values_1
++) {
3491 NDR_CHECK(ndr_push_QueryMultipleValue(ndr
, NDR_SCALARS
, &r
->in
.values
[cntr_values_1
]));
3493 for (cntr_values_1
= 0; cntr_values_1
< r
->in
.num_values
; cntr_values_1
++) {
3494 NDR_CHECK(ndr_push_QueryMultipleValue(ndr
, NDR_BUFFERS
, &r
->in
.values
[cntr_values_1
]));
3496 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.num_values
));
3497 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
3499 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.buffer_size
));
3500 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
3501 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.buffer_size
));
3502 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, *r
->in
.buffer_size
));
3504 if (r
->in
.buffer_size
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
3505 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.buffer_size
));
3507 if (flags
& NDR_OUT
) {
3508 if (r
->out
.values
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
3509 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.num_values
));
3510 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
3511 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.num_values
));
3512 for (cntr_values_1
= 0; cntr_values_1
< r
->in
.num_values
; cntr_values_1
++) {
3513 NDR_CHECK(ndr_push_QueryMultipleValue(ndr
, NDR_SCALARS
, &r
->out
.values
[cntr_values_1
]));
3515 for (cntr_values_1
= 0; cntr_values_1
< r
->in
.num_values
; cntr_values_1
++) {
3516 NDR_CHECK(ndr_push_QueryMultipleValue(ndr
, NDR_BUFFERS
, &r
->out
.values
[cntr_values_1
]));
3518 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.buffer
));
3519 if (r
->out
.buffer
) {
3520 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.buffer_size
));
3521 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
3522 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.buffer_size
));
3523 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, *r
->out
.buffer_size
));
3525 if (r
->out
.buffer_size
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
3526 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.buffer_size
));
3527 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
3529 return NT_STATUS_OK
;
3532 NTSTATUS
ndr_pull_winreg_QueryMultipleValues(struct ndr_pull
*ndr
, int flags
, struct winreg_QueryMultipleValues
*r
)
3534 uint32_t cntr_values_1
;
3535 uint32_t _ptr_buffer
;
3536 TALLOC_CTX
*_mem_save_key_handle_0
;
3537 TALLOC_CTX
*_mem_save_values_1
;
3538 TALLOC_CTX
*_mem_save_buffer_0
;
3539 TALLOC_CTX
*_mem_save_buffer_size_0
;
3540 if (flags
& NDR_IN
) {
3541 ZERO_STRUCT(r
->out
);
3543 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3544 NDR_PULL_ALLOC(ndr
, r
->in
.key_handle
);
3546 _mem_save_key_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3547 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.key_handle
, LIBNDR_FLAG_REF_ALLOC
);
3548 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.key_handle
));
3549 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_key_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
3550 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.values
));
3551 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.values
));
3552 if (ndr_get_array_length(ndr
, &r
->in
.values
) > ndr_get_array_size(ndr
, &r
->in
.values
)) {
3553 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
));
3555 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3556 NDR_PULL_ALLOC_N(ndr
, r
->in
.values
, ndr_get_array_size(ndr
, &r
->in
.values
));
3558 memcpy(r
->out
.values
, r
->in
.values
, ndr_get_array_size(ndr
, &r
->in
.values
) * sizeof(*r
->in
.values
));
3559 _mem_save_values_1
= NDR_PULL_GET_MEM_CTX(ndr
);
3560 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.values
, 0);
3561 for (cntr_values_1
= 0; cntr_values_1
< r
->in
.num_values
; cntr_values_1
++) {
3562 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr
, NDR_SCALARS
, &r
->in
.values
[cntr_values_1
]));
3564 for (cntr_values_1
= 0; cntr_values_1
< r
->in
.num_values
; cntr_values_1
++) {
3565 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr
, NDR_BUFFERS
, &r
->in
.values
[cntr_values_1
]));
3567 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_values_1
, 0);
3568 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.num_values
));
3569 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
3571 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
3573 r
->in
.buffer
= NULL
;
3576 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3577 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
3578 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.buffer
));
3579 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.buffer
));
3580 if (ndr_get_array_length(ndr
, &r
->in
.buffer
) > ndr_get_array_size(ndr
, &r
->in
.buffer
)) {
3581 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
));
3583 NDR_PULL_ALLOC_N(ndr
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
));
3584 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, ndr_get_array_length(ndr
, &r
->in
.buffer
)));
3585 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
3587 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3588 NDR_PULL_ALLOC(ndr
, r
->in
.buffer_size
);
3590 _mem_save_buffer_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3591 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer_size
, LIBNDR_FLAG_REF_ALLOC
);
3592 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.buffer_size
));
3593 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_size_0
, LIBNDR_FLAG_REF_ALLOC
);
3594 NDR_PULL_ALLOC_N(ndr
, r
->out
.values
, r
->in
.num_values
);
3595 memcpy(r
->out
.values
, r
->in
.values
, r
->in
.num_values
* sizeof(*r
->in
.values
));
3596 NDR_PULL_ALLOC(ndr
, r
->out
.buffer_size
);
3597 *r
->out
.buffer_size
= *r
->in
.buffer_size
;
3599 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.values
, r
->in
.num_values
));
3602 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->in
.values
, r
->in
.num_values
));
3605 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.buffer
, *r
->in
.buffer_size
));
3608 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->in
.buffer
, *r
->in
.buffer_size
));
3611 if (flags
& NDR_OUT
) {
3612 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.values
));
3613 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->out
.values
));
3614 if (ndr_get_array_length(ndr
, &r
->out
.values
) > ndr_get_array_size(ndr
, &r
->out
.values
)) {
3615 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
));
3617 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3618 NDR_PULL_ALLOC_N(ndr
, r
->out
.values
, ndr_get_array_size(ndr
, &r
->out
.values
));
3620 memcpy(r
->out
.values
, r
->in
.values
, ndr_get_array_size(ndr
, &r
->out
.values
) * sizeof(*r
->in
.values
));
3621 _mem_save_values_1
= NDR_PULL_GET_MEM_CTX(ndr
);
3622 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.values
, 0);
3623 for (cntr_values_1
= 0; cntr_values_1
< r
->in
.num_values
; cntr_values_1
++) {
3624 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr
, NDR_SCALARS
, &r
->out
.values
[cntr_values_1
]));
3626 for (cntr_values_1
= 0; cntr_values_1
< r
->in
.num_values
; cntr_values_1
++) {
3627 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr
, NDR_BUFFERS
, &r
->out
.values
[cntr_values_1
]));
3629 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_values_1
, 0);
3630 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
3632 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
3634 r
->out
.buffer
= NULL
;
3636 if (r
->out
.buffer
) {
3637 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3638 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.buffer
, 0);
3639 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.buffer
));
3640 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->out
.buffer
));
3641 if (ndr_get_array_length(ndr
, &r
->out
.buffer
) > ndr_get_array_size(ndr
, &r
->out
.buffer
)) {
3642 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
));
3644 NDR_PULL_ALLOC_N(ndr
, r
->out
.buffer
, ndr_get_array_size(ndr
, &r
->out
.buffer
));
3645 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, ndr_get_array_length(ndr
, &r
->out
.buffer
)));
3646 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
3648 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3649 NDR_PULL_ALLOC(ndr
, r
->out
.buffer_size
);
3651 _mem_save_buffer_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3652 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.buffer_size
, LIBNDR_FLAG_REF_ALLOC
);
3653 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.buffer_size
));
3654 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_size_0
, LIBNDR_FLAG_REF_ALLOC
);
3655 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
3656 if (r
->out
.values
) {
3657 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.values
, r
->in
.num_values
));
3659 if (r
->out
.values
) {
3660 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->out
.values
, r
->in
.num_values
));
3662 if (r
->out
.buffer
) {
3663 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.buffer
, *r
->out
.buffer_size
));
3665 if (r
->out
.buffer
) {
3666 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->out
.buffer
, *r
->out
.buffer_size
));
3669 return NT_STATUS_OK
;
3672 _PUBLIC_
void ndr_print_winreg_QueryMultipleValues(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_QueryMultipleValues
*r
)
3674 uint32_t cntr_values_1
;
3675 ndr_print_struct(ndr
, name
, "winreg_QueryMultipleValues");
3677 if (flags
& NDR_SET_VALUES
) {
3678 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
3680 if (flags
& NDR_IN
) {
3681 ndr_print_struct(ndr
, "in", "winreg_QueryMultipleValues");
3683 ndr_print_ptr(ndr
, "key_handle", r
->in
.key_handle
);
3685 ndr_print_policy_handle(ndr
, "key_handle", r
->in
.key_handle
);
3687 ndr_print_ptr(ndr
, "values", r
->in
.values
);
3689 ndr
->print(ndr
, "%s: ARRAY(%d)", "values", r
->in
.num_values
);
3691 for (cntr_values_1
=0;cntr_values_1
<r
->in
.num_values
;cntr_values_1
++) {
3693 asprintf(&idx_1
, "[%d]", cntr_values_1
);
3695 ndr_print_QueryMultipleValue(ndr
, "values", &r
->in
.values
[cntr_values_1
]);
3701 ndr_print_uint32(ndr
, "num_values", r
->in
.num_values
);
3702 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
3705 ndr_print_array_uint8(ndr
, "buffer", r
->in
.buffer
, *r
->in
.buffer_size
);
3708 ndr_print_ptr(ndr
, "buffer_size", r
->in
.buffer_size
);
3710 ndr_print_uint32(ndr
, "buffer_size", *r
->in
.buffer_size
);
3714 if (flags
& NDR_OUT
) {
3715 ndr_print_struct(ndr
, "out", "winreg_QueryMultipleValues");
3717 ndr_print_ptr(ndr
, "values", r
->out
.values
);
3719 ndr
->print(ndr
, "%s: ARRAY(%d)", "values", r
->in
.num_values
);
3721 for (cntr_values_1
=0;cntr_values_1
<r
->in
.num_values
;cntr_values_1
++) {
3723 asprintf(&idx_1
, "[%d]", cntr_values_1
);
3725 ndr_print_QueryMultipleValue(ndr
, "values", &r
->out
.values
[cntr_values_1
]);
3731 ndr_print_ptr(ndr
, "buffer", r
->out
.buffer
);
3733 if (r
->out
.buffer
) {
3734 ndr_print_array_uint8(ndr
, "buffer", r
->out
.buffer
, *r
->out
.buffer_size
);
3737 ndr_print_ptr(ndr
, "buffer_size", r
->out
.buffer_size
);
3739 ndr_print_uint32(ndr
, "buffer_size", *r
->out
.buffer_size
);
3741 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
3747 NTSTATUS
ndr_push_winreg_InitiateSystemShutdownEx(struct ndr_push
*ndr
, int flags
, const struct winreg_InitiateSystemShutdownEx
*r
)
3749 if (flags
& NDR_IN
) {
3750 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.hostname
));
3751 if (r
->in
.hostname
) {
3752 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.hostname
));
3754 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.message
));
3755 if (r
->in
.message
) {
3756 NDR_CHECK(ndr_push_initshutdown_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.message
));
3758 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.timeout
));
3759 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->in
.force_apps
));
3760 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->in
.reboot
));
3761 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.reason
));
3763 if (flags
& NDR_OUT
) {
3764 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
3766 return NT_STATUS_OK
;
3769 NTSTATUS
ndr_pull_winreg_InitiateSystemShutdownEx(struct ndr_pull
*ndr
, int flags
, struct winreg_InitiateSystemShutdownEx
*r
)
3771 uint32_t _ptr_hostname
;
3772 uint32_t _ptr_message
;
3773 TALLOC_CTX
*_mem_save_hostname_0
;
3774 TALLOC_CTX
*_mem_save_message_0
;
3775 if (flags
& NDR_IN
) {
3776 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hostname
));
3777 if (_ptr_hostname
) {
3778 NDR_PULL_ALLOC(ndr
, r
->in
.hostname
);
3780 r
->in
.hostname
= NULL
;
3782 if (r
->in
.hostname
) {
3783 _mem_save_hostname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3784 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.hostname
, 0);
3785 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.hostname
));
3786 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hostname_0
, 0);
3788 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_message
));
3790 NDR_PULL_ALLOC(ndr
, r
->in
.message
);
3792 r
->in
.message
= NULL
;
3794 if (r
->in
.message
) {
3795 _mem_save_message_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3796 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.message
, 0);
3797 NDR_CHECK(ndr_pull_initshutdown_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.message
));
3798 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_message_0
, 0);
3800 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.timeout
));
3801 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->in
.force_apps
));
3802 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->in
.reboot
));
3803 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.reason
));
3805 if (flags
& NDR_OUT
) {
3806 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
3808 return NT_STATUS_OK
;
3811 _PUBLIC_
void ndr_print_winreg_InitiateSystemShutdownEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_InitiateSystemShutdownEx
*r
)
3813 ndr_print_struct(ndr
, name
, "winreg_InitiateSystemShutdownEx");
3815 if (flags
& NDR_SET_VALUES
) {
3816 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
3818 if (flags
& NDR_IN
) {
3819 ndr_print_struct(ndr
, "in", "winreg_InitiateSystemShutdownEx");
3821 ndr_print_ptr(ndr
, "hostname", r
->in
.hostname
);
3823 if (r
->in
.hostname
) {
3824 ndr_print_uint16(ndr
, "hostname", *r
->in
.hostname
);
3827 ndr_print_ptr(ndr
, "message", r
->in
.message
);
3829 if (r
->in
.message
) {
3830 ndr_print_initshutdown_String(ndr
, "message", r
->in
.message
);
3833 ndr_print_uint32(ndr
, "timeout", r
->in
.timeout
);
3834 ndr_print_uint8(ndr
, "force_apps", r
->in
.force_apps
);
3835 ndr_print_uint8(ndr
, "reboot", r
->in
.reboot
);
3836 ndr_print_uint32(ndr
, "reason", r
->in
.reason
);
3839 if (flags
& NDR_OUT
) {
3840 ndr_print_struct(ndr
, "out", "winreg_InitiateSystemShutdownEx");
3842 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
3848 NTSTATUS
ndr_push_winreg_SaveKeyEx(struct ndr_push
*ndr
, int flags
, const struct winreg_SaveKeyEx
*r
)
3850 if (flags
& NDR_IN
) {
3852 if (flags
& NDR_OUT
) {
3853 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
3855 return NT_STATUS_OK
;
3858 NTSTATUS
ndr_pull_winreg_SaveKeyEx(struct ndr_pull
*ndr
, int flags
, struct winreg_SaveKeyEx
*r
)
3860 if (flags
& NDR_IN
) {
3862 if (flags
& NDR_OUT
) {
3863 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
3865 return NT_STATUS_OK
;
3868 _PUBLIC_
void ndr_print_winreg_SaveKeyEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_SaveKeyEx
*r
)
3870 ndr_print_struct(ndr
, name
, "winreg_SaveKeyEx");
3872 if (flags
& NDR_SET_VALUES
) {
3873 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
3875 if (flags
& NDR_IN
) {
3876 ndr_print_struct(ndr
, "in", "winreg_SaveKeyEx");
3880 if (flags
& NDR_OUT
) {
3881 ndr_print_struct(ndr
, "out", "winreg_SaveKeyEx");
3883 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
3889 NTSTATUS
ndr_push_winreg_OpenHKPT(struct ndr_push
*ndr
, int flags
, const struct winreg_OpenHKPT
*r
)
3891 if (flags
& NDR_IN
) {
3892 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.system_name
));
3893 if (r
->in
.system_name
) {
3894 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.system_name
));
3896 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
3898 if (flags
& NDR_OUT
) {
3899 if (r
->out
.handle
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
3900 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.handle
));
3901 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
3903 return NT_STATUS_OK
;
3906 NTSTATUS
ndr_pull_winreg_OpenHKPT(struct ndr_pull
*ndr
, int flags
, struct winreg_OpenHKPT
*r
)
3908 uint32_t _ptr_system_name
;
3909 TALLOC_CTX
*_mem_save_system_name_0
;
3910 TALLOC_CTX
*_mem_save_handle_0
;
3911 if (flags
& NDR_IN
) {
3912 ZERO_STRUCT(r
->out
);
3914 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_system_name
));
3915 if (_ptr_system_name
) {
3916 NDR_PULL_ALLOC(ndr
, r
->in
.system_name
);
3918 r
->in
.system_name
= NULL
;
3920 if (r
->in
.system_name
) {
3921 _mem_save_system_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3922 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.system_name
, 0);
3923 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.system_name
));
3924 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_system_name_0
, 0);
3926 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
3927 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
3928 ZERO_STRUCTP(r
->out
.handle
);
3930 if (flags
& NDR_OUT
) {
3931 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3932 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
3934 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3935 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
3936 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.handle
));
3937 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
3938 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
3940 return NT_STATUS_OK
;
3943 _PUBLIC_
void ndr_print_winreg_OpenHKPT(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_OpenHKPT
*r
)
3945 ndr_print_struct(ndr
, name
, "winreg_OpenHKPT");
3947 if (flags
& NDR_SET_VALUES
) {
3948 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
3950 if (flags
& NDR_IN
) {
3951 ndr_print_struct(ndr
, "in", "winreg_OpenHKPT");
3953 ndr_print_ptr(ndr
, "system_name", r
->in
.system_name
);
3955 if (r
->in
.system_name
) {
3956 ndr_print_uint16(ndr
, "system_name", *r
->in
.system_name
);
3959 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
3962 if (flags
& NDR_OUT
) {
3963 ndr_print_struct(ndr
, "out", "winreg_OpenHKPT");
3965 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
3967 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
3969 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
3975 NTSTATUS
ndr_push_winreg_OpenHKPN(struct ndr_push
*ndr
, int flags
, const struct winreg_OpenHKPN
*r
)
3977 if (flags
& NDR_IN
) {
3978 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.system_name
));
3979 if (r
->in
.system_name
) {
3980 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.system_name
));
3982 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
3984 if (flags
& NDR_OUT
) {
3985 if (r
->out
.handle
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
3986 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.handle
));
3987 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
3989 return NT_STATUS_OK
;
3992 NTSTATUS
ndr_pull_winreg_OpenHKPN(struct ndr_pull
*ndr
, int flags
, struct winreg_OpenHKPN
*r
)
3994 uint32_t _ptr_system_name
;
3995 TALLOC_CTX
*_mem_save_system_name_0
;
3996 TALLOC_CTX
*_mem_save_handle_0
;
3997 if (flags
& NDR_IN
) {
3998 ZERO_STRUCT(r
->out
);
4000 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_system_name
));
4001 if (_ptr_system_name
) {
4002 NDR_PULL_ALLOC(ndr
, r
->in
.system_name
);
4004 r
->in
.system_name
= NULL
;
4006 if (r
->in
.system_name
) {
4007 _mem_save_system_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4008 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.system_name
, 0);
4009 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.system_name
));
4010 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_system_name_0
, 0);
4012 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
4013 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
4014 ZERO_STRUCTP(r
->out
.handle
);
4016 if (flags
& NDR_OUT
) {
4017 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
4018 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
4020 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4021 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
4022 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.handle
));
4023 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
4024 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
4026 return NT_STATUS_OK
;
4029 _PUBLIC_
void ndr_print_winreg_OpenHKPN(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_OpenHKPN
*r
)
4031 ndr_print_struct(ndr
, name
, "winreg_OpenHKPN");
4033 if (flags
& NDR_SET_VALUES
) {
4034 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
4036 if (flags
& NDR_IN
) {
4037 ndr_print_struct(ndr
, "in", "winreg_OpenHKPN");
4039 ndr_print_ptr(ndr
, "system_name", r
->in
.system_name
);
4041 if (r
->in
.system_name
) {
4042 ndr_print_uint16(ndr
, "system_name", *r
->in
.system_name
);
4045 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
4048 if (flags
& NDR_OUT
) {
4049 ndr_print_struct(ndr
, "out", "winreg_OpenHKPN");
4051 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
4053 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
4055 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
4061 NTSTATUS
ndr_push_winreg_QueryMultipleValues2(struct ndr_push
*ndr
, int flags
, const struct winreg_QueryMultipleValues2
*r
)
4063 if (flags
& NDR_IN
) {
4065 if (flags
& NDR_OUT
) {
4066 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
4068 return NT_STATUS_OK
;
4071 NTSTATUS
ndr_pull_winreg_QueryMultipleValues2(struct ndr_pull
*ndr
, int flags
, struct winreg_QueryMultipleValues2
*r
)
4073 if (flags
& NDR_IN
) {
4075 if (flags
& NDR_OUT
) {
4076 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
4078 return NT_STATUS_OK
;
4081 _PUBLIC_
void ndr_print_winreg_QueryMultipleValues2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_QueryMultipleValues2
*r
)
4083 ndr_print_struct(ndr
, name
, "winreg_QueryMultipleValues2");
4085 if (flags
& NDR_SET_VALUES
) {
4086 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
4088 if (flags
& NDR_IN
) {
4089 ndr_print_struct(ndr
, "in", "winreg_QueryMultipleValues2");
4093 if (flags
& NDR_OUT
) {
4094 ndr_print_struct(ndr
, "out", "winreg_QueryMultipleValues2");
4096 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
4102 const struct dcerpc_interface_call winreg_calls
[] = {
4105 sizeof(struct winreg_OpenHKCR
),
4106 (ndr_push_flags_fn_t
) ndr_push_winreg_OpenHKCR
,
4107 (ndr_pull_flags_fn_t
) ndr_pull_winreg_OpenHKCR
,
4108 (ndr_print_function_t
) ndr_print_winreg_OpenHKCR
,
4113 sizeof(struct winreg_OpenHKCU
),
4114 (ndr_push_flags_fn_t
) ndr_push_winreg_OpenHKCU
,
4115 (ndr_pull_flags_fn_t
) ndr_pull_winreg_OpenHKCU
,
4116 (ndr_print_function_t
) ndr_print_winreg_OpenHKCU
,
4121 sizeof(struct winreg_OpenHKLM
),
4122 (ndr_push_flags_fn_t
) ndr_push_winreg_OpenHKLM
,
4123 (ndr_pull_flags_fn_t
) ndr_pull_winreg_OpenHKLM
,
4124 (ndr_print_function_t
) ndr_print_winreg_OpenHKLM
,
4129 sizeof(struct winreg_OpenHKPD
),
4130 (ndr_push_flags_fn_t
) ndr_push_winreg_OpenHKPD
,
4131 (ndr_pull_flags_fn_t
) ndr_pull_winreg_OpenHKPD
,
4132 (ndr_print_function_t
) ndr_print_winreg_OpenHKPD
,
4137 sizeof(struct winreg_OpenHKU
),
4138 (ndr_push_flags_fn_t
) ndr_push_winreg_OpenHKU
,
4139 (ndr_pull_flags_fn_t
) ndr_pull_winreg_OpenHKU
,
4140 (ndr_print_function_t
) ndr_print_winreg_OpenHKU
,
4145 sizeof(struct winreg_CloseKey
),
4146 (ndr_push_flags_fn_t
) ndr_push_winreg_CloseKey
,
4147 (ndr_pull_flags_fn_t
) ndr_pull_winreg_CloseKey
,
4148 (ndr_print_function_t
) ndr_print_winreg_CloseKey
,
4153 sizeof(struct winreg_CreateKey
),
4154 (ndr_push_flags_fn_t
) ndr_push_winreg_CreateKey
,
4155 (ndr_pull_flags_fn_t
) ndr_pull_winreg_CreateKey
,
4156 (ndr_print_function_t
) ndr_print_winreg_CreateKey
,
4161 sizeof(struct winreg_DeleteKey
),
4162 (ndr_push_flags_fn_t
) ndr_push_winreg_DeleteKey
,
4163 (ndr_pull_flags_fn_t
) ndr_pull_winreg_DeleteKey
,
4164 (ndr_print_function_t
) ndr_print_winreg_DeleteKey
,
4168 "winreg_DeleteValue",
4169 sizeof(struct winreg_DeleteValue
),
4170 (ndr_push_flags_fn_t
) ndr_push_winreg_DeleteValue
,
4171 (ndr_pull_flags_fn_t
) ndr_pull_winreg_DeleteValue
,
4172 (ndr_print_function_t
) ndr_print_winreg_DeleteValue
,
4177 sizeof(struct winreg_EnumKey
),
4178 (ndr_push_flags_fn_t
) ndr_push_winreg_EnumKey
,
4179 (ndr_pull_flags_fn_t
) ndr_pull_winreg_EnumKey
,
4180 (ndr_print_function_t
) ndr_print_winreg_EnumKey
,
4185 sizeof(struct winreg_EnumValue
),
4186 (ndr_push_flags_fn_t
) ndr_push_winreg_EnumValue
,
4187 (ndr_pull_flags_fn_t
) ndr_pull_winreg_EnumValue
,
4188 (ndr_print_function_t
) ndr_print_winreg_EnumValue
,
4193 sizeof(struct winreg_FlushKey
),
4194 (ndr_push_flags_fn_t
) ndr_push_winreg_FlushKey
,
4195 (ndr_pull_flags_fn_t
) ndr_pull_winreg_FlushKey
,
4196 (ndr_print_function_t
) ndr_print_winreg_FlushKey
,
4200 "winreg_GetKeySecurity",
4201 sizeof(struct winreg_GetKeySecurity
),
4202 (ndr_push_flags_fn_t
) ndr_push_winreg_GetKeySecurity
,
4203 (ndr_pull_flags_fn_t
) ndr_pull_winreg_GetKeySecurity
,
4204 (ndr_print_function_t
) ndr_print_winreg_GetKeySecurity
,
4209 sizeof(struct winreg_LoadKey
),
4210 (ndr_push_flags_fn_t
) ndr_push_winreg_LoadKey
,
4211 (ndr_pull_flags_fn_t
) ndr_pull_winreg_LoadKey
,
4212 (ndr_print_function_t
) ndr_print_winreg_LoadKey
,
4216 "winreg_NotifyChangeKeyValue",
4217 sizeof(struct winreg_NotifyChangeKeyValue
),
4218 (ndr_push_flags_fn_t
) ndr_push_winreg_NotifyChangeKeyValue
,
4219 (ndr_pull_flags_fn_t
) ndr_pull_winreg_NotifyChangeKeyValue
,
4220 (ndr_print_function_t
) ndr_print_winreg_NotifyChangeKeyValue
,
4225 sizeof(struct winreg_OpenKey
),
4226 (ndr_push_flags_fn_t
) ndr_push_winreg_OpenKey
,
4227 (ndr_pull_flags_fn_t
) ndr_pull_winreg_OpenKey
,
4228 (ndr_print_function_t
) ndr_print_winreg_OpenKey
,
4232 "winreg_QueryInfoKey",
4233 sizeof(struct winreg_QueryInfoKey
),
4234 (ndr_push_flags_fn_t
) ndr_push_winreg_QueryInfoKey
,
4235 (ndr_pull_flags_fn_t
) ndr_pull_winreg_QueryInfoKey
,
4236 (ndr_print_function_t
) ndr_print_winreg_QueryInfoKey
,
4240 "winreg_QueryValue",
4241 sizeof(struct winreg_QueryValue
),
4242 (ndr_push_flags_fn_t
) ndr_push_winreg_QueryValue
,
4243 (ndr_pull_flags_fn_t
) ndr_pull_winreg_QueryValue
,
4244 (ndr_print_function_t
) ndr_print_winreg_QueryValue
,
4248 "winreg_ReplaceKey",
4249 sizeof(struct winreg_ReplaceKey
),
4250 (ndr_push_flags_fn_t
) ndr_push_winreg_ReplaceKey
,
4251 (ndr_pull_flags_fn_t
) ndr_pull_winreg_ReplaceKey
,
4252 (ndr_print_function_t
) ndr_print_winreg_ReplaceKey
,
4256 "winreg_RestoreKey",
4257 sizeof(struct winreg_RestoreKey
),
4258 (ndr_push_flags_fn_t
) ndr_push_winreg_RestoreKey
,
4259 (ndr_pull_flags_fn_t
) ndr_pull_winreg_RestoreKey
,
4260 (ndr_print_function_t
) ndr_print_winreg_RestoreKey
,
4265 sizeof(struct winreg_SaveKey
),
4266 (ndr_push_flags_fn_t
) ndr_push_winreg_SaveKey
,
4267 (ndr_pull_flags_fn_t
) ndr_pull_winreg_SaveKey
,
4268 (ndr_print_function_t
) ndr_print_winreg_SaveKey
,
4272 "winreg_SetKeySecurity",
4273 sizeof(struct winreg_SetKeySecurity
),
4274 (ndr_push_flags_fn_t
) ndr_push_winreg_SetKeySecurity
,
4275 (ndr_pull_flags_fn_t
) ndr_pull_winreg_SetKeySecurity
,
4276 (ndr_print_function_t
) ndr_print_winreg_SetKeySecurity
,
4281 sizeof(struct winreg_SetValue
),
4282 (ndr_push_flags_fn_t
) ndr_push_winreg_SetValue
,
4283 (ndr_pull_flags_fn_t
) ndr_pull_winreg_SetValue
,
4284 (ndr_print_function_t
) ndr_print_winreg_SetValue
,
4289 sizeof(struct winreg_UnLoadKey
),
4290 (ndr_push_flags_fn_t
) ndr_push_winreg_UnLoadKey
,
4291 (ndr_pull_flags_fn_t
) ndr_pull_winreg_UnLoadKey
,
4292 (ndr_print_function_t
) ndr_print_winreg_UnLoadKey
,
4296 "winreg_InitiateSystemShutdown",
4297 sizeof(struct winreg_InitiateSystemShutdown
),
4298 (ndr_push_flags_fn_t
) ndr_push_winreg_InitiateSystemShutdown
,
4299 (ndr_pull_flags_fn_t
) ndr_pull_winreg_InitiateSystemShutdown
,
4300 (ndr_print_function_t
) ndr_print_winreg_InitiateSystemShutdown
,
4304 "winreg_AbortSystemShutdown",
4305 sizeof(struct winreg_AbortSystemShutdown
),
4306 (ndr_push_flags_fn_t
) ndr_push_winreg_AbortSystemShutdown
,
4307 (ndr_pull_flags_fn_t
) ndr_pull_winreg_AbortSystemShutdown
,
4308 (ndr_print_function_t
) ndr_print_winreg_AbortSystemShutdown
,
4312 "winreg_GetVersion",
4313 sizeof(struct winreg_GetVersion
),
4314 (ndr_push_flags_fn_t
) ndr_push_winreg_GetVersion
,
4315 (ndr_pull_flags_fn_t
) ndr_pull_winreg_GetVersion
,
4316 (ndr_print_function_t
) ndr_print_winreg_GetVersion
,
4321 sizeof(struct winreg_OpenHKCC
),
4322 (ndr_push_flags_fn_t
) ndr_push_winreg_OpenHKCC
,
4323 (ndr_pull_flags_fn_t
) ndr_pull_winreg_OpenHKCC
,
4324 (ndr_print_function_t
) ndr_print_winreg_OpenHKCC
,
4329 sizeof(struct winreg_OpenHKDD
),
4330 (ndr_push_flags_fn_t
) ndr_push_winreg_OpenHKDD
,
4331 (ndr_pull_flags_fn_t
) ndr_pull_winreg_OpenHKDD
,
4332 (ndr_print_function_t
) ndr_print_winreg_OpenHKDD
,
4336 "winreg_QueryMultipleValues",
4337 sizeof(struct winreg_QueryMultipleValues
),
4338 (ndr_push_flags_fn_t
) ndr_push_winreg_QueryMultipleValues
,
4339 (ndr_pull_flags_fn_t
) ndr_pull_winreg_QueryMultipleValues
,
4340 (ndr_print_function_t
) ndr_print_winreg_QueryMultipleValues
,
4344 "winreg_InitiateSystemShutdownEx",
4345 sizeof(struct winreg_InitiateSystemShutdownEx
),
4346 (ndr_push_flags_fn_t
) ndr_push_winreg_InitiateSystemShutdownEx
,
4347 (ndr_pull_flags_fn_t
) ndr_pull_winreg_InitiateSystemShutdownEx
,
4348 (ndr_print_function_t
) ndr_print_winreg_InitiateSystemShutdownEx
,
4353 sizeof(struct winreg_SaveKeyEx
),
4354 (ndr_push_flags_fn_t
) ndr_push_winreg_SaveKeyEx
,
4355 (ndr_pull_flags_fn_t
) ndr_pull_winreg_SaveKeyEx
,
4356 (ndr_print_function_t
) ndr_print_winreg_SaveKeyEx
,
4361 sizeof(struct winreg_OpenHKPT
),
4362 (ndr_push_flags_fn_t
) ndr_push_winreg_OpenHKPT
,
4363 (ndr_pull_flags_fn_t
) ndr_pull_winreg_OpenHKPT
,
4364 (ndr_print_function_t
) ndr_print_winreg_OpenHKPT
,
4369 sizeof(struct winreg_OpenHKPN
),
4370 (ndr_push_flags_fn_t
) ndr_push_winreg_OpenHKPN
,
4371 (ndr_pull_flags_fn_t
) ndr_pull_winreg_OpenHKPN
,
4372 (ndr_print_function_t
) ndr_print_winreg_OpenHKPN
,
4376 "winreg_QueryMultipleValues2",
4377 sizeof(struct winreg_QueryMultipleValues2
),
4378 (ndr_push_flags_fn_t
) ndr_push_winreg_QueryMultipleValues2
,
4379 (ndr_pull_flags_fn_t
) ndr_pull_winreg_QueryMultipleValues2
,
4380 (ndr_print_function_t
) ndr_print_winreg_QueryMultipleValues2
,
4383 { NULL
, 0, NULL
, NULL
, NULL
, False
}
4386 const char * const winreg_endpoint_strings
[] = {
4387 "ncacn_np:[\\pipe\\winreg]",
4392 const struct dcerpc_endpoint_list winreg_endpoints
= {
4394 .names
= winreg_endpoint_strings
4397 const char * const winreg_authservice_strings
[] = {
4401 const struct dcerpc_authservice_list winreg_authservices
= {
4403 .names
= winreg_authservice_strings
4407 const struct dcerpc_interface_table dcerpc_table_winreg
= {
4410 {0x338cd001,0x2244,0x31f1,{0xaa,0xaa},{0x90,0x00,0x38,0x00,0x10,0x03}},
4411 DCERPC_WINREG_VERSION
4413 .helpstring
= DCERPC_WINREG_HELPSTRING
,
4415 .calls
= winreg_calls
,
4416 .endpoints
= &winreg_endpoints
,
4417 .authservices
= &winreg_authservices