/* [<][>][^][v][top][bottom][index][help] */
DEFINITIONS
This source file includes following definitions.
- ndr_push_winreg_AccessMask
- ndr_pull_winreg_AccessMask
- ndr_print_winreg_AccessMask
- ndr_push_winreg_Type
- ndr_pull_winreg_Type
- ndr_print_winreg_Type
- ndr_push_winreg_String
- ndr_pull_winreg_String
- ndr_print_winreg_String
- ndr_push_KeySecurityData
- ndr_pull_KeySecurityData
- ndr_print_KeySecurityData
- ndr_push_winreg_SecBuf
- ndr_pull_winreg_SecBuf
- ndr_print_winreg_SecBuf
- ndr_push_winreg_CreateAction
- ndr_pull_winreg_CreateAction
- ndr_print_winreg_CreateAction
- ndr_push_winreg_StringBuf
- ndr_pull_winreg_StringBuf
- ndr_print_winreg_StringBuf
- ndr_push_winreg_ValNameBuf
- ndr_pull_winreg_ValNameBuf
- ndr_print_winreg_ValNameBuf
- ndr_push_winreg_NotifyChangeType
- ndr_pull_winreg_NotifyChangeType
- ndr_print_winreg_NotifyChangeType
- ndr_push_KeySecurityAttribute
- ndr_pull_KeySecurityAttribute
- ndr_print_KeySecurityAttribute
- ndr_push_QueryMultipleValue
- ndr_pull_QueryMultipleValue
- ndr_print_QueryMultipleValue
- ndr_push_winreg_OpenHKCR
- ndr_pull_winreg_OpenHKCR
- ndr_print_winreg_OpenHKCR
- ndr_push_winreg_OpenHKCU
- ndr_pull_winreg_OpenHKCU
- ndr_print_winreg_OpenHKCU
- ndr_push_winreg_OpenHKLM
- ndr_pull_winreg_OpenHKLM
- ndr_print_winreg_OpenHKLM
- ndr_push_winreg_OpenHKPD
- ndr_pull_winreg_OpenHKPD
- ndr_print_winreg_OpenHKPD
- ndr_push_winreg_OpenHKU
- ndr_pull_winreg_OpenHKU
- ndr_print_winreg_OpenHKU
- ndr_push_winreg_CloseKey
- ndr_pull_winreg_CloseKey
- ndr_print_winreg_CloseKey
- ndr_push_winreg_CreateKey
- ndr_pull_winreg_CreateKey
- ndr_print_winreg_CreateKey
- ndr_push_winreg_DeleteKey
- ndr_pull_winreg_DeleteKey
- ndr_print_winreg_DeleteKey
- ndr_push_winreg_DeleteValue
- ndr_pull_winreg_DeleteValue
- ndr_print_winreg_DeleteValue
- ndr_push_winreg_EnumKey
- ndr_pull_winreg_EnumKey
- ndr_print_winreg_EnumKey
- ndr_push_winreg_EnumValue
- ndr_pull_winreg_EnumValue
- ndr_print_winreg_EnumValue
- ndr_push_winreg_FlushKey
- ndr_pull_winreg_FlushKey
- ndr_print_winreg_FlushKey
- ndr_push_winreg_GetKeySecurity
- ndr_pull_winreg_GetKeySecurity
- ndr_print_winreg_GetKeySecurity
- ndr_push_winreg_LoadKey
- ndr_pull_winreg_LoadKey
- ndr_print_winreg_LoadKey
- ndr_push_winreg_NotifyChangeKeyValue
- ndr_pull_winreg_NotifyChangeKeyValue
- ndr_print_winreg_NotifyChangeKeyValue
- ndr_push_winreg_OpenKey
- ndr_pull_winreg_OpenKey
- ndr_print_winreg_OpenKey
- ndr_push_winreg_QueryInfoKey
- ndr_pull_winreg_QueryInfoKey
- ndr_print_winreg_QueryInfoKey
- ndr_push_winreg_QueryValue
- ndr_pull_winreg_QueryValue
- ndr_print_winreg_QueryValue
- ndr_push_winreg_ReplaceKey
- ndr_pull_winreg_ReplaceKey
- ndr_print_winreg_ReplaceKey
- ndr_push_winreg_RestoreKey
- ndr_pull_winreg_RestoreKey
- ndr_print_winreg_RestoreKey
- ndr_push_winreg_SaveKey
- ndr_pull_winreg_SaveKey
- ndr_print_winreg_SaveKey
- ndr_push_winreg_SetKeySecurity
- ndr_pull_winreg_SetKeySecurity
- ndr_print_winreg_SetKeySecurity
- ndr_push_winreg_SetValue
- ndr_pull_winreg_SetValue
- ndr_print_winreg_SetValue
- ndr_push_winreg_UnLoadKey
- ndr_pull_winreg_UnLoadKey
- ndr_print_winreg_UnLoadKey
- ndr_push_winreg_InitiateSystemShutdown
- ndr_pull_winreg_InitiateSystemShutdown
- ndr_print_winreg_InitiateSystemShutdown
- ndr_push_winreg_AbortSystemShutdown
- ndr_pull_winreg_AbortSystemShutdown
- ndr_print_winreg_AbortSystemShutdown
- ndr_push_winreg_GetVersion
- ndr_pull_winreg_GetVersion
- ndr_print_winreg_GetVersion
- ndr_push_winreg_OpenHKCC
- ndr_pull_winreg_OpenHKCC
- ndr_print_winreg_OpenHKCC
- ndr_push_winreg_OpenHKDD
- ndr_pull_winreg_OpenHKDD
- ndr_print_winreg_OpenHKDD
- ndr_push_winreg_QueryMultipleValues
- ndr_pull_winreg_QueryMultipleValues
- ndr_print_winreg_QueryMultipleValues
- ndr_push_winreg_InitiateSystemShutdownEx
- ndr_pull_winreg_InitiateSystemShutdownEx
- ndr_print_winreg_InitiateSystemShutdownEx
- ndr_push_winreg_SaveKeyEx
- ndr_pull_winreg_SaveKeyEx
- ndr_print_winreg_SaveKeyEx
- ndr_push_winreg_OpenHKPT
- ndr_pull_winreg_OpenHKPT
- ndr_print_winreg_OpenHKPT
- ndr_push_winreg_OpenHKPN
- ndr_pull_winreg_OpenHKPN
- ndr_print_winreg_OpenHKPN
- ndr_push_winreg_QueryMultipleValues2
- ndr_pull_winreg_QueryMultipleValues2
- ndr_print_winreg_QueryMultipleValues2
1 /* parser auto-generated by pidl */
2
3 #include "includes.h"
4 #include "../librpc/gen_ndr/ndr_winreg.h"
5
6 #include "librpc/gen_ndr/ndr_lsa.h"
7 #include "librpc/gen_ndr/ndr_security.h"
8 static enum ndr_err_code ndr_push_winreg_AccessMask(struct ndr_push *ndr, int ndr_flags, uint32_t r)
/* [<][>][^][v][top][bottom][index][help] */
9 {
10 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
11 return NDR_ERR_SUCCESS;
12 }
13
14 static enum ndr_err_code ndr_pull_winreg_AccessMask(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
/* [<][>][^][v][top][bottom][index][help] */
15 {
16 uint32_t v;
17 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18 *r = v;
19 return NDR_ERR_SUCCESS;
20 }
21
22 _PUBLIC_ void ndr_print_winreg_AccessMask(struct ndr_print *ndr, const char *name, uint32_t r)
/* [<][>][^][v][top][bottom][index][help] */
23 {
24 ndr_print_uint32(ndr, name, r);
25 ndr->depth++;
26 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "KEY_QUERY_VALUE", KEY_QUERY_VALUE, r);
27 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "KEY_SET_VALUE", KEY_SET_VALUE, r);
28 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "KEY_CREATE_SUB_KEY", KEY_CREATE_SUB_KEY, r);
29 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "KEY_ENUMERATE_SUB_KEYS", KEY_ENUMERATE_SUB_KEYS, r);
30 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "KEY_NOTIFY", KEY_NOTIFY, r);
31 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "KEY_CREATE_LINK", KEY_CREATE_LINK, r);
32 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "KEY_WOW64_64KEY", KEY_WOW64_64KEY, r);
33 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "KEY_WOW64_32KEY", KEY_WOW64_32KEY, r);
34 ndr->depth--;
35 }
36
37 _PUBLIC_ enum ndr_err_code ndr_push_winreg_Type(struct ndr_push *ndr, int ndr_flags, enum winreg_Type r)
/* [<][>][^][v][top][bottom][index][help] */
38 {
39 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
40 return NDR_ERR_SUCCESS;
41 }
42
43 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_Type(struct ndr_pull *ndr, int ndr_flags, enum winreg_Type *r)
/* [<][>][^][v][top][bottom][index][help] */
44 {
45 uint32_t v;
46 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
47 *r = v;
48 return NDR_ERR_SUCCESS;
49 }
50
51 _PUBLIC_ void ndr_print_winreg_Type(struct ndr_print *ndr, const char *name, enum winreg_Type r)
/* [<][>][^][v][top][bottom][index][help] */
52 {
53 const char *val = NULL;
54
55 switch (r) {
56 case REG_NONE: val = "REG_NONE"; break;
57 case REG_SZ: val = "REG_SZ"; break;
58 case REG_EXPAND_SZ: val = "REG_EXPAND_SZ"; break;
59 case REG_BINARY: val = "REG_BINARY"; break;
60 case REG_DWORD: val = "REG_DWORD"; break;
61 case REG_DWORD_BIG_ENDIAN: val = "REG_DWORD_BIG_ENDIAN"; break;
62 case REG_LINK: val = "REG_LINK"; break;
63 case REG_MULTI_SZ: val = "REG_MULTI_SZ"; break;
64 case REG_RESOURCE_LIST: val = "REG_RESOURCE_LIST"; break;
65 case REG_FULL_RESOURCE_DESCRIPTOR: val = "REG_FULL_RESOURCE_DESCRIPTOR"; break;
66 case REG_RESOURCE_REQUIREMENTS_LIST: val = "REG_RESOURCE_REQUIREMENTS_LIST"; break;
67 case REG_QWORD: val = "REG_QWORD"; break;
68 }
69 ndr_print_enum(ndr, name, "ENUM", val, r);
70 }
71
72 _PUBLIC_ enum ndr_err_code ndr_push_winreg_String(struct ndr_push *ndr, int ndr_flags, const struct winreg_String *r)
/* [<][>][^][v][top][bottom][index][help] */
73 {
74 if (ndr_flags & NDR_SCALARS) {
75 NDR_CHECK(ndr_push_align(ndr, 4));
76 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, strlen_m_term(r->name) * 2));
77 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, strlen_m_term(r->name) * 2));
78 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
79 }
80 if (ndr_flags & NDR_BUFFERS) {
81 if (r->name) {
82 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
83 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
84 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
85 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
86 }
87 }
88 return NDR_ERR_SUCCESS;
89 }
90
91 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_String(struct ndr_pull *ndr, int ndr_flags, struct winreg_String *r)
/* [<][>][^][v][top][bottom][index][help] */
92 {
93 uint32_t _ptr_name;
94 TALLOC_CTX *_mem_save_name_0;
95 if (ndr_flags & NDR_SCALARS) {
96 NDR_CHECK(ndr_pull_align(ndr, 4));
97 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->name_len));
98 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->name_size));
99 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
100 if (_ptr_name) {
101 NDR_PULL_ALLOC(ndr, r->name);
102 } else {
103 r->name = NULL;
104 }
105 }
106 if (ndr_flags & NDR_BUFFERS) {
107 if (r->name) {
108 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
109 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
110 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
111 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
112 if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
113 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));
114 }
115 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
116 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
117 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
118 }
119 }
120 return NDR_ERR_SUCCESS;
121 }
122
123 _PUBLIC_ void ndr_print_winreg_String(struct ndr_print *ndr, const char *name, const struct winreg_String *r)
/* [<][>][^][v][top][bottom][index][help] */
124 {
125 ndr_print_struct(ndr, name, "winreg_String");
126 ndr->depth++;
127 ndr_print_uint16(ndr, "name_len", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?strlen_m_term(r->name) * 2:r->name_len);
128 ndr_print_uint16(ndr, "name_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?strlen_m_term(r->name) * 2:r->name_size);
129 ndr_print_ptr(ndr, "name", r->name);
130 ndr->depth++;
131 if (r->name) {
132 ndr_print_string(ndr, "name", r->name);
133 }
134 ndr->depth--;
135 ndr->depth--;
136 }
137
138 static enum ndr_err_code ndr_push_KeySecurityData(struct ndr_push *ndr, int ndr_flags, const struct KeySecurityData *r)
/* [<][>][^][v][top][bottom][index][help] */
139 {
140 if (ndr_flags & NDR_SCALARS) {
141 NDR_CHECK(ndr_push_align(ndr, 4));
142 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
143 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
144 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->len));
145 }
146 if (ndr_flags & NDR_BUFFERS) {
147 if (r->data) {
148 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
149 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
150 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->len));
151 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->len));
152 }
153 }
154 return NDR_ERR_SUCCESS;
155 }
156
157 static enum ndr_err_code ndr_pull_KeySecurityData(struct ndr_pull *ndr, int ndr_flags, struct KeySecurityData *r)
/* [<][>][^][v][top][bottom][index][help] */
158 {
159 uint32_t _ptr_data;
160 TALLOC_CTX *_mem_save_data_0;
161 if (ndr_flags & NDR_SCALARS) {
162 NDR_CHECK(ndr_pull_align(ndr, 4));
163 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
164 if (_ptr_data) {
165 NDR_PULL_ALLOC(ndr, r->data);
166 } else {
167 r->data = NULL;
168 }
169 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
170 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->len));
171 }
172 if (ndr_flags & NDR_BUFFERS) {
173 if (r->data) {
174 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
175 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
176 NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
177 NDR_CHECK(ndr_pull_array_length(ndr, &r->data));
178 if (ndr_get_array_length(ndr, &r->data) > ndr_get_array_size(ndr, &r->data)) {
179 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));
180 }
181 NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
182 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_length(ndr, &r->data)));
183 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
184 }
185 if (r->data) {
186 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->size));
187 }
188 if (r->data) {
189 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->data, r->len));
190 }
191 }
192 return NDR_ERR_SUCCESS;
193 }
194
195 _PUBLIC_ void ndr_print_KeySecurityData(struct ndr_print *ndr, const char *name, const struct KeySecurityData *r)
/* [<][>][^][v][top][bottom][index][help] */
196 {
197 ndr_print_struct(ndr, name, "KeySecurityData");
198 ndr->depth++;
199 ndr_print_ptr(ndr, "data", r->data);
200 ndr->depth++;
201 if (r->data) {
202 ndr_print_array_uint8(ndr, "data", r->data, r->len);
203 }
204 ndr->depth--;
205 ndr_print_uint32(ndr, "size", r->size);
206 ndr_print_uint32(ndr, "len", r->len);
207 ndr->depth--;
208 }
209
210 static enum ndr_err_code ndr_push_winreg_SecBuf(struct ndr_push *ndr, int ndr_flags, const struct winreg_SecBuf *r)
/* [<][>][^][v][top][bottom][index][help] */
211 {
212 if (ndr_flags & NDR_SCALARS) {
213 NDR_CHECK(ndr_push_align(ndr, 4));
214 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
215 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_SCALARS, &r->sd));
216 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->inherit));
217 }
218 if (ndr_flags & NDR_BUFFERS) {
219 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_BUFFERS, &r->sd));
220 }
221 return NDR_ERR_SUCCESS;
222 }
223
224 static enum ndr_err_code ndr_pull_winreg_SecBuf(struct ndr_pull *ndr, int ndr_flags, struct winreg_SecBuf *r)
/* [<][>][^][v][top][bottom][index][help] */
225 {
226 if (ndr_flags & NDR_SCALARS) {
227 NDR_CHECK(ndr_pull_align(ndr, 4));
228 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
229 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_SCALARS, &r->sd));
230 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->inherit));
231 }
232 if (ndr_flags & NDR_BUFFERS) {
233 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_BUFFERS, &r->sd));
234 }
235 return NDR_ERR_SUCCESS;
236 }
237
238 _PUBLIC_ void ndr_print_winreg_SecBuf(struct ndr_print *ndr, const char *name, const struct winreg_SecBuf *r)
/* [<][>][^][v][top][bottom][index][help] */
239 {
240 ndr_print_struct(ndr, name, "winreg_SecBuf");
241 ndr->depth++;
242 ndr_print_uint32(ndr, "length", r->length);
243 ndr_print_KeySecurityData(ndr, "sd", &r->sd);
244 ndr_print_uint8(ndr, "inherit", r->inherit);
245 ndr->depth--;
246 }
247
248 static enum ndr_err_code ndr_push_winreg_CreateAction(struct ndr_push *ndr, int ndr_flags, enum winreg_CreateAction r)
/* [<][>][^][v][top][bottom][index][help] */
249 {
250 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
251 return NDR_ERR_SUCCESS;
252 }
253
254 static enum ndr_err_code ndr_pull_winreg_CreateAction(struct ndr_pull *ndr, int ndr_flags, enum winreg_CreateAction *r)
/* [<][>][^][v][top][bottom][index][help] */
255 {
256 uint32_t v;
257 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
258 *r = v;
259 return NDR_ERR_SUCCESS;
260 }
261
262 _PUBLIC_ void ndr_print_winreg_CreateAction(struct ndr_print *ndr, const char *name, enum winreg_CreateAction r)
/* [<][>][^][v][top][bottom][index][help] */
263 {
264 const char *val = NULL;
265
266 switch (r) {
267 case REG_ACTION_NONE: val = "REG_ACTION_NONE"; break;
268 case REG_CREATED_NEW_KEY: val = "REG_CREATED_NEW_KEY"; break;
269 case REG_OPENED_EXISTING_KEY: val = "REG_OPENED_EXISTING_KEY"; break;
270 }
271 ndr_print_enum(ndr, name, "ENUM", val, r);
272 }
273
274 static enum ndr_err_code ndr_push_winreg_StringBuf(struct ndr_push *ndr, int ndr_flags, const struct winreg_StringBuf *r)
/* [<][>][^][v][top][bottom][index][help] */
275 {
276 if (ndr_flags & NDR_SCALARS) {
277 NDR_CHECK(ndr_push_align(ndr, 4));
278 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, strlen_m_term_null(r->name) * 2));
279 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
280 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
281 }
282 if (ndr_flags & NDR_BUFFERS) {
283 if (r->name) {
284 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size / 2));
285 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
286 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, strlen_m_term_null(r->name) * 2 / 2));
287 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, strlen_m_term_null(r->name) * 2 / 2, sizeof(uint16_t), CH_UTF16));
288 }
289 }
290 return NDR_ERR_SUCCESS;
291 }
292
293 static enum ndr_err_code ndr_pull_winreg_StringBuf(struct ndr_pull *ndr, int ndr_flags, struct winreg_StringBuf *r)
/* [<][>][^][v][top][bottom][index][help] */
294 {
295 uint32_t _ptr_name;
296 TALLOC_CTX *_mem_save_name_0;
297 if (ndr_flags & NDR_SCALARS) {
298 NDR_CHECK(ndr_pull_align(ndr, 4));
299 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
300 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
301 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
302 if (_ptr_name) {
303 NDR_PULL_ALLOC(ndr, r->name);
304 } else {
305 r->name = NULL;
306 }
307 }
308 if (ndr_flags & NDR_BUFFERS) {
309 if (r->name) {
310 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
311 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
312 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
313 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
314 if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
315 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->name), ndr_get_array_length(ndr, &r->name));
316 }
317 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
318 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
319 }
320 if (r->name) {
321 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->name, r->size / 2));
322 }
323 if (r->name) {
324 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->name, r->length / 2));
325 }
326 }
327 return NDR_ERR_SUCCESS;
328 }
329
330 _PUBLIC_ void ndr_print_winreg_StringBuf(struct ndr_print *ndr, const char *name, const struct winreg_StringBuf *r)
/* [<][>][^][v][top][bottom][index][help] */
331 {
332 ndr_print_struct(ndr, name, "winreg_StringBuf");
333 ndr->depth++;
334 ndr_print_uint16(ndr, "length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?strlen_m_term_null(r->name) * 2:r->length);
335 ndr_print_uint16(ndr, "size", r->size);
336 ndr_print_ptr(ndr, "name", r->name);
337 ndr->depth++;
338 if (r->name) {
339 ndr_print_string(ndr, "name", r->name);
340 }
341 ndr->depth--;
342 ndr->depth--;
343 }
344
345 static enum ndr_err_code ndr_push_winreg_ValNameBuf(struct ndr_push *ndr, int ndr_flags, const struct winreg_ValNameBuf *r)
/* [<][>][^][v][top][bottom][index][help] */
346 {
347 if (ndr_flags & NDR_SCALARS) {
348 NDR_CHECK(ndr_push_align(ndr, 4));
349 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, strlen_m_term(r->name) * 2));
350 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
351 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
352 }
353 if (ndr_flags & NDR_BUFFERS) {
354 if (r->name) {
355 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size / 2));
356 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
357 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, strlen_m_term(r->name) * 2 / 2));
358 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, strlen_m_term(r->name) * 2 / 2, sizeof(uint16_t), CH_UTF16));
359 }
360 }
361 return NDR_ERR_SUCCESS;
362 }
363
364 static enum ndr_err_code ndr_pull_winreg_ValNameBuf(struct ndr_pull *ndr, int ndr_flags, struct winreg_ValNameBuf *r)
/* [<][>][^][v][top][bottom][index][help] */
365 {
366 uint32_t _ptr_name;
367 TALLOC_CTX *_mem_save_name_0;
368 if (ndr_flags & NDR_SCALARS) {
369 NDR_CHECK(ndr_pull_align(ndr, 4));
370 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
371 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
372 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
373 if (_ptr_name) {
374 NDR_PULL_ALLOC(ndr, r->name);
375 } else {
376 r->name = NULL;
377 }
378 }
379 if (ndr_flags & NDR_BUFFERS) {
380 if (r->name) {
381 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
382 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
383 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
384 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
385 if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
386 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));
387 }
388 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
389 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
390 }
391 if (r->name) {
392 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->name, r->size / 2));
393 }
394 if (r->name) {
395 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->name, r->length / 2));
396 }
397 }
398 return NDR_ERR_SUCCESS;
399 }
400
401 _PUBLIC_ void ndr_print_winreg_ValNameBuf(struct ndr_print *ndr, const char *name, const struct winreg_ValNameBuf *r)
/* [<][>][^][v][top][bottom][index][help] */
402 {
403 ndr_print_struct(ndr, name, "winreg_ValNameBuf");
404 ndr->depth++;
405 ndr_print_uint16(ndr, "length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?strlen_m_term(r->name) * 2:r->length);
406 ndr_print_uint16(ndr, "size", r->size);
407 ndr_print_ptr(ndr, "name", r->name);
408 ndr->depth++;
409 if (r->name) {
410 ndr_print_string(ndr, "name", r->name);
411 }
412 ndr->depth--;
413 ndr->depth--;
414 }
415
416 _PUBLIC_ enum ndr_err_code ndr_push_winreg_NotifyChangeType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
/* [<][>][^][v][top][bottom][index][help] */
417 {
418 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
419 return NDR_ERR_SUCCESS;
420 }
421
422 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_NotifyChangeType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
/* [<][>][^][v][top][bottom][index][help] */
423 {
424 uint32_t v;
425 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
426 *r = v;
427 return NDR_ERR_SUCCESS;
428 }
429
430 _PUBLIC_ void ndr_print_winreg_NotifyChangeType(struct ndr_print *ndr, const char *name, uint32_t r)
/* [<][>][^][v][top][bottom][index][help] */
431 {
432 ndr_print_uint32(ndr, name, r);
433 ndr->depth++;
434 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "REG_NOTIFY_CHANGE_NAME", REG_NOTIFY_CHANGE_NAME, r);
435 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "REG_NOTIFY_CHANGE_ATTRIBUTES", REG_NOTIFY_CHANGE_ATTRIBUTES, r);
436 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "REG_NOTIFY_CHANGE_LAST_SET", REG_NOTIFY_CHANGE_LAST_SET, r);
437 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "REG_NOTIFY_CHANGE_SECURITY", REG_NOTIFY_CHANGE_SECURITY, r);
438 ndr->depth--;
439 }
440
441 static enum ndr_err_code ndr_push_KeySecurityAttribute(struct ndr_push *ndr, int ndr_flags, const struct KeySecurityAttribute *r)
/* [<][>][^][v][top][bottom][index][help] */
442 {
443 if (ndr_flags & NDR_SCALARS) {
444 NDR_CHECK(ndr_push_align(ndr, 4));
445 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->data_size));
446 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_SCALARS, &r->sec_data));
447 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->inherit));
448 }
449 if (ndr_flags & NDR_BUFFERS) {
450 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_BUFFERS, &r->sec_data));
451 }
452 return NDR_ERR_SUCCESS;
453 }
454
455 static enum ndr_err_code ndr_pull_KeySecurityAttribute(struct ndr_pull *ndr, int ndr_flags, struct KeySecurityAttribute *r)
/* [<][>][^][v][top][bottom][index][help] */
456 {
457 if (ndr_flags & NDR_SCALARS) {
458 NDR_CHECK(ndr_pull_align(ndr, 4));
459 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->data_size));
460 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_SCALARS, &r->sec_data));
461 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->inherit));
462 }
463 if (ndr_flags & NDR_BUFFERS) {
464 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_BUFFERS, &r->sec_data));
465 }
466 return NDR_ERR_SUCCESS;
467 }
468
469 _PUBLIC_ void ndr_print_KeySecurityAttribute(struct ndr_print *ndr, const char *name, const struct KeySecurityAttribute *r)
/* [<][>][^][v][top][bottom][index][help] */
470 {
471 ndr_print_struct(ndr, name, "KeySecurityAttribute");
472 ndr->depth++;
473 ndr_print_uint32(ndr, "data_size", r->data_size);
474 ndr_print_KeySecurityData(ndr, "sec_data", &r->sec_data);
475 ndr_print_uint8(ndr, "inherit", r->inherit);
476 ndr->depth--;
477 }
478
479 static enum ndr_err_code ndr_push_QueryMultipleValue(struct ndr_push *ndr, int ndr_flags, const struct QueryMultipleValue *r)
/* [<][>][^][v][top][bottom][index][help] */
480 {
481 if (ndr_flags & NDR_SCALARS) {
482 NDR_CHECK(ndr_push_align(ndr, 4));
483 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
484 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->type));
485 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->offset));
486 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
487 }
488 if (ndr_flags & NDR_BUFFERS) {
489 if (r->name) {
490 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->name));
491 }
492 }
493 return NDR_ERR_SUCCESS;
494 }
495
496 static enum ndr_err_code ndr_pull_QueryMultipleValue(struct ndr_pull *ndr, int ndr_flags, struct QueryMultipleValue *r)
/* [<][>][^][v][top][bottom][index][help] */
497 {
498 uint32_t _ptr_name;
499 TALLOC_CTX *_mem_save_name_0;
500 if (ndr_flags & NDR_SCALARS) {
501 NDR_CHECK(ndr_pull_align(ndr, 4));
502 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
503 if (_ptr_name) {
504 NDR_PULL_ALLOC(ndr, r->name);
505 } else {
506 r->name = NULL;
507 }
508 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->type));
509 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->offset));
510 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
511 }
512 if (ndr_flags & NDR_BUFFERS) {
513 if (r->name) {
514 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
515 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
516 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->name));
517 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
518 }
519 }
520 return NDR_ERR_SUCCESS;
521 }
522
523 _PUBLIC_ void ndr_print_QueryMultipleValue(struct ndr_print *ndr, const char *name, const struct QueryMultipleValue *r)
/* [<][>][^][v][top][bottom][index][help] */
524 {
525 ndr_print_struct(ndr, name, "QueryMultipleValue");
526 ndr->depth++;
527 ndr_print_ptr(ndr, "name", r->name);
528 ndr->depth++;
529 if (r->name) {
530 ndr_print_winreg_String(ndr, "name", r->name);
531 }
532 ndr->depth--;
533 ndr_print_winreg_Type(ndr, "type", r->type);
534 ndr_print_uint32(ndr, "offset", r->offset);
535 ndr_print_uint32(ndr, "length", r->length);
536 ndr->depth--;
537 }
538
539 static enum ndr_err_code ndr_push_winreg_OpenHKCR(struct ndr_push *ndr, int flags, const struct winreg_OpenHKCR *r)
/* [<][>][^][v][top][bottom][index][help] */
540 {
541 if (flags & NDR_IN) {
542 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
543 if (r->in.system_name) {
544 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
545 }
546 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
547 }
548 if (flags & NDR_OUT) {
549 if (r->out.handle == NULL) {
550 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
551 }
552 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
553 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
554 }
555 return NDR_ERR_SUCCESS;
556 }
557
558 static enum ndr_err_code ndr_pull_winreg_OpenHKCR(struct ndr_pull *ndr, int flags, struct winreg_OpenHKCR *r)
/* [<][>][^][v][top][bottom][index][help] */
559 {
560 uint32_t _ptr_system_name;
561 TALLOC_CTX *_mem_save_system_name_0;
562 TALLOC_CTX *_mem_save_handle_0;
563 if (flags & NDR_IN) {
564 ZERO_STRUCT(r->out);
565
566 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
567 if (_ptr_system_name) {
568 NDR_PULL_ALLOC(ndr, r->in.system_name);
569 } else {
570 r->in.system_name = NULL;
571 }
572 if (r->in.system_name) {
573 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
574 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
575 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
576 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
577 }
578 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
579 NDR_PULL_ALLOC(ndr, r->out.handle);
580 ZERO_STRUCTP(r->out.handle);
581 }
582 if (flags & NDR_OUT) {
583 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
584 NDR_PULL_ALLOC(ndr, r->out.handle);
585 }
586 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
587 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
588 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
589 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
590 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
591 }
592 return NDR_ERR_SUCCESS;
593 }
594
595 _PUBLIC_ void ndr_print_winreg_OpenHKCR(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKCR *r)
/* [<][>][^][v][top][bottom][index][help] */
596 {
597 ndr_print_struct(ndr, name, "winreg_OpenHKCR");
598 ndr->depth++;
599 if (flags & NDR_SET_VALUES) {
600 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
601 }
602 if (flags & NDR_IN) {
603 ndr_print_struct(ndr, "in", "winreg_OpenHKCR");
604 ndr->depth++;
605 ndr_print_ptr(ndr, "system_name", r->in.system_name);
606 ndr->depth++;
607 if (r->in.system_name) {
608 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
609 }
610 ndr->depth--;
611 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
612 ndr->depth--;
613 }
614 if (flags & NDR_OUT) {
615 ndr_print_struct(ndr, "out", "winreg_OpenHKCR");
616 ndr->depth++;
617 ndr_print_ptr(ndr, "handle", r->out.handle);
618 ndr->depth++;
619 ndr_print_policy_handle(ndr, "handle", r->out.handle);
620 ndr->depth--;
621 ndr_print_WERROR(ndr, "result", r->out.result);
622 ndr->depth--;
623 }
624 ndr->depth--;
625 }
626
627 static enum ndr_err_code ndr_push_winreg_OpenHKCU(struct ndr_push *ndr, int flags, const struct winreg_OpenHKCU *r)
/* [<][>][^][v][top][bottom][index][help] */
628 {
629 if (flags & NDR_IN) {
630 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
631 if (r->in.system_name) {
632 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
633 }
634 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
635 }
636 if (flags & NDR_OUT) {
637 if (r->out.handle == NULL) {
638 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
639 }
640 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
641 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
642 }
643 return NDR_ERR_SUCCESS;
644 }
645
646 static enum ndr_err_code ndr_pull_winreg_OpenHKCU(struct ndr_pull *ndr, int flags, struct winreg_OpenHKCU *r)
/* [<][>][^][v][top][bottom][index][help] */
647 {
648 uint32_t _ptr_system_name;
649 TALLOC_CTX *_mem_save_system_name_0;
650 TALLOC_CTX *_mem_save_handle_0;
651 if (flags & NDR_IN) {
652 ZERO_STRUCT(r->out);
653
654 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
655 if (_ptr_system_name) {
656 NDR_PULL_ALLOC(ndr, r->in.system_name);
657 } else {
658 r->in.system_name = NULL;
659 }
660 if (r->in.system_name) {
661 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
662 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
663 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
664 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
665 }
666 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
667 NDR_PULL_ALLOC(ndr, r->out.handle);
668 ZERO_STRUCTP(r->out.handle);
669 }
670 if (flags & NDR_OUT) {
671 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
672 NDR_PULL_ALLOC(ndr, r->out.handle);
673 }
674 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
675 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
676 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
677 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
678 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
679 }
680 return NDR_ERR_SUCCESS;
681 }
682
683 _PUBLIC_ void ndr_print_winreg_OpenHKCU(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKCU *r)
/* [<][>][^][v][top][bottom][index][help] */
684 {
685 ndr_print_struct(ndr, name, "winreg_OpenHKCU");
686 ndr->depth++;
687 if (flags & NDR_SET_VALUES) {
688 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
689 }
690 if (flags & NDR_IN) {
691 ndr_print_struct(ndr, "in", "winreg_OpenHKCU");
692 ndr->depth++;
693 ndr_print_ptr(ndr, "system_name", r->in.system_name);
694 ndr->depth++;
695 if (r->in.system_name) {
696 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
697 }
698 ndr->depth--;
699 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
700 ndr->depth--;
701 }
702 if (flags & NDR_OUT) {
703 ndr_print_struct(ndr, "out", "winreg_OpenHKCU");
704 ndr->depth++;
705 ndr_print_ptr(ndr, "handle", r->out.handle);
706 ndr->depth++;
707 ndr_print_policy_handle(ndr, "handle", r->out.handle);
708 ndr->depth--;
709 ndr_print_WERROR(ndr, "result", r->out.result);
710 ndr->depth--;
711 }
712 ndr->depth--;
713 }
714
715 _PUBLIC_ enum ndr_err_code ndr_push_winreg_OpenHKLM(struct ndr_push *ndr, int flags, const struct winreg_OpenHKLM *r)
/* [<][>][^][v][top][bottom][index][help] */
716 {
717 if (flags & NDR_IN) {
718 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
719 if (r->in.system_name) {
720 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
721 }
722 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
723 }
724 if (flags & NDR_OUT) {
725 if (r->out.handle == NULL) {
726 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
727 }
728 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
729 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
730 }
731 return NDR_ERR_SUCCESS;
732 }
733
734 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_OpenHKLM(struct ndr_pull *ndr, int flags, struct winreg_OpenHKLM *r)
/* [<][>][^][v][top][bottom][index][help] */
735 {
736 uint32_t _ptr_system_name;
737 TALLOC_CTX *_mem_save_system_name_0;
738 TALLOC_CTX *_mem_save_handle_0;
739 if (flags & NDR_IN) {
740 ZERO_STRUCT(r->out);
741
742 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
743 if (_ptr_system_name) {
744 NDR_PULL_ALLOC(ndr, r->in.system_name);
745 } else {
746 r->in.system_name = NULL;
747 }
748 if (r->in.system_name) {
749 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
750 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
751 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
752 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
753 }
754 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
755 NDR_PULL_ALLOC(ndr, r->out.handle);
756 ZERO_STRUCTP(r->out.handle);
757 }
758 if (flags & NDR_OUT) {
759 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
760 NDR_PULL_ALLOC(ndr, r->out.handle);
761 }
762 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
763 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
764 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
765 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
766 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
767 }
768 return NDR_ERR_SUCCESS;
769 }
770
771 _PUBLIC_ void ndr_print_winreg_OpenHKLM(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKLM *r)
/* [<][>][^][v][top][bottom][index][help] */
772 {
773 ndr_print_struct(ndr, name, "winreg_OpenHKLM");
774 ndr->depth++;
775 if (flags & NDR_SET_VALUES) {
776 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
777 }
778 if (flags & NDR_IN) {
779 ndr_print_struct(ndr, "in", "winreg_OpenHKLM");
780 ndr->depth++;
781 ndr_print_ptr(ndr, "system_name", r->in.system_name);
782 ndr->depth++;
783 if (r->in.system_name) {
784 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
785 }
786 ndr->depth--;
787 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
788 ndr->depth--;
789 }
790 if (flags & NDR_OUT) {
791 ndr_print_struct(ndr, "out", "winreg_OpenHKLM");
792 ndr->depth++;
793 ndr_print_ptr(ndr, "handle", r->out.handle);
794 ndr->depth++;
795 ndr_print_policy_handle(ndr, "handle", r->out.handle);
796 ndr->depth--;
797 ndr_print_WERROR(ndr, "result", r->out.result);
798 ndr->depth--;
799 }
800 ndr->depth--;
801 }
802
803 static enum ndr_err_code ndr_push_winreg_OpenHKPD(struct ndr_push *ndr, int flags, const struct winreg_OpenHKPD *r)
/* [<][>][^][v][top][bottom][index][help] */
804 {
805 if (flags & NDR_IN) {
806 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
807 if (r->in.system_name) {
808 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
809 }
810 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
811 }
812 if (flags & NDR_OUT) {
813 if (r->out.handle == NULL) {
814 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
815 }
816 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
817 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
818 }
819 return NDR_ERR_SUCCESS;
820 }
821
822 static enum ndr_err_code ndr_pull_winreg_OpenHKPD(struct ndr_pull *ndr, int flags, struct winreg_OpenHKPD *r)
/* [<][>][^][v][top][bottom][index][help] */
823 {
824 uint32_t _ptr_system_name;
825 TALLOC_CTX *_mem_save_system_name_0;
826 TALLOC_CTX *_mem_save_handle_0;
827 if (flags & NDR_IN) {
828 ZERO_STRUCT(r->out);
829
830 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
831 if (_ptr_system_name) {
832 NDR_PULL_ALLOC(ndr, r->in.system_name);
833 } else {
834 r->in.system_name = NULL;
835 }
836 if (r->in.system_name) {
837 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
838 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
839 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
840 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
841 }
842 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
843 NDR_PULL_ALLOC(ndr, r->out.handle);
844 ZERO_STRUCTP(r->out.handle);
845 }
846 if (flags & NDR_OUT) {
847 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
848 NDR_PULL_ALLOC(ndr, r->out.handle);
849 }
850 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
851 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
852 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
853 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
854 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
855 }
856 return NDR_ERR_SUCCESS;
857 }
858
859 _PUBLIC_ void ndr_print_winreg_OpenHKPD(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKPD *r)
/* [<][>][^][v][top][bottom][index][help] */
860 {
861 ndr_print_struct(ndr, name, "winreg_OpenHKPD");
862 ndr->depth++;
863 if (flags & NDR_SET_VALUES) {
864 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
865 }
866 if (flags & NDR_IN) {
867 ndr_print_struct(ndr, "in", "winreg_OpenHKPD");
868 ndr->depth++;
869 ndr_print_ptr(ndr, "system_name", r->in.system_name);
870 ndr->depth++;
871 if (r->in.system_name) {
872 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
873 }
874 ndr->depth--;
875 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
876 ndr->depth--;
877 }
878 if (flags & NDR_OUT) {
879 ndr_print_struct(ndr, "out", "winreg_OpenHKPD");
880 ndr->depth++;
881 ndr_print_ptr(ndr, "handle", r->out.handle);
882 ndr->depth++;
883 ndr_print_policy_handle(ndr, "handle", r->out.handle);
884 ndr->depth--;
885 ndr_print_WERROR(ndr, "result", r->out.result);
886 ndr->depth--;
887 }
888 ndr->depth--;
889 }
890
891 static enum ndr_err_code ndr_push_winreg_OpenHKU(struct ndr_push *ndr, int flags, const struct winreg_OpenHKU *r)
/* [<][>][^][v][top][bottom][index][help] */
892 {
893 if (flags & NDR_IN) {
894 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
895 if (r->in.system_name) {
896 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
897 }
898 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
899 }
900 if (flags & NDR_OUT) {
901 if (r->out.handle == NULL) {
902 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
903 }
904 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
905 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
906 }
907 return NDR_ERR_SUCCESS;
908 }
909
910 static enum ndr_err_code ndr_pull_winreg_OpenHKU(struct ndr_pull *ndr, int flags, struct winreg_OpenHKU *r)
/* [<][>][^][v][top][bottom][index][help] */
911 {
912 uint32_t _ptr_system_name;
913 TALLOC_CTX *_mem_save_system_name_0;
914 TALLOC_CTX *_mem_save_handle_0;
915 if (flags & NDR_IN) {
916 ZERO_STRUCT(r->out);
917
918 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
919 if (_ptr_system_name) {
920 NDR_PULL_ALLOC(ndr, r->in.system_name);
921 } else {
922 r->in.system_name = NULL;
923 }
924 if (r->in.system_name) {
925 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
926 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
927 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
928 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
929 }
930 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
931 NDR_PULL_ALLOC(ndr, r->out.handle);
932 ZERO_STRUCTP(r->out.handle);
933 }
934 if (flags & NDR_OUT) {
935 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
936 NDR_PULL_ALLOC(ndr, r->out.handle);
937 }
938 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
939 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
940 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
941 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
942 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
943 }
944 return NDR_ERR_SUCCESS;
945 }
946
947 _PUBLIC_ void ndr_print_winreg_OpenHKU(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKU *r)
/* [<][>][^][v][top][bottom][index][help] */
948 {
949 ndr_print_struct(ndr, name, "winreg_OpenHKU");
950 ndr->depth++;
951 if (flags & NDR_SET_VALUES) {
952 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
953 }
954 if (flags & NDR_IN) {
955 ndr_print_struct(ndr, "in", "winreg_OpenHKU");
956 ndr->depth++;
957 ndr_print_ptr(ndr, "system_name", r->in.system_name);
958 ndr->depth++;
959 if (r->in.system_name) {
960 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
961 }
962 ndr->depth--;
963 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
964 ndr->depth--;
965 }
966 if (flags & NDR_OUT) {
967 ndr_print_struct(ndr, "out", "winreg_OpenHKU");
968 ndr->depth++;
969 ndr_print_ptr(ndr, "handle", r->out.handle);
970 ndr->depth++;
971 ndr_print_policy_handle(ndr, "handle", r->out.handle);
972 ndr->depth--;
973 ndr_print_WERROR(ndr, "result", r->out.result);
974 ndr->depth--;
975 }
976 ndr->depth--;
977 }
978
979 _PUBLIC_ enum ndr_err_code ndr_push_winreg_CloseKey(struct ndr_push *ndr, int flags, const struct winreg_CloseKey *r)
/* [<][>][^][v][top][bottom][index][help] */
980 {
981 if (flags & NDR_IN) {
982 if (r->in.handle == NULL) {
983 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
984 }
985 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
986 }
987 if (flags & NDR_OUT) {
988 if (r->out.handle == NULL) {
989 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
990 }
991 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
992 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
993 }
994 return NDR_ERR_SUCCESS;
995 }
996
997 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_CloseKey(struct ndr_pull *ndr, int flags, struct winreg_CloseKey *r)
/* [<][>][^][v][top][bottom][index][help] */
998 {
999 TALLOC_CTX *_mem_save_handle_0;
1000 if (flags & NDR_IN) {
1001 ZERO_STRUCT(r->out);
1002
1003 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1004 NDR_PULL_ALLOC(ndr, r->in.handle);
1005 }
1006 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1007 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1008 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1009 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1010 NDR_PULL_ALLOC(ndr, r->out.handle);
1011 *r->out.handle = *r->in.handle;
1012 }
1013 if (flags & NDR_OUT) {
1014 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1015 NDR_PULL_ALLOC(ndr, r->out.handle);
1016 }
1017 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1018 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
1019 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
1020 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1021 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1022 }
1023 return NDR_ERR_SUCCESS;
1024 }
1025
1026 _PUBLIC_ void ndr_print_winreg_CloseKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_CloseKey *r)
/* [<][>][^][v][top][bottom][index][help] */
1027 {
1028 ndr_print_struct(ndr, name, "winreg_CloseKey");
1029 ndr->depth++;
1030 if (flags & NDR_SET_VALUES) {
1031 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1032 }
1033 if (flags & NDR_IN) {
1034 ndr_print_struct(ndr, "in", "winreg_CloseKey");
1035 ndr->depth++;
1036 ndr_print_ptr(ndr, "handle", r->in.handle);
1037 ndr->depth++;
1038 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1039 ndr->depth--;
1040 ndr->depth--;
1041 }
1042 if (flags & NDR_OUT) {
1043 ndr_print_struct(ndr, "out", "winreg_CloseKey");
1044 ndr->depth++;
1045 ndr_print_ptr(ndr, "handle", r->out.handle);
1046 ndr->depth++;
1047 ndr_print_policy_handle(ndr, "handle", r->out.handle);
1048 ndr->depth--;
1049 ndr_print_WERROR(ndr, "result", r->out.result);
1050 ndr->depth--;
1051 }
1052 ndr->depth--;
1053 }
1054
1055 _PUBLIC_ enum ndr_err_code ndr_push_winreg_CreateKey(struct ndr_push *ndr, int flags, const struct winreg_CreateKey *r)
/* [<][>][^][v][top][bottom][index][help] */
1056 {
1057 if (flags & NDR_IN) {
1058 if (r->in.handle == NULL) {
1059 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1060 }
1061 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1062 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.name));
1063 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.keyclass));
1064 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.options));
1065 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
1066 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.secdesc));
1067 if (r->in.secdesc) {
1068 NDR_CHECK(ndr_push_winreg_SecBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc));
1069 }
1070 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.action_taken));
1071 if (r->in.action_taken) {
1072 NDR_CHECK(ndr_push_winreg_CreateAction(ndr, NDR_SCALARS, *r->in.action_taken));
1073 }
1074 }
1075 if (flags & NDR_OUT) {
1076 if (r->out.new_handle == NULL) {
1077 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1078 }
1079 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.new_handle));
1080 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.action_taken));
1081 if (r->out.action_taken) {
1082 NDR_CHECK(ndr_push_winreg_CreateAction(ndr, NDR_SCALARS, *r->out.action_taken));
1083 }
1084 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1085 }
1086 return NDR_ERR_SUCCESS;
1087 }
1088
1089 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_CreateKey(struct ndr_pull *ndr, int flags, struct winreg_CreateKey *r)
/* [<][>][^][v][top][bottom][index][help] */
1090 {
1091 uint32_t _ptr_secdesc;
1092 uint32_t _ptr_action_taken;
1093 TALLOC_CTX *_mem_save_handle_0;
1094 TALLOC_CTX *_mem_save_secdesc_0;
1095 TALLOC_CTX *_mem_save_new_handle_0;
1096 TALLOC_CTX *_mem_save_action_taken_0;
1097 if (flags & NDR_IN) {
1098 ZERO_STRUCT(r->out);
1099
1100 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1101 NDR_PULL_ALLOC(ndr, r->in.handle);
1102 }
1103 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1104 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1105 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1106 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1107 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.name));
1108 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.keyclass));
1109 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.options));
1110 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
1111 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
1112 if (_ptr_secdesc) {
1113 NDR_PULL_ALLOC(ndr, r->in.secdesc);
1114 } else {
1115 r->in.secdesc = NULL;
1116 }
1117 if (r->in.secdesc) {
1118 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
1119 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc, 0);
1120 NDR_CHECK(ndr_pull_winreg_SecBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc));
1121 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
1122 }
1123 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_action_taken));
1124 if (_ptr_action_taken) {
1125 NDR_PULL_ALLOC(ndr, r->in.action_taken);
1126 } else {
1127 r->in.action_taken = NULL;
1128 }
1129 if (r->in.action_taken) {
1130 _mem_save_action_taken_0 = NDR_PULL_GET_MEM_CTX(ndr);
1131 NDR_PULL_SET_MEM_CTX(ndr, r->in.action_taken, 0);
1132 NDR_CHECK(ndr_pull_winreg_CreateAction(ndr, NDR_SCALARS, r->in.action_taken));
1133 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_action_taken_0, 0);
1134 }
1135 NDR_PULL_ALLOC(ndr, r->out.new_handle);
1136 ZERO_STRUCTP(r->out.new_handle);
1137 }
1138 if (flags & NDR_OUT) {
1139 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1140 NDR_PULL_ALLOC(ndr, r->out.new_handle);
1141 }
1142 _mem_save_new_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1143 NDR_PULL_SET_MEM_CTX(ndr, r->out.new_handle, LIBNDR_FLAG_REF_ALLOC);
1144 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.new_handle));
1145 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_new_handle_0, LIBNDR_FLAG_REF_ALLOC);
1146 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_action_taken));
1147 if (_ptr_action_taken) {
1148 NDR_PULL_ALLOC(ndr, r->out.action_taken);
1149 } else {
1150 r->out.action_taken = NULL;
1151 }
1152 if (r->out.action_taken) {
1153 _mem_save_action_taken_0 = NDR_PULL_GET_MEM_CTX(ndr);
1154 NDR_PULL_SET_MEM_CTX(ndr, r->out.action_taken, 0);
1155 NDR_CHECK(ndr_pull_winreg_CreateAction(ndr, NDR_SCALARS, r->out.action_taken));
1156 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_action_taken_0, 0);
1157 }
1158 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1159 }
1160 return NDR_ERR_SUCCESS;
1161 }
1162
1163 _PUBLIC_ void ndr_print_winreg_CreateKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_CreateKey *r)
/* [<][>][^][v][top][bottom][index][help] */
1164 {
1165 ndr_print_struct(ndr, name, "winreg_CreateKey");
1166 ndr->depth++;
1167 if (flags & NDR_SET_VALUES) {
1168 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1169 }
1170 if (flags & NDR_IN) {
1171 ndr_print_struct(ndr, "in", "winreg_CreateKey");
1172 ndr->depth++;
1173 ndr_print_ptr(ndr, "handle", r->in.handle);
1174 ndr->depth++;
1175 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1176 ndr->depth--;
1177 ndr_print_winreg_String(ndr, "name", &r->in.name);
1178 ndr_print_winreg_String(ndr, "keyclass", &r->in.keyclass);
1179 ndr_print_uint32(ndr, "options", r->in.options);
1180 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
1181 ndr_print_ptr(ndr, "secdesc", r->in.secdesc);
1182 ndr->depth++;
1183 if (r->in.secdesc) {
1184 ndr_print_winreg_SecBuf(ndr, "secdesc", r->in.secdesc);
1185 }
1186 ndr->depth--;
1187 ndr_print_ptr(ndr, "action_taken", r->in.action_taken);
1188 ndr->depth++;
1189 if (r->in.action_taken) {
1190 ndr_print_winreg_CreateAction(ndr, "action_taken", *r->in.action_taken);
1191 }
1192 ndr->depth--;
1193 ndr->depth--;
1194 }
1195 if (flags & NDR_OUT) {
1196 ndr_print_struct(ndr, "out", "winreg_CreateKey");
1197 ndr->depth++;
1198 ndr_print_ptr(ndr, "new_handle", r->out.new_handle);
1199 ndr->depth++;
1200 ndr_print_policy_handle(ndr, "new_handle", r->out.new_handle);
1201 ndr->depth--;
1202 ndr_print_ptr(ndr, "action_taken", r->out.action_taken);
1203 ndr->depth++;
1204 if (r->out.action_taken) {
1205 ndr_print_winreg_CreateAction(ndr, "action_taken", *r->out.action_taken);
1206 }
1207 ndr->depth--;
1208 ndr_print_WERROR(ndr, "result", r->out.result);
1209 ndr->depth--;
1210 }
1211 ndr->depth--;
1212 }
1213
1214 _PUBLIC_ enum ndr_err_code ndr_push_winreg_DeleteKey(struct ndr_push *ndr, int flags, const struct winreg_DeleteKey *r)
/* [<][>][^][v][top][bottom][index][help] */
1215 {
1216 if (flags & NDR_IN) {
1217 if (r->in.handle == NULL) {
1218 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1219 }
1220 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1221 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.key));
1222 }
1223 if (flags & NDR_OUT) {
1224 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1225 }
1226 return NDR_ERR_SUCCESS;
1227 }
1228
1229 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_DeleteKey(struct ndr_pull *ndr, int flags, struct winreg_DeleteKey *r)
/* [<][>][^][v][top][bottom][index][help] */
1230 {
1231 TALLOC_CTX *_mem_save_handle_0;
1232 if (flags & NDR_IN) {
1233 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1234 NDR_PULL_ALLOC(ndr, r->in.handle);
1235 }
1236 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1237 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1238 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1239 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1240 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.key));
1241 }
1242 if (flags & NDR_OUT) {
1243 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1244 }
1245 return NDR_ERR_SUCCESS;
1246 }
1247
1248 _PUBLIC_ void ndr_print_winreg_DeleteKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_DeleteKey *r)
/* [<][>][^][v][top][bottom][index][help] */
1249 {
1250 ndr_print_struct(ndr, name, "winreg_DeleteKey");
1251 ndr->depth++;
1252 if (flags & NDR_SET_VALUES) {
1253 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1254 }
1255 if (flags & NDR_IN) {
1256 ndr_print_struct(ndr, "in", "winreg_DeleteKey");
1257 ndr->depth++;
1258 ndr_print_ptr(ndr, "handle", r->in.handle);
1259 ndr->depth++;
1260 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1261 ndr->depth--;
1262 ndr_print_winreg_String(ndr, "key", &r->in.key);
1263 ndr->depth--;
1264 }
1265 if (flags & NDR_OUT) {
1266 ndr_print_struct(ndr, "out", "winreg_DeleteKey");
1267 ndr->depth++;
1268 ndr_print_WERROR(ndr, "result", r->out.result);
1269 ndr->depth--;
1270 }
1271 ndr->depth--;
1272 }
1273
1274 static enum ndr_err_code ndr_push_winreg_DeleteValue(struct ndr_push *ndr, int flags, const struct winreg_DeleteValue *r)
/* [<][>][^][v][top][bottom][index][help] */
1275 {
1276 if (flags & NDR_IN) {
1277 if (r->in.handle == NULL) {
1278 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1279 }
1280 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1281 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.value));
1282 }
1283 if (flags & NDR_OUT) {
1284 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1285 }
1286 return NDR_ERR_SUCCESS;
1287 }
1288
1289 static enum ndr_err_code ndr_pull_winreg_DeleteValue(struct ndr_pull *ndr, int flags, struct winreg_DeleteValue *r)
/* [<][>][^][v][top][bottom][index][help] */
1290 {
1291 TALLOC_CTX *_mem_save_handle_0;
1292 if (flags & NDR_IN) {
1293 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1294 NDR_PULL_ALLOC(ndr, r->in.handle);
1295 }
1296 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1297 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1298 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1299 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1300 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.value));
1301 }
1302 if (flags & NDR_OUT) {
1303 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1304 }
1305 return NDR_ERR_SUCCESS;
1306 }
1307
1308 _PUBLIC_ void ndr_print_winreg_DeleteValue(struct ndr_print *ndr, const char *name, int flags, const struct winreg_DeleteValue *r)
/* [<][>][^][v][top][bottom][index][help] */
1309 {
1310 ndr_print_struct(ndr, name, "winreg_DeleteValue");
1311 ndr->depth++;
1312 if (flags & NDR_SET_VALUES) {
1313 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1314 }
1315 if (flags & NDR_IN) {
1316 ndr_print_struct(ndr, "in", "winreg_DeleteValue");
1317 ndr->depth++;
1318 ndr_print_ptr(ndr, "handle", r->in.handle);
1319 ndr->depth++;
1320 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1321 ndr->depth--;
1322 ndr_print_winreg_String(ndr, "value", &r->in.value);
1323 ndr->depth--;
1324 }
1325 if (flags & NDR_OUT) {
1326 ndr_print_struct(ndr, "out", "winreg_DeleteValue");
1327 ndr->depth++;
1328 ndr_print_WERROR(ndr, "result", r->out.result);
1329 ndr->depth--;
1330 }
1331 ndr->depth--;
1332 }
1333
1334 _PUBLIC_ enum ndr_err_code ndr_push_winreg_EnumKey(struct ndr_push *ndr, int flags, const struct winreg_EnumKey *r)
/* [<][>][^][v][top][bottom][index][help] */
1335 {
1336 if (flags & NDR_IN) {
1337 if (r->in.handle == NULL) {
1338 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1339 }
1340 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1341 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
1342 if (r->in.name == NULL) {
1343 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1344 }
1345 NDR_CHECK(ndr_push_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.name));
1346 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.keyclass));
1347 if (r->in.keyclass) {
1348 NDR_CHECK(ndr_push_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.keyclass));
1349 }
1350 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.last_changed_time));
1351 if (r->in.last_changed_time) {
1352 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, *r->in.last_changed_time));
1353 }
1354 }
1355 if (flags & NDR_OUT) {
1356 if (r->out.name == NULL) {
1357 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1358 }
1359 NDR_CHECK(ndr_push_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.name));
1360 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.keyclass));
1361 if (r->out.keyclass) {
1362 NDR_CHECK(ndr_push_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.keyclass));
1363 }
1364 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.last_changed_time));
1365 if (r->out.last_changed_time) {
1366 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, *r->out.last_changed_time));
1367 }
1368 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1369 }
1370 return NDR_ERR_SUCCESS;
1371 }
1372
1373 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_EnumKey(struct ndr_pull *ndr, int flags, struct winreg_EnumKey *r)
/* [<][>][^][v][top][bottom][index][help] */
1374 {
1375 uint32_t _ptr_keyclass;
1376 uint32_t _ptr_last_changed_time;
1377 TALLOC_CTX *_mem_save_handle_0;
1378 TALLOC_CTX *_mem_save_name_0;
1379 TALLOC_CTX *_mem_save_keyclass_0;
1380 TALLOC_CTX *_mem_save_last_changed_time_0;
1381 if (flags & NDR_IN) {
1382 ZERO_STRUCT(r->out);
1383
1384 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1385 NDR_PULL_ALLOC(ndr, r->in.handle);
1386 }
1387 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1388 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1389 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1390 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1391 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
1392 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1393 NDR_PULL_ALLOC(ndr, r->in.name);
1394 }
1395 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1396 NDR_PULL_SET_MEM_CTX(ndr, r->in.name, LIBNDR_FLAG_REF_ALLOC);
1397 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.name));
1398 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, LIBNDR_FLAG_REF_ALLOC);
1399 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyclass));
1400 if (_ptr_keyclass) {
1401 NDR_PULL_ALLOC(ndr, r->in.keyclass);
1402 } else {
1403 r->in.keyclass = NULL;
1404 }
1405 if (r->in.keyclass) {
1406 _mem_save_keyclass_0 = NDR_PULL_GET_MEM_CTX(ndr);
1407 NDR_PULL_SET_MEM_CTX(ndr, r->in.keyclass, 0);
1408 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.keyclass));
1409 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyclass_0, 0);
1410 }
1411 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_last_changed_time));
1412 if (_ptr_last_changed_time) {
1413 NDR_PULL_ALLOC(ndr, r->in.last_changed_time);
1414 } else {
1415 r->in.last_changed_time = NULL;
1416 }
1417 if (r->in.last_changed_time) {
1418 _mem_save_last_changed_time_0 = NDR_PULL_GET_MEM_CTX(ndr);
1419 NDR_PULL_SET_MEM_CTX(ndr, r->in.last_changed_time, 0);
1420 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, r->in.last_changed_time));
1421 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_last_changed_time_0, 0);
1422 }
1423 NDR_PULL_ALLOC(ndr, r->out.name);
1424 *r->out.name = *r->in.name;
1425 }
1426 if (flags & NDR_OUT) {
1427 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1428 NDR_PULL_ALLOC(ndr, r->out.name);
1429 }
1430 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1431 NDR_PULL_SET_MEM_CTX(ndr, r->out.name, LIBNDR_FLAG_REF_ALLOC);
1432 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.name));
1433 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, LIBNDR_FLAG_REF_ALLOC);
1434 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyclass));
1435 if (_ptr_keyclass) {
1436 NDR_PULL_ALLOC(ndr, r->out.keyclass);
1437 } else {
1438 r->out.keyclass = NULL;
1439 }
1440 if (r->out.keyclass) {
1441 _mem_save_keyclass_0 = NDR_PULL_GET_MEM_CTX(ndr);
1442 NDR_PULL_SET_MEM_CTX(ndr, r->out.keyclass, 0);
1443 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.keyclass));
1444 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyclass_0, 0);
1445 }
1446 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_last_changed_time));
1447 if (_ptr_last_changed_time) {
1448 NDR_PULL_ALLOC(ndr, r->out.last_changed_time);
1449 } else {
1450 r->out.last_changed_time = NULL;
1451 }
1452 if (r->out.last_changed_time) {
1453 _mem_save_last_changed_time_0 = NDR_PULL_GET_MEM_CTX(ndr);
1454 NDR_PULL_SET_MEM_CTX(ndr, r->out.last_changed_time, 0);
1455 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, r->out.last_changed_time));
1456 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_last_changed_time_0, 0);
1457 }
1458 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1459 }
1460 return NDR_ERR_SUCCESS;
1461 }
1462
1463 _PUBLIC_ void ndr_print_winreg_EnumKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_EnumKey *r)
/* [<][>][^][v][top][bottom][index][help] */
1464 {
1465 ndr_print_struct(ndr, name, "winreg_EnumKey");
1466 ndr->depth++;
1467 if (flags & NDR_SET_VALUES) {
1468 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1469 }
1470 if (flags & NDR_IN) {
1471 ndr_print_struct(ndr, "in", "winreg_EnumKey");
1472 ndr->depth++;
1473 ndr_print_ptr(ndr, "handle", r->in.handle);
1474 ndr->depth++;
1475 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1476 ndr->depth--;
1477 ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
1478 ndr_print_ptr(ndr, "name", r->in.name);
1479 ndr->depth++;
1480 ndr_print_winreg_StringBuf(ndr, "name", r->in.name);
1481 ndr->depth--;
1482 ndr_print_ptr(ndr, "keyclass", r->in.keyclass);
1483 ndr->depth++;
1484 if (r->in.keyclass) {
1485 ndr_print_winreg_StringBuf(ndr, "keyclass", r->in.keyclass);
1486 }
1487 ndr->depth--;
1488 ndr_print_ptr(ndr, "last_changed_time", r->in.last_changed_time);
1489 ndr->depth++;
1490 if (r->in.last_changed_time) {
1491 ndr_print_NTTIME(ndr, "last_changed_time", *r->in.last_changed_time);
1492 }
1493 ndr->depth--;
1494 ndr->depth--;
1495 }
1496 if (flags & NDR_OUT) {
1497 ndr_print_struct(ndr, "out", "winreg_EnumKey");
1498 ndr->depth++;
1499 ndr_print_ptr(ndr, "name", r->out.name);
1500 ndr->depth++;
1501 ndr_print_winreg_StringBuf(ndr, "name", r->out.name);
1502 ndr->depth--;
1503 ndr_print_ptr(ndr, "keyclass", r->out.keyclass);
1504 ndr->depth++;
1505 if (r->out.keyclass) {
1506 ndr_print_winreg_StringBuf(ndr, "keyclass", r->out.keyclass);
1507 }
1508 ndr->depth--;
1509 ndr_print_ptr(ndr, "last_changed_time", r->out.last_changed_time);
1510 ndr->depth++;
1511 if (r->out.last_changed_time) {
1512 ndr_print_NTTIME(ndr, "last_changed_time", *r->out.last_changed_time);
1513 }
1514 ndr->depth--;
1515 ndr_print_WERROR(ndr, "result", r->out.result);
1516 ndr->depth--;
1517 }
1518 ndr->depth--;
1519 }
1520
1521 _PUBLIC_ enum ndr_err_code ndr_push_winreg_EnumValue(struct ndr_push *ndr, int flags, const struct winreg_EnumValue *r)
/* [<][>][^][v][top][bottom][index][help] */
1522 {
1523 if (flags & NDR_IN) {
1524 if (r->in.handle == NULL) {
1525 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1526 }
1527 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1528 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
1529 if (r->in.name == NULL) {
1530 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1531 }
1532 NDR_CHECK(ndr_push_winreg_ValNameBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.name));
1533 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.type));
1534 if (r->in.type) {
1535 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->in.type));
1536 }
1537 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.value));
1538 if (r->in.value) {
1539 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.size));
1540 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
1541 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.length));
1542 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.value, *r->in.length));
1543 }
1544 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.size));
1545 if (r->in.size) {
1546 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.size));
1547 }
1548 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.length));
1549 if (r->in.length) {
1550 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.length));
1551 }
1552 }
1553 if (flags & NDR_OUT) {
1554 if (r->out.name == NULL) {
1555 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1556 }
1557 NDR_CHECK(ndr_push_winreg_ValNameBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.name));
1558 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.type));
1559 if (r->out.type) {
1560 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
1561 }
1562 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.value));
1563 if (r->out.value) {
1564 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.size));
1565 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
1566 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.length));
1567 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.value, *r->out.length));
1568 }
1569 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.size));
1570 if (r->out.size) {
1571 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.size));
1572 }
1573 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.length));
1574 if (r->out.length) {
1575 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.length));
1576 }
1577 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1578 }
1579 return NDR_ERR_SUCCESS;
1580 }
1581
1582 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_EnumValue(struct ndr_pull *ndr, int flags, struct winreg_EnumValue *r)
/* [<][>][^][v][top][bottom][index][help] */
1583 {
1584 uint32_t _ptr_type;
1585 uint32_t _ptr_value;
1586 uint32_t _ptr_size;
1587 uint32_t _ptr_length;
1588 TALLOC_CTX *_mem_save_handle_0;
1589 TALLOC_CTX *_mem_save_name_0;
1590 TALLOC_CTX *_mem_save_type_0;
1591 TALLOC_CTX *_mem_save_value_0;
1592 TALLOC_CTX *_mem_save_size_0;
1593 TALLOC_CTX *_mem_save_length_0;
1594 if (flags & NDR_IN) {
1595 ZERO_STRUCT(r->out);
1596
1597 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1598 NDR_PULL_ALLOC(ndr, r->in.handle);
1599 }
1600 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1601 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1602 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1603 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1604 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
1605 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1606 NDR_PULL_ALLOC(ndr, r->in.name);
1607 }
1608 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1609 NDR_PULL_SET_MEM_CTX(ndr, r->in.name, LIBNDR_FLAG_REF_ALLOC);
1610 NDR_CHECK(ndr_pull_winreg_ValNameBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.name));
1611 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, LIBNDR_FLAG_REF_ALLOC);
1612 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_type));
1613 if (_ptr_type) {
1614 NDR_PULL_ALLOC(ndr, r->in.type);
1615 } else {
1616 r->in.type = NULL;
1617 }
1618 if (r->in.type) {
1619 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
1620 NDR_PULL_SET_MEM_CTX(ndr, r->in.type, 0);
1621 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->in.type));
1622 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, 0);
1623 }
1624 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value));
1625 if (_ptr_value) {
1626 NDR_PULL_ALLOC(ndr, r->in.value);
1627 } else {
1628 r->in.value = NULL;
1629 }
1630 if (r->in.value) {
1631 _mem_save_value_0 = NDR_PULL_GET_MEM_CTX(ndr);
1632 NDR_PULL_SET_MEM_CTX(ndr, r->in.value, 0);
1633 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value));
1634 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value));
1635 if (ndr_get_array_length(ndr, &r->in.value) > ndr_get_array_size(ndr, &r->in.value)) {
1636 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));
1637 }
1638 NDR_PULL_ALLOC_N(ndr, r->in.value, ndr_get_array_size(ndr, &r->in.value));
1639 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.value, ndr_get_array_length(ndr, &r->in.value)));
1640 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_0, 0);
1641 }
1642 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_size));
1643 if (_ptr_size) {
1644 NDR_PULL_ALLOC(ndr, r->in.size);
1645 } else {
1646 r->in.size = NULL;
1647 }
1648 if (r->in.size) {
1649 _mem_save_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
1650 NDR_PULL_SET_MEM_CTX(ndr, r->in.size, 0);
1651 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.size));
1652 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_size_0, 0);
1653 }
1654 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_length));
1655 if (_ptr_length) {
1656 NDR_PULL_ALLOC(ndr, r->in.length);
1657 } else {
1658 r->in.length = NULL;
1659 }
1660 if (r->in.length) {
1661 _mem_save_length_0 = NDR_PULL_GET_MEM_CTX(ndr);
1662 NDR_PULL_SET_MEM_CTX(ndr, r->in.length, 0);
1663 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.length));
1664 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_length_0, 0);
1665 }
1666 NDR_PULL_ALLOC(ndr, r->out.name);
1667 *r->out.name = *r->in.name;
1668 if (r->in.value) {
1669 if (r->in.size == NULL) return ndr_pull_error(ndr, NDR_ERR_INVALID_POINTER, "NULL Pointer for size_is()");
1670 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.value, *r->in.size));
1671 }
1672 if (r->in.value) {
1673 if (r->in.length == NULL) return ndr_pull_error(ndr, NDR_ERR_INVALID_POINTER, "NULL Pointer for length_is()");
1674 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->in.value, *r->in.length));
1675 }
1676 }
1677 if (flags & NDR_OUT) {
1678 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1679 NDR_PULL_ALLOC(ndr, r->out.name);
1680 }
1681 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1682 NDR_PULL_SET_MEM_CTX(ndr, r->out.name, LIBNDR_FLAG_REF_ALLOC);
1683 NDR_CHECK(ndr_pull_winreg_ValNameBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.name));
1684 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, LIBNDR_FLAG_REF_ALLOC);
1685 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_type));
1686 if (_ptr_type) {
1687 NDR_PULL_ALLOC(ndr, r->out.type);
1688 } else {
1689 r->out.type = NULL;
1690 }
1691 if (r->out.type) {
1692 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
1693 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, 0);
1694 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
1695 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, 0);
1696 }
1697 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value));
1698 if (_ptr_value) {
1699 NDR_PULL_ALLOC(ndr, r->out.value);
1700 } else {
1701 r->out.value = NULL;
1702 }
1703 if (r->out.value) {
1704 _mem_save_value_0 = NDR_PULL_GET_MEM_CTX(ndr);
1705 NDR_PULL_SET_MEM_CTX(ndr, r->out.value, 0);
1706 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.value));
1707 NDR_CHECK(ndr_pull_array_length(ndr, &r->out.value));
1708 if (ndr_get_array_length(ndr, &r->out.value) > ndr_get_array_size(ndr, &r->out.value)) {
1709 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));
1710 }
1711 NDR_PULL_ALLOC_N(ndr, r->out.value, ndr_get_array_size(ndr, &r->out.value));
1712 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.value, ndr_get_array_length(ndr, &r->out.value)));
1713 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_0, 0);
1714 }
1715 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_size));
1716 if (_ptr_size) {
1717 NDR_PULL_ALLOC(ndr, r->out.size);
1718 } else {
1719 r->out.size = NULL;
1720 }
1721 if (r->out.size) {
1722 _mem_save_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
1723 NDR_PULL_SET_MEM_CTX(ndr, r->out.size, 0);
1724 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.size));
1725 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_size_0, 0);
1726 }
1727 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_length));
1728 if (_ptr_length) {
1729 NDR_PULL_ALLOC(ndr, r->out.length);
1730 } else {
1731 r->out.length = NULL;
1732 }
1733 if (r->out.length) {
1734 _mem_save_length_0 = NDR_PULL_GET_MEM_CTX(ndr);
1735 NDR_PULL_SET_MEM_CTX(ndr, r->out.length, 0);
1736 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.length));
1737 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_length_0, 0);
1738 }
1739 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1740 if (r->out.value) {
1741 if (r->out.size == NULL) return ndr_pull_error(ndr, NDR_ERR_INVALID_POINTER, "NULL Pointer for size_is()");
1742 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.value, *r->out.size));
1743 }
1744 if (r->out.value) {
1745 if (r->out.length == NULL) return ndr_pull_error(ndr, NDR_ERR_INVALID_POINTER, "NULL Pointer for length_is()");
1746 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->out.value, *r->out.length));
1747 }
1748 }
1749 return NDR_ERR_SUCCESS;
1750 }
1751
1752 _PUBLIC_ void ndr_print_winreg_EnumValue(struct ndr_print *ndr, const char *name, int flags, const struct winreg_EnumValue *r)
/* [<][>][^][v][top][bottom][index][help] */
1753 {
1754 ndr_print_struct(ndr, name, "winreg_EnumValue");
1755 ndr->depth++;
1756 if (flags & NDR_SET_VALUES) {
1757 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1758 }
1759 if (flags & NDR_IN) {
1760 ndr_print_struct(ndr, "in", "winreg_EnumValue");
1761 ndr->depth++;
1762 ndr_print_ptr(ndr, "handle", r->in.handle);
1763 ndr->depth++;
1764 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1765 ndr->depth--;
1766 ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
1767 ndr_print_ptr(ndr, "name", r->in.name);
1768 ndr->depth++;
1769 ndr_print_winreg_ValNameBuf(ndr, "name", r->in.name);
1770 ndr->depth--;
1771 ndr_print_ptr(ndr, "type", r->in.type);
1772 ndr->depth++;
1773 if (r->in.type) {
1774 ndr_print_winreg_Type(ndr, "type", *r->in.type);
1775 }
1776 ndr->depth--;
1777 ndr_print_ptr(ndr, "value", r->in.value);
1778 ndr->depth++;
1779 if (r->in.value) {
1780 if (r->in.length == NULL) return;
1781 ndr_print_array_uint8(ndr, "value", r->in.value, *r->in.length);
1782 }
1783 ndr->depth--;
1784 ndr_print_ptr(ndr, "size", r->in.size);
1785 ndr->depth++;
1786 if (r->in.size) {
1787 ndr_print_uint32(ndr, "size", *r->in.size);
1788 }
1789 ndr->depth--;
1790 ndr_print_ptr(ndr, "length", r->in.length);
1791 ndr->depth++;
1792 if (r->in.length) {
1793 ndr_print_uint32(ndr, "length", *r->in.length);
1794 }
1795 ndr->depth--;
1796 ndr->depth--;
1797 }
1798 if (flags & NDR_OUT) {
1799 ndr_print_struct(ndr, "out", "winreg_EnumValue");
1800 ndr->depth++;
1801 ndr_print_ptr(ndr, "name", r->out.name);
1802 ndr->depth++;
1803 ndr_print_winreg_ValNameBuf(ndr, "name", r->out.name);
1804 ndr->depth--;
1805 ndr_print_ptr(ndr, "type", r->out.type);
1806 ndr->depth++;
1807 if (r->out.type) {
1808 ndr_print_winreg_Type(ndr, "type", *r->out.type);
1809 }
1810 ndr->depth--;
1811 ndr_print_ptr(ndr, "value", r->out.value);
1812 ndr->depth++;
1813 if (r->out.value) {
1814 if (r->out.length == NULL) return;
1815 ndr_print_array_uint8(ndr, "value", r->out.value, *r->out.length);
1816 }
1817 ndr->depth--;
1818 ndr_print_ptr(ndr, "size", r->out.size);
1819 ndr->depth++;
1820 if (r->out.size) {
1821 ndr_print_uint32(ndr, "size", *r->out.size);
1822 }
1823 ndr->depth--;
1824 ndr_print_ptr(ndr, "length", r->out.length);
1825 ndr->depth++;
1826 if (r->out.length) {
1827 ndr_print_uint32(ndr, "length", *r->out.length);
1828 }
1829 ndr->depth--;
1830 ndr_print_WERROR(ndr, "result", r->out.result);
1831 ndr->depth--;
1832 }
1833 ndr->depth--;
1834 }
1835
1836 _PUBLIC_ enum ndr_err_code ndr_push_winreg_FlushKey(struct ndr_push *ndr, int flags, const struct winreg_FlushKey *r)
/* [<][>][^][v][top][bottom][index][help] */
1837 {
1838 if (flags & NDR_IN) {
1839 if (r->in.handle == NULL) {
1840 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1841 }
1842 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1843 }
1844 if (flags & NDR_OUT) {
1845 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1846 }
1847 return NDR_ERR_SUCCESS;
1848 }
1849
1850 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_FlushKey(struct ndr_pull *ndr, int flags, struct winreg_FlushKey *r)
/* [<][>][^][v][top][bottom][index][help] */
1851 {
1852 TALLOC_CTX *_mem_save_handle_0;
1853 if (flags & NDR_IN) {
1854 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1855 NDR_PULL_ALLOC(ndr, r->in.handle);
1856 }
1857 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1858 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1859 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1860 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1861 }
1862 if (flags & NDR_OUT) {
1863 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1864 }
1865 return NDR_ERR_SUCCESS;
1866 }
1867
1868 _PUBLIC_ void ndr_print_winreg_FlushKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_FlushKey *r)
/* [<][>][^][v][top][bottom][index][help] */
1869 {
1870 ndr_print_struct(ndr, name, "winreg_FlushKey");
1871 ndr->depth++;
1872 if (flags & NDR_SET_VALUES) {
1873 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1874 }
1875 if (flags & NDR_IN) {
1876 ndr_print_struct(ndr, "in", "winreg_FlushKey");
1877 ndr->depth++;
1878 ndr_print_ptr(ndr, "handle", r->in.handle);
1879 ndr->depth++;
1880 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1881 ndr->depth--;
1882 ndr->depth--;
1883 }
1884 if (flags & NDR_OUT) {
1885 ndr_print_struct(ndr, "out", "winreg_FlushKey");
1886 ndr->depth++;
1887 ndr_print_WERROR(ndr, "result", r->out.result);
1888 ndr->depth--;
1889 }
1890 ndr->depth--;
1891 }
1892
1893 _PUBLIC_ enum ndr_err_code ndr_push_winreg_GetKeySecurity(struct ndr_push *ndr, int flags, const struct winreg_GetKeySecurity *r)
/* [<][>][^][v][top][bottom][index][help] */
1894 {
1895 if (flags & NDR_IN) {
1896 if (r->in.handle == NULL) {
1897 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1898 }
1899 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1900 NDR_CHECK(ndr_push_security_secinfo(ndr, NDR_SCALARS, r->in.sec_info));
1901 if (r->in.sd == NULL) {
1902 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1903 }
1904 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sd));
1905 }
1906 if (flags & NDR_OUT) {
1907 if (r->out.sd == NULL) {
1908 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1909 }
1910 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.sd));
1911 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1912 }
1913 return NDR_ERR_SUCCESS;
1914 }
1915
1916 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_GetKeySecurity(struct ndr_pull *ndr, int flags, struct winreg_GetKeySecurity *r)
/* [<][>][^][v][top][bottom][index][help] */
1917 {
1918 TALLOC_CTX *_mem_save_handle_0;
1919 TALLOC_CTX *_mem_save_sd_0;
1920 if (flags & NDR_IN) {
1921 ZERO_STRUCT(r->out);
1922
1923 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1924 NDR_PULL_ALLOC(ndr, r->in.handle);
1925 }
1926 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1927 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1928 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1929 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1930 NDR_CHECK(ndr_pull_security_secinfo(ndr, NDR_SCALARS, &r->in.sec_info));
1931 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1932 NDR_PULL_ALLOC(ndr, r->in.sd);
1933 }
1934 _mem_save_sd_0 = NDR_PULL_GET_MEM_CTX(ndr);
1935 NDR_PULL_SET_MEM_CTX(ndr, r->in.sd, LIBNDR_FLAG_REF_ALLOC);
1936 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sd));
1937 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sd_0, LIBNDR_FLAG_REF_ALLOC);
1938 NDR_PULL_ALLOC(ndr, r->out.sd);
1939 *r->out.sd = *r->in.sd;
1940 }
1941 if (flags & NDR_OUT) {
1942 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1943 NDR_PULL_ALLOC(ndr, r->out.sd);
1944 }
1945 _mem_save_sd_0 = NDR_PULL_GET_MEM_CTX(ndr);
1946 NDR_PULL_SET_MEM_CTX(ndr, r->out.sd, LIBNDR_FLAG_REF_ALLOC);
1947 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.sd));
1948 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sd_0, LIBNDR_FLAG_REF_ALLOC);
1949 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1950 }
1951 return NDR_ERR_SUCCESS;
1952 }
1953
1954 _PUBLIC_ void ndr_print_winreg_GetKeySecurity(struct ndr_print *ndr, const char *name, int flags, const struct winreg_GetKeySecurity *r)
/* [<][>][^][v][top][bottom][index][help] */
1955 {
1956 ndr_print_struct(ndr, name, "winreg_GetKeySecurity");
1957 ndr->depth++;
1958 if (flags & NDR_SET_VALUES) {
1959 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1960 }
1961 if (flags & NDR_IN) {
1962 ndr_print_struct(ndr, "in", "winreg_GetKeySecurity");
1963 ndr->depth++;
1964 ndr_print_ptr(ndr, "handle", r->in.handle);
1965 ndr->depth++;
1966 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1967 ndr->depth--;
1968 ndr_print_security_secinfo(ndr, "sec_info", r->in.sec_info);
1969 ndr_print_ptr(ndr, "sd", r->in.sd);
1970 ndr->depth++;
1971 ndr_print_KeySecurityData(ndr, "sd", r->in.sd);
1972 ndr->depth--;
1973 ndr->depth--;
1974 }
1975 if (flags & NDR_OUT) {
1976 ndr_print_struct(ndr, "out", "winreg_GetKeySecurity");
1977 ndr->depth++;
1978 ndr_print_ptr(ndr, "sd", r->out.sd);
1979 ndr->depth++;
1980 ndr_print_KeySecurityData(ndr, "sd", r->out.sd);
1981 ndr->depth--;
1982 ndr_print_WERROR(ndr, "result", r->out.result);
1983 ndr->depth--;
1984 }
1985 ndr->depth--;
1986 }
1987
1988 static enum ndr_err_code ndr_push_winreg_LoadKey(struct ndr_push *ndr, int flags, const struct winreg_LoadKey *r)
/* [<][>][^][v][top][bottom][index][help] */
1989 {
1990 if (flags & NDR_IN) {
1991 if (r->in.handle == NULL) {
1992 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1993 }
1994 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1995 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.keyname));
1996 if (r->in.keyname) {
1997 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.keyname));
1998 }
1999 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.filename));
2000 if (r->in.filename) {
2001 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
2002 }
2003 }
2004 if (flags & NDR_OUT) {
2005 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2006 }
2007 return NDR_ERR_SUCCESS;
2008 }
2009
2010 static enum ndr_err_code ndr_pull_winreg_LoadKey(struct ndr_pull *ndr, int flags, struct winreg_LoadKey *r)
/* [<][>][^][v][top][bottom][index][help] */
2011 {
2012 uint32_t _ptr_keyname;
2013 uint32_t _ptr_filename;
2014 TALLOC_CTX *_mem_save_handle_0;
2015 TALLOC_CTX *_mem_save_keyname_0;
2016 TALLOC_CTX *_mem_save_filename_0;
2017 if (flags & NDR_IN) {
2018 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2019 NDR_PULL_ALLOC(ndr, r->in.handle);
2020 }
2021 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2022 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2023 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2024 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2025 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyname));
2026 if (_ptr_keyname) {
2027 NDR_PULL_ALLOC(ndr, r->in.keyname);
2028 } else {
2029 r->in.keyname = NULL;
2030 }
2031 if (r->in.keyname) {
2032 _mem_save_keyname_0 = NDR_PULL_GET_MEM_CTX(ndr);
2033 NDR_PULL_SET_MEM_CTX(ndr, r->in.keyname, 0);
2034 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.keyname));
2035 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyname_0, 0);
2036 }
2037 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_filename));
2038 if (_ptr_filename) {
2039 NDR_PULL_ALLOC(ndr, r->in.filename);
2040 } else {
2041 r->in.filename = NULL;
2042 }
2043 if (r->in.filename) {
2044 _mem_save_filename_0 = NDR_PULL_GET_MEM_CTX(ndr);
2045 NDR_PULL_SET_MEM_CTX(ndr, r->in.filename, 0);
2046 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
2047 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_filename_0, 0);
2048 }
2049 }
2050 if (flags & NDR_OUT) {
2051 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2052 }
2053 return NDR_ERR_SUCCESS;
2054 }
2055
2056 _PUBLIC_ void ndr_print_winreg_LoadKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_LoadKey *r)
/* [<][>][^][v][top][bottom][index][help] */
2057 {
2058 ndr_print_struct(ndr, name, "winreg_LoadKey");
2059 ndr->depth++;
2060 if (flags & NDR_SET_VALUES) {
2061 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2062 }
2063 if (flags & NDR_IN) {
2064 ndr_print_struct(ndr, "in", "winreg_LoadKey");
2065 ndr->depth++;
2066 ndr_print_ptr(ndr, "handle", r->in.handle);
2067 ndr->depth++;
2068 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2069 ndr->depth--;
2070 ndr_print_ptr(ndr, "keyname", r->in.keyname);
2071 ndr->depth++;
2072 if (r->in.keyname) {
2073 ndr_print_winreg_String(ndr, "keyname", r->in.keyname);
2074 }
2075 ndr->depth--;
2076 ndr_print_ptr(ndr, "filename", r->in.filename);
2077 ndr->depth++;
2078 if (r->in.filename) {
2079 ndr_print_winreg_String(ndr, "filename", r->in.filename);
2080 }
2081 ndr->depth--;
2082 ndr->depth--;
2083 }
2084 if (flags & NDR_OUT) {
2085 ndr_print_struct(ndr, "out", "winreg_LoadKey");
2086 ndr->depth++;
2087 ndr_print_WERROR(ndr, "result", r->out.result);
2088 ndr->depth--;
2089 }
2090 ndr->depth--;
2091 }
2092
2093 _PUBLIC_ enum ndr_err_code ndr_push_winreg_NotifyChangeKeyValue(struct ndr_push *ndr, int flags, const struct winreg_NotifyChangeKeyValue *r)
/* [<][>][^][v][top][bottom][index][help] */
2094 {
2095 if (flags & NDR_IN) {
2096 if (r->in.handle == NULL) {
2097 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2098 }
2099 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2100 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.watch_subtree));
2101 NDR_CHECK(ndr_push_winreg_NotifyChangeType(ndr, NDR_SCALARS, r->in.notify_filter));
2102 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
2103 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.string1));
2104 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.string2));
2105 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown2));
2106 }
2107 if (flags & NDR_OUT) {
2108 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2109 }
2110 return NDR_ERR_SUCCESS;
2111 }
2112
2113 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_NotifyChangeKeyValue(struct ndr_pull *ndr, int flags, struct winreg_NotifyChangeKeyValue *r)
/* [<][>][^][v][top][bottom][index][help] */
2114 {
2115 TALLOC_CTX *_mem_save_handle_0;
2116 if (flags & NDR_IN) {
2117 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2118 NDR_PULL_ALLOC(ndr, r->in.handle);
2119 }
2120 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2121 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2122 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2123 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2124 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.watch_subtree));
2125 NDR_CHECK(ndr_pull_winreg_NotifyChangeType(ndr, NDR_SCALARS, &r->in.notify_filter));
2126 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
2127 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.string1));
2128 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.string2));
2129 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown2));
2130 }
2131 if (flags & NDR_OUT) {
2132 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2133 }
2134 return NDR_ERR_SUCCESS;
2135 }
2136
2137 _PUBLIC_ void ndr_print_winreg_NotifyChangeKeyValue(struct ndr_print *ndr, const char *name, int flags, const struct winreg_NotifyChangeKeyValue *r)
/* [<][>][^][v][top][bottom][index][help] */
2138 {
2139 ndr_print_struct(ndr, name, "winreg_NotifyChangeKeyValue");
2140 ndr->depth++;
2141 if (flags & NDR_SET_VALUES) {
2142 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2143 }
2144 if (flags & NDR_IN) {
2145 ndr_print_struct(ndr, "in", "winreg_NotifyChangeKeyValue");
2146 ndr->depth++;
2147 ndr_print_ptr(ndr, "handle", r->in.handle);
2148 ndr->depth++;
2149 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2150 ndr->depth--;
2151 ndr_print_uint8(ndr, "watch_subtree", r->in.watch_subtree);
2152 ndr_print_winreg_NotifyChangeType(ndr, "notify_filter", r->in.notify_filter);
2153 ndr_print_uint32(ndr, "unknown", r->in.unknown);
2154 ndr_print_winreg_String(ndr, "string1", &r->in.string1);
2155 ndr_print_winreg_String(ndr, "string2", &r->in.string2);
2156 ndr_print_uint32(ndr, "unknown2", r->in.unknown2);
2157 ndr->depth--;
2158 }
2159 if (flags & NDR_OUT) {
2160 ndr_print_struct(ndr, "out", "winreg_NotifyChangeKeyValue");
2161 ndr->depth++;
2162 ndr_print_WERROR(ndr, "result", r->out.result);
2163 ndr->depth--;
2164 }
2165 ndr->depth--;
2166 }
2167
2168 _PUBLIC_ enum ndr_err_code ndr_push_winreg_OpenKey(struct ndr_push *ndr, int flags, const struct winreg_OpenKey *r)
/* [<][>][^][v][top][bottom][index][help] */
2169 {
2170 if (flags & NDR_IN) {
2171 if (r->in.parent_handle == NULL) {
2172 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2173 }
2174 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.parent_handle));
2175 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.keyname));
2176 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
2177 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
2178 }
2179 if (flags & NDR_OUT) {
2180 if (r->out.handle == NULL) {
2181 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2182 }
2183 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
2184 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2185 }
2186 return NDR_ERR_SUCCESS;
2187 }
2188
2189 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_OpenKey(struct ndr_pull *ndr, int flags, struct winreg_OpenKey *r)
/* [<][>][^][v][top][bottom][index][help] */
2190 {
2191 TALLOC_CTX *_mem_save_parent_handle_0;
2192 TALLOC_CTX *_mem_save_handle_0;
2193 if (flags & NDR_IN) {
2194 ZERO_STRUCT(r->out);
2195
2196 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2197 NDR_PULL_ALLOC(ndr, r->in.parent_handle);
2198 }
2199 _mem_save_parent_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2200 NDR_PULL_SET_MEM_CTX(ndr, r->in.parent_handle, LIBNDR_FLAG_REF_ALLOC);
2201 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.parent_handle));
2202 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parent_handle_0, LIBNDR_FLAG_REF_ALLOC);
2203 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.keyname));
2204 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
2205 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
2206 NDR_PULL_ALLOC(ndr, r->out.handle);
2207 ZERO_STRUCTP(r->out.handle);
2208 }
2209 if (flags & NDR_OUT) {
2210 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2211 NDR_PULL_ALLOC(ndr, r->out.handle);
2212 }
2213 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2214 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
2215 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
2216 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2217 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2218 }
2219 return NDR_ERR_SUCCESS;
2220 }
2221
2222 _PUBLIC_ void ndr_print_winreg_OpenKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenKey *r)
/* [<][>][^][v][top][bottom][index][help] */
2223 {
2224 ndr_print_struct(ndr, name, "winreg_OpenKey");
2225 ndr->depth++;
2226 if (flags & NDR_SET_VALUES) {
2227 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2228 }
2229 if (flags & NDR_IN) {
2230 ndr_print_struct(ndr, "in", "winreg_OpenKey");
2231 ndr->depth++;
2232 ndr_print_ptr(ndr, "parent_handle", r->in.parent_handle);
2233 ndr->depth++;
2234 ndr_print_policy_handle(ndr, "parent_handle", r->in.parent_handle);
2235 ndr->depth--;
2236 ndr_print_winreg_String(ndr, "keyname", &r->in.keyname);
2237 ndr_print_uint32(ndr, "unknown", r->in.unknown);
2238 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
2239 ndr->depth--;
2240 }
2241 if (flags & NDR_OUT) {
2242 ndr_print_struct(ndr, "out", "winreg_OpenKey");
2243 ndr->depth++;
2244 ndr_print_ptr(ndr, "handle", r->out.handle);
2245 ndr->depth++;
2246 ndr_print_policy_handle(ndr, "handle", r->out.handle);
2247 ndr->depth--;
2248 ndr_print_WERROR(ndr, "result", r->out.result);
2249 ndr->depth--;
2250 }
2251 ndr->depth--;
2252 }
2253
2254 _PUBLIC_ enum ndr_err_code ndr_push_winreg_QueryInfoKey(struct ndr_push *ndr, int flags, const struct winreg_QueryInfoKey *r)
/* [<][>][^][v][top][bottom][index][help] */
2255 {
2256 if (flags & NDR_IN) {
2257 if (r->in.handle == NULL) {
2258 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2259 }
2260 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2261 if (r->in.classname == NULL) {
2262 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2263 }
2264 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.classname));
2265 }
2266 if (flags & NDR_OUT) {
2267 if (r->out.classname == NULL) {
2268 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2269 }
2270 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.classname));
2271 if (r->out.num_subkeys == NULL) {
2272 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2273 }
2274 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_subkeys));
2275 if (r->out.max_subkeylen == NULL) {
2276 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2277 }
2278 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.max_subkeylen));
2279 if (r->out.max_classlen == NULL) {
2280 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2281 }
2282 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.max_classlen));
2283 if (r->out.num_values == NULL) {
2284 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2285 }
2286 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_values));
2287 if (r->out.max_valnamelen == NULL) {
2288 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2289 }
2290 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.max_valnamelen));
2291 if (r->out.max_valbufsize == NULL) {
2292 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2293 }
2294 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.max_valbufsize));
2295 if (r->out.secdescsize == NULL) {
2296 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2297 }
2298 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.secdescsize));
2299 if (r->out.last_changed_time == NULL) {
2300 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2301 }
2302 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, *r->out.last_changed_time));
2303 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2304 }
2305 return NDR_ERR_SUCCESS;
2306 }
2307
2308 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_QueryInfoKey(struct ndr_pull *ndr, int flags, struct winreg_QueryInfoKey *r)
/* [<][>][^][v][top][bottom][index][help] */
2309 {
2310 TALLOC_CTX *_mem_save_handle_0;
2311 TALLOC_CTX *_mem_save_classname_0;
2312 TALLOC_CTX *_mem_save_num_subkeys_0;
2313 TALLOC_CTX *_mem_save_max_subkeylen_0;
2314 TALLOC_CTX *_mem_save_max_classlen_0;
2315 TALLOC_CTX *_mem_save_num_values_0;
2316 TALLOC_CTX *_mem_save_max_valnamelen_0;
2317 TALLOC_CTX *_mem_save_max_valbufsize_0;
2318 TALLOC_CTX *_mem_save_secdescsize_0;
2319 TALLOC_CTX *_mem_save_last_changed_time_0;
2320 if (flags & NDR_IN) {
2321 ZERO_STRUCT(r->out);
2322
2323 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2324 NDR_PULL_ALLOC(ndr, r->in.handle);
2325 }
2326 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2327 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2328 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2329 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2330 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2331 NDR_PULL_ALLOC(ndr, r->in.classname);
2332 }
2333 _mem_save_classname_0 = NDR_PULL_GET_MEM_CTX(ndr);
2334 NDR_PULL_SET_MEM_CTX(ndr, r->in.classname, LIBNDR_FLAG_REF_ALLOC);
2335 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.classname));
2336 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_classname_0, LIBNDR_FLAG_REF_ALLOC);
2337 NDR_PULL_ALLOC(ndr, r->out.classname);
2338 *r->out.classname = *r->in.classname;
2339 NDR_PULL_ALLOC(ndr, r->out.num_subkeys);
2340 ZERO_STRUCTP(r->out.num_subkeys);
2341 NDR_PULL_ALLOC(ndr, r->out.max_subkeylen);
2342 ZERO_STRUCTP(r->out.max_subkeylen);
2343 NDR_PULL_ALLOC(ndr, r->out.max_classlen);
2344 ZERO_STRUCTP(r->out.max_classlen);
2345 NDR_PULL_ALLOC(ndr, r->out.num_values);
2346 ZERO_STRUCTP(r->out.num_values);
2347 NDR_PULL_ALLOC(ndr, r->out.max_valnamelen);
2348 ZERO_STRUCTP(r->out.max_valnamelen);
2349 NDR_PULL_ALLOC(ndr, r->out.max_valbufsize);
2350 ZERO_STRUCTP(r->out.max_valbufsize);
2351 NDR_PULL_ALLOC(ndr, r->out.secdescsize);
2352 ZERO_STRUCTP(r->out.secdescsize);
2353 NDR_PULL_ALLOC(ndr, r->out.last_changed_time);
2354 ZERO_STRUCTP(r->out.last_changed_time);
2355 }
2356 if (flags & NDR_OUT) {
2357 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2358 NDR_PULL_ALLOC(ndr, r->out.classname);
2359 }
2360 _mem_save_classname_0 = NDR_PULL_GET_MEM_CTX(ndr);
2361 NDR_PULL_SET_MEM_CTX(ndr, r->out.classname, LIBNDR_FLAG_REF_ALLOC);
2362 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.classname));
2363 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_classname_0, LIBNDR_FLAG_REF_ALLOC);
2364 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2365 NDR_PULL_ALLOC(ndr, r->out.num_subkeys);
2366 }
2367 _mem_save_num_subkeys_0 = NDR_PULL_GET_MEM_CTX(ndr);
2368 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_subkeys, LIBNDR_FLAG_REF_ALLOC);
2369 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_subkeys));
2370 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_subkeys_0, LIBNDR_FLAG_REF_ALLOC);
2371 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2372 NDR_PULL_ALLOC(ndr, r->out.max_subkeylen);
2373 }
2374 _mem_save_max_subkeylen_0 = NDR_PULL_GET_MEM_CTX(ndr);
2375 NDR_PULL_SET_MEM_CTX(ndr, r->out.max_subkeylen, LIBNDR_FLAG_REF_ALLOC);
2376 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.max_subkeylen));
2377 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_max_subkeylen_0, LIBNDR_FLAG_REF_ALLOC);
2378 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2379 NDR_PULL_ALLOC(ndr, r->out.max_classlen);
2380 }
2381 _mem_save_max_classlen_0 = NDR_PULL_GET_MEM_CTX(ndr);
2382 NDR_PULL_SET_MEM_CTX(ndr, r->out.max_classlen, LIBNDR_FLAG_REF_ALLOC);
2383 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.max_classlen));
2384 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_max_classlen_0, LIBNDR_FLAG_REF_ALLOC);
2385 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2386 NDR_PULL_ALLOC(ndr, r->out.num_values);
2387 }
2388 _mem_save_num_values_0 = NDR_PULL_GET_MEM_CTX(ndr);
2389 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_values, LIBNDR_FLAG_REF_ALLOC);
2390 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_values));
2391 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_values_0, LIBNDR_FLAG_REF_ALLOC);
2392 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2393 NDR_PULL_ALLOC(ndr, r->out.max_valnamelen);
2394 }
2395 _mem_save_max_valnamelen_0 = NDR_PULL_GET_MEM_CTX(ndr);
2396 NDR_PULL_SET_MEM_CTX(ndr, r->out.max_valnamelen, LIBNDR_FLAG_REF_ALLOC);
2397 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.max_valnamelen));
2398 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_max_valnamelen_0, LIBNDR_FLAG_REF_ALLOC);
2399 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2400 NDR_PULL_ALLOC(ndr, r->out.max_valbufsize);
2401 }
2402 _mem_save_max_valbufsize_0 = NDR_PULL_GET_MEM_CTX(ndr);
2403 NDR_PULL_SET_MEM_CTX(ndr, r->out.max_valbufsize, LIBNDR_FLAG_REF_ALLOC);
2404 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.max_valbufsize));
2405 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_max_valbufsize_0, LIBNDR_FLAG_REF_ALLOC);
2406 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2407 NDR_PULL_ALLOC(ndr, r->out.secdescsize);
2408 }
2409 _mem_save_secdescsize_0 = NDR_PULL_GET_MEM_CTX(ndr);
2410 NDR_PULL_SET_MEM_CTX(ndr, r->out.secdescsize, LIBNDR_FLAG_REF_ALLOC);
2411 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.secdescsize));
2412 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdescsize_0, LIBNDR_FLAG_REF_ALLOC);
2413 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2414 NDR_PULL_ALLOC(ndr, r->out.last_changed_time);
2415 }
2416 _mem_save_last_changed_time_0 = NDR_PULL_GET_MEM_CTX(ndr);
2417 NDR_PULL_SET_MEM_CTX(ndr, r->out.last_changed_time, LIBNDR_FLAG_REF_ALLOC);
2418 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, r->out.last_changed_time));
2419 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_last_changed_time_0, LIBNDR_FLAG_REF_ALLOC);
2420 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2421 }
2422 return NDR_ERR_SUCCESS;
2423 }
2424
2425 _PUBLIC_ void ndr_print_winreg_QueryInfoKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_QueryInfoKey *r)
/* [<][>][^][v][top][bottom][index][help] */
2426 {
2427 ndr_print_struct(ndr, name, "winreg_QueryInfoKey");
2428 ndr->depth++;
2429 if (flags & NDR_SET_VALUES) {
2430 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2431 }
2432 if (flags & NDR_IN) {
2433 ndr_print_struct(ndr, "in", "winreg_QueryInfoKey");
2434 ndr->depth++;
2435 ndr_print_ptr(ndr, "handle", r->in.handle);
2436 ndr->depth++;
2437 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2438 ndr->depth--;
2439 ndr_print_ptr(ndr, "classname", r->in.classname);
2440 ndr->depth++;
2441 ndr_print_winreg_String(ndr, "classname", r->in.classname);
2442 ndr->depth--;
2443 ndr->depth--;
2444 }
2445 if (flags & NDR_OUT) {
2446 ndr_print_struct(ndr, "out", "winreg_QueryInfoKey");
2447 ndr->depth++;
2448 ndr_print_ptr(ndr, "classname", r->out.classname);
2449 ndr->depth++;
2450 ndr_print_winreg_String(ndr, "classname", r->out.classname);
2451 ndr->depth--;
2452 ndr_print_ptr(ndr, "num_subkeys", r->out.num_subkeys);
2453 ndr->depth++;
2454 ndr_print_uint32(ndr, "num_subkeys", *r->out.num_subkeys);
2455 ndr->depth--;
2456 ndr_print_ptr(ndr, "max_subkeylen", r->out.max_subkeylen);
2457 ndr->depth++;
2458 ndr_print_uint32(ndr, "max_subkeylen", *r->out.max_subkeylen);
2459 ndr->depth--;
2460 ndr_print_ptr(ndr, "max_classlen", r->out.max_classlen);
2461 ndr->depth++;
2462 ndr_print_uint32(ndr, "max_classlen", *r->out.max_classlen);
2463 ndr->depth--;
2464 ndr_print_ptr(ndr, "num_values", r->out.num_values);
2465 ndr->depth++;
2466 ndr_print_uint32(ndr, "num_values", *r->out.num_values);
2467 ndr->depth--;
2468 ndr_print_ptr(ndr, "max_valnamelen", r->out.max_valnamelen);
2469 ndr->depth++;
2470 ndr_print_uint32(ndr, "max_valnamelen", *r->out.max_valnamelen);
2471 ndr->depth--;
2472 ndr_print_ptr(ndr, "max_valbufsize", r->out.max_valbufsize);
2473 ndr->depth++;
2474 ndr_print_uint32(ndr, "max_valbufsize", *r->out.max_valbufsize);
2475 ndr->depth--;
2476 ndr_print_ptr(ndr, "secdescsize", r->out.secdescsize);
2477 ndr->depth++;
2478 ndr_print_uint32(ndr, "secdescsize", *r->out.secdescsize);
2479 ndr->depth--;
2480 ndr_print_ptr(ndr, "last_changed_time", r->out.last_changed_time);
2481 ndr->depth++;
2482 ndr_print_NTTIME(ndr, "last_changed_time", *r->out.last_changed_time);
2483 ndr->depth--;
2484 ndr_print_WERROR(ndr, "result", r->out.result);
2485 ndr->depth--;
2486 }
2487 ndr->depth--;
2488 }
2489
2490 _PUBLIC_ enum ndr_err_code ndr_push_winreg_QueryValue(struct ndr_push *ndr, int flags, const struct winreg_QueryValue *r)
/* [<][>][^][v][top][bottom][index][help] */
2491 {
2492 if (flags & NDR_IN) {
2493 if (r->in.handle == NULL) {
2494 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2495 }
2496 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2497 if (r->in.value_name == NULL) {
2498 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2499 }
2500 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.value_name));
2501 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.type));
2502 if (r->in.type) {
2503 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->in.type));
2504 }
2505 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data));
2506 if (r->in.data) {
2507 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.data_size));
2508 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
2509 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.data_length));
2510 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.data, *r->in.data_length));
2511 }
2512 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_size));
2513 if (r->in.data_size) {
2514 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.data_size));
2515 }
2516 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_length));
2517 if (r->in.data_length) {
2518 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.data_length));
2519 }
2520 }
2521 if (flags & NDR_OUT) {
2522 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.type));
2523 if (r->out.type) {
2524 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
2525 }
2526 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.data));
2527 if (r->out.data) {
2528 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_size));
2529 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
2530 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_length));
2531 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, *r->out.data_length));
2532 }
2533 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.data_size));
2534 if (r->out.data_size) {
2535 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_size));
2536 }
2537 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.data_length));
2538 if (r->out.data_length) {
2539 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_length));
2540 }
2541 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2542 }
2543 return NDR_ERR_SUCCESS;
2544 }
2545
2546 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_QueryValue(struct ndr_pull *ndr, int flags, struct winreg_QueryValue *r)
/* [<][>][^][v][top][bottom][index][help] */
2547 {
2548 uint32_t _ptr_type;
2549 uint32_t _ptr_data;
2550 uint32_t _ptr_data_size;
2551 uint32_t _ptr_data_length;
2552 TALLOC_CTX *_mem_save_handle_0;
2553 TALLOC_CTX *_mem_save_value_name_0;
2554 TALLOC_CTX *_mem_save_type_0;
2555 TALLOC_CTX *_mem_save_data_0;
2556 TALLOC_CTX *_mem_save_data_size_0;
2557 TALLOC_CTX *_mem_save_data_length_0;
2558 if (flags & NDR_IN) {
2559 ZERO_STRUCT(r->out);
2560
2561 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2562 NDR_PULL_ALLOC(ndr, r->in.handle);
2563 }
2564 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2565 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2566 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2567 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2568 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2569 NDR_PULL_ALLOC(ndr, r->in.value_name);
2570 }
2571 _mem_save_value_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2572 NDR_PULL_SET_MEM_CTX(ndr, r->in.value_name, LIBNDR_FLAG_REF_ALLOC);
2573 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.value_name));
2574 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_name_0, LIBNDR_FLAG_REF_ALLOC);
2575 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_type));
2576 if (_ptr_type) {
2577 NDR_PULL_ALLOC(ndr, r->in.type);
2578 } else {
2579 r->in.type = NULL;
2580 }
2581 if (r->in.type) {
2582 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
2583 NDR_PULL_SET_MEM_CTX(ndr, r->in.type, 0);
2584 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->in.type));
2585 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, 0);
2586 }
2587 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
2588 if (_ptr_data) {
2589 NDR_PULL_ALLOC(ndr, r->in.data);
2590 } else {
2591 r->in.data = NULL;
2592 }
2593 if (r->in.data) {
2594 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
2595 NDR_PULL_SET_MEM_CTX(ndr, r->in.data, 0);
2596 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data));
2597 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.data));
2598 if (ndr_get_array_length(ndr, &r->in.data) > ndr_get_array_size(ndr, &r->in.data)) {
2599 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));
2600 }
2601 NDR_PULL_ALLOC_N(ndr, r->in.data, ndr_get_array_size(ndr, &r->in.data));
2602 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.data, ndr_get_array_length(ndr, &r->in.data)));
2603 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
2604 }
2605 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_size));
2606 if (_ptr_data_size) {
2607 NDR_PULL_ALLOC(ndr, r->in.data_size);
2608 } else {
2609 r->in.data_size = NULL;
2610 }
2611 if (r->in.data_size) {
2612 _mem_save_data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
2613 NDR_PULL_SET_MEM_CTX(ndr, r->in.data_size, 0);
2614 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.data_size));
2615 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_size_0, 0);
2616 }
2617 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_length));
2618 if (_ptr_data_length) {
2619 NDR_PULL_ALLOC(ndr, r->in.data_length);
2620 } else {
2621 r->in.data_length = NULL;
2622 }
2623 if (r->in.data_length) {
2624 _mem_save_data_length_0 = NDR_PULL_GET_MEM_CTX(ndr);
2625 NDR_PULL_SET_MEM_CTX(ndr, r->in.data_length, 0);
2626 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.data_length));
2627 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_length_0, 0);
2628 }
2629 if (r->in.data) {
2630 if (r->in.data_size == NULL) return ndr_pull_error(ndr, NDR_ERR_INVALID_POINTER, "NULL Pointer for size_is()");
2631 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.data, *r->in.data_size));
2632 }
2633 if (r->in.data) {
2634 if (r->in.data_length == NULL) return ndr_pull_error(ndr, NDR_ERR_INVALID_POINTER, "NULL Pointer for length_is()");
2635 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->in.data, *r->in.data_length));
2636 }
2637 }
2638 if (flags & NDR_OUT) {
2639 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_type));
2640 if (_ptr_type) {
2641 NDR_PULL_ALLOC(ndr, r->out.type);
2642 } else {
2643 r->out.type = NULL;
2644 }
2645 if (r->out.type) {
2646 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
2647 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, 0);
2648 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
2649 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, 0);
2650 }
2651 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
2652 if (_ptr_data) {
2653 NDR_PULL_ALLOC(ndr, r->out.data);
2654 } else {
2655 r->out.data = NULL;
2656 }
2657 if (r->out.data) {
2658 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
2659 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, 0);
2660 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
2661 NDR_CHECK(ndr_pull_array_length(ndr, &r->out.data));
2662 if (ndr_get_array_length(ndr, &r->out.data) > ndr_get_array_size(ndr, &r->out.data)) {
2663 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));
2664 }
2665 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
2666 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_length(ndr, &r->out.data)));
2667 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
2668 }
2669 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_size));
2670 if (_ptr_data_size) {
2671 NDR_PULL_ALLOC(ndr, r->out.data_size);
2672 } else {
2673 r->out.data_size = NULL;
2674 }
2675 if (r->out.data_size) {
2676 _mem_save_data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
2677 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_size, 0);
2678 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_size));
2679 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_size_0, 0);
2680 }
2681 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_length));
2682 if (_ptr_data_length) {
2683 NDR_PULL_ALLOC(ndr, r->out.data_length);
2684 } else {
2685 r->out.data_length = NULL;
2686 }
2687 if (r->out.data_length) {
2688 _mem_save_data_length_0 = NDR_PULL_GET_MEM_CTX(ndr);
2689 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_length, 0);
2690 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_length));
2691 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_length_0, 0);
2692 }
2693 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2694 if (r->out.data) {
2695 if (r->out.data_size == NULL) return ndr_pull_error(ndr, NDR_ERR_INVALID_POINTER, "NULL Pointer for size_is()");
2696 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, *r->out.data_size));
2697 }
2698 if (r->out.data) {
2699 if (r->out.data_length == NULL) return ndr_pull_error(ndr, NDR_ERR_INVALID_POINTER, "NULL Pointer for length_is()");
2700 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->out.data, *r->out.data_length));
2701 }
2702 }
2703 return NDR_ERR_SUCCESS;
2704 }
2705
2706 _PUBLIC_ void ndr_print_winreg_QueryValue(struct ndr_print *ndr, const char *name, int flags, const struct winreg_QueryValue *r)
/* [<][>][^][v][top][bottom][index][help] */
2707 {
2708 ndr_print_struct(ndr, name, "winreg_QueryValue");
2709 ndr->depth++;
2710 if (flags & NDR_SET_VALUES) {
2711 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2712 }
2713 if (flags & NDR_IN) {
2714 ndr_print_struct(ndr, "in", "winreg_QueryValue");
2715 ndr->depth++;
2716 ndr_print_ptr(ndr, "handle", r->in.handle);
2717 ndr->depth++;
2718 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2719 ndr->depth--;
2720 ndr_print_ptr(ndr, "value_name", r->in.value_name);
2721 ndr->depth++;
2722 ndr_print_winreg_String(ndr, "value_name", r->in.value_name);
2723 ndr->depth--;
2724 ndr_print_ptr(ndr, "type", r->in.type);
2725 ndr->depth++;
2726 if (r->in.type) {
2727 ndr_print_winreg_Type(ndr, "type", *r->in.type);
2728 }
2729 ndr->depth--;
2730 ndr_print_ptr(ndr, "data", r->in.data);
2731 ndr->depth++;
2732 if (r->in.data) {
2733 if (r->in.data_length == NULL) return;
2734 ndr_print_array_uint8(ndr, "data", r->in.data, *r->in.data_length);
2735 }
2736 ndr->depth--;
2737 ndr_print_ptr(ndr, "data_size", r->in.data_size);
2738 ndr->depth++;
2739 if (r->in.data_size) {
2740 ndr_print_uint32(ndr, "data_size", *r->in.data_size);
2741 }
2742 ndr->depth--;
2743 ndr_print_ptr(ndr, "data_length", r->in.data_length);
2744 ndr->depth++;
2745 if (r->in.data_length) {
2746 ndr_print_uint32(ndr, "data_length", *r->in.data_length);
2747 }
2748 ndr->depth--;
2749 ndr->depth--;
2750 }
2751 if (flags & NDR_OUT) {
2752 ndr_print_struct(ndr, "out", "winreg_QueryValue");
2753 ndr->depth++;
2754 ndr_print_ptr(ndr, "type", r->out.type);
2755 ndr->depth++;
2756 if (r->out.type) {
2757 ndr_print_winreg_Type(ndr, "type", *r->out.type);
2758 }
2759 ndr->depth--;
2760 ndr_print_ptr(ndr, "data", r->out.data);
2761 ndr->depth++;
2762 if (r->out.data) {
2763 if (r->out.data_length == NULL) return;
2764 ndr_print_array_uint8(ndr, "data", r->out.data, *r->out.data_length);
2765 }
2766 ndr->depth--;
2767 ndr_print_ptr(ndr, "data_size", r->out.data_size);
2768 ndr->depth++;
2769 if (r->out.data_size) {
2770 ndr_print_uint32(ndr, "data_size", *r->out.data_size);
2771 }
2772 ndr->depth--;
2773 ndr_print_ptr(ndr, "data_length", r->out.data_length);
2774 ndr->depth++;
2775 if (r->out.data_length) {
2776 ndr_print_uint32(ndr, "data_length", *r->out.data_length);
2777 }
2778 ndr->depth--;
2779 ndr_print_WERROR(ndr, "result", r->out.result);
2780 ndr->depth--;
2781 }
2782 ndr->depth--;
2783 }
2784
2785 static enum ndr_err_code ndr_push_winreg_ReplaceKey(struct ndr_push *ndr, int flags, const struct winreg_ReplaceKey *r)
/* [<][>][^][v][top][bottom][index][help] */
2786 {
2787 if (flags & NDR_IN) {
2788 }
2789 if (flags & NDR_OUT) {
2790 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2791 }
2792 return NDR_ERR_SUCCESS;
2793 }
2794
2795 static enum ndr_err_code ndr_pull_winreg_ReplaceKey(struct ndr_pull *ndr, int flags, struct winreg_ReplaceKey *r)
/* [<][>][^][v][top][bottom][index][help] */
2796 {
2797 if (flags & NDR_IN) {
2798 }
2799 if (flags & NDR_OUT) {
2800 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2801 }
2802 return NDR_ERR_SUCCESS;
2803 }
2804
2805 _PUBLIC_ void ndr_print_winreg_ReplaceKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_ReplaceKey *r)
/* [<][>][^][v][top][bottom][index][help] */
2806 {
2807 ndr_print_struct(ndr, name, "winreg_ReplaceKey");
2808 ndr->depth++;
2809 if (flags & NDR_SET_VALUES) {
2810 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2811 }
2812 if (flags & NDR_IN) {
2813 ndr_print_struct(ndr, "in", "winreg_ReplaceKey");
2814 ndr->depth++;
2815 ndr->depth--;
2816 }
2817 if (flags & NDR_OUT) {
2818 ndr_print_struct(ndr, "out", "winreg_ReplaceKey");
2819 ndr->depth++;
2820 ndr_print_WERROR(ndr, "result", r->out.result);
2821 ndr->depth--;
2822 }
2823 ndr->depth--;
2824 }
2825
2826 static enum ndr_err_code ndr_push_winreg_RestoreKey(struct ndr_push *ndr, int flags, const struct winreg_RestoreKey *r)
/* [<][>][^][v][top][bottom][index][help] */
2827 {
2828 if (flags & NDR_IN) {
2829 if (r->in.handle == NULL) {
2830 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2831 }
2832 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2833 if (r->in.filename == NULL) {
2834 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2835 }
2836 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
2837 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
2838 }
2839 if (flags & NDR_OUT) {
2840 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2841 }
2842 return NDR_ERR_SUCCESS;
2843 }
2844
2845 static enum ndr_err_code ndr_pull_winreg_RestoreKey(struct ndr_pull *ndr, int flags, struct winreg_RestoreKey *r)
/* [<][>][^][v][top][bottom][index][help] */
2846 {
2847 TALLOC_CTX *_mem_save_handle_0;
2848 TALLOC_CTX *_mem_save_filename_0;
2849 if (flags & NDR_IN) {
2850 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2851 NDR_PULL_ALLOC(ndr, r->in.handle);
2852 }
2853 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2854 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2855 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2856 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2857 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2858 NDR_PULL_ALLOC(ndr, r->in.filename);
2859 }
2860 _mem_save_filename_0 = NDR_PULL_GET_MEM_CTX(ndr);
2861 NDR_PULL_SET_MEM_CTX(ndr, r->in.filename, LIBNDR_FLAG_REF_ALLOC);
2862 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
2863 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_filename_0, LIBNDR_FLAG_REF_ALLOC);
2864 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
2865 }
2866 if (flags & NDR_OUT) {
2867 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2868 }
2869 return NDR_ERR_SUCCESS;
2870 }
2871
2872 _PUBLIC_ void ndr_print_winreg_RestoreKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_RestoreKey *r)
/* [<][>][^][v][top][bottom][index][help] */
2873 {
2874 ndr_print_struct(ndr, name, "winreg_RestoreKey");
2875 ndr->depth++;
2876 if (flags & NDR_SET_VALUES) {
2877 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2878 }
2879 if (flags & NDR_IN) {
2880 ndr_print_struct(ndr, "in", "winreg_RestoreKey");
2881 ndr->depth++;
2882 ndr_print_ptr(ndr, "handle", r->in.handle);
2883 ndr->depth++;
2884 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2885 ndr->depth--;
2886 ndr_print_ptr(ndr, "filename", r->in.filename);
2887 ndr->depth++;
2888 ndr_print_winreg_String(ndr, "filename", r->in.filename);
2889 ndr->depth--;
2890 ndr_print_uint32(ndr, "flags", r->in.flags);
2891 ndr->depth--;
2892 }
2893 if (flags & NDR_OUT) {
2894 ndr_print_struct(ndr, "out", "winreg_RestoreKey");
2895 ndr->depth++;
2896 ndr_print_WERROR(ndr, "result", r->out.result);
2897 ndr->depth--;
2898 }
2899 ndr->depth--;
2900 }
2901
2902 static enum ndr_err_code ndr_push_winreg_SaveKey(struct ndr_push *ndr, int flags, const struct winreg_SaveKey *r)
/* [<][>][^][v][top][bottom][index][help] */
2903 {
2904 if (flags & NDR_IN) {
2905 if (r->in.handle == NULL) {
2906 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2907 }
2908 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2909 if (r->in.filename == NULL) {
2910 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2911 }
2912 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
2913 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.sec_attrib));
2914 if (r->in.sec_attrib) {
2915 NDR_CHECK(ndr_push_KeySecurityAttribute(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sec_attrib));
2916 }
2917 }
2918 if (flags & NDR_OUT) {
2919 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2920 }
2921 return NDR_ERR_SUCCESS;
2922 }
2923
2924 static enum ndr_err_code ndr_pull_winreg_SaveKey(struct ndr_pull *ndr, int flags, struct winreg_SaveKey *r)
/* [<][>][^][v][top][bottom][index][help] */
2925 {
2926 uint32_t _ptr_sec_attrib;
2927 TALLOC_CTX *_mem_save_handle_0;
2928 TALLOC_CTX *_mem_save_filename_0;
2929 TALLOC_CTX *_mem_save_sec_attrib_0;
2930 if (flags & NDR_IN) {
2931 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2932 NDR_PULL_ALLOC(ndr, r->in.handle);
2933 }
2934 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2935 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2936 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2937 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2938 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2939 NDR_PULL_ALLOC(ndr, r->in.filename);
2940 }
2941 _mem_save_filename_0 = NDR_PULL_GET_MEM_CTX(ndr);
2942 NDR_PULL_SET_MEM_CTX(ndr, r->in.filename, LIBNDR_FLAG_REF_ALLOC);
2943 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
2944 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_filename_0, LIBNDR_FLAG_REF_ALLOC);
2945 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sec_attrib));
2946 if (_ptr_sec_attrib) {
2947 NDR_PULL_ALLOC(ndr, r->in.sec_attrib);
2948 } else {
2949 r->in.sec_attrib = NULL;
2950 }
2951 if (r->in.sec_attrib) {
2952 _mem_save_sec_attrib_0 = NDR_PULL_GET_MEM_CTX(ndr);
2953 NDR_PULL_SET_MEM_CTX(ndr, r->in.sec_attrib, 0);
2954 NDR_CHECK(ndr_pull_KeySecurityAttribute(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sec_attrib));
2955 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sec_attrib_0, 0);
2956 }
2957 }
2958 if (flags & NDR_OUT) {
2959 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2960 }
2961 return NDR_ERR_SUCCESS;
2962 }
2963
2964 _PUBLIC_ void ndr_print_winreg_SaveKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_SaveKey *r)
/* [<][>][^][v][top][bottom][index][help] */
2965 {
2966 ndr_print_struct(ndr, name, "winreg_SaveKey");
2967 ndr->depth++;
2968 if (flags & NDR_SET_VALUES) {
2969 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2970 }
2971 if (flags & NDR_IN) {
2972 ndr_print_struct(ndr, "in", "winreg_SaveKey");
2973 ndr->depth++;
2974 ndr_print_ptr(ndr, "handle", r->in.handle);
2975 ndr->depth++;
2976 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2977 ndr->depth--;
2978 ndr_print_ptr(ndr, "filename", r->in.filename);
2979 ndr->depth++;
2980 ndr_print_winreg_String(ndr, "filename", r->in.filename);
2981 ndr->depth--;
2982 ndr_print_ptr(ndr, "sec_attrib", r->in.sec_attrib);
2983 ndr->depth++;
2984 if (r->in.sec_attrib) {
2985 ndr_print_KeySecurityAttribute(ndr, "sec_attrib", r->in.sec_attrib);
2986 }
2987 ndr->depth--;
2988 ndr->depth--;
2989 }
2990 if (flags & NDR_OUT) {
2991 ndr_print_struct(ndr, "out", "winreg_SaveKey");
2992 ndr->depth++;
2993 ndr_print_WERROR(ndr, "result", r->out.result);
2994 ndr->depth--;
2995 }
2996 ndr->depth--;
2997 }
2998
2999 static enum ndr_err_code ndr_push_winreg_SetKeySecurity(struct ndr_push *ndr, int flags, const struct winreg_SetKeySecurity *r)
/* [<][>][^][v][top][bottom][index][help] */
3000 {
3001 if (flags & NDR_IN) {
3002 if (r->in.handle == NULL) {
3003 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3004 }
3005 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
3006 NDR_CHECK(ndr_push_security_secinfo(ndr, NDR_SCALARS, r->in.sec_info));
3007 if (r->in.sd == NULL) {
3008 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3009 }
3010 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sd));
3011 }
3012 if (flags & NDR_OUT) {
3013 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3014 }
3015 return NDR_ERR_SUCCESS;
3016 }
3017
3018 static enum ndr_err_code ndr_pull_winreg_SetKeySecurity(struct ndr_pull *ndr, int flags, struct winreg_SetKeySecurity *r)
/* [<][>][^][v][top][bottom][index][help] */
3019 {
3020 TALLOC_CTX *_mem_save_handle_0;
3021 TALLOC_CTX *_mem_save_sd_0;
3022 if (flags & NDR_IN) {
3023 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3024 NDR_PULL_ALLOC(ndr, r->in.handle);
3025 }
3026 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
3027 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
3028 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
3029 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
3030 NDR_CHECK(ndr_pull_security_secinfo(ndr, NDR_SCALARS, &r->in.sec_info));
3031 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3032 NDR_PULL_ALLOC(ndr, r->in.sd);
3033 }
3034 _mem_save_sd_0 = NDR_PULL_GET_MEM_CTX(ndr);
3035 NDR_PULL_SET_MEM_CTX(ndr, r->in.sd, LIBNDR_FLAG_REF_ALLOC);
3036 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sd));
3037 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sd_0, LIBNDR_FLAG_REF_ALLOC);
3038 }
3039 if (flags & NDR_OUT) {
3040 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3041 }
3042 return NDR_ERR_SUCCESS;
3043 }
3044
3045 _PUBLIC_ void ndr_print_winreg_SetKeySecurity(struct ndr_print *ndr, const char *name, int flags, const struct winreg_SetKeySecurity *r)
/* [<][>][^][v][top][bottom][index][help] */
3046 {
3047 ndr_print_struct(ndr, name, "winreg_SetKeySecurity");
3048 ndr->depth++;
3049 if (flags & NDR_SET_VALUES) {
3050 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3051 }
3052 if (flags & NDR_IN) {
3053 ndr_print_struct(ndr, "in", "winreg_SetKeySecurity");
3054 ndr->depth++;
3055 ndr_print_ptr(ndr, "handle", r->in.handle);
3056 ndr->depth++;
3057 ndr_print_policy_handle(ndr, "handle", r->in.handle);
3058 ndr->depth--;
3059 ndr_print_security_secinfo(ndr, "sec_info", r->in.sec_info);
3060 ndr_print_ptr(ndr, "sd", r->in.sd);
3061 ndr->depth++;
3062 ndr_print_KeySecurityData(ndr, "sd", r->in.sd);
3063 ndr->depth--;
3064 ndr->depth--;
3065 }
3066 if (flags & NDR_OUT) {
3067 ndr_print_struct(ndr, "out", "winreg_SetKeySecurity");
3068 ndr->depth++;
3069 ndr_print_WERROR(ndr, "result", r->out.result);
3070 ndr->depth--;
3071 }
3072 ndr->depth--;
3073 }
3074
3075 static enum ndr_err_code ndr_push_winreg_SetValue(struct ndr_push *ndr, int flags, const struct winreg_SetValue *r)
/* [<][>][^][v][top][bottom][index][help] */
3076 {
3077 if (flags & NDR_IN) {
3078 if (r->in.handle == NULL) {
3079 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3080 }
3081 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
3082 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.name));
3083 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
3084 if (r->in.data == NULL) {
3085 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3086 }
3087 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.size));
3088 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.data, r->in.size));
3089 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.size));
3090 }
3091 if (flags & NDR_OUT) {
3092 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3093 }
3094 return NDR_ERR_SUCCESS;
3095 }
3096
3097 static enum ndr_err_code ndr_pull_winreg_SetValue(struct ndr_pull *ndr, int flags, struct winreg_SetValue *r)
/* [<][>][^][v][top][bottom][index][help] */
3098 {
3099 TALLOC_CTX *_mem_save_handle_0;
3100 if (flags & NDR_IN) {
3101 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3102 NDR_PULL_ALLOC(ndr, r->in.handle);
3103 }
3104 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
3105 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
3106 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
3107 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
3108 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.name));
3109 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
3110 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data));
3111 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3112 NDR_PULL_ALLOC_N(ndr, r->in.data, ndr_get_array_size(ndr, &r->in.data));
3113 }
3114 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.data, ndr_get_array_size(ndr, &r->in.data)));
3115 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.size));
3116 if (r->in.data) {
3117 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.data, r->in.size));
3118 }
3119 }
3120 if (flags & NDR_OUT) {
3121 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3122 }
3123 return NDR_ERR_SUCCESS;
3124 }
3125
3126 _PUBLIC_ void ndr_print_winreg_SetValue(struct ndr_print *ndr, const char *name, int flags, const struct winreg_SetValue *r)
/* [<][>][^][v][top][bottom][index][help] */
3127 {
3128 ndr_print_struct(ndr, name, "winreg_SetValue");
3129 ndr->depth++;
3130 if (flags & NDR_SET_VALUES) {
3131 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3132 }
3133 if (flags & NDR_IN) {
3134 ndr_print_struct(ndr, "in", "winreg_SetValue");
3135 ndr->depth++;
3136 ndr_print_ptr(ndr, "handle", r->in.handle);
3137 ndr->depth++;
3138 ndr_print_policy_handle(ndr, "handle", r->in.handle);
3139 ndr->depth--;
3140 ndr_print_winreg_String(ndr, "name", &r->in.name);
3141 ndr_print_winreg_Type(ndr, "type", r->in.type);
3142 ndr_print_ptr(ndr, "data", r->in.data);
3143 ndr->depth++;
3144 ndr_print_array_uint8(ndr, "data", r->in.data, r->in.size);
3145 ndr->depth--;
3146 ndr_print_uint32(ndr, "size", r->in.size);
3147 ndr->depth--;
3148 }
3149 if (flags & NDR_OUT) {
3150 ndr_print_struct(ndr, "out", "winreg_SetValue");
3151 ndr->depth++;
3152 ndr_print_WERROR(ndr, "result", r->out.result);
3153 ndr->depth--;
3154 }
3155 ndr->depth--;
3156 }
3157
3158 static enum ndr_err_code ndr_push_winreg_UnLoadKey(struct ndr_push *ndr, int flags, const struct winreg_UnLoadKey *r)
/* [<][>][^][v][top][bottom][index][help] */
3159 {
3160 if (flags & NDR_IN) {
3161 }
3162 if (flags & NDR_OUT) {
3163 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3164 }
3165 return NDR_ERR_SUCCESS;
3166 }
3167
3168 static enum ndr_err_code ndr_pull_winreg_UnLoadKey(struct ndr_pull *ndr, int flags, struct winreg_UnLoadKey *r)
/* [<][>][^][v][top][bottom][index][help] */
3169 {
3170 if (flags & NDR_IN) {
3171 }
3172 if (flags & NDR_OUT) {
3173 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3174 }
3175 return NDR_ERR_SUCCESS;
3176 }
3177
3178 _PUBLIC_ void ndr_print_winreg_UnLoadKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_UnLoadKey *r)
/* [<][>][^][v][top][bottom][index][help] */
3179 {
3180 ndr_print_struct(ndr, name, "winreg_UnLoadKey");
3181 ndr->depth++;
3182 if (flags & NDR_SET_VALUES) {
3183 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3184 }
3185 if (flags & NDR_IN) {
3186 ndr_print_struct(ndr, "in", "winreg_UnLoadKey");
3187 ndr->depth++;
3188 ndr->depth--;
3189 }
3190 if (flags & NDR_OUT) {
3191 ndr_print_struct(ndr, "out", "winreg_UnLoadKey");
3192 ndr->depth++;
3193 ndr_print_WERROR(ndr, "result", r->out.result);
3194 ndr->depth--;
3195 }
3196 ndr->depth--;
3197 }
3198
3199 static enum ndr_err_code ndr_push_winreg_InitiateSystemShutdown(struct ndr_push *ndr, int flags, const struct winreg_InitiateSystemShutdown *r)
/* [<][>][^][v][top][bottom][index][help] */
3200 {
3201 if (flags & NDR_IN) {
3202 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.hostname));
3203 if (r->in.hostname) {
3204 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.hostname));
3205 }
3206 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.message));
3207 if (r->in.message) {
3208 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.message));
3209 }
3210 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.timeout));
3211 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.force_apps));
3212 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.do_reboot));
3213 }
3214 if (flags & NDR_OUT) {
3215 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3216 }
3217 return NDR_ERR_SUCCESS;
3218 }
3219
3220 static enum ndr_err_code ndr_pull_winreg_InitiateSystemShutdown(struct ndr_pull *ndr, int flags, struct winreg_InitiateSystemShutdown *r)
/* [<][>][^][v][top][bottom][index][help] */
3221 {
3222 uint32_t _ptr_hostname;
3223 uint32_t _ptr_message;
3224 TALLOC_CTX *_mem_save_hostname_0;
3225 TALLOC_CTX *_mem_save_message_0;
3226 if (flags & NDR_IN) {
3227 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hostname));
3228 if (_ptr_hostname) {
3229 NDR_PULL_ALLOC(ndr, r->in.hostname);
3230 } else {
3231 r->in.hostname = NULL;
3232 }
3233 if (r->in.hostname) {
3234 _mem_save_hostname_0 = NDR_PULL_GET_MEM_CTX(ndr);
3235 NDR_PULL_SET_MEM_CTX(ndr, r->in.hostname, 0);
3236 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.hostname));
3237 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hostname_0, 0);
3238 }
3239 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_message));
3240 if (_ptr_message) {
3241 NDR_PULL_ALLOC(ndr, r->in.message);
3242 } else {
3243 r->in.message = NULL;
3244 }
3245 if (r->in.message) {
3246 _mem_save_message_0 = NDR_PULL_GET_MEM_CTX(ndr);
3247 NDR_PULL_SET_MEM_CTX(ndr, r->in.message, 0);
3248 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.message));
3249 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_message_0, 0);
3250 }
3251 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.timeout));
3252 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.force_apps));
3253 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.do_reboot));
3254 }
3255 if (flags & NDR_OUT) {
3256 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3257 }
3258 return NDR_ERR_SUCCESS;
3259 }
3260
3261 _PUBLIC_ void ndr_print_winreg_InitiateSystemShutdown(struct ndr_print *ndr, const char *name, int flags, const struct winreg_InitiateSystemShutdown *r)
/* [<][>][^][v][top][bottom][index][help] */
3262 {
3263 ndr_print_struct(ndr, name, "winreg_InitiateSystemShutdown");
3264 ndr->depth++;
3265 if (flags & NDR_SET_VALUES) {
3266 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3267 }
3268 if (flags & NDR_IN) {
3269 ndr_print_struct(ndr, "in", "winreg_InitiateSystemShutdown");
3270 ndr->depth++;
3271 ndr_print_ptr(ndr, "hostname", r->in.hostname);
3272 ndr->depth++;
3273 if (r->in.hostname) {
3274 ndr_print_uint16(ndr, "hostname", *r->in.hostname);
3275 }
3276 ndr->depth--;
3277 ndr_print_ptr(ndr, "message", r->in.message);
3278 ndr->depth++;
3279 if (r->in.message) {
3280 ndr_print_lsa_StringLarge(ndr, "message", r->in.message);
3281 }
3282 ndr->depth--;
3283 ndr_print_uint32(ndr, "timeout", r->in.timeout);
3284 ndr_print_uint8(ndr, "force_apps", r->in.force_apps);
3285 ndr_print_uint8(ndr, "do_reboot", r->in.do_reboot);
3286 ndr->depth--;
3287 }
3288 if (flags & NDR_OUT) {
3289 ndr_print_struct(ndr, "out", "winreg_InitiateSystemShutdown");
3290 ndr->depth++;
3291 ndr_print_WERROR(ndr, "result", r->out.result);
3292 ndr->depth--;
3293 }
3294 ndr->depth--;
3295 }
3296
3297 static enum ndr_err_code ndr_push_winreg_AbortSystemShutdown(struct ndr_push *ndr, int flags, const struct winreg_AbortSystemShutdown *r)
/* [<][>][^][v][top][bottom][index][help] */
3298 {
3299 if (flags & NDR_IN) {
3300 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
3301 if (r->in.server) {
3302 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.server));
3303 }
3304 }
3305 if (flags & NDR_OUT) {
3306 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3307 }
3308 return NDR_ERR_SUCCESS;
3309 }
3310
3311 static enum ndr_err_code ndr_pull_winreg_AbortSystemShutdown(struct ndr_pull *ndr, int flags, struct winreg_AbortSystemShutdown *r)
/* [<][>][^][v][top][bottom][index][help] */
3312 {
3313 uint32_t _ptr_server;
3314 TALLOC_CTX *_mem_save_server_0;
3315 if (flags & NDR_IN) {
3316 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
3317 if (_ptr_server) {
3318 NDR_PULL_ALLOC(ndr, r->in.server);
3319 } else {
3320 r->in.server = NULL;
3321 }
3322 if (r->in.server) {
3323 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
3324 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
3325 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.server));
3326 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
3327 }
3328 }
3329 if (flags & NDR_OUT) {
3330 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3331 }
3332 return NDR_ERR_SUCCESS;
3333 }
3334
3335 _PUBLIC_ void ndr_print_winreg_AbortSystemShutdown(struct ndr_print *ndr, const char *name, int flags, const struct winreg_AbortSystemShutdown *r)
/* [<][>][^][v][top][bottom][index][help] */
3336 {
3337 ndr_print_struct(ndr, name, "winreg_AbortSystemShutdown");
3338 ndr->depth++;
3339 if (flags & NDR_SET_VALUES) {
3340 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3341 }
3342 if (flags & NDR_IN) {
3343 ndr_print_struct(ndr, "in", "winreg_AbortSystemShutdown");
3344 ndr->depth++;
3345 ndr_print_ptr(ndr, "server", r->in.server);
3346 ndr->depth++;
3347 if (r->in.server) {
3348 ndr_print_uint16(ndr, "server", *r->in.server);
3349 }
3350 ndr->depth--;
3351 ndr->depth--;
3352 }
3353 if (flags & NDR_OUT) {
3354 ndr_print_struct(ndr, "out", "winreg_AbortSystemShutdown");
3355 ndr->depth++;
3356 ndr_print_WERROR(ndr, "result", r->out.result);
3357 ndr->depth--;
3358 }
3359 ndr->depth--;
3360 }
3361
3362 _PUBLIC_ enum ndr_err_code ndr_push_winreg_GetVersion(struct ndr_push *ndr, int flags, const struct winreg_GetVersion *r)
/* [<][>][^][v][top][bottom][index][help] */
3363 {
3364 if (flags & NDR_IN) {
3365 if (r->in.handle == NULL) {
3366 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3367 }
3368 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
3369 }
3370 if (flags & NDR_OUT) {
3371 if (r->out.version == NULL) {
3372 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3373 }
3374 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.version));
3375 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3376 }
3377 return NDR_ERR_SUCCESS;
3378 }
3379
3380 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_GetVersion(struct ndr_pull *ndr, int flags, struct winreg_GetVersion *r)
/* [<][>][^][v][top][bottom][index][help] */
3381 {
3382 TALLOC_CTX *_mem_save_handle_0;
3383 TALLOC_CTX *_mem_save_version_0;
3384 if (flags & NDR_IN) {
3385 ZERO_STRUCT(r->out);
3386
3387 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3388 NDR_PULL_ALLOC(ndr, r->in.handle);
3389 }
3390 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
3391 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
3392 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
3393 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
3394 NDR_PULL_ALLOC(ndr, r->out.version);
3395 ZERO_STRUCTP(r->out.version);
3396 }
3397 if (flags & NDR_OUT) {
3398 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3399 NDR_PULL_ALLOC(ndr, r->out.version);
3400 }
3401 _mem_save_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
3402 NDR_PULL_SET_MEM_CTX(ndr, r->out.version, LIBNDR_FLAG_REF_ALLOC);
3403 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.version));
3404 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_version_0, LIBNDR_FLAG_REF_ALLOC);
3405 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3406 }
3407 return NDR_ERR_SUCCESS;
3408 }
3409
3410 _PUBLIC_ void ndr_print_winreg_GetVersion(struct ndr_print *ndr, const char *name, int flags, const struct winreg_GetVersion *r)
/* [<][>][^][v][top][bottom][index][help] */
3411 {
3412 ndr_print_struct(ndr, name, "winreg_GetVersion");
3413 ndr->depth++;
3414 if (flags & NDR_SET_VALUES) {
3415 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3416 }
3417 if (flags & NDR_IN) {
3418 ndr_print_struct(ndr, "in", "winreg_GetVersion");
3419 ndr->depth++;
3420 ndr_print_ptr(ndr, "handle", r->in.handle);
3421 ndr->depth++;
3422 ndr_print_policy_handle(ndr, "handle", r->in.handle);
3423 ndr->depth--;
3424 ndr->depth--;
3425 }
3426 if (flags & NDR_OUT) {
3427 ndr_print_struct(ndr, "out", "winreg_GetVersion");
3428 ndr->depth++;
3429 ndr_print_ptr(ndr, "version", r->out.version);
3430 ndr->depth++;
3431 ndr_print_uint32(ndr, "version", *r->out.version);
3432 ndr->depth--;
3433 ndr_print_WERROR(ndr, "result", r->out.result);
3434 ndr->depth--;
3435 }
3436 ndr->depth--;
3437 }
3438
3439 static enum ndr_err_code ndr_push_winreg_OpenHKCC(struct ndr_push *ndr, int flags, const struct winreg_OpenHKCC *r)
/* [<][>][^][v][top][bottom][index][help] */
3440 {
3441 if (flags & NDR_IN) {
3442 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
3443 if (r->in.system_name) {
3444 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
3445 }
3446 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
3447 }
3448 if (flags & NDR_OUT) {
3449 if (r->out.handle == NULL) {
3450 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3451 }
3452 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
3453 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3454 }
3455 return NDR_ERR_SUCCESS;
3456 }
3457
3458 static enum ndr_err_code ndr_pull_winreg_OpenHKCC(struct ndr_pull *ndr, int flags, struct winreg_OpenHKCC *r)
/* [<][>][^][v][top][bottom][index][help] */
3459 {
3460 uint32_t _ptr_system_name;
3461 TALLOC_CTX *_mem_save_system_name_0;
3462 TALLOC_CTX *_mem_save_handle_0;
3463 if (flags & NDR_IN) {
3464 ZERO_STRUCT(r->out);
3465
3466 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
3467 if (_ptr_system_name) {
3468 NDR_PULL_ALLOC(ndr, r->in.system_name);
3469 } else {
3470 r->in.system_name = NULL;
3471 }
3472 if (r->in.system_name) {
3473 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3474 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
3475 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
3476 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
3477 }
3478 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
3479 NDR_PULL_ALLOC(ndr, r->out.handle);
3480 ZERO_STRUCTP(r->out.handle);
3481 }
3482 if (flags & NDR_OUT) {
3483 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3484 NDR_PULL_ALLOC(ndr, r->out.handle);
3485 }
3486 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
3487 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
3488 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
3489 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
3490 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3491 }
3492 return NDR_ERR_SUCCESS;
3493 }
3494
3495 _PUBLIC_ void ndr_print_winreg_OpenHKCC(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKCC *r)
/* [<][>][^][v][top][bottom][index][help] */
3496 {
3497 ndr_print_struct(ndr, name, "winreg_OpenHKCC");
3498 ndr->depth++;
3499 if (flags & NDR_SET_VALUES) {
3500 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3501 }
3502 if (flags & NDR_IN) {
3503 ndr_print_struct(ndr, "in", "winreg_OpenHKCC");
3504 ndr->depth++;
3505 ndr_print_ptr(ndr, "system_name", r->in.system_name);
3506 ndr->depth++;
3507 if (r->in.system_name) {
3508 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
3509 }
3510 ndr->depth--;
3511 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
3512 ndr->depth--;
3513 }
3514 if (flags & NDR_OUT) {
3515 ndr_print_struct(ndr, "out", "winreg_OpenHKCC");
3516 ndr->depth++;
3517 ndr_print_ptr(ndr, "handle", r->out.handle);
3518 ndr->depth++;
3519 ndr_print_policy_handle(ndr, "handle", r->out.handle);
3520 ndr->depth--;
3521 ndr_print_WERROR(ndr, "result", r->out.result);
3522 ndr->depth--;
3523 }
3524 ndr->depth--;
3525 }
3526
3527 static enum ndr_err_code ndr_push_winreg_OpenHKDD(struct ndr_push *ndr, int flags, const struct winreg_OpenHKDD *r)
/* [<][>][^][v][top][bottom][index][help] */
3528 {
3529 if (flags & NDR_IN) {
3530 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
3531 if (r->in.system_name) {
3532 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
3533 }
3534 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
3535 }
3536 if (flags & NDR_OUT) {
3537 if (r->out.handle == NULL) {
3538 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3539 }
3540 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
3541 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3542 }
3543 return NDR_ERR_SUCCESS;
3544 }
3545
3546 static enum ndr_err_code ndr_pull_winreg_OpenHKDD(struct ndr_pull *ndr, int flags, struct winreg_OpenHKDD *r)
/* [<][>][^][v][top][bottom][index][help] */
3547 {
3548 uint32_t _ptr_system_name;
3549 TALLOC_CTX *_mem_save_system_name_0;
3550 TALLOC_CTX *_mem_save_handle_0;
3551 if (flags & NDR_IN) {
3552 ZERO_STRUCT(r->out);
3553
3554 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
3555 if (_ptr_system_name) {
3556 NDR_PULL_ALLOC(ndr, r->in.system_name);
3557 } else {
3558 r->in.system_name = NULL;
3559 }
3560 if (r->in.system_name) {
3561 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3562 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
3563 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
3564 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
3565 }
3566 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
3567 NDR_PULL_ALLOC(ndr, r->out.handle);
3568 ZERO_STRUCTP(r->out.handle);
3569 }
3570 if (flags & NDR_OUT) {
3571 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3572 NDR_PULL_ALLOC(ndr, r->out.handle);
3573 }
3574 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
3575 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
3576 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
3577 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
3578 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3579 }
3580 return NDR_ERR_SUCCESS;
3581 }
3582
3583 _PUBLIC_ void ndr_print_winreg_OpenHKDD(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKDD *r)
/* [<][>][^][v][top][bottom][index][help] */
3584 {
3585 ndr_print_struct(ndr, name, "winreg_OpenHKDD");
3586 ndr->depth++;
3587 if (flags & NDR_SET_VALUES) {
3588 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3589 }
3590 if (flags & NDR_IN) {
3591 ndr_print_struct(ndr, "in", "winreg_OpenHKDD");
3592 ndr->depth++;
3593 ndr_print_ptr(ndr, "system_name", r->in.system_name);
3594 ndr->depth++;
3595 if (r->in.system_name) {
3596 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
3597 }
3598 ndr->depth--;
3599 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
3600 ndr->depth--;
3601 }
3602 if (flags & NDR_OUT) {
3603 ndr_print_struct(ndr, "out", "winreg_OpenHKDD");
3604 ndr->depth++;
3605 ndr_print_ptr(ndr, "handle", r->out.handle);
3606 ndr->depth++;
3607 ndr_print_policy_handle(ndr, "handle", r->out.handle);
3608 ndr->depth--;
3609 ndr_print_WERROR(ndr, "result", r->out.result);
3610 ndr->depth--;
3611 }
3612 ndr->depth--;
3613 }
3614
3615 _PUBLIC_ enum ndr_err_code ndr_push_winreg_QueryMultipleValues(struct ndr_push *ndr, int flags, const struct winreg_QueryMultipleValues *r)
/* [<][>][^][v][top][bottom][index][help] */
3616 {
3617 uint32_t cntr_values_1;
3618 if (flags & NDR_IN) {
3619 if (r->in.key_handle == NULL) {
3620 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3621 }
3622 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.key_handle));
3623 if (r->in.values == NULL) {
3624 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3625 }
3626 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.num_values));
3627 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3628 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.num_values));
3629 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3630 NDR_CHECK(ndr_push_QueryMultipleValue(ndr, NDR_SCALARS, &r->in.values[cntr_values_1]));
3631 }
3632 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3633 NDR_CHECK(ndr_push_QueryMultipleValue(ndr, NDR_BUFFERS, &r->in.values[cntr_values_1]));
3634 }
3635 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.num_values));
3636 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
3637 if (r->in.buffer) {
3638 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.buffer_size));
3639 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3640 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.buffer_size));
3641 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, *r->in.buffer_size));
3642 }
3643 if (r->in.buffer_size == NULL) {
3644 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3645 }
3646 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.buffer_size));
3647 }
3648 if (flags & NDR_OUT) {
3649 if (r->out.values == NULL) {
3650 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3651 }
3652 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.num_values));
3653 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3654 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.num_values));
3655 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3656 NDR_CHECK(ndr_push_QueryMultipleValue(ndr, NDR_SCALARS, &r->out.values[cntr_values_1]));
3657 }
3658 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3659 NDR_CHECK(ndr_push_QueryMultipleValue(ndr, NDR_BUFFERS, &r->out.values[cntr_values_1]));
3660 }
3661 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.buffer));
3662 if (r->out.buffer) {
3663 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.buffer_size));
3664 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3665 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.buffer_size));
3666 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, *r->out.buffer_size));
3667 }
3668 if (r->out.buffer_size == NULL) {
3669 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3670 }
3671 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.buffer_size));
3672 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3673 }
3674 return NDR_ERR_SUCCESS;
3675 }
3676
3677 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_QueryMultipleValues(struct ndr_pull *ndr, int flags, struct winreg_QueryMultipleValues *r)
/* [<][>][^][v][top][bottom][index][help] */
3678 {
3679 uint32_t cntr_values_1;
3680 uint32_t _ptr_buffer;
3681 TALLOC_CTX *_mem_save_key_handle_0;
3682 TALLOC_CTX *_mem_save_values_1;
3683 TALLOC_CTX *_mem_save_buffer_0;
3684 TALLOC_CTX *_mem_save_buffer_size_0;
3685 if (flags & NDR_IN) {
3686 ZERO_STRUCT(r->out);
3687
3688 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3689 NDR_PULL_ALLOC(ndr, r->in.key_handle);
3690 }
3691 _mem_save_key_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
3692 NDR_PULL_SET_MEM_CTX(ndr, r->in.key_handle, LIBNDR_FLAG_REF_ALLOC);
3693 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.key_handle));
3694 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_handle_0, LIBNDR_FLAG_REF_ALLOC);
3695 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.values));
3696 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.values));
3697 if (ndr_get_array_length(ndr, &r->in.values) > ndr_get_array_size(ndr, &r->in.values)) {
3698 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));
3699 }
3700 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3701 NDR_PULL_ALLOC_N(ndr, r->in.values, ndr_get_array_size(ndr, &r->in.values));
3702 }
3703 memcpy(r->out.values, r->in.values, ndr_get_array_size(ndr, &r->in.values) * sizeof(*r->in.values));
3704 _mem_save_values_1 = NDR_PULL_GET_MEM_CTX(ndr);
3705 NDR_PULL_SET_MEM_CTX(ndr, r->in.values, 0);
3706 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3707 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr, NDR_SCALARS, &r->in.values[cntr_values_1]));
3708 }
3709 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3710 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr, NDR_BUFFERS, &r->in.values[cntr_values_1]));
3711 }
3712 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_values_1, 0);
3713 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.num_values));
3714 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
3715 if (_ptr_buffer) {
3716 NDR_PULL_ALLOC(ndr, r->in.buffer);
3717 } else {
3718 r->in.buffer = NULL;
3719 }
3720 if (r->in.buffer) {
3721 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
3722 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
3723 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
3724 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.buffer));
3725 if (ndr_get_array_length(ndr, &r->in.buffer) > ndr_get_array_size(ndr, &r->in.buffer)) {
3726 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));
3727 }
3728 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
3729 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_length(ndr, &r->in.buffer)));
3730 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
3731 }
3732 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3733 NDR_PULL_ALLOC(ndr, r->in.buffer_size);
3734 }
3735 _mem_save_buffer_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
3736 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer_size, LIBNDR_FLAG_REF_ALLOC);
3737 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.buffer_size));
3738 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_size_0, LIBNDR_FLAG_REF_ALLOC);
3739 NDR_PULL_ALLOC_N(ndr, r->out.values, r->in.num_values);
3740 memcpy(r->out.values, r->in.values, (r->in.num_values) * sizeof(*r->in.values));
3741 NDR_PULL_ALLOC(ndr, r->out.buffer_size);
3742 *r->out.buffer_size = *r->in.buffer_size;
3743 if (r->in.values) {
3744 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.values, r->in.num_values));
3745 }
3746 if (r->in.values) {
3747 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->in.values, r->in.num_values));
3748 }
3749 if (r->in.buffer) {
3750 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, *r->in.buffer_size));
3751 }
3752 if (r->in.buffer) {
3753 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->in.buffer, *r->in.buffer_size));
3754 }
3755 }
3756 if (flags & NDR_OUT) {
3757 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.values));
3758 NDR_CHECK(ndr_pull_array_length(ndr, &r->out.values));
3759 if (ndr_get_array_length(ndr, &r->out.values) > ndr_get_array_size(ndr, &r->out.values)) {
3760 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));
3761 }
3762 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3763 NDR_PULL_ALLOC_N(ndr, r->out.values, ndr_get_array_size(ndr, &r->out.values));
3764 }
3765 memcpy(r->out.values, r->in.values, ndr_get_array_size(ndr, &r->out.values) * sizeof(*r->in.values));
3766 _mem_save_values_1 = NDR_PULL_GET_MEM_CTX(ndr);
3767 NDR_PULL_SET_MEM_CTX(ndr, r->out.values, 0);
3768 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3769 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr, NDR_SCALARS, &r->out.values[cntr_values_1]));
3770 }
3771 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3772 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr, NDR_BUFFERS, &r->out.values[cntr_values_1]));
3773 }
3774 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_values_1, 0);
3775 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
3776 if (_ptr_buffer) {
3777 NDR_PULL_ALLOC(ndr, r->out.buffer);
3778 } else {
3779 r->out.buffer = NULL;
3780 }
3781 if (r->out.buffer) {
3782 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
3783 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, 0);
3784 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
3785 NDR_CHECK(ndr_pull_array_length(ndr, &r->out.buffer));
3786 if (ndr_get_array_length(ndr, &r->out.buffer) > ndr_get_array_size(ndr, &r->out.buffer)) {
3787 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));
3788 }
3789 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
3790 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_length(ndr, &r->out.buffer)));
3791 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
3792 }
3793 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3794 NDR_PULL_ALLOC(ndr, r->out.buffer_size);
3795 }
3796 _mem_save_buffer_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
3797 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer_size, LIBNDR_FLAG_REF_ALLOC);
3798 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.buffer_size));
3799 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_size_0, LIBNDR_FLAG_REF_ALLOC);
3800 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3801 if (r->out.values) {
3802 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.values, r->in.num_values));
3803 }
3804 if (r->out.values) {
3805 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->out.values, r->in.num_values));
3806 }
3807 if (r->out.buffer) {
3808 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, *r->out.buffer_size));
3809 }
3810 if (r->out.buffer) {
3811 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->out.buffer, *r->out.buffer_size));
3812 }
3813 }
3814 return NDR_ERR_SUCCESS;
3815 }
3816
3817 _PUBLIC_ void ndr_print_winreg_QueryMultipleValues(struct ndr_print *ndr, const char *name, int flags, const struct winreg_QueryMultipleValues *r)
/* [<][>][^][v][top][bottom][index][help] */
3818 {
3819 uint32_t cntr_values_1;
3820 ndr_print_struct(ndr, name, "winreg_QueryMultipleValues");
3821 ndr->depth++;
3822 if (flags & NDR_SET_VALUES) {
3823 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3824 }
3825 if (flags & NDR_IN) {
3826 ndr_print_struct(ndr, "in", "winreg_QueryMultipleValues");
3827 ndr->depth++;
3828 ndr_print_ptr(ndr, "key_handle", r->in.key_handle);
3829 ndr->depth++;
3830 ndr_print_policy_handle(ndr, "key_handle", r->in.key_handle);
3831 ndr->depth--;
3832 ndr_print_ptr(ndr, "values", r->in.values);
3833 ndr->depth++;
3834 ndr->print(ndr, "%s: ARRAY(%d)", "values", (int)r->in.num_values);
3835 ndr->depth++;
3836 for (cntr_values_1=0;cntr_values_1<r->in.num_values;cntr_values_1++) {
3837 char *idx_1=NULL;
3838 if (asprintf(&idx_1, "[%d]", cntr_values_1) != -1) {
3839 ndr_print_QueryMultipleValue(ndr, "values", &r->in.values[cntr_values_1]);
3840 free(idx_1);
3841 }
3842 }
3843 ndr->depth--;
3844 ndr->depth--;
3845 ndr_print_uint32(ndr, "num_values", r->in.num_values);
3846 ndr_print_ptr(ndr, "buffer", r->in.buffer);
3847 ndr->depth++;
3848 if (r->in.buffer) {
3849 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, *r->in.buffer_size);
3850 }
3851 ndr->depth--;
3852 ndr_print_ptr(ndr, "buffer_size", r->in.buffer_size);
3853 ndr->depth++;
3854 ndr_print_uint32(ndr, "buffer_size", *r->in.buffer_size);
3855 ndr->depth--;
3856 ndr->depth--;
3857 }
3858 if (flags & NDR_OUT) {
3859 ndr_print_struct(ndr, "out", "winreg_QueryMultipleValues");
3860 ndr->depth++;
3861 ndr_print_ptr(ndr, "values", r->out.values);
3862 ndr->depth++;
3863 ndr->print(ndr, "%s: ARRAY(%d)", "values", (int)r->in.num_values);
3864 ndr->depth++;
3865 for (cntr_values_1=0;cntr_values_1<r->in.num_values;cntr_values_1++) {
3866 char *idx_1=NULL;
3867 if (asprintf(&idx_1, "[%d]", cntr_values_1) != -1) {
3868 ndr_print_QueryMultipleValue(ndr, "values", &r->out.values[cntr_values_1]);
3869 free(idx_1);
3870 }
3871 }
3872 ndr->depth--;
3873 ndr->depth--;
3874 ndr_print_ptr(ndr, "buffer", r->out.buffer);
3875 ndr->depth++;
3876 if (r->out.buffer) {
3877 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, *r->out.buffer_size);
3878 }
3879 ndr->depth--;
3880 ndr_print_ptr(ndr, "buffer_size", r->out.buffer_size);
3881 ndr->depth++;
3882 ndr_print_uint32(ndr, "buffer_size", *r->out.buffer_size);
3883 ndr->depth--;
3884 ndr_print_WERROR(ndr, "result", r->out.result);
3885 ndr->depth--;
3886 }
3887 ndr->depth--;
3888 }
3889
3890 static enum ndr_err_code ndr_push_winreg_InitiateSystemShutdownEx(struct ndr_push *ndr, int flags, const struct winreg_InitiateSystemShutdownEx *r)
/* [<][>][^][v][top][bottom][index][help] */
3891 {
3892 if (flags & NDR_IN) {
3893 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.hostname));
3894 if (r->in.hostname) {
3895 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.hostname));
3896 }
3897 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.message));
3898 if (r->in.message) {
3899 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.message));
3900 }
3901 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.timeout));
3902 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.force_apps));
3903 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.do_reboot));
3904 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reason));
3905 }
3906 if (flags & NDR_OUT) {
3907 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3908 }
3909 return NDR_ERR_SUCCESS;
3910 }
3911
3912 static enum ndr_err_code ndr_pull_winreg_InitiateSystemShutdownEx(struct ndr_pull *ndr, int flags, struct winreg_InitiateSystemShutdownEx *r)
/* [<][>][^][v][top][bottom][index][help] */
3913 {
3914 uint32_t _ptr_hostname;
3915 uint32_t _ptr_message;
3916 TALLOC_CTX *_mem_save_hostname_0;
3917 TALLOC_CTX *_mem_save_message_0;
3918 if (flags & NDR_IN) {
3919 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hostname));
3920 if (_ptr_hostname) {
3921 NDR_PULL_ALLOC(ndr, r->in.hostname);
3922 } else {
3923 r->in.hostname = NULL;
3924 }
3925 if (r->in.hostname) {
3926 _mem_save_hostname_0 = NDR_PULL_GET_MEM_CTX(ndr);
3927 NDR_PULL_SET_MEM_CTX(ndr, r->in.hostname, 0);
3928 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.hostname));
3929 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hostname_0, 0);
3930 }
3931 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_message));
3932 if (_ptr_message) {
3933 NDR_PULL_ALLOC(ndr, r->in.message);
3934 } else {
3935 r->in.message = NULL;
3936 }
3937 if (r->in.message) {
3938 _mem_save_message_0 = NDR_PULL_GET_MEM_CTX(ndr);
3939 NDR_PULL_SET_MEM_CTX(ndr, r->in.message, 0);
3940 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.message));
3941 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_message_0, 0);
3942 }
3943 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.timeout));
3944 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.force_apps));
3945 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.do_reboot));
3946 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reason));
3947 }
3948 if (flags & NDR_OUT) {
3949 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3950 }
3951 return NDR_ERR_SUCCESS;
3952 }
3953
3954 _PUBLIC_ void ndr_print_winreg_InitiateSystemShutdownEx(struct ndr_print *ndr, const char *name, int flags, const struct winreg_InitiateSystemShutdownEx *r)
/* [<][>][^][v][top][bottom][index][help] */
3955 {
3956 ndr_print_struct(ndr, name, "winreg_InitiateSystemShutdownEx");
3957 ndr->depth++;
3958 if (flags & NDR_SET_VALUES) {
3959 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3960 }
3961 if (flags & NDR_IN) {
3962 ndr_print_struct(ndr, "in", "winreg_InitiateSystemShutdownEx");
3963 ndr->depth++;
3964 ndr_print_ptr(ndr, "hostname", r->in.hostname);
3965 ndr->depth++;
3966 if (r->in.hostname) {
3967 ndr_print_uint16(ndr, "hostname", *r->in.hostname);
3968 }
3969 ndr->depth--;
3970 ndr_print_ptr(ndr, "message", r->in.message);
3971 ndr->depth++;
3972 if (r->in.message) {
3973 ndr_print_lsa_StringLarge(ndr, "message", r->in.message);
3974 }
3975 ndr->depth--;
3976 ndr_print_uint32(ndr, "timeout", r->in.timeout);
3977 ndr_print_uint8(ndr, "force_apps", r->in.force_apps);
3978 ndr_print_uint8(ndr, "do_reboot", r->in.do_reboot);
3979 ndr_print_uint32(ndr, "reason", r->in.reason);
3980 ndr->depth--;
3981 }
3982 if (flags & NDR_OUT) {
3983 ndr_print_struct(ndr, "out", "winreg_InitiateSystemShutdownEx");
3984 ndr->depth++;
3985 ndr_print_WERROR(ndr, "result", r->out.result);
3986 ndr->depth--;
3987 }
3988 ndr->depth--;
3989 }
3990
3991 static enum ndr_err_code ndr_push_winreg_SaveKeyEx(struct ndr_push *ndr, int flags, const struct winreg_SaveKeyEx *r)
/* [<][>][^][v][top][bottom][index][help] */
3992 {
3993 if (flags & NDR_IN) {
3994 }
3995 if (flags & NDR_OUT) {
3996 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3997 }
3998 return NDR_ERR_SUCCESS;
3999 }
4000
4001 static enum ndr_err_code ndr_pull_winreg_SaveKeyEx(struct ndr_pull *ndr, int flags, struct winreg_SaveKeyEx *r)
/* [<][>][^][v][top][bottom][index][help] */
4002 {
4003 if (flags & NDR_IN) {
4004 }
4005 if (flags & NDR_OUT) {
4006 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
4007 }
4008 return NDR_ERR_SUCCESS;
4009 }
4010
4011 _PUBLIC_ void ndr_print_winreg_SaveKeyEx(struct ndr_print *ndr, const char *name, int flags, const struct winreg_SaveKeyEx *r)
/* [<][>][^][v][top][bottom][index][help] */
4012 {
4013 ndr_print_struct(ndr, name, "winreg_SaveKeyEx");
4014 ndr->depth++;
4015 if (flags & NDR_SET_VALUES) {
4016 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
4017 }
4018 if (flags & NDR_IN) {
4019 ndr_print_struct(ndr, "in", "winreg_SaveKeyEx");
4020 ndr->depth++;
4021 ndr->depth--;
4022 }
4023 if (flags & NDR_OUT) {
4024 ndr_print_struct(ndr, "out", "winreg_SaveKeyEx");
4025 ndr->depth++;
4026 ndr_print_WERROR(ndr, "result", r->out.result);
4027 ndr->depth--;
4028 }
4029 ndr->depth--;
4030 }
4031
4032 static enum ndr_err_code ndr_push_winreg_OpenHKPT(struct ndr_push *ndr, int flags, const struct winreg_OpenHKPT *r)
/* [<][>][^][v][top][bottom][index][help] */
4033 {
4034 if (flags & NDR_IN) {
4035 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
4036 if (r->in.system_name) {
4037 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
4038 }
4039 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
4040 }
4041 if (flags & NDR_OUT) {
4042 if (r->out.handle == NULL) {
4043 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
4044 }
4045 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
4046 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
4047 }
4048 return NDR_ERR_SUCCESS;
4049 }
4050
4051 static enum ndr_err_code ndr_pull_winreg_OpenHKPT(struct ndr_pull *ndr, int flags, struct winreg_OpenHKPT *r)
/* [<][>][^][v][top][bottom][index][help] */
4052 {
4053 uint32_t _ptr_system_name;
4054 TALLOC_CTX *_mem_save_system_name_0;
4055 TALLOC_CTX *_mem_save_handle_0;
4056 if (flags & NDR_IN) {
4057 ZERO_STRUCT(r->out);
4058
4059 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
4060 if (_ptr_system_name) {
4061 NDR_PULL_ALLOC(ndr, r->in.system_name);
4062 } else {
4063 r->in.system_name = NULL;
4064 }
4065 if (r->in.system_name) {
4066 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4067 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
4068 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
4069 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
4070 }
4071 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
4072 NDR_PULL_ALLOC(ndr, r->out.handle);
4073 ZERO_STRUCTP(r->out.handle);
4074 }
4075 if (flags & NDR_OUT) {
4076 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
4077 NDR_PULL_ALLOC(ndr, r->out.handle);
4078 }
4079 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
4080 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
4081 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
4082 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
4083 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
4084 }
4085 return NDR_ERR_SUCCESS;
4086 }
4087
4088 _PUBLIC_ void ndr_print_winreg_OpenHKPT(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKPT *r)
/* [<][>][^][v][top][bottom][index][help] */
4089 {
4090 ndr_print_struct(ndr, name, "winreg_OpenHKPT");
4091 ndr->depth++;
4092 if (flags & NDR_SET_VALUES) {
4093 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
4094 }
4095 if (flags & NDR_IN) {
4096 ndr_print_struct(ndr, "in", "winreg_OpenHKPT");
4097 ndr->depth++;
4098 ndr_print_ptr(ndr, "system_name", r->in.system_name);
4099 ndr->depth++;
4100 if (r->in.system_name) {
4101 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
4102 }
4103 ndr->depth--;
4104 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
4105 ndr->depth--;
4106 }
4107 if (flags & NDR_OUT) {
4108 ndr_print_struct(ndr, "out", "winreg_OpenHKPT");
4109 ndr->depth++;
4110 ndr_print_ptr(ndr, "handle", r->out.handle);
4111 ndr->depth++;
4112 ndr_print_policy_handle(ndr, "handle", r->out.handle);
4113 ndr->depth--;
4114 ndr_print_WERROR(ndr, "result", r->out.result);
4115 ndr->depth--;
4116 }
4117 ndr->depth--;
4118 }
4119
4120 static enum ndr_err_code ndr_push_winreg_OpenHKPN(struct ndr_push *ndr, int flags, const struct winreg_OpenHKPN *r)
/* [<][>][^][v][top][bottom][index][help] */
4121 {
4122 if (flags & NDR_IN) {
4123 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
4124 if (r->in.system_name) {
4125 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
4126 }
4127 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
4128 }
4129 if (flags & NDR_OUT) {
4130 if (r->out.handle == NULL) {
4131 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
4132 }
4133 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
4134 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
4135 }
4136 return NDR_ERR_SUCCESS;
4137 }
4138
4139 static enum ndr_err_code ndr_pull_winreg_OpenHKPN(struct ndr_pull *ndr, int flags, struct winreg_OpenHKPN *r)
/* [<][>][^][v][top][bottom][index][help] */
4140 {
4141 uint32_t _ptr_system_name;
4142 TALLOC_CTX *_mem_save_system_name_0;
4143 TALLOC_CTX *_mem_save_handle_0;
4144 if (flags & NDR_IN) {
4145 ZERO_STRUCT(r->out);
4146
4147 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
4148 if (_ptr_system_name) {
4149 NDR_PULL_ALLOC(ndr, r->in.system_name);
4150 } else {
4151 r->in.system_name = NULL;
4152 }
4153 if (r->in.system_name) {
4154 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4155 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
4156 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
4157 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
4158 }
4159 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
4160 NDR_PULL_ALLOC(ndr, r->out.handle);
4161 ZERO_STRUCTP(r->out.handle);
4162 }
4163 if (flags & NDR_OUT) {
4164 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
4165 NDR_PULL_ALLOC(ndr, r->out.handle);
4166 }
4167 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
4168 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
4169 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
4170 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
4171 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
4172 }
4173 return NDR_ERR_SUCCESS;
4174 }
4175
4176 _PUBLIC_ void ndr_print_winreg_OpenHKPN(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKPN *r)
/* [<][>][^][v][top][bottom][index][help] */
4177 {
4178 ndr_print_struct(ndr, name, "winreg_OpenHKPN");
4179 ndr->depth++;
4180 if (flags & NDR_SET_VALUES) {
4181 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
4182 }
4183 if (flags & NDR_IN) {
4184 ndr_print_struct(ndr, "in", "winreg_OpenHKPN");
4185 ndr->depth++;
4186 ndr_print_ptr(ndr, "system_name", r->in.system_name);
4187 ndr->depth++;
4188 if (r->in.system_name) {
4189 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
4190 }
4191 ndr->depth--;
4192 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
4193 ndr->depth--;
4194 }
4195 if (flags & NDR_OUT) {
4196 ndr_print_struct(ndr, "out", "winreg_OpenHKPN");
4197 ndr->depth++;
4198 ndr_print_ptr(ndr, "handle", r->out.handle);
4199 ndr->depth++;
4200 ndr_print_policy_handle(ndr, "handle", r->out.handle);
4201 ndr->depth--;
4202 ndr_print_WERROR(ndr, "result", r->out.result);
4203 ndr->depth--;
4204 }
4205 ndr->depth--;
4206 }
4207
4208 static enum ndr_err_code ndr_push_winreg_QueryMultipleValues2(struct ndr_push *ndr, int flags, const struct winreg_QueryMultipleValues2 *r)
/* [<][>][^][v][top][bottom][index][help] */
4209 {
4210 if (flags & NDR_IN) {
4211 }
4212 if (flags & NDR_OUT) {
4213 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
4214 }
4215 return NDR_ERR_SUCCESS;
4216 }
4217
4218 static enum ndr_err_code ndr_pull_winreg_QueryMultipleValues2(struct ndr_pull *ndr, int flags, struct winreg_QueryMultipleValues2 *r)
/* [<][>][^][v][top][bottom][index][help] */
4219 {
4220 if (flags & NDR_IN) {
4221 }
4222 if (flags & NDR_OUT) {
4223 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
4224 }
4225 return NDR_ERR_SUCCESS;
4226 }
4227
4228 _PUBLIC_ void ndr_print_winreg_QueryMultipleValues2(struct ndr_print *ndr, const char *name, int flags, const struct winreg_QueryMultipleValues2 *r)
/* [<][>][^][v][top][bottom][index][help] */
4229 {
4230 ndr_print_struct(ndr, name, "winreg_QueryMultipleValues2");
4231 ndr->depth++;
4232 if (flags & NDR_SET_VALUES) {
4233 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
4234 }
4235 if (flags & NDR_IN) {
4236 ndr_print_struct(ndr, "in", "winreg_QueryMultipleValues2");
4237 ndr->depth++;
4238 ndr->depth--;
4239 }
4240 if (flags & NDR_OUT) {
4241 ndr_print_struct(ndr, "out", "winreg_QueryMultipleValues2");
4242 ndr->depth++;
4243 ndr_print_WERROR(ndr, "result", r->out.result);
4244 ndr->depth--;
4245 }
4246 ndr->depth--;
4247 }
4248
4249 static const struct ndr_interface_call winreg_calls[] = {
4250 {
4251 "winreg_OpenHKCR",
4252 sizeof(struct winreg_OpenHKCR),
4253 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKCR,
4254 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKCR,
4255 (ndr_print_function_t) ndr_print_winreg_OpenHKCR,
4256 false,
4257 },
4258 {
4259 "winreg_OpenHKCU",
4260 sizeof(struct winreg_OpenHKCU),
4261 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKCU,
4262 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKCU,
4263 (ndr_print_function_t) ndr_print_winreg_OpenHKCU,
4264 false,
4265 },
4266 {
4267 "winreg_OpenHKLM",
4268 sizeof(struct winreg_OpenHKLM),
4269 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKLM,
4270 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKLM,
4271 (ndr_print_function_t) ndr_print_winreg_OpenHKLM,
4272 false,
4273 },
4274 {
4275 "winreg_OpenHKPD",
4276 sizeof(struct winreg_OpenHKPD),
4277 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKPD,
4278 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKPD,
4279 (ndr_print_function_t) ndr_print_winreg_OpenHKPD,
4280 false,
4281 },
4282 {
4283 "winreg_OpenHKU",
4284 sizeof(struct winreg_OpenHKU),
4285 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKU,
4286 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKU,
4287 (ndr_print_function_t) ndr_print_winreg_OpenHKU,
4288 false,
4289 },
4290 {
4291 "winreg_CloseKey",
4292 sizeof(struct winreg_CloseKey),
4293 (ndr_push_flags_fn_t) ndr_push_winreg_CloseKey,
4294 (ndr_pull_flags_fn_t) ndr_pull_winreg_CloseKey,
4295 (ndr_print_function_t) ndr_print_winreg_CloseKey,
4296 false,
4297 },
4298 {
4299 "winreg_CreateKey",
4300 sizeof(struct winreg_CreateKey),
4301 (ndr_push_flags_fn_t) ndr_push_winreg_CreateKey,
4302 (ndr_pull_flags_fn_t) ndr_pull_winreg_CreateKey,
4303 (ndr_print_function_t) ndr_print_winreg_CreateKey,
4304 false,
4305 },
4306 {
4307 "winreg_DeleteKey",
4308 sizeof(struct winreg_DeleteKey),
4309 (ndr_push_flags_fn_t) ndr_push_winreg_DeleteKey,
4310 (ndr_pull_flags_fn_t) ndr_pull_winreg_DeleteKey,
4311 (ndr_print_function_t) ndr_print_winreg_DeleteKey,
4312 false,
4313 },
4314 {
4315 "winreg_DeleteValue",
4316 sizeof(struct winreg_DeleteValue),
4317 (ndr_push_flags_fn_t) ndr_push_winreg_DeleteValue,
4318 (ndr_pull_flags_fn_t) ndr_pull_winreg_DeleteValue,
4319 (ndr_print_function_t) ndr_print_winreg_DeleteValue,
4320 false,
4321 },
4322 {
4323 "winreg_EnumKey",
4324 sizeof(struct winreg_EnumKey),
4325 (ndr_push_flags_fn_t) ndr_push_winreg_EnumKey,
4326 (ndr_pull_flags_fn_t) ndr_pull_winreg_EnumKey,
4327 (ndr_print_function_t) ndr_print_winreg_EnumKey,
4328 false,
4329 },
4330 {
4331 "winreg_EnumValue",
4332 sizeof(struct winreg_EnumValue),
4333 (ndr_push_flags_fn_t) ndr_push_winreg_EnumValue,
4334 (ndr_pull_flags_fn_t) ndr_pull_winreg_EnumValue,
4335 (ndr_print_function_t) ndr_print_winreg_EnumValue,
4336 false,
4337 },
4338 {
4339 "winreg_FlushKey",
4340 sizeof(struct winreg_FlushKey),
4341 (ndr_push_flags_fn_t) ndr_push_winreg_FlushKey,
4342 (ndr_pull_flags_fn_t) ndr_pull_winreg_FlushKey,
4343 (ndr_print_function_t) ndr_print_winreg_FlushKey,
4344 false,
4345 },
4346 {
4347 "winreg_GetKeySecurity",
4348 sizeof(struct winreg_GetKeySecurity),
4349 (ndr_push_flags_fn_t) ndr_push_winreg_GetKeySecurity,
4350 (ndr_pull_flags_fn_t) ndr_pull_winreg_GetKeySecurity,
4351 (ndr_print_function_t) ndr_print_winreg_GetKeySecurity,
4352 false,
4353 },
4354 {
4355 "winreg_LoadKey",
4356 sizeof(struct winreg_LoadKey),
4357 (ndr_push_flags_fn_t) ndr_push_winreg_LoadKey,
4358 (ndr_pull_flags_fn_t) ndr_pull_winreg_LoadKey,
4359 (ndr_print_function_t) ndr_print_winreg_LoadKey,
4360 false,
4361 },
4362 {
4363 "winreg_NotifyChangeKeyValue",
4364 sizeof(struct winreg_NotifyChangeKeyValue),
4365 (ndr_push_flags_fn_t) ndr_push_winreg_NotifyChangeKeyValue,
4366 (ndr_pull_flags_fn_t) ndr_pull_winreg_NotifyChangeKeyValue,
4367 (ndr_print_function_t) ndr_print_winreg_NotifyChangeKeyValue,
4368 false,
4369 },
4370 {
4371 "winreg_OpenKey",
4372 sizeof(struct winreg_OpenKey),
4373 (ndr_push_flags_fn_t) ndr_push_winreg_OpenKey,
4374 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenKey,
4375 (ndr_print_function_t) ndr_print_winreg_OpenKey,
4376 false,
4377 },
4378 {
4379 "winreg_QueryInfoKey",
4380 sizeof(struct winreg_QueryInfoKey),
4381 (ndr_push_flags_fn_t) ndr_push_winreg_QueryInfoKey,
4382 (ndr_pull_flags_fn_t) ndr_pull_winreg_QueryInfoKey,
4383 (ndr_print_function_t) ndr_print_winreg_QueryInfoKey,
4384 false,
4385 },
4386 {
4387 "winreg_QueryValue",
4388 sizeof(struct winreg_QueryValue),
4389 (ndr_push_flags_fn_t) ndr_push_winreg_QueryValue,
4390 (ndr_pull_flags_fn_t) ndr_pull_winreg_QueryValue,
4391 (ndr_print_function_t) ndr_print_winreg_QueryValue,
4392 false,
4393 },
4394 {
4395 "winreg_ReplaceKey",
4396 sizeof(struct winreg_ReplaceKey),
4397 (ndr_push_flags_fn_t) ndr_push_winreg_ReplaceKey,
4398 (ndr_pull_flags_fn_t) ndr_pull_winreg_ReplaceKey,
4399 (ndr_print_function_t) ndr_print_winreg_ReplaceKey,
4400 false,
4401 },
4402 {
4403 "winreg_RestoreKey",
4404 sizeof(struct winreg_RestoreKey),
4405 (ndr_push_flags_fn_t) ndr_push_winreg_RestoreKey,
4406 (ndr_pull_flags_fn_t) ndr_pull_winreg_RestoreKey,
4407 (ndr_print_function_t) ndr_print_winreg_RestoreKey,
4408 false,
4409 },
4410 {
4411 "winreg_SaveKey",
4412 sizeof(struct winreg_SaveKey),
4413 (ndr_push_flags_fn_t) ndr_push_winreg_SaveKey,
4414 (ndr_pull_flags_fn_t) ndr_pull_winreg_SaveKey,
4415 (ndr_print_function_t) ndr_print_winreg_SaveKey,
4416 false,
4417 },
4418 {
4419 "winreg_SetKeySecurity",
4420 sizeof(struct winreg_SetKeySecurity),
4421 (ndr_push_flags_fn_t) ndr_push_winreg_SetKeySecurity,
4422 (ndr_pull_flags_fn_t) ndr_pull_winreg_SetKeySecurity,
4423 (ndr_print_function_t) ndr_print_winreg_SetKeySecurity,
4424 false,
4425 },
4426 {
4427 "winreg_SetValue",
4428 sizeof(struct winreg_SetValue),
4429 (ndr_push_flags_fn_t) ndr_push_winreg_SetValue,
4430 (ndr_pull_flags_fn_t) ndr_pull_winreg_SetValue,
4431 (ndr_print_function_t) ndr_print_winreg_SetValue,
4432 false,
4433 },
4434 {
4435 "winreg_UnLoadKey",
4436 sizeof(struct winreg_UnLoadKey),
4437 (ndr_push_flags_fn_t) ndr_push_winreg_UnLoadKey,
4438 (ndr_pull_flags_fn_t) ndr_pull_winreg_UnLoadKey,
4439 (ndr_print_function_t) ndr_print_winreg_UnLoadKey,
4440 false,
4441 },
4442 {
4443 "winreg_InitiateSystemShutdown",
4444 sizeof(struct winreg_InitiateSystemShutdown),
4445 (ndr_push_flags_fn_t) ndr_push_winreg_InitiateSystemShutdown,
4446 (ndr_pull_flags_fn_t) ndr_pull_winreg_InitiateSystemShutdown,
4447 (ndr_print_function_t) ndr_print_winreg_InitiateSystemShutdown,
4448 false,
4449 },
4450 {
4451 "winreg_AbortSystemShutdown",
4452 sizeof(struct winreg_AbortSystemShutdown),
4453 (ndr_push_flags_fn_t) ndr_push_winreg_AbortSystemShutdown,
4454 (ndr_pull_flags_fn_t) ndr_pull_winreg_AbortSystemShutdown,
4455 (ndr_print_function_t) ndr_print_winreg_AbortSystemShutdown,
4456 false,
4457 },
4458 {
4459 "winreg_GetVersion",
4460 sizeof(struct winreg_GetVersion),
4461 (ndr_push_flags_fn_t) ndr_push_winreg_GetVersion,
4462 (ndr_pull_flags_fn_t) ndr_pull_winreg_GetVersion,
4463 (ndr_print_function_t) ndr_print_winreg_GetVersion,
4464 false,
4465 },
4466 {
4467 "winreg_OpenHKCC",
4468 sizeof(struct winreg_OpenHKCC),
4469 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKCC,
4470 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKCC,
4471 (ndr_print_function_t) ndr_print_winreg_OpenHKCC,
4472 false,
4473 },
4474 {
4475 "winreg_OpenHKDD",
4476 sizeof(struct winreg_OpenHKDD),
4477 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKDD,
4478 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKDD,
4479 (ndr_print_function_t) ndr_print_winreg_OpenHKDD,
4480 false,
4481 },
4482 {
4483 "winreg_QueryMultipleValues",
4484 sizeof(struct winreg_QueryMultipleValues),
4485 (ndr_push_flags_fn_t) ndr_push_winreg_QueryMultipleValues,
4486 (ndr_pull_flags_fn_t) ndr_pull_winreg_QueryMultipleValues,
4487 (ndr_print_function_t) ndr_print_winreg_QueryMultipleValues,
4488 false,
4489 },
4490 {
4491 "winreg_InitiateSystemShutdownEx",
4492 sizeof(struct winreg_InitiateSystemShutdownEx),
4493 (ndr_push_flags_fn_t) ndr_push_winreg_InitiateSystemShutdownEx,
4494 (ndr_pull_flags_fn_t) ndr_pull_winreg_InitiateSystemShutdownEx,
4495 (ndr_print_function_t) ndr_print_winreg_InitiateSystemShutdownEx,
4496 false,
4497 },
4498 {
4499 "winreg_SaveKeyEx",
4500 sizeof(struct winreg_SaveKeyEx),
4501 (ndr_push_flags_fn_t) ndr_push_winreg_SaveKeyEx,
4502 (ndr_pull_flags_fn_t) ndr_pull_winreg_SaveKeyEx,
4503 (ndr_print_function_t) ndr_print_winreg_SaveKeyEx,
4504 false,
4505 },
4506 {
4507 "winreg_OpenHKPT",
4508 sizeof(struct winreg_OpenHKPT),
4509 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKPT,
4510 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKPT,
4511 (ndr_print_function_t) ndr_print_winreg_OpenHKPT,
4512 false,
4513 },
4514 {
4515 "winreg_OpenHKPN",
4516 sizeof(struct winreg_OpenHKPN),
4517 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKPN,
4518 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKPN,
4519 (ndr_print_function_t) ndr_print_winreg_OpenHKPN,
4520 false,
4521 },
4522 {
4523 "winreg_QueryMultipleValues2",
4524 sizeof(struct winreg_QueryMultipleValues2),
4525 (ndr_push_flags_fn_t) ndr_push_winreg_QueryMultipleValues2,
4526 (ndr_pull_flags_fn_t) ndr_pull_winreg_QueryMultipleValues2,
4527 (ndr_print_function_t) ndr_print_winreg_QueryMultipleValues2,
4528 false,
4529 },
4530 { NULL, 0, NULL, NULL, NULL, false }
4531 };
4532
4533 static const char * const winreg_endpoint_strings[] = {
4534 "ncacn_np:[\\pipe\\winreg]",
4535 "ncacn_ip_tcp:",
4536 "ncalrpc:",
4537 };
4538
4539 static const struct ndr_interface_string_array winreg_endpoints = {
4540 .count = 3,
4541 .names = winreg_endpoint_strings
4542 };
4543
4544 static const char * const winreg_authservice_strings[] = {
4545 "host",
4546 };
4547
4548 static const struct ndr_interface_string_array winreg_authservices = {
4549 .count = 1,
4550 .names = winreg_authservice_strings
4551 };
4552
4553
4554 const struct ndr_interface_table ndr_table_winreg = {
4555 .name = "winreg",
4556 .syntax_id = {
4557 {0x338cd001,0x2244,0x31f1,{0xaa,0xaa},{0x90,0x00,0x38,0x00,0x10,0x03}},
4558 NDR_WINREG_VERSION
4559 },
4560 .helpstring = NDR_WINREG_HELPSTRING,
4561 .num_calls = 35,
4562 .calls = winreg_calls,
4563 .endpoints = &winreg_endpoints,
4564 .authservices = &winreg_authservices
4565 };
4566