Line data Source code
1 : /* parser auto-generated by pidl */
2 :
3 : #include "includes.h"
4 : #include "bin/default/librpc/gen_ndr/ndr_mdssvc.h"
5 :
6 : #include "librpc/gen_ndr/ndr_misc.h"
7 98 : _PUBLIC_ enum ndr_err_code ndr_push_mdssvc_blob(struct ndr_push *ndr, int ndr_flags, const struct mdssvc_blob *r)
8 : {
9 98 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
10 98 : if (ndr_flags & NDR_SCALARS) {
11 98 : NDR_CHECK(ndr_push_align(ndr, 5));
12 98 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
13 98 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
14 98 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->spotlight_blob));
15 98 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16 : }
17 98 : if (ndr_flags & NDR_BUFFERS) {
18 98 : if (r->spotlight_blob) {
19 98 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->size));
20 98 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21 98 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->length));
22 98 : NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->spotlight_blob, r->length));
23 : }
24 : }
25 98 : return NDR_ERR_SUCCESS;
26 : }
27 :
28 98 : _PUBLIC_ enum ndr_err_code ndr_pull_mdssvc_blob(struct ndr_pull *ndr, int ndr_flags, struct mdssvc_blob *r)
29 : {
30 : uint32_t _ptr_spotlight_blob;
31 98 : uint32_t size_spotlight_blob_1 = 0;
32 98 : uint32_t length_spotlight_blob_1 = 0;
33 98 : TALLOC_CTX *_mem_save_spotlight_blob_0 = NULL;
34 98 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
35 98 : if (ndr_flags & NDR_SCALARS) {
36 98 : NDR_CHECK(ndr_pull_align(ndr, 5));
37 98 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
38 98 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
39 98 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_spotlight_blob));
40 98 : if (_ptr_spotlight_blob) {
41 98 : NDR_PULL_ALLOC(ndr, r->spotlight_blob);
42 : } else {
43 0 : r->spotlight_blob = NULL;
44 : }
45 98 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
46 : }
47 98 : if (ndr_flags & NDR_BUFFERS) {
48 98 : if (r->spotlight_blob) {
49 98 : _mem_save_spotlight_blob_0 = NDR_PULL_GET_MEM_CTX(ndr);
50 98 : NDR_PULL_SET_MEM_CTX(ndr, r->spotlight_blob, 0);
51 98 : NDR_CHECK(ndr_pull_array_size(ndr, &r->spotlight_blob));
52 98 : NDR_CHECK(ndr_pull_array_length(ndr, &r->spotlight_blob));
53 98 : NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->spotlight_blob, &size_spotlight_blob_1));
54 98 : NDR_CHECK(ndr_get_array_length(ndr, (void*)&r->spotlight_blob, &length_spotlight_blob_1));
55 98 : if (length_spotlight_blob_1 > size_spotlight_blob_1) {
56 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_spotlight_blob_1, length_spotlight_blob_1);
57 : }
58 98 : NDR_PULL_ALLOC_N(ndr, r->spotlight_blob, size_spotlight_blob_1);
59 98 : NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->spotlight_blob, length_spotlight_blob_1));
60 98 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_spotlight_blob_0, 0);
61 : }
62 98 : if (r->spotlight_blob) {
63 98 : NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->spotlight_blob, r->size));
64 : }
65 98 : if (r->spotlight_blob) {
66 98 : NDR_CHECK(ndr_check_steal_array_length(ndr, (void*)&r->spotlight_blob, r->length));
67 : }
68 : }
69 98 : return NDR_ERR_SUCCESS;
70 : }
71 :
72 0 : static void ndr_print_flags_mdssvc_blob(struct ndr_print *ndr, const char *name, int unused, const struct mdssvc_blob *r)
73 : {
74 0 : ndr_print_mdssvc_blob(ndr, name, r);
75 0 : }
76 :
77 0 : _PUBLIC_ void ndr_print_mdssvc_blob(struct ndr_print *ndr, const char *name, const struct mdssvc_blob *r)
78 : {
79 0 : ndr_print_struct(ndr, name, "mdssvc_blob");
80 0 : if (r == NULL) { ndr_print_null(ndr); return; }
81 0 : ndr->depth++;
82 0 : ndr_print_uint32(ndr, "length", r->length);
83 0 : ndr_print_uint32(ndr, "size", r->size);
84 0 : ndr_print_ptr(ndr, "spotlight_blob", r->spotlight_blob);
85 0 : ndr->depth++;
86 0 : if (r->spotlight_blob) {
87 0 : ndr_print_array_uint8(ndr, "spotlight_blob", r->spotlight_blob, r->length);
88 : }
89 0 : ndr->depth--;
90 0 : ndr->depth--;
91 : }
92 :
93 52 : static enum ndr_err_code ndr_push_mdssvc_open(struct ndr_push *ndr, int flags, const struct mdssvc_open *r)
94 : {
95 52 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
96 52 : if (flags & NDR_IN) {
97 26 : if (r->in.device_id == NULL) {
98 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
99 : }
100 26 : if (r->in.unkn2 == NULL) {
101 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
102 : }
103 26 : if (r->in.unkn3 == NULL) {
104 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
105 : }
106 26 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.device_id));
107 26 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.unkn2));
108 26 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.unkn3));
109 26 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 1025));
110 26 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
111 26 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.share_mount_path, CH_UTF8)));
112 26 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.share_mount_path, ndr_charset_length(r->in.share_mount_path, CH_UTF8), sizeof(uint8_t), CH_UTF8));
113 26 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 1025));
114 26 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
115 26 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.share_name, CH_UTF8)));
116 26 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.share_name, ndr_charset_length(r->in.share_name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
117 : }
118 52 : if (flags & NDR_OUT) {
119 26 : if (r->out.device_id == NULL) {
120 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
121 : }
122 26 : if (r->out.unkn2 == NULL) {
123 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
124 : }
125 26 : if (r->out.unkn3 == NULL) {
126 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
127 : }
128 26 : if (r->out.handle == NULL) {
129 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
130 : }
131 26 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.device_id));
132 26 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.unkn2));
133 26 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.unkn3));
134 26 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 1025));
135 26 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
136 26 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->out.share_path, CH_UTF8)));
137 26 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.share_path, ndr_charset_length(r->out.share_path, CH_UTF8), sizeof(uint8_t), CH_UTF8));
138 26 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
139 : }
140 52 : return NDR_ERR_SUCCESS;
141 : }
142 :
143 52 : static enum ndr_err_code ndr_pull_mdssvc_open(struct ndr_pull *ndr, int flags, struct mdssvc_open *r)
144 : {
145 52 : uint32_t size_share_mount_path_0 = 0;
146 52 : uint32_t length_share_mount_path_0 = 0;
147 52 : uint32_t size_share_name_0 = 0;
148 52 : uint32_t length_share_name_0 = 0;
149 52 : uint32_t size_share_path_0 = 0;
150 52 : uint32_t length_share_path_0 = 0;
151 52 : TALLOC_CTX *_mem_save_device_id_0 = NULL;
152 52 : TALLOC_CTX *_mem_save_unkn2_0 = NULL;
153 52 : TALLOC_CTX *_mem_save_unkn3_0 = NULL;
154 52 : TALLOC_CTX *_mem_save_handle_0 = NULL;
155 52 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
156 52 : if (flags & NDR_IN) {
157 26 : NDR_ZERO_STRUCT(r->out);
158 :
159 26 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
160 26 : NDR_PULL_ALLOC(ndr, r->in.device_id);
161 : }
162 26 : _mem_save_device_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
163 26 : NDR_PULL_SET_MEM_CTX(ndr, r->in.device_id, LIBNDR_FLAG_REF_ALLOC);
164 26 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.device_id));
165 26 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_device_id_0, LIBNDR_FLAG_REF_ALLOC);
166 26 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
167 26 : NDR_PULL_ALLOC(ndr, r->in.unkn2);
168 : }
169 26 : _mem_save_unkn2_0 = NDR_PULL_GET_MEM_CTX(ndr);
170 26 : NDR_PULL_SET_MEM_CTX(ndr, r->in.unkn2, LIBNDR_FLAG_REF_ALLOC);
171 26 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.unkn2));
172 26 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unkn2_0, LIBNDR_FLAG_REF_ALLOC);
173 26 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
174 26 : NDR_PULL_ALLOC(ndr, r->in.unkn3);
175 : }
176 26 : _mem_save_unkn3_0 = NDR_PULL_GET_MEM_CTX(ndr);
177 26 : NDR_PULL_SET_MEM_CTX(ndr, r->in.unkn3, LIBNDR_FLAG_REF_ALLOC);
178 26 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.unkn3));
179 26 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unkn3_0, LIBNDR_FLAG_REF_ALLOC);
180 26 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.share_mount_path));
181 26 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.share_mount_path));
182 26 : NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->in.share_mount_path, &size_share_mount_path_0));
183 26 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.share_mount_path, &length_share_mount_path_0));
184 26 : if (length_share_mount_path_0 > size_share_mount_path_0) {
185 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_share_mount_path_0, length_share_mount_path_0);
186 : }
187 26 : NDR_CHECK(ndr_check_string_terminator(ndr, length_share_mount_path_0, sizeof(uint8_t)));
188 26 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.share_mount_path, length_share_mount_path_0, sizeof(uint8_t), CH_UTF8));
189 26 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.share_name));
190 26 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.share_name));
191 26 : NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->in.share_name, &size_share_name_0));
192 26 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.share_name, &length_share_name_0));
193 26 : if (length_share_name_0 > size_share_name_0) {
194 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_share_name_0, length_share_name_0);
195 : }
196 26 : NDR_CHECK(ndr_check_string_terminator(ndr, length_share_name_0, sizeof(uint8_t)));
197 26 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.share_name, length_share_name_0, sizeof(uint8_t), CH_UTF8));
198 26 : NDR_PULL_ALLOC(ndr, r->out.device_id);
199 26 : *r->out.device_id = *r->in.device_id;
200 26 : NDR_PULL_ALLOC(ndr, r->out.unkn2);
201 26 : *r->out.unkn2 = *r->in.unkn2;
202 26 : NDR_PULL_ALLOC(ndr, r->out.unkn3);
203 26 : *r->out.unkn3 = *r->in.unkn3;
204 26 : NDR_PULL_ALLOC(ndr, r->out.handle);
205 26 : NDR_ZERO_STRUCTP(r->out.handle);
206 26 : if (r->in.share_mount_path) {
207 26 : NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->in.share_mount_path, 1025));
208 : }
209 26 : if (r->in.share_name) {
210 26 : NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->in.share_name, 1025));
211 : }
212 : }
213 52 : if (flags & NDR_OUT) {
214 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
215 : if (r->in.device_id == NULL) {
216 : NDR_PULL_ALLOC(ndr, r->in.device_id);
217 : NDR_ZERO_STRUCTP(r->in.device_id);
218 : }
219 : if (r->in.unkn2 == NULL) {
220 : NDR_PULL_ALLOC(ndr, r->in.unkn2);
221 : NDR_ZERO_STRUCTP(r->in.unkn2);
222 : }
223 : if (r->in.unkn3 == NULL) {
224 : NDR_PULL_ALLOC(ndr, r->in.unkn3);
225 : NDR_ZERO_STRUCTP(r->in.unkn3);
226 : }
227 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
228 26 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
229 12 : NDR_PULL_ALLOC(ndr, r->out.device_id);
230 : }
231 26 : _mem_save_device_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
232 26 : NDR_PULL_SET_MEM_CTX(ndr, r->out.device_id, LIBNDR_FLAG_REF_ALLOC);
233 26 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.device_id));
234 26 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_device_id_0, LIBNDR_FLAG_REF_ALLOC);
235 26 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
236 12 : NDR_PULL_ALLOC(ndr, r->out.unkn2);
237 : }
238 26 : _mem_save_unkn2_0 = NDR_PULL_GET_MEM_CTX(ndr);
239 26 : NDR_PULL_SET_MEM_CTX(ndr, r->out.unkn2, LIBNDR_FLAG_REF_ALLOC);
240 26 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.unkn2));
241 26 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unkn2_0, LIBNDR_FLAG_REF_ALLOC);
242 26 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
243 12 : NDR_PULL_ALLOC(ndr, r->out.unkn3);
244 : }
245 26 : _mem_save_unkn3_0 = NDR_PULL_GET_MEM_CTX(ndr);
246 26 : NDR_PULL_SET_MEM_CTX(ndr, r->out.unkn3, LIBNDR_FLAG_REF_ALLOC);
247 26 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.unkn3));
248 26 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unkn3_0, LIBNDR_FLAG_REF_ALLOC);
249 26 : NDR_CHECK(ndr_pull_array_size(ndr, &r->out.share_path));
250 26 : NDR_CHECK(ndr_pull_array_length(ndr, &r->out.share_path));
251 26 : NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->out.share_path, &size_share_path_0));
252 26 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->out.share_path, &length_share_path_0));
253 26 : if (length_share_path_0 > size_share_path_0) {
254 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_share_path_0, length_share_path_0);
255 : }
256 26 : NDR_CHECK(ndr_check_string_terminator(ndr, length_share_path_0, sizeof(uint8_t)));
257 26 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->out.share_path, length_share_path_0, sizeof(uint8_t), CH_UTF8));
258 26 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
259 12 : NDR_PULL_ALLOC(ndr, r->out.handle);
260 : }
261 26 : _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
262 26 : NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
263 26 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
264 26 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
265 26 : if (r->out.share_path) {
266 26 : NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->out.share_path, 1025));
267 : }
268 : }
269 52 : return NDR_ERR_SUCCESS;
270 : }
271 :
272 0 : _PUBLIC_ void ndr_print_mdssvc_open(struct ndr_print *ndr, const char *name, int flags, const struct mdssvc_open *r)
273 : {
274 0 : ndr_print_struct(ndr, name, "mdssvc_open");
275 0 : if (r == NULL) { ndr_print_null(ndr); return; }
276 0 : ndr->depth++;
277 0 : if (flags & NDR_SET_VALUES) {
278 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
279 : }
280 0 : if (flags & NDR_IN) {
281 0 : ndr_print_struct(ndr, "in", "mdssvc_open");
282 0 : ndr->depth++;
283 0 : ndr_print_ptr(ndr, "device_id", r->in.device_id);
284 0 : ndr->depth++;
285 0 : ndr_print_uint32(ndr, "device_id", *r->in.device_id);
286 0 : ndr->depth--;
287 0 : ndr_print_ptr(ndr, "unkn2", r->in.unkn2);
288 0 : ndr->depth++;
289 0 : ndr_print_uint32(ndr, "unkn2", *r->in.unkn2);
290 0 : ndr->depth--;
291 0 : ndr_print_ptr(ndr, "unkn3", r->in.unkn3);
292 0 : ndr->depth++;
293 0 : ndr_print_uint32(ndr, "unkn3", *r->in.unkn3);
294 0 : ndr->depth--;
295 0 : ndr_print_string(ndr, "share_mount_path", r->in.share_mount_path);
296 0 : ndr_print_string(ndr, "share_name", r->in.share_name);
297 0 : ndr->depth--;
298 : }
299 0 : if (flags & NDR_OUT) {
300 0 : ndr_print_struct(ndr, "out", "mdssvc_open");
301 0 : ndr->depth++;
302 0 : ndr_print_ptr(ndr, "device_id", r->out.device_id);
303 0 : ndr->depth++;
304 0 : ndr_print_uint32(ndr, "device_id", *r->out.device_id);
305 0 : ndr->depth--;
306 0 : ndr_print_ptr(ndr, "unkn2", r->out.unkn2);
307 0 : ndr->depth++;
308 0 : ndr_print_uint32(ndr, "unkn2", *r->out.unkn2);
309 0 : ndr->depth--;
310 0 : ndr_print_ptr(ndr, "unkn3", r->out.unkn3);
311 0 : ndr->depth++;
312 0 : ndr_print_uint32(ndr, "unkn3", *r->out.unkn3);
313 0 : ndr->depth--;
314 0 : ndr_print_string(ndr, "share_path", r->out.share_path);
315 0 : ndr_print_ptr(ndr, "handle", r->out.handle);
316 0 : ndr->depth++;
317 0 : ndr_print_policy_handle(ndr, "handle", r->out.handle);
318 0 : ndr->depth--;
319 0 : ndr->depth--;
320 : }
321 0 : ndr->depth--;
322 : }
323 :
324 46 : static enum ndr_err_code ndr_push_mdssvc_unknown1(struct ndr_push *ndr, int flags, const struct mdssvc_unknown1 *r)
325 : {
326 46 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
327 46 : if (flags & NDR_IN) {
328 24 : if (r->in.handle == NULL) {
329 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
330 : }
331 24 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
332 24 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unkn1));
333 24 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.device_id));
334 24 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unkn3));
335 24 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unkn4));
336 24 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.uid));
337 24 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.gid));
338 : }
339 46 : if (flags & NDR_OUT) {
340 22 : if (r->out.status == NULL) {
341 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
342 : }
343 22 : if (r->out.flags == NULL) {
344 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
345 : }
346 22 : if (r->out.unkn7 == NULL) {
347 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
348 : }
349 22 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.status));
350 22 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.flags));
351 22 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.unkn7));
352 : }
353 46 : return NDR_ERR_SUCCESS;
354 : }
355 :
356 46 : static enum ndr_err_code ndr_pull_mdssvc_unknown1(struct ndr_pull *ndr, int flags, struct mdssvc_unknown1 *r)
357 : {
358 46 : TALLOC_CTX *_mem_save_handle_0 = NULL;
359 46 : TALLOC_CTX *_mem_save_status_0 = NULL;
360 46 : TALLOC_CTX *_mem_save_flags_0 = NULL;
361 46 : TALLOC_CTX *_mem_save_unkn7_0 = NULL;
362 46 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
363 46 : if (flags & NDR_IN) {
364 24 : NDR_ZERO_STRUCT(r->out);
365 :
366 24 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
367 24 : NDR_PULL_ALLOC(ndr, r->in.handle);
368 : }
369 24 : _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
370 24 : NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
371 24 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
372 24 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
373 24 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unkn1));
374 24 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.device_id));
375 24 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unkn3));
376 24 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unkn4));
377 24 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.uid));
378 24 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.gid));
379 24 : NDR_PULL_ALLOC(ndr, r->out.status);
380 24 : NDR_ZERO_STRUCTP(r->out.status);
381 24 : NDR_PULL_ALLOC(ndr, r->out.flags);
382 24 : NDR_ZERO_STRUCTP(r->out.flags);
383 24 : NDR_PULL_ALLOC(ndr, r->out.unkn7);
384 24 : NDR_ZERO_STRUCTP(r->out.unkn7);
385 : }
386 46 : if (flags & NDR_OUT) {
387 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
388 : if (r->in.handle == NULL) {
389 : NDR_PULL_ALLOC(ndr, r->in.handle);
390 : NDR_ZERO_STRUCTP(r->in.handle);
391 : }
392 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
393 22 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
394 12 : NDR_PULL_ALLOC(ndr, r->out.status);
395 : }
396 22 : _mem_save_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
397 22 : NDR_PULL_SET_MEM_CTX(ndr, r->out.status, LIBNDR_FLAG_REF_ALLOC);
398 22 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.status));
399 22 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_0, LIBNDR_FLAG_REF_ALLOC);
400 22 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
401 12 : NDR_PULL_ALLOC(ndr, r->out.flags);
402 : }
403 22 : _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
404 22 : NDR_PULL_SET_MEM_CTX(ndr, r->out.flags, LIBNDR_FLAG_REF_ALLOC);
405 22 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.flags));
406 22 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
407 22 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
408 12 : NDR_PULL_ALLOC(ndr, r->out.unkn7);
409 : }
410 22 : _mem_save_unkn7_0 = NDR_PULL_GET_MEM_CTX(ndr);
411 22 : NDR_PULL_SET_MEM_CTX(ndr, r->out.unkn7, LIBNDR_FLAG_REF_ALLOC);
412 22 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.unkn7));
413 22 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unkn7_0, LIBNDR_FLAG_REF_ALLOC);
414 : }
415 46 : return NDR_ERR_SUCCESS;
416 : }
417 :
418 0 : _PUBLIC_ void ndr_print_mdssvc_unknown1(struct ndr_print *ndr, const char *name, int flags, const struct mdssvc_unknown1 *r)
419 : {
420 0 : ndr_print_struct(ndr, name, "mdssvc_unknown1");
421 0 : if (r == NULL) { ndr_print_null(ndr); return; }
422 0 : ndr->depth++;
423 0 : if (flags & NDR_SET_VALUES) {
424 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
425 : }
426 0 : if (flags & NDR_IN) {
427 0 : ndr_print_struct(ndr, "in", "mdssvc_unknown1");
428 0 : ndr->depth++;
429 0 : ndr_print_ptr(ndr, "handle", r->in.handle);
430 0 : ndr->depth++;
431 0 : ndr_print_policy_handle(ndr, "handle", r->in.handle);
432 0 : ndr->depth--;
433 0 : ndr_print_uint32(ndr, "unkn1", r->in.unkn1);
434 0 : ndr_print_uint32(ndr, "device_id", r->in.device_id);
435 0 : ndr_print_uint32(ndr, "unkn3", r->in.unkn3);
436 0 : ndr_print_uint32(ndr, "unkn4", r->in.unkn4);
437 0 : ndr_print_uint32(ndr, "uid", r->in.uid);
438 0 : ndr_print_uint32(ndr, "gid", r->in.gid);
439 0 : ndr->depth--;
440 : }
441 0 : if (flags & NDR_OUT) {
442 0 : ndr_print_struct(ndr, "out", "mdssvc_unknown1");
443 0 : ndr->depth++;
444 0 : ndr_print_ptr(ndr, "status", r->out.status);
445 0 : ndr->depth++;
446 0 : ndr_print_uint32(ndr, "status", *r->out.status);
447 0 : ndr->depth--;
448 0 : ndr_print_ptr(ndr, "flags", r->out.flags);
449 0 : ndr->depth++;
450 0 : ndr_print_uint32(ndr, "flags", *r->out.flags);
451 0 : ndr->depth--;
452 0 : ndr_print_ptr(ndr, "unkn7", r->out.unkn7);
453 0 : ndr->depth++;
454 0 : ndr_print_uint32(ndr, "unkn7", *r->out.unkn7);
455 0 : ndr->depth--;
456 0 : ndr->depth--;
457 : }
458 0 : ndr->depth--;
459 : }
460 :
461 98 : static enum ndr_err_code ndr_push_mdssvc_cmd(struct ndr_push *ndr, int flags, const struct mdssvc_cmd *r)
462 : {
463 98 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
464 98 : if (flags & NDR_IN) {
465 50 : if (r->in.handle == NULL) {
466 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
467 : }
468 50 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
469 50 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unkn1));
470 50 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.device_id));
471 50 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unkn3));
472 50 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unkn4));
473 50 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
474 50 : NDR_CHECK(ndr_push_mdssvc_blob(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.request_blob));
475 50 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unkn5));
476 50 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.max_fragment_size1));
477 50 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unkn6));
478 50 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.max_fragment_size2));
479 50 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unkn7));
480 50 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unkn8));
481 : }
482 98 : if (flags & NDR_OUT) {
483 48 : if (r->out.fragment == NULL) {
484 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
485 : }
486 48 : if (r->out.response_blob == NULL) {
487 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
488 : }
489 48 : if (r->out.unkn9 == NULL) {
490 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
491 : }
492 48 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.fragment));
493 48 : NDR_CHECK(ndr_push_mdssvc_blob(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.response_blob));
494 48 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.unkn9));
495 : }
496 98 : return NDR_ERR_SUCCESS;
497 : }
498 :
499 98 : static enum ndr_err_code ndr_pull_mdssvc_cmd(struct ndr_pull *ndr, int flags, struct mdssvc_cmd *r)
500 : {
501 98 : TALLOC_CTX *_mem_save_handle_0 = NULL;
502 98 : TALLOC_CTX *_mem_save_fragment_0 = NULL;
503 98 : TALLOC_CTX *_mem_save_response_blob_0 = NULL;
504 98 : TALLOC_CTX *_mem_save_unkn9_0 = NULL;
505 98 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
506 98 : if (flags & NDR_IN) {
507 50 : NDR_ZERO_STRUCT(r->out);
508 :
509 50 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
510 50 : NDR_PULL_ALLOC(ndr, r->in.handle);
511 : }
512 50 : _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
513 50 : NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
514 50 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
515 50 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
516 50 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unkn1));
517 50 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.device_id));
518 50 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unkn3));
519 50 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unkn4));
520 50 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
521 50 : NDR_CHECK(ndr_pull_mdssvc_blob(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.request_blob));
522 50 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unkn5));
523 50 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.max_fragment_size1));
524 50 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unkn6));
525 50 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.max_fragment_size2));
526 50 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unkn7));
527 50 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unkn8));
528 50 : NDR_PULL_ALLOC(ndr, r->out.fragment);
529 50 : NDR_ZERO_STRUCTP(r->out.fragment);
530 50 : NDR_PULL_ALLOC(ndr, r->out.response_blob);
531 50 : NDR_ZERO_STRUCTP(r->out.response_blob);
532 50 : NDR_PULL_ALLOC(ndr, r->out.unkn9);
533 50 : NDR_ZERO_STRUCTP(r->out.unkn9);
534 : }
535 98 : if (flags & NDR_OUT) {
536 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
537 : if (r->in.handle == NULL) {
538 : NDR_PULL_ALLOC(ndr, r->in.handle);
539 : NDR_ZERO_STRUCTP(r->in.handle);
540 : }
541 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
542 48 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
543 46 : NDR_PULL_ALLOC(ndr, r->out.fragment);
544 : }
545 48 : _mem_save_fragment_0 = NDR_PULL_GET_MEM_CTX(ndr);
546 48 : NDR_PULL_SET_MEM_CTX(ndr, r->out.fragment, LIBNDR_FLAG_REF_ALLOC);
547 48 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.fragment));
548 48 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fragment_0, LIBNDR_FLAG_REF_ALLOC);
549 48 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
550 46 : NDR_PULL_ALLOC(ndr, r->out.response_blob);
551 : }
552 48 : _mem_save_response_blob_0 = NDR_PULL_GET_MEM_CTX(ndr);
553 48 : NDR_PULL_SET_MEM_CTX(ndr, r->out.response_blob, LIBNDR_FLAG_REF_ALLOC);
554 48 : NDR_CHECK(ndr_pull_mdssvc_blob(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.response_blob));
555 48 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_response_blob_0, LIBNDR_FLAG_REF_ALLOC);
556 48 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
557 46 : NDR_PULL_ALLOC(ndr, r->out.unkn9);
558 : }
559 48 : _mem_save_unkn9_0 = NDR_PULL_GET_MEM_CTX(ndr);
560 48 : NDR_PULL_SET_MEM_CTX(ndr, r->out.unkn9, LIBNDR_FLAG_REF_ALLOC);
561 48 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.unkn9));
562 48 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unkn9_0, LIBNDR_FLAG_REF_ALLOC);
563 : }
564 98 : return NDR_ERR_SUCCESS;
565 : }
566 :
567 0 : _PUBLIC_ void ndr_print_mdssvc_cmd(struct ndr_print *ndr, const char *name, int flags, const struct mdssvc_cmd *r)
568 : {
569 0 : ndr_print_struct(ndr, name, "mdssvc_cmd");
570 0 : if (r == NULL) { ndr_print_null(ndr); return; }
571 0 : ndr->depth++;
572 0 : if (flags & NDR_SET_VALUES) {
573 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
574 : }
575 0 : if (flags & NDR_IN) {
576 0 : ndr_print_struct(ndr, "in", "mdssvc_cmd");
577 0 : ndr->depth++;
578 0 : ndr_print_ptr(ndr, "handle", r->in.handle);
579 0 : ndr->depth++;
580 0 : ndr_print_policy_handle(ndr, "handle", r->in.handle);
581 0 : ndr->depth--;
582 0 : ndr_print_uint32(ndr, "unkn1", r->in.unkn1);
583 0 : ndr_print_uint32(ndr, "device_id", r->in.device_id);
584 0 : ndr_print_uint32(ndr, "unkn3", r->in.unkn3);
585 0 : ndr_print_uint32(ndr, "unkn4", r->in.unkn4);
586 0 : ndr_print_uint32(ndr, "flags", r->in.flags);
587 0 : ndr_print_mdssvc_blob(ndr, "request_blob", &r->in.request_blob);
588 0 : ndr_print_uint32(ndr, "unkn5", r->in.unkn5);
589 0 : ndr_print_uint32(ndr, "max_fragment_size1", r->in.max_fragment_size1);
590 0 : ndr_print_uint32(ndr, "unkn6", r->in.unkn6);
591 0 : ndr_print_uint32(ndr, "max_fragment_size2", r->in.max_fragment_size2);
592 0 : ndr_print_uint32(ndr, "unkn7", r->in.unkn7);
593 0 : ndr_print_uint32(ndr, "unkn8", r->in.unkn8);
594 0 : ndr->depth--;
595 : }
596 0 : if (flags & NDR_OUT) {
597 0 : ndr_print_struct(ndr, "out", "mdssvc_cmd");
598 0 : ndr->depth++;
599 0 : ndr_print_ptr(ndr, "fragment", r->out.fragment);
600 0 : ndr->depth++;
601 0 : ndr_print_uint32(ndr, "fragment", *r->out.fragment);
602 0 : ndr->depth--;
603 0 : ndr_print_ptr(ndr, "response_blob", r->out.response_blob);
604 0 : ndr->depth++;
605 0 : ndr_print_mdssvc_blob(ndr, "response_blob", r->out.response_blob);
606 0 : ndr->depth--;
607 0 : ndr_print_ptr(ndr, "unkn9", r->out.unkn9);
608 0 : ndr->depth++;
609 0 : ndr_print_uint32(ndr, "unkn9", *r->out.unkn9);
610 0 : ndr->depth--;
611 0 : ndr->depth--;
612 : }
613 0 : ndr->depth--;
614 : }
615 :
616 44 : static enum ndr_err_code ndr_push_mdssvc_close(struct ndr_push *ndr, int flags, const struct mdssvc_close *r)
617 : {
618 44 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
619 44 : if (flags & NDR_IN) {
620 26 : if (r->in.in_handle == NULL) {
621 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
622 : }
623 26 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.in_handle));
624 26 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unkn1));
625 26 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.device_id));
626 26 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unkn2));
627 26 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unkn3));
628 : }
629 44 : if (flags & NDR_OUT) {
630 18 : if (r->out.out_handle == NULL) {
631 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
632 : }
633 18 : if (r->out.status == NULL) {
634 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
635 : }
636 18 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.out_handle));
637 18 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.status));
638 : }
639 44 : return NDR_ERR_SUCCESS;
640 : }
641 :
642 38 : static enum ndr_err_code ndr_pull_mdssvc_close(struct ndr_pull *ndr, int flags, struct mdssvc_close *r)
643 : {
644 38 : TALLOC_CTX *_mem_save_in_handle_0 = NULL;
645 38 : TALLOC_CTX *_mem_save_out_handle_0 = NULL;
646 38 : TALLOC_CTX *_mem_save_status_0 = NULL;
647 38 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
648 38 : if (flags & NDR_IN) {
649 20 : NDR_ZERO_STRUCT(r->out);
650 :
651 20 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
652 20 : NDR_PULL_ALLOC(ndr, r->in.in_handle);
653 : }
654 20 : _mem_save_in_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
655 20 : NDR_PULL_SET_MEM_CTX(ndr, r->in.in_handle, LIBNDR_FLAG_REF_ALLOC);
656 20 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.in_handle));
657 20 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_in_handle_0, LIBNDR_FLAG_REF_ALLOC);
658 20 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unkn1));
659 20 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.device_id));
660 20 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unkn2));
661 20 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unkn3));
662 20 : NDR_PULL_ALLOC(ndr, r->out.out_handle);
663 20 : NDR_ZERO_STRUCTP(r->out.out_handle);
664 20 : NDR_PULL_ALLOC(ndr, r->out.status);
665 20 : NDR_ZERO_STRUCTP(r->out.status);
666 : }
667 38 : if (flags & NDR_OUT) {
668 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
669 : if (r->in.in_handle == NULL) {
670 : NDR_PULL_ALLOC(ndr, r->in.in_handle);
671 : NDR_ZERO_STRUCTP(r->in.in_handle);
672 : }
673 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
674 18 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
675 12 : NDR_PULL_ALLOC(ndr, r->out.out_handle);
676 : }
677 18 : _mem_save_out_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
678 18 : NDR_PULL_SET_MEM_CTX(ndr, r->out.out_handle, LIBNDR_FLAG_REF_ALLOC);
679 18 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.out_handle));
680 18 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_out_handle_0, LIBNDR_FLAG_REF_ALLOC);
681 18 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
682 12 : NDR_PULL_ALLOC(ndr, r->out.status);
683 : }
684 18 : _mem_save_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
685 18 : NDR_PULL_SET_MEM_CTX(ndr, r->out.status, LIBNDR_FLAG_REF_ALLOC);
686 18 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.status));
687 18 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_0, LIBNDR_FLAG_REF_ALLOC);
688 : }
689 38 : return NDR_ERR_SUCCESS;
690 : }
691 :
692 0 : _PUBLIC_ void ndr_print_mdssvc_close(struct ndr_print *ndr, const char *name, int flags, const struct mdssvc_close *r)
693 : {
694 0 : ndr_print_struct(ndr, name, "mdssvc_close");
695 0 : if (r == NULL) { ndr_print_null(ndr); return; }
696 0 : ndr->depth++;
697 0 : if (flags & NDR_SET_VALUES) {
698 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
699 : }
700 0 : if (flags & NDR_IN) {
701 0 : ndr_print_struct(ndr, "in", "mdssvc_close");
702 0 : ndr->depth++;
703 0 : ndr_print_ptr(ndr, "in_handle", r->in.in_handle);
704 0 : ndr->depth++;
705 0 : ndr_print_policy_handle(ndr, "in_handle", r->in.in_handle);
706 0 : ndr->depth--;
707 0 : ndr_print_uint32(ndr, "unkn1", r->in.unkn1);
708 0 : ndr_print_uint32(ndr, "device_id", r->in.device_id);
709 0 : ndr_print_uint32(ndr, "unkn2", r->in.unkn2);
710 0 : ndr_print_uint32(ndr, "unkn3", r->in.unkn3);
711 0 : ndr->depth--;
712 : }
713 0 : if (flags & NDR_OUT) {
714 0 : ndr_print_struct(ndr, "out", "mdssvc_close");
715 0 : ndr->depth++;
716 0 : ndr_print_ptr(ndr, "out_handle", r->out.out_handle);
717 0 : ndr->depth++;
718 0 : ndr_print_policy_handle(ndr, "out_handle", r->out.out_handle);
719 0 : ndr->depth--;
720 0 : ndr_print_ptr(ndr, "status", r->out.status);
721 0 : ndr->depth++;
722 0 : ndr_print_uint32(ndr, "status", *r->out.status);
723 0 : ndr->depth--;
724 0 : ndr->depth--;
725 : }
726 0 : ndr->depth--;
727 : }
728 :
729 : #ifndef SKIP_NDR_TABLE_mdssvc
730 : static const struct ndr_interface_public_struct mdssvc_public_structs[] = {
731 : {
732 : .name = "mdssvc_blob",
733 : .struct_size = sizeof(struct mdssvc_blob ),
734 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_mdssvc_blob,
735 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_mdssvc_blob,
736 : .ndr_print = (ndr_print_function_t) ndr_print_flags_mdssvc_blob,
737 : },
738 : { .name = NULL }
739 : };
740 :
741 : static const struct ndr_interface_call mdssvc_calls[] = {
742 : {
743 : "mdssvc_open",
744 : sizeof(struct mdssvc_open),
745 : (ndr_push_flags_fn_t) ndr_push_mdssvc_open,
746 : (ndr_pull_flags_fn_t) ndr_pull_mdssvc_open,
747 : (ndr_print_function_t) ndr_print_mdssvc_open,
748 : { 0, NULL },
749 : { 0, NULL },
750 : },
751 : {
752 : "mdssvc_unknown1",
753 : sizeof(struct mdssvc_unknown1),
754 : (ndr_push_flags_fn_t) ndr_push_mdssvc_unknown1,
755 : (ndr_pull_flags_fn_t) ndr_pull_mdssvc_unknown1,
756 : (ndr_print_function_t) ndr_print_mdssvc_unknown1,
757 : { 0, NULL },
758 : { 0, NULL },
759 : },
760 : {
761 : "mdssvc_cmd",
762 : sizeof(struct mdssvc_cmd),
763 : (ndr_push_flags_fn_t) ndr_push_mdssvc_cmd,
764 : (ndr_pull_flags_fn_t) ndr_pull_mdssvc_cmd,
765 : (ndr_print_function_t) ndr_print_mdssvc_cmd,
766 : { 0, NULL },
767 : { 0, NULL },
768 : },
769 : {
770 : "mdssvc_close",
771 : sizeof(struct mdssvc_close),
772 : (ndr_push_flags_fn_t) ndr_push_mdssvc_close,
773 : (ndr_pull_flags_fn_t) ndr_pull_mdssvc_close,
774 : (ndr_print_function_t) ndr_print_mdssvc_close,
775 : { 0, NULL },
776 : { 0, NULL },
777 : },
778 : { .name = NULL }
779 : };
780 :
781 : static const char * const mdssvc_endpoint_strings[] = {
782 : "ncacn_np:[\\pipe\\mdssvc]",
783 : "ncalrpc:",
784 : };
785 :
786 : static const struct ndr_interface_string_array mdssvc_endpoints = {
787 : .count = 2,
788 : .names = mdssvc_endpoint_strings
789 : };
790 :
791 : static const char * const mdssvc_authservice_strings[] = {
792 : "host",
793 : };
794 :
795 : static const struct ndr_interface_string_array mdssvc_authservices = {
796 : .count = 1,
797 : .names = mdssvc_authservice_strings
798 : };
799 :
800 :
801 : const struct ndr_interface_table ndr_table_mdssvc = {
802 : .name = "mdssvc",
803 : .syntax_id = {
804 : {0x885d85fb,0xc754,0x4062,{0xa0,0xe7},{0x68,0x72,0xce,0x00,0x64,0xf4}},
805 : NDR_MDSSVC_VERSION
806 : },
807 : .helpstring = NDR_MDSSVC_HELPSTRING,
808 : .num_calls = 4,
809 : .calls = mdssvc_calls,
810 : .num_public_structs = 1,
811 : .public_structs = mdssvc_public_structs,
812 : .endpoints = &mdssvc_endpoints,
813 : .authservices = &mdssvc_authservices
814 : };
815 :
816 : #endif /* SKIP_NDR_TABLE_mdssvc */
|