Merge branch 'master' of ssh://git.samba.org/data/git/samba
[ira/wip.git] / librpc / gen_ndr / ndr_drsuapi.c
1 /* parser auto-generated by pidl */
2
3 #include "includes.h"
4 #include "../librpc/gen_ndr/ndr_drsuapi.h"
5
6 #include "librpc/gen_ndr/ndr_security.h"
7 #include "librpc/gen_ndr/ndr_misc.h"
8 #include "librpc/gen_ndr/ndr_samr.h"
9 #include "librpc/ndr/ndr_compression.h"
10 static enum ndr_err_code ndr_push_drsuapi_SupportedExtensions(struct ndr_push *ndr, int ndr_flags, uint32_t r)
11 {
12         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
13         return NDR_ERR_SUCCESS;
14 }
15
16 static enum ndr_err_code ndr_pull_drsuapi_SupportedExtensions(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
17 {
18         uint32_t v;
19         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
20         *r = v;
21         return NDR_ERR_SUCCESS;
22 }
23
24 _PUBLIC_ void ndr_print_drsuapi_SupportedExtensions(struct ndr_print *ndr, const char *name, uint32_t r)
25 {
26         ndr_print_uint32(ndr, name, r);
27         ndr->depth++;
28         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_BASE", DRSUAPI_SUPPORTED_EXTENSION_BASE, r);
29         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_ASYNC_REPLICATION", DRSUAPI_SUPPORTED_EXTENSION_ASYNC_REPLICATION, r);
30         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_REMOVEAPI", DRSUAPI_SUPPORTED_EXTENSION_REMOVEAPI, r);
31         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_MOVEREQ_V2", DRSUAPI_SUPPORTED_EXTENSION_MOVEREQ_V2, r);
32         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_GETCHG_COMPRESS", DRSUAPI_SUPPORTED_EXTENSION_GETCHG_COMPRESS, r);
33         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V1", DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V1, r);
34         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_RESTORE_USN_OPTIMIZATION", DRSUAPI_SUPPORTED_EXTENSION_RESTORE_USN_OPTIMIZATION, r);
35         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_00000080", DRSUAPI_SUPPORTED_EXTENSION_00000080, r);
36         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_KCC_EXECUTE", DRSUAPI_SUPPORTED_EXTENSION_KCC_EXECUTE, r);
37         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_V2", DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_V2, r);
38         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_LINKED_VALUE_REPLICATION", DRSUAPI_SUPPORTED_EXTENSION_LINKED_VALUE_REPLICATION, r);
39         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V2", DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V2, r);
40         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_INSTANCE_TYPE_NOT_REQ_ON_MOD", DRSUAPI_SUPPORTED_EXTENSION_INSTANCE_TYPE_NOT_REQ_ON_MOD, r);
41         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_CRYPTO_BIND", DRSUAPI_SUPPORTED_EXTENSION_CRYPTO_BIND, r);
42         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_GET_REPL_INFO", DRSUAPI_SUPPORTED_EXTENSION_GET_REPL_INFO, r);
43         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_STRONG_ENCRYPTION", DRSUAPI_SUPPORTED_EXTENSION_STRONG_ENCRYPTION, r);
44         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V01", DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V01, r);
45         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_TRANSITIVE_MEMBERSHIP", DRSUAPI_SUPPORTED_EXTENSION_TRANSITIVE_MEMBERSHIP, r);
46         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_ADD_SID_HISTORY", DRSUAPI_SUPPORTED_EXTENSION_ADD_SID_HISTORY, r);
47         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_POST_BETA3", DRSUAPI_SUPPORTED_EXTENSION_POST_BETA3, r);
48         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_00100000", DRSUAPI_SUPPORTED_EXTENSION_00100000, r);
49         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_GET_MEMBERSHIPS2", DRSUAPI_SUPPORTED_EXTENSION_GET_MEMBERSHIPS2, r);
50         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V6", DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V6, r);
51         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_NONDOMAIN_NCS", DRSUAPI_SUPPORTED_EXTENSION_NONDOMAIN_NCS, r);
52         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V8", DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V8, r);
53         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V5", DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V5, r);
54         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V6", DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V6, r);
55         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_ADDENTRYREPLY_V3", DRSUAPI_SUPPORTED_EXTENSION_ADDENTRYREPLY_V3, r);
56         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V7", DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V7, r);
57         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_VERIFY_OBJECT", DRSUAPI_SUPPORTED_EXTENSION_VERIFY_OBJECT, r);
58         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_XPRESS_COMPRESS", DRSUAPI_SUPPORTED_EXTENSION_XPRESS_COMPRESS, r);
59         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_20000000", DRSUAPI_SUPPORTED_EXTENSION_20000000, r);
60         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_40000000", DRSUAPI_SUPPORTED_EXTENSION_40000000, r);
61         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_80000000", DRSUAPI_SUPPORTED_EXTENSION_80000000, r);
62         ndr->depth--;
63 }
64
65 static enum ndr_err_code ndr_push_drsuapi_SupportedExtensionsExt(struct ndr_push *ndr, int ndr_flags, uint32_t r)
66 {
67         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
68         return NDR_ERR_SUCCESS;
69 }
70
71 static enum ndr_err_code ndr_pull_drsuapi_SupportedExtensionsExt(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
72 {
73         uint32_t v;
74         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
75         *r = v;
76         return NDR_ERR_SUCCESS;
77 }
78
79 _PUBLIC_ void ndr_print_drsuapi_SupportedExtensionsExt(struct ndr_print *ndr, const char *name, uint32_t r)
80 {
81         ndr_print_uint32(ndr, name, r);
82         ndr->depth++;
83         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_ADAM", DRSUAPI_SUPPORTED_EXTENSION_ADAM, r);
84         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_LH_BETA2", DRSUAPI_SUPPORTED_EXTENSION_LH_BETA2, r);
85         ndr->depth--;
86 }
87
88 static enum ndr_err_code ndr_push_drsuapi_DsBindInfo24(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsBindInfo24 *r)
89 {
90         if (ndr_flags & NDR_SCALARS) {
91                 NDR_CHECK(ndr_push_align(ndr, 4));
92                 NDR_CHECK(ndr_push_drsuapi_SupportedExtensions(ndr, NDR_SCALARS, r->supported_extensions));
93                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->site_guid));
94                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pid));
95         }
96         if (ndr_flags & NDR_BUFFERS) {
97         }
98         return NDR_ERR_SUCCESS;
99 }
100
101 static enum ndr_err_code ndr_pull_drsuapi_DsBindInfo24(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsBindInfo24 *r)
102 {
103         if (ndr_flags & NDR_SCALARS) {
104                 NDR_CHECK(ndr_pull_align(ndr, 4));
105                 NDR_CHECK(ndr_pull_drsuapi_SupportedExtensions(ndr, NDR_SCALARS, &r->supported_extensions));
106                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->site_guid));
107                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pid));
108         }
109         if (ndr_flags & NDR_BUFFERS) {
110         }
111         return NDR_ERR_SUCCESS;
112 }
113
114 _PUBLIC_ void ndr_print_drsuapi_DsBindInfo24(struct ndr_print *ndr, const char *name, const struct drsuapi_DsBindInfo24 *r)
115 {
116         ndr_print_struct(ndr, name, "drsuapi_DsBindInfo24");
117         ndr->depth++;
118         ndr_print_drsuapi_SupportedExtensions(ndr, "supported_extensions", r->supported_extensions);
119         ndr_print_GUID(ndr, "site_guid", &r->site_guid);
120         ndr_print_uint32(ndr, "pid", r->pid);
121         ndr->depth--;
122 }
123
124 static enum ndr_err_code ndr_push_drsuapi_DsBindInfo28(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsBindInfo28 *r)
125 {
126         if (ndr_flags & NDR_SCALARS) {
127                 NDR_CHECK(ndr_push_align(ndr, 4));
128                 NDR_CHECK(ndr_push_drsuapi_SupportedExtensions(ndr, NDR_SCALARS, r->supported_extensions));
129                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->site_guid));
130                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pid));
131                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->repl_epoch));
132         }
133         if (ndr_flags & NDR_BUFFERS) {
134         }
135         return NDR_ERR_SUCCESS;
136 }
137
138 static enum ndr_err_code ndr_pull_drsuapi_DsBindInfo28(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsBindInfo28 *r)
139 {
140         if (ndr_flags & NDR_SCALARS) {
141                 NDR_CHECK(ndr_pull_align(ndr, 4));
142                 NDR_CHECK(ndr_pull_drsuapi_SupportedExtensions(ndr, NDR_SCALARS, &r->supported_extensions));
143                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->site_guid));
144                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pid));
145                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->repl_epoch));
146         }
147         if (ndr_flags & NDR_BUFFERS) {
148         }
149         return NDR_ERR_SUCCESS;
150 }
151
152 _PUBLIC_ void ndr_print_drsuapi_DsBindInfo28(struct ndr_print *ndr, const char *name, const struct drsuapi_DsBindInfo28 *r)
153 {
154         ndr_print_struct(ndr, name, "drsuapi_DsBindInfo28");
155         ndr->depth++;
156         ndr_print_drsuapi_SupportedExtensions(ndr, "supported_extensions", r->supported_extensions);
157         ndr_print_GUID(ndr, "site_guid", &r->site_guid);
158         ndr_print_uint32(ndr, "pid", r->pid);
159         ndr_print_uint32(ndr, "repl_epoch", r->repl_epoch);
160         ndr->depth--;
161 }
162
163 static enum ndr_err_code ndr_push_drsuapi_DsBindInfo48(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsBindInfo48 *r)
164 {
165         if (ndr_flags & NDR_SCALARS) {
166                 NDR_CHECK(ndr_push_align(ndr, 4));
167                 NDR_CHECK(ndr_push_drsuapi_SupportedExtensions(ndr, NDR_SCALARS, r->supported_extensions));
168                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->site_guid));
169                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pid));
170                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->repl_epoch));
171                 NDR_CHECK(ndr_push_drsuapi_SupportedExtensionsExt(ndr, NDR_SCALARS, r->supported_extensions_ext));
172                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->config_dn_guid));
173         }
174         if (ndr_flags & NDR_BUFFERS) {
175         }
176         return NDR_ERR_SUCCESS;
177 }
178
179 static enum ndr_err_code ndr_pull_drsuapi_DsBindInfo48(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsBindInfo48 *r)
180 {
181         if (ndr_flags & NDR_SCALARS) {
182                 NDR_CHECK(ndr_pull_align(ndr, 4));
183                 NDR_CHECK(ndr_pull_drsuapi_SupportedExtensions(ndr, NDR_SCALARS, &r->supported_extensions));
184                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->site_guid));
185                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pid));
186                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->repl_epoch));
187                 NDR_CHECK(ndr_pull_drsuapi_SupportedExtensionsExt(ndr, NDR_SCALARS, &r->supported_extensions_ext));
188                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->config_dn_guid));
189         }
190         if (ndr_flags & NDR_BUFFERS) {
191         }
192         return NDR_ERR_SUCCESS;
193 }
194
195 _PUBLIC_ void ndr_print_drsuapi_DsBindInfo48(struct ndr_print *ndr, const char *name, const struct drsuapi_DsBindInfo48 *r)
196 {
197         ndr_print_struct(ndr, name, "drsuapi_DsBindInfo48");
198         ndr->depth++;
199         ndr_print_drsuapi_SupportedExtensions(ndr, "supported_extensions", r->supported_extensions);
200         ndr_print_GUID(ndr, "site_guid", &r->site_guid);
201         ndr_print_uint32(ndr, "pid", r->pid);
202         ndr_print_uint32(ndr, "repl_epoch", r->repl_epoch);
203         ndr_print_drsuapi_SupportedExtensionsExt(ndr, "supported_extensions_ext", r->supported_extensions_ext);
204         ndr_print_GUID(ndr, "config_dn_guid", &r->config_dn_guid);
205         ndr->depth--;
206 }
207
208 static enum ndr_err_code ndr_push_drsuapi_DsBindInfoFallBack(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsBindInfoFallBack *r)
209 {
210         if (ndr_flags & NDR_SCALARS) {
211                 NDR_CHECK(ndr_push_align(ndr, 4));
212                 {
213                         uint32_t _flags_save_DATA_BLOB = ndr->flags;
214                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
215                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->info));
216                         ndr->flags = _flags_save_DATA_BLOB;
217                 }
218         }
219         if (ndr_flags & NDR_BUFFERS) {
220         }
221         return NDR_ERR_SUCCESS;
222 }
223
224 static enum ndr_err_code ndr_pull_drsuapi_DsBindInfoFallBack(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsBindInfoFallBack *r)
225 {
226         if (ndr_flags & NDR_SCALARS) {
227                 NDR_CHECK(ndr_pull_align(ndr, 4));
228                 {
229                         uint32_t _flags_save_DATA_BLOB = ndr->flags;
230                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
231                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->info));
232                         ndr->flags = _flags_save_DATA_BLOB;
233                 }
234         }
235         if (ndr_flags & NDR_BUFFERS) {
236         }
237         return NDR_ERR_SUCCESS;
238 }
239
240 _PUBLIC_ void ndr_print_drsuapi_DsBindInfoFallBack(struct ndr_print *ndr, const char *name, const struct drsuapi_DsBindInfoFallBack *r)
241 {
242         ndr_print_struct(ndr, name, "drsuapi_DsBindInfoFallBack");
243         ndr->depth++;
244         ndr_print_DATA_BLOB(ndr, "info", r->info);
245         ndr->depth--;
246 }
247
248 static enum ndr_err_code ndr_push_drsuapi_DsBindInfo(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsBindInfo *r)
249 {
250         if (ndr_flags & NDR_SCALARS) {
251                 int level = ndr_push_get_switch_value(ndr, r);
252                 switch (level) {
253                         case 24: {
254                                 {
255                                         struct ndr_push *_ndr_info24;
256                                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info24, 4, -1));
257                                         NDR_CHECK(ndr_push_drsuapi_DsBindInfo24(_ndr_info24, NDR_SCALARS, &r->info24));
258                                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info24, 4, -1));
259                                 }
260                         break; }
261
262                         case 28: {
263                                 {
264                                         struct ndr_push *_ndr_info28;
265                                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info28, 4, -1));
266                                         NDR_CHECK(ndr_push_drsuapi_DsBindInfo28(_ndr_info28, NDR_SCALARS, &r->info28));
267                                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info28, 4, -1));
268                                 }
269                         break; }
270
271                         case 48: {
272                                 {
273                                         struct ndr_push *_ndr_info48;
274                                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info48, 4, -1));
275                                         NDR_CHECK(ndr_push_drsuapi_DsBindInfo48(_ndr_info48, NDR_SCALARS, &r->info48));
276                                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info48, 4, -1));
277                                 }
278                         break; }
279
280                         default: {
281                                 {
282                                         struct ndr_push *_ndr_FallBack;
283                                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_FallBack, 4, -1));
284                                         NDR_CHECK(ndr_push_drsuapi_DsBindInfoFallBack(_ndr_FallBack, NDR_SCALARS, &r->FallBack));
285                                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_FallBack, 4, -1));
286                                 }
287                         break; }
288
289                 }
290         }
291         if (ndr_flags & NDR_BUFFERS) {
292                 int level = ndr_push_get_switch_value(ndr, r);
293                 switch (level) {
294                         case 24:
295                         break;
296
297                         case 28:
298                         break;
299
300                         case 48:
301                         break;
302
303                         default:
304                         break;
305
306                 }
307         }
308         return NDR_ERR_SUCCESS;
309 }
310
311 static enum ndr_err_code ndr_pull_drsuapi_DsBindInfo(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsBindInfo *r)
312 {
313         int level;
314         level = ndr_pull_get_switch_value(ndr, r);
315         if (ndr_flags & NDR_SCALARS) {
316                 switch (level) {
317                         case 24: {
318                                 {
319                                         struct ndr_pull *_ndr_info24;
320                                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info24, 4, -1));
321                                         NDR_CHECK(ndr_pull_drsuapi_DsBindInfo24(_ndr_info24, NDR_SCALARS, &r->info24));
322                                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info24, 4, -1));
323                                 }
324                         break; }
325
326                         case 28: {
327                                 {
328                                         struct ndr_pull *_ndr_info28;
329                                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info28, 4, -1));
330                                         NDR_CHECK(ndr_pull_drsuapi_DsBindInfo28(_ndr_info28, NDR_SCALARS, &r->info28));
331                                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info28, 4, -1));
332                                 }
333                         break; }
334
335                         case 48: {
336                                 {
337                                         struct ndr_pull *_ndr_info48;
338                                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info48, 4, -1));
339                                         NDR_CHECK(ndr_pull_drsuapi_DsBindInfo48(_ndr_info48, NDR_SCALARS, &r->info48));
340                                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info48, 4, -1));
341                                 }
342                         break; }
343
344                         default: {
345                                 {
346                                         struct ndr_pull *_ndr_FallBack;
347                                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_FallBack, 4, -1));
348                                         NDR_CHECK(ndr_pull_drsuapi_DsBindInfoFallBack(_ndr_FallBack, NDR_SCALARS, &r->FallBack));
349                                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_FallBack, 4, -1));
350                                 }
351                         break; }
352
353                 }
354         }
355         if (ndr_flags & NDR_BUFFERS) {
356                 switch (level) {
357                         case 24:
358                         break;
359
360                         case 28:
361                         break;
362
363                         case 48:
364                         break;
365
366                         default:
367                         break;
368
369                 }
370         }
371         return NDR_ERR_SUCCESS;
372 }
373
374 _PUBLIC_ void ndr_print_drsuapi_DsBindInfo(struct ndr_print *ndr, const char *name, const union drsuapi_DsBindInfo *r)
375 {
376         int level;
377         level = ndr_print_get_switch_value(ndr, r);
378         ndr_print_union(ndr, name, level, "drsuapi_DsBindInfo");
379         switch (level) {
380                 case 24:
381                         ndr_print_drsuapi_DsBindInfo24(ndr, "info24", &r->info24);
382                 break;
383
384                 case 28:
385                         ndr_print_drsuapi_DsBindInfo28(ndr, "info28", &r->info28);
386                 break;
387
388                 case 48:
389                         ndr_print_drsuapi_DsBindInfo48(ndr, "info48", &r->info48);
390                 break;
391
392                 default:
393                         ndr_print_drsuapi_DsBindInfoFallBack(ndr, "FallBack", &r->FallBack);
394                 break;
395
396         }
397 }
398
399 static enum ndr_err_code ndr_push_drsuapi_DsBindInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsBindInfoCtr *r)
400 {
401         if (ndr_flags & NDR_SCALARS) {
402                 NDR_CHECK(ndr_push_align(ndr, 4));
403                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
404                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->length));
405                 NDR_CHECK(ndr_push_drsuapi_DsBindInfo(ndr, NDR_SCALARS, &r->info));
406         }
407         if (ndr_flags & NDR_BUFFERS) {
408         }
409         return NDR_ERR_SUCCESS;
410 }
411
412 static enum ndr_err_code ndr_pull_drsuapi_DsBindInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsBindInfoCtr *r)
413 {
414         if (ndr_flags & NDR_SCALARS) {
415                 NDR_CHECK(ndr_pull_align(ndr, 4));
416                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
417                 if (r->length < 1 || r->length > 10000) {
418                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
419                 }
420                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->length));
421                 NDR_CHECK(ndr_pull_drsuapi_DsBindInfo(ndr, NDR_SCALARS, &r->info));
422         }
423         if (ndr_flags & NDR_BUFFERS) {
424         }
425         return NDR_ERR_SUCCESS;
426 }
427
428 _PUBLIC_ void ndr_print_drsuapi_DsBindInfoCtr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsBindInfoCtr *r)
429 {
430         ndr_print_struct(ndr, name, "drsuapi_DsBindInfoCtr");
431         ndr->depth++;
432         ndr_print_uint32(ndr, "length", r->length);
433         ndr_print_set_switch_value(ndr, &r->info, r->length);
434         ndr_print_drsuapi_DsBindInfo(ndr, "info", &r->info);
435         ndr->depth--;
436 }
437
438 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaObjectIdentifier(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaObjectIdentifier *r)
439 {
440         if (ndr_flags & NDR_SCALARS) {
441                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, strlen_m(r->dn) + 1));
442                 NDR_CHECK(ndr_push_align(ndr, 4));
443                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_drsuapi_DsReplicaObjectIdentifier(r, ndr->flags) - 4));
444                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_dom_sid28(&r->sid, ndr->flags)));
445                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
446                 NDR_CHECK(ndr_push_dom_sid28(ndr, NDR_SCALARS, &r->sid));
447                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, strlen_m(r->dn)));
448                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dn, strlen_m(r->dn) + 1, sizeof(uint16_t), CH_UTF16));
449         }
450         if (ndr_flags & NDR_BUFFERS) {
451                 NDR_CHECK(ndr_push_dom_sid28(ndr, NDR_BUFFERS, &r->sid));
452         }
453         return NDR_ERR_SUCCESS;
454 }
455
456 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaObjectIdentifier(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaObjectIdentifier *r)
457 {
458         if (ndr_flags & NDR_SCALARS) {
459                 NDR_CHECK(ndr_pull_array_size(ndr, &r->dn));
460                 NDR_CHECK(ndr_pull_align(ndr, 4));
461                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size));
462                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size_sid));
463                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
464                 NDR_CHECK(ndr_pull_dom_sid28(ndr, NDR_SCALARS, &r->sid));
465                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size_dn));
466                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dn, ndr_get_array_size(ndr, &r->dn), sizeof(uint16_t), CH_UTF16));
467                 if (r->dn) {
468                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->dn, r->__ndr_size_dn + 1));
469                 }
470         }
471         if (ndr_flags & NDR_BUFFERS) {
472                 NDR_CHECK(ndr_pull_dom_sid28(ndr, NDR_BUFFERS, &r->sid));
473         }
474         return NDR_ERR_SUCCESS;
475 }
476
477 _PUBLIC_ void ndr_print_drsuapi_DsReplicaObjectIdentifier(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaObjectIdentifier *r)
478 {
479         ndr_print_struct(ndr, name, "drsuapi_DsReplicaObjectIdentifier");
480         ndr->depth++;
481         ndr_print_uint32(ndr, "__ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_drsuapi_DsReplicaObjectIdentifier(r, ndr->flags) - 4:r->__ndr_size);
482         ndr_print_uint32(ndr, "__ndr_size_sid", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_dom_sid28(&r->sid, ndr->flags):r->__ndr_size_sid);
483         ndr_print_GUID(ndr, "guid", &r->guid);
484         ndr_print_dom_sid28(ndr, "sid", &r->sid);
485         ndr_print_uint32(ndr, "__ndr_size_dn", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?strlen_m(r->dn):r->__ndr_size_dn);
486         ndr_print_string(ndr, "dn", r->dn);
487         ndr->depth--;
488 }
489
490 _PUBLIC_ size_t ndr_size_drsuapi_DsReplicaObjectIdentifier(const struct drsuapi_DsReplicaObjectIdentifier *r, int flags)
491 {
492         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_drsuapi_DsReplicaObjectIdentifier);
493 }
494
495 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaSyncOptions(struct ndr_push *ndr, int ndr_flags, uint32_t r)
496 {
497         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
498         return NDR_ERR_SUCCESS;
499 }
500
501 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaSyncOptions(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
502 {
503         uint32_t v;
504         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
505         *r = v;
506         return NDR_ERR_SUCCESS;
507 }
508
509 _PUBLIC_ void ndr_print_drsuapi_DsReplicaSyncOptions(struct ndr_print *ndr, const char *name, uint32_t r)
510 {
511         ndr_print_uint32(ndr, name, r);
512         ndr->depth++;
513         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_OPERATION", DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_OPERATION, r);
514         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_WRITEABLE", DRSUAPI_DS_REPLICA_SYNC_WRITEABLE, r);
515         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_PERIODIC", DRSUAPI_DS_REPLICA_SYNC_PERIODIC, r);
516         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_INTERSITE_MESSAGING", DRSUAPI_DS_REPLICA_SYNC_INTERSITE_MESSAGING, r);
517         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_ALL_SOURCES", DRSUAPI_DS_REPLICA_SYNC_ALL_SOURCES, r);
518         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_FULL", DRSUAPI_DS_REPLICA_SYNC_FULL, r);
519         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_URGENT", DRSUAPI_DS_REPLICA_SYNC_URGENT, r);
520         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_NO_DISCARD", DRSUAPI_DS_REPLICA_SYNC_NO_DISCARD, r);
521         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_FORCE", DRSUAPI_DS_REPLICA_SYNC_FORCE, r);
522         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_ADD_REFERENCE", DRSUAPI_DS_REPLICA_SYNC_ADD_REFERENCE, r);
523         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_NEVER_COMPLETED", DRSUAPI_DS_REPLICA_SYNC_NEVER_COMPLETED, r);
524         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_TWO_WAY", DRSUAPI_DS_REPLICA_SYNC_TWO_WAY, r);
525         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_NEVER_NOTIFY", DRSUAPI_DS_REPLICA_SYNC_NEVER_NOTIFY, r);
526         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_INITIAL", DRSUAPI_DS_REPLICA_SYNC_INITIAL, r);
527         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_USE_COMPRESSION", DRSUAPI_DS_REPLICA_SYNC_USE_COMPRESSION, r);
528         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_ABANDONED", DRSUAPI_DS_REPLICA_SYNC_ABANDONED, r);
529         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_INITIAL_IN_PROGRESS", DRSUAPI_DS_REPLICA_SYNC_INITIAL_IN_PROGRESS, r);
530         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_PARTIAL_ATTRIBUTE_SET", DRSUAPI_DS_REPLICA_SYNC_PARTIAL_ATTRIBUTE_SET, r);
531         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_REQUEUE", DRSUAPI_DS_REPLICA_SYNC_REQUEUE, r);
532         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_NOTIFICATION", DRSUAPI_DS_REPLICA_SYNC_NOTIFICATION, r);
533         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_REPLICA", DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_REPLICA, r);
534         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_CRITICAL", DRSUAPI_DS_REPLICA_SYNC_CRITICAL, r);
535         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_FULL_IN_PROGRESS", DRSUAPI_DS_REPLICA_SYNC_FULL_IN_PROGRESS, r);
536         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_PREEMPTED", DRSUAPI_DS_REPLICA_SYNC_PREEMPTED, r);
537         ndr->depth--;
538 }
539
540 static enum ndr_err_code ndr_push_drsuapi_DsReplicaSyncRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaSyncRequest1 *r)
541 {
542         if (ndr_flags & NDR_SCALARS) {
543                 NDR_CHECK(ndr_push_align(ndr, 4));
544                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->naming_context));
545                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_guid));
546                 {
547                         uint32_t _flags_save_string = ndr->flags;
548                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
549                         NDR_CHECK(ndr_push_unique_ptr(ndr, r->other_info));
550                         ndr->flags = _flags_save_string;
551                 }
552                 NDR_CHECK(ndr_push_drsuapi_DsReplicaSyncOptions(ndr, NDR_SCALARS, r->options));
553         }
554         if (ndr_flags & NDR_BUFFERS) {
555                 if (r->naming_context) {
556                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
557                 }
558                 {
559                         uint32_t _flags_save_string = ndr->flags;
560                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
561                         if (r->other_info) {
562                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->other_info));
563                         }
564                         ndr->flags = _flags_save_string;
565                 }
566         }
567         return NDR_ERR_SUCCESS;
568 }
569
570 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaSyncRequest1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaSyncRequest1 *r)
571 {
572         uint32_t _ptr_naming_context;
573         TALLOC_CTX *_mem_save_naming_context_0;
574         uint32_t _ptr_other_info;
575         TALLOC_CTX *_mem_save_other_info_0;
576         if (ndr_flags & NDR_SCALARS) {
577                 NDR_CHECK(ndr_pull_align(ndr, 4));
578                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_naming_context));
579                 if (_ptr_naming_context) {
580                         NDR_PULL_ALLOC(ndr, r->naming_context);
581                 } else {
582                         r->naming_context = NULL;
583                 }
584                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_guid));
585                 {
586                         uint32_t _flags_save_string = ndr->flags;
587                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
588                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_other_info));
589                         if (_ptr_other_info) {
590                                 NDR_PULL_ALLOC(ndr, r->other_info);
591                         } else {
592                                 r->other_info = NULL;
593                         }
594                         ndr->flags = _flags_save_string;
595                 }
596                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaSyncOptions(ndr, NDR_SCALARS, &r->options));
597         }
598         if (ndr_flags & NDR_BUFFERS) {
599                 if (r->naming_context) {
600                         _mem_save_naming_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
601                         NDR_PULL_SET_MEM_CTX(ndr, r->naming_context, 0);
602                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
603                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_naming_context_0, 0);
604                 }
605                 {
606                         uint32_t _flags_save_string = ndr->flags;
607                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
608                         if (r->other_info) {
609                                 _mem_save_other_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
610                                 NDR_PULL_SET_MEM_CTX(ndr, r->other_info, 0);
611                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->other_info));
612                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_other_info_0, 0);
613                         }
614                         ndr->flags = _flags_save_string;
615                 }
616         }
617         return NDR_ERR_SUCCESS;
618 }
619
620 _PUBLIC_ void ndr_print_drsuapi_DsReplicaSyncRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaSyncRequest1 *r)
621 {
622         ndr_print_struct(ndr, name, "drsuapi_DsReplicaSyncRequest1");
623         ndr->depth++;
624         ndr_print_ptr(ndr, "naming_context", r->naming_context);
625         ndr->depth++;
626         if (r->naming_context) {
627                 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "naming_context", r->naming_context);
628         }
629         ndr->depth--;
630         ndr_print_GUID(ndr, "source_dsa_guid", &r->source_dsa_guid);
631         ndr_print_ptr(ndr, "other_info", r->other_info);
632         ndr->depth++;
633         if (r->other_info) {
634                 ndr_print_string(ndr, "other_info", r->other_info);
635         }
636         ndr->depth--;
637         ndr_print_drsuapi_DsReplicaSyncOptions(ndr, "options", r->options);
638         ndr->depth--;
639 }
640
641 static enum ndr_err_code ndr_push_drsuapi_DsReplicaSyncRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsReplicaSyncRequest *r)
642 {
643         if (ndr_flags & NDR_SCALARS) {
644                 int level = ndr_push_get_switch_value(ndr, r);
645                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
646                 switch (level) {
647                         case 1: {
648                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaSyncRequest1(ndr, NDR_SCALARS, &r->req1));
649                         break; }
650
651                         default:
652                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
653                 }
654         }
655         if (ndr_flags & NDR_BUFFERS) {
656                 int level = ndr_push_get_switch_value(ndr, r);
657                 switch (level) {
658                         case 1:
659                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaSyncRequest1(ndr, NDR_BUFFERS, &r->req1));
660                         break;
661
662                         default:
663                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
664                 }
665         }
666         return NDR_ERR_SUCCESS;
667 }
668
669 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaSyncRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsReplicaSyncRequest *r)
670 {
671         int level;
672         int32_t _level;
673         level = ndr_pull_get_switch_value(ndr, r);
674         if (ndr_flags & NDR_SCALARS) {
675                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
676                 if (_level != level) {
677                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
678                 }
679                 switch (level) {
680                         case 1: {
681                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaSyncRequest1(ndr, NDR_SCALARS, &r->req1));
682                         break; }
683
684                         default:
685                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
686                 }
687         }
688         if (ndr_flags & NDR_BUFFERS) {
689                 switch (level) {
690                         case 1:
691                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaSyncRequest1(ndr, NDR_BUFFERS, &r->req1));
692                         break;
693
694                         default:
695                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
696                 }
697         }
698         return NDR_ERR_SUCCESS;
699 }
700
701 _PUBLIC_ void ndr_print_drsuapi_DsReplicaSyncRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsReplicaSyncRequest *r)
702 {
703         int level;
704         level = ndr_print_get_switch_value(ndr, r);
705         ndr_print_union(ndr, name, level, "drsuapi_DsReplicaSyncRequest");
706         switch (level) {
707                 case 1:
708                         ndr_print_drsuapi_DsReplicaSyncRequest1(ndr, "req1", &r->req1);
709                 break;
710
711                 default:
712                         ndr_print_bad_level(ndr, name, level);
713         }
714 }
715
716 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaHighWaterMark(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaHighWaterMark *r)
717 {
718         if (ndr_flags & NDR_SCALARS) {
719                 NDR_CHECK(ndr_push_align(ndr, 8));
720                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->tmp_highest_usn));
721                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->reserved_usn));
722                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->highest_usn));
723         }
724         if (ndr_flags & NDR_BUFFERS) {
725         }
726         return NDR_ERR_SUCCESS;
727 }
728
729 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaHighWaterMark(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaHighWaterMark *r)
730 {
731         if (ndr_flags & NDR_SCALARS) {
732                 NDR_CHECK(ndr_pull_align(ndr, 8));
733                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->tmp_highest_usn));
734                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->reserved_usn));
735                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->highest_usn));
736         }
737         if (ndr_flags & NDR_BUFFERS) {
738         }
739         return NDR_ERR_SUCCESS;
740 }
741
742 _PUBLIC_ void ndr_print_drsuapi_DsReplicaHighWaterMark(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaHighWaterMark *r)
743 {
744         ndr_print_struct(ndr, name, "drsuapi_DsReplicaHighWaterMark");
745         ndr->depth++;
746         ndr_print_hyper(ndr, "tmp_highest_usn", r->tmp_highest_usn);
747         ndr_print_hyper(ndr, "reserved_usn", r->reserved_usn);
748         ndr_print_hyper(ndr, "highest_usn", r->highest_usn);
749         ndr->depth--;
750 }
751
752 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaCursor(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaCursor *r)
753 {
754         if (ndr_flags & NDR_SCALARS) {
755                 NDR_CHECK(ndr_push_align(ndr, 8));
756                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
757                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->highest_usn));
758         }
759         if (ndr_flags & NDR_BUFFERS) {
760         }
761         return NDR_ERR_SUCCESS;
762 }
763
764 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaCursor(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaCursor *r)
765 {
766         if (ndr_flags & NDR_SCALARS) {
767                 NDR_CHECK(ndr_pull_align(ndr, 8));
768                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
769                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->highest_usn));
770         }
771         if (ndr_flags & NDR_BUFFERS) {
772         }
773         return NDR_ERR_SUCCESS;
774 }
775
776 _PUBLIC_ void ndr_print_drsuapi_DsReplicaCursor(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaCursor *r)
777 {
778         ndr_print_struct(ndr, name, "drsuapi_DsReplicaCursor");
779         ndr->depth++;
780         ndr_print_GUID(ndr, "source_dsa_invocation_id", &r->source_dsa_invocation_id);
781         ndr_print_hyper(ndr, "highest_usn", r->highest_usn);
782         ndr->depth--;
783 }
784
785 static enum ndr_err_code ndr_push_drsuapi_DsReplicaCursorCtrEx(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaCursorCtrEx *r)
786 {
787         uint32_t cntr_cursors_0;
788         if (ndr_flags & NDR_SCALARS) {
789                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
790                 NDR_CHECK(ndr_push_align(ndr, 8));
791                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 1));
792                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
793                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
794                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
795                 for (cntr_cursors_0 = 0; cntr_cursors_0 < r->count; cntr_cursors_0++) {
796                         NDR_CHECK(ndr_push_drsuapi_DsReplicaCursor(ndr, NDR_SCALARS, &r->cursors[cntr_cursors_0]));
797                 }
798         }
799         if (ndr_flags & NDR_BUFFERS) {
800         }
801         return NDR_ERR_SUCCESS;
802 }
803
804 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaCursorCtrEx(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaCursorCtrEx *r)
805 {
806         uint32_t cntr_cursors_0;
807         TALLOC_CTX *_mem_save_cursors_0;
808         if (ndr_flags & NDR_SCALARS) {
809                 NDR_CHECK(ndr_pull_array_size(ndr, &r->cursors));
810                 NDR_CHECK(ndr_pull_align(ndr, 8));
811                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
812                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved1));
813                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
814                 if (r->count < 0 || r->count > 0x100000) {
815                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
816                 }
817                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
818                 NDR_PULL_ALLOC_N(ndr, r->cursors, ndr_get_array_size(ndr, &r->cursors));
819                 _mem_save_cursors_0 = NDR_PULL_GET_MEM_CTX(ndr);
820                 NDR_PULL_SET_MEM_CTX(ndr, r->cursors, 0);
821                 for (cntr_cursors_0 = 0; cntr_cursors_0 < r->count; cntr_cursors_0++) {
822                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursor(ndr, NDR_SCALARS, &r->cursors[cntr_cursors_0]));
823                 }
824                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_cursors_0, 0);
825                 if (r->cursors) {
826                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->cursors, r->count));
827                 }
828         }
829         if (ndr_flags & NDR_BUFFERS) {
830         }
831         return NDR_ERR_SUCCESS;
832 }
833
834 _PUBLIC_ void ndr_print_drsuapi_DsReplicaCursorCtrEx(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaCursorCtrEx *r)
835 {
836         uint32_t cntr_cursors_0;
837         ndr_print_struct(ndr, name, "drsuapi_DsReplicaCursorCtrEx");
838         ndr->depth++;
839         ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?1:r->version);
840         ndr_print_uint32(ndr, "reserved1", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->reserved1);
841         ndr_print_uint32(ndr, "count", r->count);
842         ndr_print_uint32(ndr, "reserved2", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->reserved2);
843         ndr->print(ndr, "%s: ARRAY(%d)", "cursors", (int)r->count);
844         ndr->depth++;
845         for (cntr_cursors_0=0;cntr_cursors_0<r->count;cntr_cursors_0++) {
846                 char *idx_0=NULL;
847                 if (asprintf(&idx_0, "[%d]", cntr_cursors_0) != -1) {
848                         ndr_print_drsuapi_DsReplicaCursor(ndr, "cursors", &r->cursors[cntr_cursors_0]);
849                         free(idx_0);
850                 }
851         }
852         ndr->depth--;
853         ndr->depth--;
854 }
855
856 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaNeighbourFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
857 {
858         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
859         return NDR_ERR_SUCCESS;
860 }
861
862 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaNeighbourFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
863 {
864         uint32_t v;
865         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
866         *r = v;
867         return NDR_ERR_SUCCESS;
868 }
869
870 _PUBLIC_ void ndr_print_drsuapi_DsReplicaNeighbourFlags(struct ndr_print *ndr, const char *name, uint32_t r)
871 {
872         ndr_print_uint32(ndr, name, r);
873         ndr->depth++;
874         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_WRITEABLE", DRSUAPI_DS_REPLICA_NEIGHBOUR_WRITEABLE, r);
875         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_SYNC_ON_STARTUP", DRSUAPI_DS_REPLICA_NEIGHBOUR_SYNC_ON_STARTUP, r);
876         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_DO_SCHEDULED_SYNCS", DRSUAPI_DS_REPLICA_NEIGHBOUR_DO_SCHEDULED_SYNCS, r);
877         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_USE_ASYNC_INTERSIDE_TRANSPORT", DRSUAPI_DS_REPLICA_NEIGHBOUR_USE_ASYNC_INTERSIDE_TRANSPORT, r);
878         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_TWO_WAY_SYNC", DRSUAPI_DS_REPLICA_NEIGHBOUR_TWO_WAY_SYNC, r);
879         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_RETURN_OBJECT_PARENTS", DRSUAPI_DS_REPLICA_NEIGHBOUR_RETURN_OBJECT_PARENTS, r);
880         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_FULL_IN_PROGRESS", DRSUAPI_DS_REPLICA_NEIGHBOUR_FULL_IN_PROGRESS, r);
881         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_FULL_NEXT_PACKET", DRSUAPI_DS_REPLICA_NEIGHBOUR_FULL_NEXT_PACKET, r);
882         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_NEVER_SYNCED", DRSUAPI_DS_REPLICA_NEIGHBOUR_NEVER_SYNCED, r);
883         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_PREEMPTED", DRSUAPI_DS_REPLICA_NEIGHBOUR_PREEMPTED, r);
884         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_IGNORE_CHANGE_NOTIFICATIONS", DRSUAPI_DS_REPLICA_NEIGHBOUR_IGNORE_CHANGE_NOTIFICATIONS, r);
885         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_DISABLE_SCHEDULED_SYNC", DRSUAPI_DS_REPLICA_NEIGHBOUR_DISABLE_SCHEDULED_SYNC, r);
886         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_COMPRESS_CHANGES", DRSUAPI_DS_REPLICA_NEIGHBOUR_COMPRESS_CHANGES, r);
887         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_NO_CHANGE_NOTIFICATIONS", DRSUAPI_DS_REPLICA_NEIGHBOUR_NO_CHANGE_NOTIFICATIONS, r);
888         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_PARTIAL_ATTRIBUTE_SET", DRSUAPI_DS_REPLICA_NEIGHBOUR_PARTIAL_ATTRIBUTE_SET, r);
889         ndr->depth--;
890 }
891
892 static enum ndr_err_code ndr_push_drsuapi_DsExtendedOperation(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsExtendedOperation r)
893 {
894         {
895                 uint32_t _flags_save_ENUM = ndr->flags;
896                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
897                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
898                 ndr->flags = _flags_save_ENUM;
899         }
900         return NDR_ERR_SUCCESS;
901 }
902
903 static enum ndr_err_code ndr_pull_drsuapi_DsExtendedOperation(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsExtendedOperation *r)
904 {
905         uint32_t v;
906         {
907                 uint32_t _flags_save_ENUM = ndr->flags;
908                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
909                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
910                 *r = v;
911                 ndr->flags = _flags_save_ENUM;
912         }
913         return NDR_ERR_SUCCESS;
914 }
915
916 _PUBLIC_ void ndr_print_drsuapi_DsExtendedOperation(struct ndr_print *ndr, const char *name, enum drsuapi_DsExtendedOperation r)
917 {
918         const char *val = NULL;
919
920         {
921                 uint32_t _flags_save_ENUM = ndr->flags;
922                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
923                 switch (r) {
924                         case DRSUAPI_EXOP_NONE: val = "DRSUAPI_EXOP_NONE"; break;
925                         case DRSUAPI_EXOP_FSMO_REQ_ROLE: val = "DRSUAPI_EXOP_FSMO_REQ_ROLE"; break;
926                         case DRSUAPI_EXOP_FSMO_RID_ALLOC: val = "DRSUAPI_EXOP_FSMO_RID_ALLOC"; break;
927                         case DRSUAPI_EXOP_FSMO_RID_REQ_ROLE: val = "DRSUAPI_EXOP_FSMO_RID_REQ_ROLE"; break;
928                         case DRSUAPI_EXOP_FSMO_REQ_PDC: val = "DRSUAPI_EXOP_FSMO_REQ_PDC"; break;
929                         case DRSUAPI_EXOP_FSMO_ABANDON_ROLE: val = "DRSUAPI_EXOP_FSMO_ABANDON_ROLE"; break;
930                         case DRSUAPI_EXOP_REPL_OBJ: val = "DRSUAPI_EXOP_REPL_OBJ"; break;
931                         case DRSUAPI_EXOP_REPL_SECRET: val = "DRSUAPI_EXOP_REPL_SECRET"; break;
932                 }
933                 ndr_print_enum(ndr, name, "ENUM", val, r);
934                 ndr->flags = _flags_save_ENUM;
935         }
936 }
937
938 static enum ndr_err_code ndr_push_drsuapi_DsExtendedError(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsExtendedError r)
939 {
940         {
941                 uint32_t _flags_save_ENUM = ndr->flags;
942                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
943                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
944                 ndr->flags = _flags_save_ENUM;
945         }
946         return NDR_ERR_SUCCESS;
947 }
948
949 static enum ndr_err_code ndr_pull_drsuapi_DsExtendedError(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsExtendedError *r)
950 {
951         uint32_t v;
952         {
953                 uint32_t _flags_save_ENUM = ndr->flags;
954                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
955                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
956                 *r = v;
957                 ndr->flags = _flags_save_ENUM;
958         }
959         return NDR_ERR_SUCCESS;
960 }
961
962 _PUBLIC_ void ndr_print_drsuapi_DsExtendedError(struct ndr_print *ndr, const char *name, enum drsuapi_DsExtendedError r)
963 {
964         const char *val = NULL;
965
966         {
967                 uint32_t _flags_save_ENUM = ndr->flags;
968                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
969                 switch (r) {
970                         case DRSUAPI_EXOP_ERR_NONE: val = "DRSUAPI_EXOP_ERR_NONE"; break;
971                         case DRSUAPI_EXOP_ERR_SUCCESS: val = "DRSUAPI_EXOP_ERR_SUCCESS"; break;
972                         case DRSUAPI_EXOP_ERR_UNKNOWN_OP: val = "DRSUAPI_EXOP_ERR_UNKNOWN_OP"; break;
973                         case DRSUAPI_EXOP_ERR_FSMO_NOT_OWNER: val = "DRSUAPI_EXOP_ERR_FSMO_NOT_OWNER"; break;
974                         case DRSUAPI_EXOP_ERR_UPDATE_ERR: val = "DRSUAPI_EXOP_ERR_UPDATE_ERR"; break;
975                         case DRSUAPI_EXOP_ERR_EXCEPTION: val = "DRSUAPI_EXOP_ERR_EXCEPTION"; break;
976                         case DRSUAPI_EXOP_ERR_UNKNOWN_CALLER: val = "DRSUAPI_EXOP_ERR_UNKNOWN_CALLER"; break;
977                         case DRSUAPI_EXOP_ERR_RID_ALLOC: val = "DRSUAPI_EXOP_ERR_RID_ALLOC"; break;
978                         case DRSUAPI_EXOP_ERR_FSMO_OWNER_DELETED: val = "DRSUAPI_EXOP_ERR_FSMO_OWNER_DELETED"; break;
979                         case DRSUAPI_EXOP_ERR_FMSO_PENDING_OP: val = "DRSUAPI_EXOP_ERR_FMSO_PENDING_OP"; break;
980                         case DRSUAPI_EXOP_ERR_MISMATCH: val = "DRSUAPI_EXOP_ERR_MISMATCH"; break;
981                         case DRSUAPI_EXOP_ERR_COULDNT_CONTACT: val = "DRSUAPI_EXOP_ERR_COULDNT_CONTACT"; break;
982                         case DRSUAPI_EXOP_ERR_FSMO_REFUSING_ROLES: val = "DRSUAPI_EXOP_ERR_FSMO_REFUSING_ROLES"; break;
983                         case DRSUAPI_EXOP_ERR_DIR_ERROR: val = "DRSUAPI_EXOP_ERR_DIR_ERROR"; break;
984                         case DRSUAPI_EXOP_ERR_FSMO_MISSING_SETTINGS: val = "DRSUAPI_EXOP_ERR_FSMO_MISSING_SETTINGS"; break;
985                         case DRSUAPI_EXOP_ERR_ACCESS_DENIED: val = "DRSUAPI_EXOP_ERR_ACCESS_DENIED"; break;
986                         case DRSUAPI_EXOP_ERR_PARAM_ERROR: val = "DRSUAPI_EXOP_ERR_PARAM_ERROR"; break;
987                 }
988                 ndr_print_enum(ndr, name, "ENUM", val, r);
989                 ndr->flags = _flags_save_ENUM;
990         }
991 }
992
993 static enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesRequest5(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetNCChangesRequest5 *r)
994 {
995         if (ndr_flags & NDR_SCALARS) {
996                 NDR_CHECK(ndr_push_align(ndr, 8));
997                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->destination_dsa_guid));
998                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
999                 if (r->naming_context == NULL) {
1000                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1001                 }
1002                 NDR_CHECK(ndr_push_ref_ptr(ndr));
1003                 NDR_CHECK(ndr_push_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->highwatermark));
1004                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->uptodateness_vector));
1005                 NDR_CHECK(ndr_push_drsuapi_DsReplicaNeighbourFlags(ndr, NDR_SCALARS, r->replica_flags));
1006                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_object_count));
1007                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_ndr_size));
1008                 NDR_CHECK(ndr_push_drsuapi_DsExtendedOperation(ndr, NDR_SCALARS, r->extended_op));
1009                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->fsmo_info));
1010         }
1011         if (ndr_flags & NDR_BUFFERS) {
1012                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
1013                 if (r->uptodateness_vector) {
1014                         NDR_CHECK(ndr_push_drsuapi_DsReplicaCursorCtrEx(ndr, NDR_SCALARS, r->uptodateness_vector));
1015                 }
1016         }
1017         return NDR_ERR_SUCCESS;
1018 }
1019
1020 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesRequest5(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNCChangesRequest5 *r)
1021 {
1022         uint32_t _ptr_naming_context;
1023         TALLOC_CTX *_mem_save_naming_context_0;
1024         uint32_t _ptr_uptodateness_vector;
1025         TALLOC_CTX *_mem_save_uptodateness_vector_0;
1026         if (ndr_flags & NDR_SCALARS) {
1027                 NDR_CHECK(ndr_pull_align(ndr, 8));
1028                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->destination_dsa_guid));
1029                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
1030                 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_naming_context));
1031                 if (_ptr_naming_context) {
1032                         NDR_PULL_ALLOC(ndr, r->naming_context);
1033                 } else {
1034                         r->naming_context = NULL;
1035                 }
1036                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->highwatermark));
1037                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_uptodateness_vector));
1038                 if (_ptr_uptodateness_vector) {
1039                         NDR_PULL_ALLOC(ndr, r->uptodateness_vector);
1040                 } else {
1041                         r->uptodateness_vector = NULL;
1042                 }
1043                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaNeighbourFlags(ndr, NDR_SCALARS, &r->replica_flags));
1044                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_object_count));
1045                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_ndr_size));
1046                 NDR_CHECK(ndr_pull_drsuapi_DsExtendedOperation(ndr, NDR_SCALARS, &r->extended_op));
1047                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->fsmo_info));
1048         }
1049         if (ndr_flags & NDR_BUFFERS) {
1050                 _mem_save_naming_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
1051                 NDR_PULL_SET_MEM_CTX(ndr, r->naming_context, 0);
1052                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
1053                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_naming_context_0, 0);
1054                 if (r->uptodateness_vector) {
1055                         _mem_save_uptodateness_vector_0 = NDR_PULL_GET_MEM_CTX(ndr);
1056                         NDR_PULL_SET_MEM_CTX(ndr, r->uptodateness_vector, 0);
1057                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursorCtrEx(ndr, NDR_SCALARS, r->uptodateness_vector));
1058                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_uptodateness_vector_0, 0);
1059                 }
1060         }
1061         return NDR_ERR_SUCCESS;
1062 }
1063
1064 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesRequest5(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesRequest5 *r)
1065 {
1066         ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesRequest5");
1067         ndr->depth++;
1068         ndr_print_GUID(ndr, "destination_dsa_guid", &r->destination_dsa_guid);
1069         ndr_print_GUID(ndr, "source_dsa_invocation_id", &r->source_dsa_invocation_id);
1070         ndr_print_ptr(ndr, "naming_context", r->naming_context);
1071         ndr->depth++;
1072         ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "naming_context", r->naming_context);
1073         ndr->depth--;
1074         ndr_print_drsuapi_DsReplicaHighWaterMark(ndr, "highwatermark", &r->highwatermark);
1075         ndr_print_ptr(ndr, "uptodateness_vector", r->uptodateness_vector);
1076         ndr->depth++;
1077         if (r->uptodateness_vector) {
1078                 ndr_print_drsuapi_DsReplicaCursorCtrEx(ndr, "uptodateness_vector", r->uptodateness_vector);
1079         }
1080         ndr->depth--;
1081         ndr_print_drsuapi_DsReplicaNeighbourFlags(ndr, "replica_flags", r->replica_flags);
1082         ndr_print_uint32(ndr, "max_object_count", r->max_object_count);
1083         ndr_print_uint32(ndr, "max_ndr_size", r->max_ndr_size);
1084         ndr_print_drsuapi_DsExtendedOperation(ndr, "extended_op", r->extended_op);
1085         ndr_print_hyper(ndr, "fsmo_info", r->fsmo_info);
1086         ndr->depth--;
1087 }
1088
1089 _PUBLIC_ void ndr_print_drsuapi_DsReplicaOID(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaOID *r)
1090 {
1091         ndr_print_struct(ndr, name, "drsuapi_DsReplicaOID");
1092         ndr->depth++;
1093         ndr_print_uint32(ndr, "__ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_drsuapi_DsReplicaOID_oid(r->oid, 0):r->__ndr_size);
1094         ndr_print_ptr(ndr, "oid", r->oid);
1095         ndr->depth++;
1096         if (r->oid) {
1097                 ndr_print_string(ndr, "oid", r->oid);
1098         }
1099         ndr->depth--;
1100         ndr->depth--;
1101 }
1102
1103 static enum ndr_err_code ndr_push_drsuapi_DsReplicaOIDMapping(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaOIDMapping *r)
1104 {
1105         if (ndr_flags & NDR_SCALARS) {
1106                 NDR_CHECK(ndr_push_align(ndr, 4));
1107                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->id_prefix));
1108                 NDR_CHECK(ndr_push_drsuapi_DsReplicaOID(ndr, NDR_SCALARS, &r->oid));
1109         }
1110         if (ndr_flags & NDR_BUFFERS) {
1111                 NDR_CHECK(ndr_push_drsuapi_DsReplicaOID(ndr, NDR_BUFFERS, &r->oid));
1112         }
1113         return NDR_ERR_SUCCESS;
1114 }
1115
1116 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaOIDMapping(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaOIDMapping *r)
1117 {
1118         if (ndr_flags & NDR_SCALARS) {
1119                 NDR_CHECK(ndr_pull_align(ndr, 4));
1120                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->id_prefix));
1121                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOID(ndr, NDR_SCALARS, &r->oid));
1122         }
1123         if (ndr_flags & NDR_BUFFERS) {
1124                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOID(ndr, NDR_BUFFERS, &r->oid));
1125         }
1126         return NDR_ERR_SUCCESS;
1127 }
1128
1129 _PUBLIC_ void ndr_print_drsuapi_DsReplicaOIDMapping(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaOIDMapping *r)
1130 {
1131         ndr_print_struct(ndr, name, "drsuapi_DsReplicaOIDMapping");
1132         ndr->depth++;
1133         ndr_print_uint32(ndr, "id_prefix", r->id_prefix);
1134         ndr_print_drsuapi_DsReplicaOID(ndr, "oid", &r->oid);
1135         ndr->depth--;
1136 }
1137
1138 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaOIDMapping_Ctr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaOIDMapping_Ctr *r)
1139 {
1140         uint32_t cntr_mappings_1;
1141         if (ndr_flags & NDR_SCALARS) {
1142                 NDR_CHECK(ndr_push_align(ndr, 4));
1143                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_mappings));
1144                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->mappings));
1145         }
1146         if (ndr_flags & NDR_BUFFERS) {
1147                 if (r->mappings) {
1148                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_mappings));
1149                         for (cntr_mappings_1 = 0; cntr_mappings_1 < r->num_mappings; cntr_mappings_1++) {
1150                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaOIDMapping(ndr, NDR_SCALARS, &r->mappings[cntr_mappings_1]));
1151                         }
1152                         for (cntr_mappings_1 = 0; cntr_mappings_1 < r->num_mappings; cntr_mappings_1++) {
1153                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaOIDMapping(ndr, NDR_BUFFERS, &r->mappings[cntr_mappings_1]));
1154                         }
1155                 }
1156         }
1157         return NDR_ERR_SUCCESS;
1158 }
1159
1160 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaOIDMapping_Ctr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaOIDMapping_Ctr *r)
1161 {
1162         uint32_t _ptr_mappings;
1163         uint32_t cntr_mappings_1;
1164         TALLOC_CTX *_mem_save_mappings_0;
1165         TALLOC_CTX *_mem_save_mappings_1;
1166         if (ndr_flags & NDR_SCALARS) {
1167                 NDR_CHECK(ndr_pull_align(ndr, 4));
1168                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_mappings));
1169                 if (r->num_mappings < 0 || r->num_mappings > 0x100000) {
1170                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
1171                 }
1172                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mappings));
1173                 if (_ptr_mappings) {
1174                         NDR_PULL_ALLOC(ndr, r->mappings);
1175                 } else {
1176                         r->mappings = NULL;
1177                 }
1178         }
1179         if (ndr_flags & NDR_BUFFERS) {
1180                 if (r->mappings) {
1181                         _mem_save_mappings_0 = NDR_PULL_GET_MEM_CTX(ndr);
1182                         NDR_PULL_SET_MEM_CTX(ndr, r->mappings, 0);
1183                         NDR_CHECK(ndr_pull_array_size(ndr, &r->mappings));
1184                         NDR_PULL_ALLOC_N(ndr, r->mappings, ndr_get_array_size(ndr, &r->mappings));
1185                         _mem_save_mappings_1 = NDR_PULL_GET_MEM_CTX(ndr);
1186                         NDR_PULL_SET_MEM_CTX(ndr, r->mappings, 0);
1187                         for (cntr_mappings_1 = 0; cntr_mappings_1 < r->num_mappings; cntr_mappings_1++) {
1188                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOIDMapping(ndr, NDR_SCALARS, &r->mappings[cntr_mappings_1]));
1189                         }
1190                         for (cntr_mappings_1 = 0; cntr_mappings_1 < r->num_mappings; cntr_mappings_1++) {
1191                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOIDMapping(ndr, NDR_BUFFERS, &r->mappings[cntr_mappings_1]));
1192                         }
1193                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mappings_1, 0);
1194                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mappings_0, 0);
1195                 }
1196                 if (r->mappings) {
1197                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->mappings, r->num_mappings));
1198                 }
1199         }
1200         return NDR_ERR_SUCCESS;
1201 }
1202
1203 _PUBLIC_ void ndr_print_drsuapi_DsReplicaOIDMapping_Ctr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaOIDMapping_Ctr *r)
1204 {
1205         uint32_t cntr_mappings_1;
1206         ndr_print_struct(ndr, name, "drsuapi_DsReplicaOIDMapping_Ctr");
1207         ndr->depth++;
1208         ndr_print_uint32(ndr, "num_mappings", r->num_mappings);
1209         ndr_print_ptr(ndr, "mappings", r->mappings);
1210         ndr->depth++;
1211         if (r->mappings) {
1212                 ndr->print(ndr, "%s: ARRAY(%d)", "mappings", (int)r->num_mappings);
1213                 ndr->depth++;
1214                 for (cntr_mappings_1=0;cntr_mappings_1<r->num_mappings;cntr_mappings_1++) {
1215                         char *idx_1=NULL;
1216                         if (asprintf(&idx_1, "[%d]", cntr_mappings_1) != -1) {
1217                                 ndr_print_drsuapi_DsReplicaOIDMapping(ndr, "mappings", &r->mappings[cntr_mappings_1]);
1218                                 free(idx_1);
1219                         }
1220                 }
1221                 ndr->depth--;
1222         }
1223         ndr->depth--;
1224         ndr->depth--;
1225 }
1226
1227 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsAttributeId(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsAttributeId r)
1228 {
1229         {
1230                 uint32_t _flags_save_ENUM = ndr->flags;
1231                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1232                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1233                 ndr->flags = _flags_save_ENUM;
1234         }
1235         return NDR_ERR_SUCCESS;
1236 }
1237
1238 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsAttributeId(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsAttributeId *r)
1239 {
1240         uint32_t v;
1241         {
1242                 uint32_t _flags_save_ENUM = ndr->flags;
1243                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1244                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1245                 *r = v;
1246                 ndr->flags = _flags_save_ENUM;
1247         }
1248         return NDR_ERR_SUCCESS;
1249 }
1250
1251 _PUBLIC_ void ndr_print_drsuapi_DsAttributeId(struct ndr_print *ndr, const char *name, enum drsuapi_DsAttributeId r)
1252 {
1253         const char *val = NULL;
1254
1255         {
1256                 uint32_t _flags_save_ENUM = ndr->flags;
1257                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1258                 switch (r) {
1259                         case DRSUAPI_ATTRIBUTE_objectClass: val = "DRSUAPI_ATTRIBUTE_objectClass"; break;
1260                         case DRSUAPI_ATTRIBUTE_description: val = "DRSUAPI_ATTRIBUTE_description"; break;
1261                         case DRSUAPI_ATTRIBUTE_member: val = "DRSUAPI_ATTRIBUTE_member"; break;
1262                         case DRSUAPI_ATTRIBUTE_instanceType: val = "DRSUAPI_ATTRIBUTE_instanceType"; break;
1263                         case DRSUAPI_ATTRIBUTE_whenCreated: val = "DRSUAPI_ATTRIBUTE_whenCreated"; break;
1264                         case DRSUAPI_ATTRIBUTE_hasMasterNCs: val = "DRSUAPI_ATTRIBUTE_hasMasterNCs"; break;
1265                         case DRSUAPI_ATTRIBUTE_governsID: val = "DRSUAPI_ATTRIBUTE_governsID"; break;
1266                         case DRSUAPI_ATTRIBUTE_attributeID: val = "DRSUAPI_ATTRIBUTE_attributeID"; break;
1267                         case DRSUAPI_ATTRIBUTE_attributeSyntax: val = "DRSUAPI_ATTRIBUTE_attributeSyntax"; break;
1268                         case DRSUAPI_ATTRIBUTE_isSingleValued: val = "DRSUAPI_ATTRIBUTE_isSingleValued"; break;
1269                         case DRSUAPI_ATTRIBUTE_rangeLower: val = "DRSUAPI_ATTRIBUTE_rangeLower"; break;
1270                         case DRSUAPI_ATTRIBUTE_rangeUpper: val = "DRSUAPI_ATTRIBUTE_rangeUpper"; break;
1271                         case DRSUAPI_ATTRIBUTE_dMDLocation: val = "DRSUAPI_ATTRIBUTE_dMDLocation"; break;
1272                         case DRSUAPI_ATTRIBUTE_objectVersion: val = "DRSUAPI_ATTRIBUTE_objectVersion"; break;
1273                         case DRSUAPI_ATTRIBUTE_invocationId: val = "DRSUAPI_ATTRIBUTE_invocationId"; break;
1274                         case DRSUAPI_ATTRIBUTE_showInAdvancedViewOnly: val = "DRSUAPI_ATTRIBUTE_showInAdvancedViewOnly"; break;
1275                         case DRSUAPI_ATTRIBUTE_adminDisplayName: val = "DRSUAPI_ATTRIBUTE_adminDisplayName"; break;
1276                         case DRSUAPI_ATTRIBUTE_adminDescription: val = "DRSUAPI_ATTRIBUTE_adminDescription"; break;
1277                         case DRSUAPI_ATTRIBUTE_oMSyntax: val = "DRSUAPI_ATTRIBUTE_oMSyntax"; break;
1278                         case DRSUAPI_ATTRIBUTE_ntSecurityDescriptor: val = "DRSUAPI_ATTRIBUTE_ntSecurityDescriptor"; break;
1279                         case DRSUAPI_ATTRIBUTE_searchFlags: val = "DRSUAPI_ATTRIBUTE_searchFlags"; break;
1280                         case DRSUAPI_ATTRIBUTE_lDAPDisplayName: val = "DRSUAPI_ATTRIBUTE_lDAPDisplayName"; break;
1281                         case DRSUAPI_ATTRIBUTE_name: val = "DRSUAPI_ATTRIBUTE_name"; break;
1282                         case DRSUAPI_ATTRIBUTE_userAccountControl: val = "DRSUAPI_ATTRIBUTE_userAccountControl"; break;
1283                         case DRSUAPI_ATTRIBUTE_currentValue: val = "DRSUAPI_ATTRIBUTE_currentValue"; break;
1284                         case DRSUAPI_ATTRIBUTE_homeDirectory: val = "DRSUAPI_ATTRIBUTE_homeDirectory"; break;
1285                         case DRSUAPI_ATTRIBUTE_homeDrive: val = "DRSUAPI_ATTRIBUTE_homeDrive"; break;
1286                         case DRSUAPI_ATTRIBUTE_scriptPath: val = "DRSUAPI_ATTRIBUTE_scriptPath"; break;
1287                         case DRSUAPI_ATTRIBUTE_profilePath: val = "DRSUAPI_ATTRIBUTE_profilePath"; break;
1288                         case DRSUAPI_ATTRIBUTE_objectSid: val = "DRSUAPI_ATTRIBUTE_objectSid"; break;
1289                         case DRSUAPI_ATTRIBUTE_schemaIDGUID: val = "DRSUAPI_ATTRIBUTE_schemaIDGUID"; break;
1290                         case DRSUAPI_ATTRIBUTE_dBCSPwd: val = "DRSUAPI_ATTRIBUTE_dBCSPwd"; break;
1291                         case DRSUAPI_ATTRIBUTE_logonHours: val = "DRSUAPI_ATTRIBUTE_logonHours"; break;
1292                         case DRSUAPI_ATTRIBUTE_userWorkstations: val = "DRSUAPI_ATTRIBUTE_userWorkstations"; break;
1293                         case DRSUAPI_ATTRIBUTE_unicodePwd: val = "DRSUAPI_ATTRIBUTE_unicodePwd"; break;
1294                         case DRSUAPI_ATTRIBUTE_ntPwdHistory: val = "DRSUAPI_ATTRIBUTE_ntPwdHistory"; break;
1295                         case DRSUAPI_ATTRIBUTE_priorValue: val = "DRSUAPI_ATTRIBUTE_priorValue"; break;
1296                         case DRSUAPI_ATTRIBUTE_supplementalCredentials: val = "DRSUAPI_ATTRIBUTE_supplementalCredentials"; break;
1297                         case DRSUAPI_ATTRIBUTE_trustAuthIncoming: val = "DRSUAPI_ATTRIBUTE_trustAuthIncoming"; break;
1298                         case DRSUAPI_ATTRIBUTE_trustAuthOutgoing: val = "DRSUAPI_ATTRIBUTE_trustAuthOutgoing"; break;
1299                         case DRSUAPI_ATTRIBUTE_lmPwdHistory: val = "DRSUAPI_ATTRIBUTE_lmPwdHistory"; break;
1300                         case DRSUAPI_ATTRIBUTE_sAMAccountName: val = "DRSUAPI_ATTRIBUTE_sAMAccountName"; break;
1301                         case DRSUAPI_ATTRIBUTE_sAMAccountType: val = "DRSUAPI_ATTRIBUTE_sAMAccountType"; break;
1302                         case DRSUAPI_ATTRIBUTE_fSMORoleOwner: val = "DRSUAPI_ATTRIBUTE_fSMORoleOwner"; break;
1303                         case DRSUAPI_ATTRIBUTE_systemFlags: val = "DRSUAPI_ATTRIBUTE_systemFlags"; break;
1304                         case DRSUAPI_ATTRIBUTE_serverReference: val = "DRSUAPI_ATTRIBUTE_serverReference"; break;
1305                         case DRSUAPI_ATTRIBUTE_serverReferenceBL: val = "DRSUAPI_ATTRIBUTE_serverReferenceBL"; break;
1306                         case DRSUAPI_ATTRIBUTE_initialAuthIncoming: val = "DRSUAPI_ATTRIBUTE_initialAuthIncoming"; break;
1307                         case DRSUAPI_ATTRIBUTE_initialAuthOutgoing: val = "DRSUAPI_ATTRIBUTE_initialAuthOutgoing"; break;
1308                         case DRSUAPI_ATTRIBUTE_wellKnownObjects: val = "DRSUAPI_ATTRIBUTE_wellKnownObjects"; break;
1309                         case DRSUAPI_ATTRIBUTE_dNSHostName: val = "DRSUAPI_ATTRIBUTE_dNSHostName"; break;
1310                         case DRSUAPI_ATTRIBUTE_isMemberOfPartialAttributeSet: val = "DRSUAPI_ATTRIBUTE_isMemberOfPartialAttributeSet"; break;
1311                         case DRSUAPI_ATTRIBUTE_userPrincipalName: val = "DRSUAPI_ATTRIBUTE_userPrincipalName"; break;
1312                         case DRSUAPI_ATTRIBUTE_groupType: val = "DRSUAPI_ATTRIBUTE_groupType"; break;
1313                         case DRSUAPI_ATTRIBUTE_servicePrincipalName: val = "DRSUAPI_ATTRIBUTE_servicePrincipalName"; break;
1314                         case DRSUAPI_ATTRIBUTE_objectCategory: val = "DRSUAPI_ATTRIBUTE_objectCategory"; break;
1315                         case DRSUAPI_ATTRIBUTE_gPLink: val = "DRSUAPI_ATTRIBUTE_gPLink"; break;
1316                         case DRSUAPI_ATTRIBUTE_msDS_Behavior_Version: val = "DRSUAPI_ATTRIBUTE_msDS_Behavior_Version"; break;
1317                         case DRSUAPI_ATTRIBUTE_msDS_KeyVersionNumber: val = "DRSUAPI_ATTRIBUTE_msDS_KeyVersionNumber"; break;
1318                         case DRSUAPI_ATTRIBUTE_msDS_HasDomainNCs: val = "DRSUAPI_ATTRIBUTE_msDS_HasDomainNCs"; break;
1319                         case DRSUAPI_ATTRIBUTE_msDS_hasMasterNCs: val = "DRSUAPI_ATTRIBUTE_msDS_hasMasterNCs"; break;
1320                 }
1321                 ndr_print_enum(ndr, name, "ENUM", val, r);
1322                 ndr->flags = _flags_save_ENUM;
1323         }
1324 }
1325
1326 static enum ndr_err_code ndr_push_drsuapi_DsPartialAttributeSet(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsPartialAttributeSet *r)
1327 {
1328         uint32_t cntr_attids_0;
1329         if (ndr_flags & NDR_SCALARS) {
1330                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_attids));
1331                 NDR_CHECK(ndr_push_align(ndr, 4));
1332                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 1));
1333                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
1334                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_attids));
1335                 for (cntr_attids_0 = 0; cntr_attids_0 < r->num_attids; cntr_attids_0++) {
1336                         NDR_CHECK(ndr_push_drsuapi_DsAttributeId(ndr, NDR_SCALARS, r->attids[cntr_attids_0]));
1337                 }
1338         }
1339         if (ndr_flags & NDR_BUFFERS) {
1340         }
1341         return NDR_ERR_SUCCESS;
1342 }
1343
1344 static enum ndr_err_code ndr_pull_drsuapi_DsPartialAttributeSet(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsPartialAttributeSet *r)
1345 {
1346         uint32_t cntr_attids_0;
1347         TALLOC_CTX *_mem_save_attids_0;
1348         if (ndr_flags & NDR_SCALARS) {
1349                 NDR_CHECK(ndr_pull_array_size(ndr, &r->attids));
1350                 NDR_CHECK(ndr_pull_align(ndr, 4));
1351                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
1352                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved1));
1353                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_attids));
1354                 if (r->num_attids < 1 || r->num_attids > 0x100000) {
1355                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
1356                 }
1357                 NDR_PULL_ALLOC_N(ndr, r->attids, ndr_get_array_size(ndr, &r->attids));
1358                 _mem_save_attids_0 = NDR_PULL_GET_MEM_CTX(ndr);
1359                 NDR_PULL_SET_MEM_CTX(ndr, r->attids, 0);
1360                 for (cntr_attids_0 = 0; cntr_attids_0 < r->num_attids; cntr_attids_0++) {
1361                         NDR_CHECK(ndr_pull_drsuapi_DsAttributeId(ndr, NDR_SCALARS, &r->attids[cntr_attids_0]));
1362                 }
1363                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attids_0, 0);
1364                 if (r->attids) {
1365                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->attids, r->num_attids));
1366                 }
1367         }
1368         if (ndr_flags & NDR_BUFFERS) {
1369         }
1370         return NDR_ERR_SUCCESS;
1371 }
1372
1373 _PUBLIC_ void ndr_print_drsuapi_DsPartialAttributeSet(struct ndr_print *ndr, const char *name, const struct drsuapi_DsPartialAttributeSet *r)
1374 {
1375         uint32_t cntr_attids_0;
1376         ndr_print_struct(ndr, name, "drsuapi_DsPartialAttributeSet");
1377         ndr->depth++;
1378         ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?1:r->version);
1379         ndr_print_uint32(ndr, "reserved1", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->reserved1);
1380         ndr_print_uint32(ndr, "num_attids", r->num_attids);
1381         ndr->print(ndr, "%s: ARRAY(%d)", "attids", (int)r->num_attids);
1382         ndr->depth++;
1383         for (cntr_attids_0=0;cntr_attids_0<r->num_attids;cntr_attids_0++) {
1384                 char *idx_0=NULL;
1385                 if (asprintf(&idx_0, "[%d]", cntr_attids_0) != -1) {
1386                         ndr_print_drsuapi_DsAttributeId(ndr, "attids", r->attids[cntr_attids_0]);
1387                         free(idx_0);
1388                 }
1389         }
1390         ndr->depth--;
1391         ndr->depth--;
1392 }
1393
1394 static enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesRequest8(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetNCChangesRequest8 *r)
1395 {
1396         if (ndr_flags & NDR_SCALARS) {
1397                 NDR_CHECK(ndr_push_align(ndr, 8));
1398                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->destination_dsa_guid));
1399                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
1400                 if (r->naming_context == NULL) {
1401                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1402                 }
1403                 NDR_CHECK(ndr_push_ref_ptr(ndr));
1404                 NDR_CHECK(ndr_push_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->highwatermark));
1405                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->uptodateness_vector));
1406                 NDR_CHECK(ndr_push_drsuapi_DsReplicaNeighbourFlags(ndr, NDR_SCALARS, r->replica_flags));
1407                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_object_count));
1408                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_ndr_size));
1409                 NDR_CHECK(ndr_push_drsuapi_DsExtendedOperation(ndr, NDR_SCALARS, r->extended_op));
1410                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->fsmo_info));
1411                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->partial_attribute_set));
1412                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->partial_attribute_set_ex));
1413                 NDR_CHECK(ndr_push_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_SCALARS, &r->mapping_ctr));
1414         }
1415         if (ndr_flags & NDR_BUFFERS) {
1416                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
1417                 if (r->uptodateness_vector) {
1418                         NDR_CHECK(ndr_push_drsuapi_DsReplicaCursorCtrEx(ndr, NDR_SCALARS, r->uptodateness_vector));
1419                 }
1420                 if (r->partial_attribute_set) {
1421                         NDR_CHECK(ndr_push_drsuapi_DsPartialAttributeSet(ndr, NDR_SCALARS, r->partial_attribute_set));
1422                 }
1423                 if (r->partial_attribute_set_ex) {
1424                         NDR_CHECK(ndr_push_drsuapi_DsPartialAttributeSet(ndr, NDR_SCALARS, r->partial_attribute_set_ex));
1425                 }
1426                 NDR_CHECK(ndr_push_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_BUFFERS, &r->mapping_ctr));
1427         }
1428         return NDR_ERR_SUCCESS;
1429 }
1430
1431 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesRequest8(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNCChangesRequest8 *r)
1432 {
1433         uint32_t _ptr_naming_context;
1434         TALLOC_CTX *_mem_save_naming_context_0;
1435         uint32_t _ptr_uptodateness_vector;
1436         TALLOC_CTX *_mem_save_uptodateness_vector_0;
1437         uint32_t _ptr_partial_attribute_set;
1438         TALLOC_CTX *_mem_save_partial_attribute_set_0;
1439         uint32_t _ptr_partial_attribute_set_ex;
1440         TALLOC_CTX *_mem_save_partial_attribute_set_ex_0;
1441         if (ndr_flags & NDR_SCALARS) {
1442                 NDR_CHECK(ndr_pull_align(ndr, 8));
1443                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->destination_dsa_guid));
1444                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
1445                 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_naming_context));
1446                 if (_ptr_naming_context) {
1447                         NDR_PULL_ALLOC(ndr, r->naming_context);
1448                 } else {
1449                         r->naming_context = NULL;
1450                 }
1451                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->highwatermark));
1452                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_uptodateness_vector));
1453                 if (_ptr_uptodateness_vector) {
1454                         NDR_PULL_ALLOC(ndr, r->uptodateness_vector);
1455                 } else {
1456                         r->uptodateness_vector = NULL;
1457                 }
1458                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaNeighbourFlags(ndr, NDR_SCALARS, &r->replica_flags));
1459                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_object_count));
1460                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_ndr_size));
1461                 NDR_CHECK(ndr_pull_drsuapi_DsExtendedOperation(ndr, NDR_SCALARS, &r->extended_op));
1462                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->fsmo_info));
1463                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_partial_attribute_set));
1464                 if (_ptr_partial_attribute_set) {
1465                         NDR_PULL_ALLOC(ndr, r->partial_attribute_set);
1466                 } else {
1467                         r->partial_attribute_set = NULL;
1468                 }
1469                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_partial_attribute_set_ex));
1470                 if (_ptr_partial_attribute_set_ex) {
1471                         NDR_PULL_ALLOC(ndr, r->partial_attribute_set_ex);
1472                 } else {
1473                         r->partial_attribute_set_ex = NULL;
1474                 }
1475                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_SCALARS, &r->mapping_ctr));
1476         }
1477         if (ndr_flags & NDR_BUFFERS) {
1478                 _mem_save_naming_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
1479                 NDR_PULL_SET_MEM_CTX(ndr, r->naming_context, 0);
1480                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
1481                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_naming_context_0, 0);
1482                 if (r->uptodateness_vector) {
1483                         _mem_save_uptodateness_vector_0 = NDR_PULL_GET_MEM_CTX(ndr);
1484                         NDR_PULL_SET_MEM_CTX(ndr, r->uptodateness_vector, 0);
1485                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursorCtrEx(ndr, NDR_SCALARS, r->uptodateness_vector));
1486                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_uptodateness_vector_0, 0);
1487                 }
1488                 if (r->partial_attribute_set) {
1489                         _mem_save_partial_attribute_set_0 = NDR_PULL_GET_MEM_CTX(ndr);
1490                         NDR_PULL_SET_MEM_CTX(ndr, r->partial_attribute_set, 0);
1491                         NDR_CHECK(ndr_pull_drsuapi_DsPartialAttributeSet(ndr, NDR_SCALARS, r->partial_attribute_set));
1492                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_partial_attribute_set_0, 0);
1493                 }
1494                 if (r->partial_attribute_set_ex) {
1495                         _mem_save_partial_attribute_set_ex_0 = NDR_PULL_GET_MEM_CTX(ndr);
1496                         NDR_PULL_SET_MEM_CTX(ndr, r->partial_attribute_set_ex, 0);
1497                         NDR_CHECK(ndr_pull_drsuapi_DsPartialAttributeSet(ndr, NDR_SCALARS, r->partial_attribute_set_ex));
1498                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_partial_attribute_set_ex_0, 0);
1499                 }
1500                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_BUFFERS, &r->mapping_ctr));
1501         }
1502         return NDR_ERR_SUCCESS;
1503 }
1504
1505 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesRequest8(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesRequest8 *r)
1506 {
1507         ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesRequest8");
1508         ndr->depth++;
1509         ndr_print_GUID(ndr, "destination_dsa_guid", &r->destination_dsa_guid);
1510         ndr_print_GUID(ndr, "source_dsa_invocation_id", &r->source_dsa_invocation_id);
1511         ndr_print_ptr(ndr, "naming_context", r->naming_context);
1512         ndr->depth++;
1513         ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "naming_context", r->naming_context);
1514         ndr->depth--;
1515         ndr_print_drsuapi_DsReplicaHighWaterMark(ndr, "highwatermark", &r->highwatermark);
1516         ndr_print_ptr(ndr, "uptodateness_vector", r->uptodateness_vector);
1517         ndr->depth++;
1518         if (r->uptodateness_vector) {
1519                 ndr_print_drsuapi_DsReplicaCursorCtrEx(ndr, "uptodateness_vector", r->uptodateness_vector);
1520         }
1521         ndr->depth--;
1522         ndr_print_drsuapi_DsReplicaNeighbourFlags(ndr, "replica_flags", r->replica_flags);
1523         ndr_print_uint32(ndr, "max_object_count", r->max_object_count);
1524         ndr_print_uint32(ndr, "max_ndr_size", r->max_ndr_size);
1525         ndr_print_drsuapi_DsExtendedOperation(ndr, "extended_op", r->extended_op);
1526         ndr_print_hyper(ndr, "fsmo_info", r->fsmo_info);
1527         ndr_print_ptr(ndr, "partial_attribute_set", r->partial_attribute_set);
1528         ndr->depth++;
1529         if (r->partial_attribute_set) {
1530                 ndr_print_drsuapi_DsPartialAttributeSet(ndr, "partial_attribute_set", r->partial_attribute_set);
1531         }
1532         ndr->depth--;
1533         ndr_print_ptr(ndr, "partial_attribute_set_ex", r->partial_attribute_set_ex);
1534         ndr->depth++;
1535         if (r->partial_attribute_set_ex) {
1536                 ndr_print_drsuapi_DsPartialAttributeSet(ndr, "partial_attribute_set_ex", r->partial_attribute_set_ex);
1537         }
1538         ndr->depth--;
1539         ndr_print_drsuapi_DsReplicaOIDMapping_Ctr(ndr, "mapping_ctr", &r->mapping_ctr);
1540         ndr->depth--;
1541 }
1542
1543 static enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsGetNCChangesRequest *r)
1544 {
1545         if (ndr_flags & NDR_SCALARS) {
1546                 int level = ndr_push_get_switch_value(ndr, r);
1547                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
1548                 switch (level) {
1549                         case 5: {
1550                                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesRequest5(ndr, NDR_SCALARS, &r->req5));
1551                         break; }
1552
1553                         case 8: {
1554                                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesRequest8(ndr, NDR_SCALARS, &r->req8));
1555                         break; }
1556
1557                         default:
1558                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1559                 }
1560         }
1561         if (ndr_flags & NDR_BUFFERS) {
1562                 int level = ndr_push_get_switch_value(ndr, r);
1563                 switch (level) {
1564                         case 5:
1565                                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesRequest5(ndr, NDR_BUFFERS, &r->req5));
1566                         break;
1567
1568                         case 8:
1569                                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesRequest8(ndr, NDR_BUFFERS, &r->req8));
1570                         break;
1571
1572                         default:
1573                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1574                 }
1575         }
1576         return NDR_ERR_SUCCESS;
1577 }
1578
1579 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsGetNCChangesRequest *r)
1580 {
1581         int level;
1582         int32_t _level;
1583         level = ndr_pull_get_switch_value(ndr, r);
1584         if (ndr_flags & NDR_SCALARS) {
1585                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
1586                 if (_level != level) {
1587                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
1588                 }
1589                 switch (level) {
1590                         case 5: {
1591                                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesRequest5(ndr, NDR_SCALARS, &r->req5));
1592                         break; }
1593
1594                         case 8: {
1595                                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesRequest8(ndr, NDR_SCALARS, &r->req8));
1596                         break; }
1597
1598                         default:
1599                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1600                 }
1601         }
1602         if (ndr_flags & NDR_BUFFERS) {
1603                 switch (level) {
1604                         case 5:
1605                                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesRequest5(ndr, NDR_BUFFERS, &r->req5));
1606                         break;
1607
1608                         case 8:
1609                                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesRequest8(ndr, NDR_BUFFERS, &r->req8));
1610                         break;
1611
1612                         default:
1613                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1614                 }
1615         }
1616         return NDR_ERR_SUCCESS;
1617 }
1618
1619 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsGetNCChangesRequest *r)
1620 {
1621         int level;
1622         level = ndr_print_get_switch_value(ndr, r);
1623         ndr_print_union(ndr, name, level, "drsuapi_DsGetNCChangesRequest");
1624         switch (level) {
1625                 case 5:
1626                         ndr_print_drsuapi_DsGetNCChangesRequest5(ndr, "req5", &r->req5);
1627                 break;
1628
1629                 case 8:
1630                         ndr_print_drsuapi_DsGetNCChangesRequest8(ndr, "req8", &r->req8);
1631                 break;
1632
1633                 default:
1634                         ndr_print_bad_level(ndr, name, level);
1635         }
1636 }
1637
1638 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaCursor2(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaCursor2 *r)
1639 {
1640         if (ndr_flags & NDR_SCALARS) {
1641                 NDR_CHECK(ndr_push_align(ndr, 8));
1642                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
1643                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->highest_usn));
1644                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_sync_success));
1645         }
1646         if (ndr_flags & NDR_BUFFERS) {
1647         }
1648         return NDR_ERR_SUCCESS;
1649 }
1650
1651 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaCursor2(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaCursor2 *r)
1652 {
1653         if (ndr_flags & NDR_SCALARS) {
1654                 NDR_CHECK(ndr_pull_align(ndr, 8));
1655                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
1656                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->highest_usn));
1657                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_sync_success));
1658         }
1659         if (ndr_flags & NDR_BUFFERS) {
1660         }
1661         return NDR_ERR_SUCCESS;
1662 }
1663
1664 _PUBLIC_ void ndr_print_drsuapi_DsReplicaCursor2(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaCursor2 *r)
1665 {
1666         ndr_print_struct(ndr, name, "drsuapi_DsReplicaCursor2");
1667         ndr->depth++;
1668         ndr_print_GUID(ndr, "source_dsa_invocation_id", &r->source_dsa_invocation_id);
1669         ndr_print_hyper(ndr, "highest_usn", r->highest_usn);
1670         ndr_print_NTTIME(ndr, "last_sync_success", r->last_sync_success);
1671         ndr->depth--;
1672 }
1673
1674 static enum ndr_err_code ndr_push_drsuapi_DsReplicaCursor2CtrEx(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaCursor2CtrEx *r)
1675 {
1676         uint32_t cntr_cursors_0;
1677         if (ndr_flags & NDR_SCALARS) {
1678                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
1679                 NDR_CHECK(ndr_push_align(ndr, 8));
1680                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
1681                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
1682                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
1683                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
1684                 for (cntr_cursors_0 = 0; cntr_cursors_0 < r->count; cntr_cursors_0++) {
1685                         NDR_CHECK(ndr_push_drsuapi_DsReplicaCursor2(ndr, NDR_SCALARS, &r->cursors[cntr_cursors_0]));
1686                 }
1687         }
1688         if (ndr_flags & NDR_BUFFERS) {
1689         }
1690         return NDR_ERR_SUCCESS;
1691 }
1692
1693 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaCursor2CtrEx(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaCursor2CtrEx *r)
1694 {
1695         uint32_t cntr_cursors_0;
1696         TALLOC_CTX *_mem_save_cursors_0;
1697         if (ndr_flags & NDR_SCALARS) {
1698                 NDR_CHECK(ndr_pull_array_size(ndr, &r->cursors));
1699                 NDR_CHECK(ndr_pull_align(ndr, 8));
1700                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
1701                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved1));
1702                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
1703                 if (r->count < 0 || r->count > 0x100000) {
1704                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
1705                 }
1706                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
1707                 NDR_PULL_ALLOC_N(ndr, r->cursors, ndr_get_array_size(ndr, &r->cursors));
1708                 _mem_save_cursors_0 = NDR_PULL_GET_MEM_CTX(ndr);
1709                 NDR_PULL_SET_MEM_CTX(ndr, r->cursors, 0);
1710                 for (cntr_cursors_0 = 0; cntr_cursors_0 < r->count; cntr_cursors_0++) {
1711                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursor2(ndr, NDR_SCALARS, &r->cursors[cntr_cursors_0]));
1712                 }
1713                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_cursors_0, 0);
1714                 if (r->cursors) {
1715                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->cursors, r->count));
1716                 }
1717         }
1718         if (ndr_flags & NDR_BUFFERS) {
1719         }
1720         return NDR_ERR_SUCCESS;
1721 }
1722
1723 _PUBLIC_ void ndr_print_drsuapi_DsReplicaCursor2CtrEx(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaCursor2CtrEx *r)
1724 {
1725         uint32_t cntr_cursors_0;
1726         ndr_print_struct(ndr, name, "drsuapi_DsReplicaCursor2CtrEx");
1727         ndr->depth++;
1728         ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
1729         ndr_print_uint32(ndr, "reserved1", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->reserved1);
1730         ndr_print_uint32(ndr, "count", r->count);
1731         ndr_print_uint32(ndr, "reserved2", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->reserved2);
1732         ndr->print(ndr, "%s: ARRAY(%d)", "cursors", (int)r->count);
1733         ndr->depth++;
1734         for (cntr_cursors_0=0;cntr_cursors_0<r->count;cntr_cursors_0++) {
1735                 char *idx_0=NULL;
1736                 if (asprintf(&idx_0, "[%d]", cntr_cursors_0) != -1) {
1737                         ndr_print_drsuapi_DsReplicaCursor2(ndr, "cursors", &r->cursors[cntr_cursors_0]);
1738                         free(idx_0);
1739                 }
1740         }
1741         ndr->depth--;
1742         ndr->depth--;
1743 }
1744
1745 static enum ndr_err_code ndr_push_drsuapi_DsAttributeValue(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAttributeValue *r)
1746 {
1747         if (ndr_flags & NDR_SCALARS) {
1748                 NDR_CHECK(ndr_push_align(ndr, 4));
1749                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_DATA_BLOB(0, r->blob, 0)));
1750                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->blob));
1751         }
1752         if (ndr_flags & NDR_BUFFERS) {
1753                 if (r->blob) {
1754                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->blob));
1755                 }
1756         }
1757         return NDR_ERR_SUCCESS;
1758 }
1759
1760 static enum ndr_err_code ndr_pull_drsuapi_DsAttributeValue(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAttributeValue *r)
1761 {
1762         uint32_t _ptr_blob;
1763         TALLOC_CTX *_mem_save_blob_0;
1764         if (ndr_flags & NDR_SCALARS) {
1765                 NDR_CHECK(ndr_pull_align(ndr, 4));
1766                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size));
1767                 if (r->__ndr_size < 0 || r->__ndr_size > 10485760) {
1768                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
1769                 }
1770                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_blob));
1771                 if (_ptr_blob) {
1772                         NDR_PULL_ALLOC(ndr, r->blob);
1773                 } else {
1774                         r->blob = NULL;
1775                 }
1776         }
1777         if (ndr_flags & NDR_BUFFERS) {
1778                 if (r->blob) {
1779                         _mem_save_blob_0 = NDR_PULL_GET_MEM_CTX(ndr);
1780                         NDR_PULL_SET_MEM_CTX(ndr, r->blob, 0);
1781                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->blob));
1782                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_blob_0, 0);
1783                 }
1784         }
1785         return NDR_ERR_SUCCESS;
1786 }
1787
1788 _PUBLIC_ void ndr_print_drsuapi_DsAttributeValue(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAttributeValue *r)
1789 {
1790         ndr_print_struct(ndr, name, "drsuapi_DsAttributeValue");
1791         ndr->depth++;
1792         ndr_print_uint32(ndr, "__ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_DATA_BLOB(0, r->blob, 0):r->__ndr_size);
1793         ndr_print_ptr(ndr, "blob", r->blob);
1794         ndr->depth++;
1795         if (r->blob) {
1796                 ndr_print_DATA_BLOB(ndr, "blob", *r->blob);
1797         }
1798         ndr->depth--;
1799         ndr->depth--;
1800 }
1801
1802 static enum ndr_err_code ndr_push_drsuapi_DsAttributeValueCtr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAttributeValueCtr *r)
1803 {
1804         uint32_t cntr_values_1;
1805         if (ndr_flags & NDR_SCALARS) {
1806                 NDR_CHECK(ndr_push_align(ndr, 4));
1807                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_values));
1808                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->values));
1809         }
1810         if (ndr_flags & NDR_BUFFERS) {
1811                 if (r->values) {
1812                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_values));
1813                         for (cntr_values_1 = 0; cntr_values_1 < r->num_values; cntr_values_1++) {
1814                                 NDR_CHECK(ndr_push_drsuapi_DsAttributeValue(ndr, NDR_SCALARS, &r->values[cntr_values_1]));
1815                         }
1816                         for (cntr_values_1 = 0; cntr_values_1 < r->num_values; cntr_values_1++) {
1817                                 NDR_CHECK(ndr_push_drsuapi_DsAttributeValue(ndr, NDR_BUFFERS, &r->values[cntr_values_1]));
1818                         }
1819                 }
1820         }
1821         return NDR_ERR_SUCCESS;
1822 }
1823
1824 static enum ndr_err_code ndr_pull_drsuapi_DsAttributeValueCtr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAttributeValueCtr *r)
1825 {
1826         uint32_t _ptr_values;
1827         uint32_t cntr_values_1;
1828         TALLOC_CTX *_mem_save_values_0;
1829         TALLOC_CTX *_mem_save_values_1;
1830         if (ndr_flags & NDR_SCALARS) {
1831                 NDR_CHECK(ndr_pull_align(ndr, 4));
1832                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_values));
1833                 if (r->num_values < 0 || r->num_values > 10485760) {
1834                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
1835                 }
1836                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_values));
1837                 if (_ptr_values) {
1838                         NDR_PULL_ALLOC(ndr, r->values);
1839                 } else {
1840                         r->values = NULL;
1841                 }
1842         }
1843         if (ndr_flags & NDR_BUFFERS) {
1844                 if (r->values) {
1845                         _mem_save_values_0 = NDR_PULL_GET_MEM_CTX(ndr);
1846                         NDR_PULL_SET_MEM_CTX(ndr, r->values, 0);
1847                         NDR_CHECK(ndr_pull_array_size(ndr, &r->values));
1848                         NDR_PULL_ALLOC_N(ndr, r->values, ndr_get_array_size(ndr, &r->values));
1849                         _mem_save_values_1 = NDR_PULL_GET_MEM_CTX(ndr);
1850                         NDR_PULL_SET_MEM_CTX(ndr, r->values, 0);
1851                         for (cntr_values_1 = 0; cntr_values_1 < r->num_values; cntr_values_1++) {
1852                                 NDR_CHECK(ndr_pull_drsuapi_DsAttributeValue(ndr, NDR_SCALARS, &r->values[cntr_values_1]));
1853                         }
1854                         for (cntr_values_1 = 0; cntr_values_1 < r->num_values; cntr_values_1++) {
1855                                 NDR_CHECK(ndr_pull_drsuapi_DsAttributeValue(ndr, NDR_BUFFERS, &r->values[cntr_values_1]));
1856                         }
1857                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_values_1, 0);
1858                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_values_0, 0);
1859                 }
1860                 if (r->values) {
1861                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->values, r->num_values));
1862                 }
1863         }
1864         return NDR_ERR_SUCCESS;
1865 }
1866
1867 _PUBLIC_ void ndr_print_drsuapi_DsAttributeValueCtr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAttributeValueCtr *r)
1868 {
1869         uint32_t cntr_values_1;
1870         ndr_print_struct(ndr, name, "drsuapi_DsAttributeValueCtr");
1871         ndr->depth++;
1872         ndr_print_uint32(ndr, "num_values", r->num_values);
1873         ndr_print_ptr(ndr, "values", r->values);
1874         ndr->depth++;
1875         if (r->values) {
1876                 ndr->print(ndr, "%s: ARRAY(%d)", "values", (int)r->num_values);
1877                 ndr->depth++;
1878                 for (cntr_values_1=0;cntr_values_1<r->num_values;cntr_values_1++) {
1879                         char *idx_1=NULL;
1880                         if (asprintf(&idx_1, "[%d]", cntr_values_1) != -1) {
1881                                 ndr_print_drsuapi_DsAttributeValue(ndr, "values", &r->values[cntr_values_1]);
1882                                 free(idx_1);
1883                         }
1884                 }
1885                 ndr->depth--;
1886         }
1887         ndr->depth--;
1888         ndr->depth--;
1889 }
1890
1891 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaObjectIdentifier3(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaObjectIdentifier3 *r)
1892 {
1893         if (ndr_flags & NDR_SCALARS) {
1894                 NDR_CHECK(ndr_push_align(ndr, 4));
1895                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_drsuapi_DsReplicaObjectIdentifier3(r, ndr->flags)));
1896                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_dom_sid28(&r->sid, ndr->flags)));
1897                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
1898                 NDR_CHECK(ndr_push_dom_sid28(ndr, NDR_SCALARS, &r->sid));
1899                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, strlen_m(r->dn)));
1900                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dn, strlen_m(r->dn) + 1, sizeof(uint16_t), CH_UTF16));
1901         }
1902         if (ndr_flags & NDR_BUFFERS) {
1903                 NDR_CHECK(ndr_push_dom_sid28(ndr, NDR_BUFFERS, &r->sid));
1904         }
1905         return NDR_ERR_SUCCESS;
1906 }
1907
1908 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaObjectIdentifier3(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaObjectIdentifier3 *r)
1909 {
1910         if (ndr_flags & NDR_SCALARS) {
1911                 NDR_CHECK(ndr_pull_align(ndr, 4));
1912                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size));
1913                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size_sid));
1914                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
1915                 NDR_CHECK(ndr_pull_dom_sid28(ndr, NDR_SCALARS, &r->sid));
1916                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size_dn));
1917                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dn, r->__ndr_size_dn + 1, sizeof(uint16_t), CH_UTF16));
1918         }
1919         if (ndr_flags & NDR_BUFFERS) {
1920                 NDR_CHECK(ndr_pull_dom_sid28(ndr, NDR_BUFFERS, &r->sid));
1921         }
1922         return NDR_ERR_SUCCESS;
1923 }
1924
1925 _PUBLIC_ void ndr_print_drsuapi_DsReplicaObjectIdentifier3(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaObjectIdentifier3 *r)
1926 {
1927         ndr_print_struct(ndr, name, "drsuapi_DsReplicaObjectIdentifier3");
1928         ndr->depth++;
1929         ndr_print_uint32(ndr, "__ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_drsuapi_DsReplicaObjectIdentifier3(r, ndr->flags):r->__ndr_size);
1930         ndr_print_uint32(ndr, "__ndr_size_sid", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_dom_sid28(&r->sid, ndr->flags):r->__ndr_size_sid);
1931         ndr_print_GUID(ndr, "guid", &r->guid);
1932         ndr_print_dom_sid28(ndr, "sid", &r->sid);
1933         ndr_print_uint32(ndr, "__ndr_size_dn", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?strlen_m(r->dn):r->__ndr_size_dn);
1934         ndr_print_string(ndr, "dn", r->dn);
1935         ndr->depth--;
1936 }
1937
1938 _PUBLIC_ size_t ndr_size_drsuapi_DsReplicaObjectIdentifier3(const struct drsuapi_DsReplicaObjectIdentifier3 *r, int flags)
1939 {
1940         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_drsuapi_DsReplicaObjectIdentifier3);
1941 }
1942
1943 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaObjectIdentifier3Binary(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaObjectIdentifier3Binary *r)
1944 {
1945         if (ndr_flags & NDR_SCALARS) {
1946                 NDR_CHECK(ndr_push_align(ndr, 4));
1947                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_drsuapi_DsReplicaObjectIdentifier3Binary(r, ndr->flags)));
1948                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_dom_sid28(&r->sid, ndr->flags)));
1949                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
1950                 NDR_CHECK(ndr_push_dom_sid28(ndr, NDR_SCALARS, &r->sid));
1951                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, strlen_m(r->dn)));
1952                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dn, strlen_m(r->dn) + 1, sizeof(uint16_t), CH_UTF16));
1953                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->binary.length + 4));
1954                 {
1955                         uint32_t _flags_save_DATA_BLOB = ndr->flags;
1956                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
1957                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->binary));
1958                         ndr->flags = _flags_save_DATA_BLOB;
1959                 }
1960         }
1961         if (ndr_flags & NDR_BUFFERS) {
1962                 NDR_CHECK(ndr_push_dom_sid28(ndr, NDR_BUFFERS, &r->sid));
1963         }
1964         return NDR_ERR_SUCCESS;
1965 }
1966
1967 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaObjectIdentifier3Binary(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaObjectIdentifier3Binary *r)
1968 {
1969         if (ndr_flags & NDR_SCALARS) {
1970                 NDR_CHECK(ndr_pull_align(ndr, 4));
1971                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size));
1972                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size_sid));
1973                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
1974                 NDR_CHECK(ndr_pull_dom_sid28(ndr, NDR_SCALARS, &r->sid));
1975                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size_dn));
1976                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dn, r->__ndr_size_dn + 1, sizeof(uint16_t), CH_UTF16));
1977                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size_binary));
1978                 {
1979                         uint32_t _flags_save_DATA_BLOB = ndr->flags;
1980                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
1981                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->binary));
1982                         ndr->flags = _flags_save_DATA_BLOB;
1983                 }
1984         }
1985         if (ndr_flags & NDR_BUFFERS) {
1986                 NDR_CHECK(ndr_pull_dom_sid28(ndr, NDR_BUFFERS, &r->sid));
1987         }
1988         return NDR_ERR_SUCCESS;
1989 }
1990
1991 _PUBLIC_ void ndr_print_drsuapi_DsReplicaObjectIdentifier3Binary(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaObjectIdentifier3Binary *r)
1992 {
1993         ndr_print_struct(ndr, name, "drsuapi_DsReplicaObjectIdentifier3Binary");
1994         ndr->depth++;
1995         ndr_print_uint32(ndr, "__ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_drsuapi_DsReplicaObjectIdentifier3Binary(r, ndr->flags):r->__ndr_size);
1996         ndr_print_uint32(ndr, "__ndr_size_sid", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_dom_sid28(&r->sid, ndr->flags):r->__ndr_size_sid);
1997         ndr_print_GUID(ndr, "guid", &r->guid);
1998         ndr_print_dom_sid28(ndr, "sid", &r->sid);
1999         ndr_print_uint32(ndr, "__ndr_size_dn", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?strlen_m(r->dn):r->__ndr_size_dn);
2000         ndr_print_string(ndr, "dn", r->dn);
2001         ndr_print_uint32(ndr, "__ndr_size_binary", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->binary.length + 4:r->__ndr_size_binary);
2002         ndr_print_DATA_BLOB(ndr, "binary", r->binary);
2003         ndr->depth--;
2004 }
2005
2006 _PUBLIC_ size_t ndr_size_drsuapi_DsReplicaObjectIdentifier3Binary(const struct drsuapi_DsReplicaObjectIdentifier3Binary *r, int flags)
2007 {
2008         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_drsuapi_DsReplicaObjectIdentifier3Binary);
2009 }
2010
2011 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaAttribute(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaAttribute *r)
2012 {
2013         if (ndr_flags & NDR_SCALARS) {
2014                 NDR_CHECK(ndr_push_align(ndr, 4));
2015                 NDR_CHECK(ndr_push_drsuapi_DsAttributeId(ndr, NDR_SCALARS, r->attid));
2016                 NDR_CHECK(ndr_push_drsuapi_DsAttributeValueCtr(ndr, NDR_SCALARS, &r->value_ctr));
2017         }
2018         if (ndr_flags & NDR_BUFFERS) {
2019                 NDR_CHECK(ndr_push_drsuapi_DsAttributeValueCtr(ndr, NDR_BUFFERS, &r->value_ctr));
2020         }
2021         return NDR_ERR_SUCCESS;
2022 }
2023
2024 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaAttribute(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaAttribute *r)
2025 {
2026         if (ndr_flags & NDR_SCALARS) {
2027                 NDR_CHECK(ndr_pull_align(ndr, 4));
2028                 NDR_CHECK(ndr_pull_drsuapi_DsAttributeId(ndr, NDR_SCALARS, &r->attid));
2029                 NDR_CHECK(ndr_pull_drsuapi_DsAttributeValueCtr(ndr, NDR_SCALARS, &r->value_ctr));
2030         }
2031         if (ndr_flags & NDR_BUFFERS) {
2032                 NDR_CHECK(ndr_pull_drsuapi_DsAttributeValueCtr(ndr, NDR_BUFFERS, &r->value_ctr));
2033         }
2034         return NDR_ERR_SUCCESS;
2035 }
2036
2037 _PUBLIC_ void ndr_print_drsuapi_DsReplicaAttribute(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaAttribute *r)
2038 {
2039         ndr_print_struct(ndr, name, "drsuapi_DsReplicaAttribute");
2040         ndr->depth++;
2041         ndr_print_drsuapi_DsAttributeId(ndr, "attid", r->attid);
2042         ndr_print_drsuapi_DsAttributeValueCtr(ndr, "value_ctr", &r->value_ctr);
2043         ndr->depth--;
2044 }
2045
2046 static enum ndr_err_code ndr_push_drsuapi_DsReplicaAttributeCtr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaAttributeCtr *r)
2047 {
2048         uint32_t cntr_attributes_1;
2049         if (ndr_flags & NDR_SCALARS) {
2050                 NDR_CHECK(ndr_push_align(ndr, 4));
2051                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_attributes));
2052                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->attributes));
2053         }
2054         if (ndr_flags & NDR_BUFFERS) {
2055                 if (r->attributes) {
2056                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_attributes));
2057                         for (cntr_attributes_1 = 0; cntr_attributes_1 < r->num_attributes; cntr_attributes_1++) {
2058                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaAttribute(ndr, NDR_SCALARS, &r->attributes[cntr_attributes_1]));
2059                         }
2060                         for (cntr_attributes_1 = 0; cntr_attributes_1 < r->num_attributes; cntr_attributes_1++) {
2061                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaAttribute(ndr, NDR_BUFFERS, &r->attributes[cntr_attributes_1]));
2062                         }
2063                 }
2064         }
2065         return NDR_ERR_SUCCESS;
2066 }
2067
2068 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaAttributeCtr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaAttributeCtr *r)
2069 {
2070         uint32_t _ptr_attributes;
2071         uint32_t cntr_attributes_1;
2072         TALLOC_CTX *_mem_save_attributes_0;
2073         TALLOC_CTX *_mem_save_attributes_1;
2074         if (ndr_flags & NDR_SCALARS) {
2075                 NDR_CHECK(ndr_pull_align(ndr, 4));
2076                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_attributes));
2077                 if (r->num_attributes < 0 || r->num_attributes > 1048576) {
2078                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
2079                 }
2080                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_attributes));
2081                 if (_ptr_attributes) {
2082                         NDR_PULL_ALLOC(ndr, r->attributes);
2083                 } else {
2084                         r->attributes = NULL;
2085                 }
2086         }
2087         if (ndr_flags & NDR_BUFFERS) {
2088                 if (r->attributes) {
2089                         _mem_save_attributes_0 = NDR_PULL_GET_MEM_CTX(ndr);
2090                         NDR_PULL_SET_MEM_CTX(ndr, r->attributes, 0);
2091                         NDR_CHECK(ndr_pull_array_size(ndr, &r->attributes));
2092                         NDR_PULL_ALLOC_N(ndr, r->attributes, ndr_get_array_size(ndr, &r->attributes));
2093                         _mem_save_attributes_1 = NDR_PULL_GET_MEM_CTX(ndr);
2094                         NDR_PULL_SET_MEM_CTX(ndr, r->attributes, 0);
2095                         for (cntr_attributes_1 = 0; cntr_attributes_1 < r->num_attributes; cntr_attributes_1++) {
2096                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAttribute(ndr, NDR_SCALARS, &r->attributes[cntr_attributes_1]));
2097                         }
2098                         for (cntr_attributes_1 = 0; cntr_attributes_1 < r->num_attributes; cntr_attributes_1++) {
2099                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAttribute(ndr, NDR_BUFFERS, &r->attributes[cntr_attributes_1]));
2100                         }
2101                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attributes_1, 0);
2102                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attributes_0, 0);
2103                 }
2104                 if (r->attributes) {
2105                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->attributes, r->num_attributes));
2106                 }
2107         }
2108         return NDR_ERR_SUCCESS;
2109 }
2110
2111 _PUBLIC_ void ndr_print_drsuapi_DsReplicaAttributeCtr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaAttributeCtr *r)
2112 {
2113         uint32_t cntr_attributes_1;
2114         ndr_print_struct(ndr, name, "drsuapi_DsReplicaAttributeCtr");
2115         ndr->depth++;
2116         ndr_print_uint32(ndr, "num_attributes", r->num_attributes);
2117         ndr_print_ptr(ndr, "attributes", r->attributes);
2118         ndr->depth++;
2119         if (r->attributes) {
2120                 ndr->print(ndr, "%s: ARRAY(%d)", "attributes", (int)r->num_attributes);
2121                 ndr->depth++;
2122                 for (cntr_attributes_1=0;cntr_attributes_1<r->num_attributes;cntr_attributes_1++) {
2123                         char *idx_1=NULL;
2124                         if (asprintf(&idx_1, "[%d]", cntr_attributes_1) != -1) {
2125                                 ndr_print_drsuapi_DsReplicaAttribute(ndr, "attributes", &r->attributes[cntr_attributes_1]);
2126                                 free(idx_1);
2127                         }
2128                 }
2129                 ndr->depth--;
2130         }
2131         ndr->depth--;
2132         ndr->depth--;
2133 }
2134
2135 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaObjectFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
2136 {
2137         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
2138         return NDR_ERR_SUCCESS;
2139 }
2140
2141 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaObjectFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
2142 {
2143         uint32_t v;
2144         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
2145         *r = v;
2146         return NDR_ERR_SUCCESS;
2147 }
2148
2149 _PUBLIC_ void ndr_print_drsuapi_DsReplicaObjectFlags(struct ndr_print *ndr, const char *name, uint32_t r)
2150 {
2151         ndr_print_uint32(ndr, name, r);
2152         ndr->depth++;
2153         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_OBJECT_FROM_MASTER", DRSUAPI_DS_REPLICA_OBJECT_FROM_MASTER, r);
2154         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_OBJECT_DYNAMIC", DRSUAPI_DS_REPLICA_OBJECT_DYNAMIC, r);
2155         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_OBJECT_REMOTE_MODIFY", DRSUAPI_DS_REPLICA_OBJECT_REMOTE_MODIFY, r);
2156         ndr->depth--;
2157 }
2158
2159 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaObject(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaObject *r)
2160 {
2161         if (ndr_flags & NDR_SCALARS) {
2162                 NDR_CHECK(ndr_push_align(ndr, 4));
2163                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->identifier));
2164                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectFlags(ndr, NDR_SCALARS, r->flags));
2165                 NDR_CHECK(ndr_push_drsuapi_DsReplicaAttributeCtr(ndr, NDR_SCALARS, &r->attribute_ctr));
2166         }
2167         if (ndr_flags & NDR_BUFFERS) {
2168                 if (r->identifier) {
2169                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->identifier));
2170                 }
2171                 NDR_CHECK(ndr_push_drsuapi_DsReplicaAttributeCtr(ndr, NDR_BUFFERS, &r->attribute_ctr));
2172         }
2173         return NDR_ERR_SUCCESS;
2174 }
2175
2176 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaObject(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaObject *r)
2177 {
2178         uint32_t _ptr_identifier;
2179         TALLOC_CTX *_mem_save_identifier_0;
2180         if (ndr_flags & NDR_SCALARS) {
2181                 NDR_CHECK(ndr_pull_align(ndr, 4));
2182                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_identifier));
2183                 if (_ptr_identifier) {
2184                         NDR_PULL_ALLOC(ndr, r->identifier);
2185                 } else {
2186                         r->identifier = NULL;
2187                 }
2188                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectFlags(ndr, NDR_SCALARS, &r->flags));
2189                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAttributeCtr(ndr, NDR_SCALARS, &r->attribute_ctr));
2190         }
2191         if (ndr_flags & NDR_BUFFERS) {
2192                 if (r->identifier) {
2193                         _mem_save_identifier_0 = NDR_PULL_GET_MEM_CTX(ndr);
2194                         NDR_PULL_SET_MEM_CTX(ndr, r->identifier, 0);
2195                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->identifier));
2196                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_identifier_0, 0);
2197                 }
2198                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAttributeCtr(ndr, NDR_BUFFERS, &r->attribute_ctr));
2199         }
2200         return NDR_ERR_SUCCESS;
2201 }
2202
2203 _PUBLIC_ void ndr_print_drsuapi_DsReplicaObject(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaObject *r)
2204 {
2205         ndr_print_struct(ndr, name, "drsuapi_DsReplicaObject");
2206         ndr->depth++;
2207         ndr_print_ptr(ndr, "identifier", r->identifier);
2208         ndr->depth++;
2209         if (r->identifier) {
2210                 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "identifier", r->identifier);
2211         }
2212         ndr->depth--;
2213         ndr_print_drsuapi_DsReplicaObjectFlags(ndr, "flags", r->flags);
2214         ndr_print_drsuapi_DsReplicaAttributeCtr(ndr, "attribute_ctr", &r->attribute_ctr);
2215         ndr->depth--;
2216 }
2217
2218 static enum ndr_err_code ndr_push_drsuapi_DsReplicaMetaData(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaMetaData *r)
2219 {
2220         if (ndr_flags & NDR_SCALARS) {
2221                 NDR_CHECK(ndr_push_align(ndr, 8));
2222                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
2223                 NDR_CHECK(ndr_push_NTTIME_1sec(ndr, NDR_SCALARS, r->originating_change_time));
2224                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->originating_invocation_id));
2225                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->originating_usn));
2226         }
2227         if (ndr_flags & NDR_BUFFERS) {
2228         }
2229         return NDR_ERR_SUCCESS;
2230 }
2231
2232 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaMetaData(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaMetaData *r)
2233 {
2234         if (ndr_flags & NDR_SCALARS) {
2235                 NDR_CHECK(ndr_pull_align(ndr, 8));
2236                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
2237                 NDR_CHECK(ndr_pull_NTTIME_1sec(ndr, NDR_SCALARS, &r->originating_change_time));
2238                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->originating_invocation_id));
2239                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->originating_usn));
2240         }
2241         if (ndr_flags & NDR_BUFFERS) {
2242         }
2243         return NDR_ERR_SUCCESS;
2244 }
2245
2246 _PUBLIC_ void ndr_print_drsuapi_DsReplicaMetaData(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaMetaData *r)
2247 {
2248         ndr_print_struct(ndr, name, "drsuapi_DsReplicaMetaData");
2249         ndr->depth++;
2250         ndr_print_uint32(ndr, "version", r->version);
2251         ndr_print_NTTIME_1sec(ndr, "originating_change_time", r->originating_change_time);
2252         ndr_print_GUID(ndr, "originating_invocation_id", &r->originating_invocation_id);
2253         ndr_print_hyper(ndr, "originating_usn", r->originating_usn);
2254         ndr->depth--;
2255 }
2256
2257 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaMetaDataCtr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaMetaDataCtr *r)
2258 {
2259         uint32_t cntr_meta_data_0;
2260         if (ndr_flags & NDR_SCALARS) {
2261                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
2262                 NDR_CHECK(ndr_push_align(ndr, 8));
2263                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
2264                 for (cntr_meta_data_0 = 0; cntr_meta_data_0 < r->count; cntr_meta_data_0++) {
2265                         NDR_CHECK(ndr_push_drsuapi_DsReplicaMetaData(ndr, NDR_SCALARS, &r->meta_data[cntr_meta_data_0]));
2266                 }
2267         }
2268         if (ndr_flags & NDR_BUFFERS) {
2269         }
2270         return NDR_ERR_SUCCESS;
2271 }
2272
2273 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaMetaDataCtr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaMetaDataCtr *r)
2274 {
2275         uint32_t cntr_meta_data_0;
2276         TALLOC_CTX *_mem_save_meta_data_0;
2277         if (ndr_flags & NDR_SCALARS) {
2278                 NDR_CHECK(ndr_pull_array_size(ndr, &r->meta_data));
2279                 NDR_CHECK(ndr_pull_align(ndr, 8));
2280                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
2281                 if (r->count < 0 || r->count > 1048576) {
2282                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
2283                 }
2284                 NDR_PULL_ALLOC_N(ndr, r->meta_data, ndr_get_array_size(ndr, &r->meta_data));
2285                 _mem_save_meta_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
2286                 NDR_PULL_SET_MEM_CTX(ndr, r->meta_data, 0);
2287                 for (cntr_meta_data_0 = 0; cntr_meta_data_0 < r->count; cntr_meta_data_0++) {
2288                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaMetaData(ndr, NDR_SCALARS, &r->meta_data[cntr_meta_data_0]));
2289                 }
2290                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_meta_data_0, 0);
2291                 if (r->meta_data) {
2292                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->meta_data, r->count));
2293                 }
2294         }
2295         if (ndr_flags & NDR_BUFFERS) {
2296         }
2297         return NDR_ERR_SUCCESS;
2298 }
2299
2300 _PUBLIC_ void ndr_print_drsuapi_DsReplicaMetaDataCtr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaMetaDataCtr *r)
2301 {
2302         uint32_t cntr_meta_data_0;
2303         ndr_print_struct(ndr, name, "drsuapi_DsReplicaMetaDataCtr");
2304         ndr->depth++;
2305         ndr_print_uint32(ndr, "count", r->count);
2306         ndr->print(ndr, "%s: ARRAY(%d)", "meta_data", (int)r->count);
2307         ndr->depth++;
2308         for (cntr_meta_data_0=0;cntr_meta_data_0<r->count;cntr_meta_data_0++) {
2309                 char *idx_0=NULL;
2310                 if (asprintf(&idx_0, "[%d]", cntr_meta_data_0) != -1) {
2311                         ndr_print_drsuapi_DsReplicaMetaData(ndr, "meta_data", &r->meta_data[cntr_meta_data_0]);
2312                         free(idx_0);
2313                 }
2314         }
2315         ndr->depth--;
2316         ndr->depth--;
2317 }
2318
2319 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaObjectListItemEx(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaObjectListItemEx *r)
2320 {
2321         if (ndr_flags & NDR_SCALARS) {
2322                 NDR_CHECK(ndr_push_align(ndr, 4));
2323                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->next_object));
2324                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObject(ndr, NDR_SCALARS, &r->object));
2325                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_nc_prefix));
2326                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parent_object_guid));
2327                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->meta_data_ctr));
2328         }
2329         if (ndr_flags & NDR_BUFFERS) {
2330                 if (r->next_object) {
2331                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectListItemEx(ndr, NDR_SCALARS|NDR_BUFFERS, r->next_object));
2332                 }
2333                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObject(ndr, NDR_BUFFERS, &r->object));
2334                 if (r->parent_object_guid) {
2335                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->parent_object_guid));
2336                 }
2337                 if (r->meta_data_ctr) {
2338                         NDR_CHECK(ndr_push_drsuapi_DsReplicaMetaDataCtr(ndr, NDR_SCALARS, r->meta_data_ctr));
2339                 }
2340         }
2341         return NDR_ERR_SUCCESS;
2342 }
2343
2344 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaObjectListItemEx(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaObjectListItemEx *r)
2345 {
2346         uint32_t _ptr_next_object;
2347         TALLOC_CTX *_mem_save_next_object_0;
2348         uint32_t _ptr_parent_object_guid;
2349         TALLOC_CTX *_mem_save_parent_object_guid_0;
2350         uint32_t _ptr_meta_data_ctr;
2351         TALLOC_CTX *_mem_save_meta_data_ctr_0;
2352         if (ndr_flags & NDR_SCALARS) {
2353                 NDR_CHECK(ndr_pull_align(ndr, 4));
2354                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_next_object));
2355                 if (_ptr_next_object) {
2356                         NDR_PULL_ALLOC(ndr, r->next_object);
2357                 } else {
2358                         r->next_object = NULL;
2359                 }
2360                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObject(ndr, NDR_SCALARS, &r->object));
2361                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_nc_prefix));
2362                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parent_object_guid));
2363                 if (_ptr_parent_object_guid) {
2364                         NDR_PULL_ALLOC(ndr, r->parent_object_guid);
2365                 } else {
2366                         r->parent_object_guid = NULL;
2367                 }
2368                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_meta_data_ctr));
2369                 if (_ptr_meta_data_ctr) {
2370                         NDR_PULL_ALLOC(ndr, r->meta_data_ctr);
2371                 } else {
2372                         r->meta_data_ctr = NULL;
2373                 }
2374         }
2375         if (ndr_flags & NDR_BUFFERS) {
2376                 if (r->next_object) {
2377                         _mem_save_next_object_0 = NDR_PULL_GET_MEM_CTX(ndr);
2378                         NDR_PULL_SET_MEM_CTX(ndr, r->next_object, 0);
2379                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectListItemEx(ndr, NDR_SCALARS|NDR_BUFFERS, r->next_object));
2380                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_next_object_0, 0);
2381                 }
2382                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObject(ndr, NDR_BUFFERS, &r->object));
2383                 if (r->parent_object_guid) {
2384                         _mem_save_parent_object_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
2385                         NDR_PULL_SET_MEM_CTX(ndr, r->parent_object_guid, 0);
2386                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->parent_object_guid));
2387                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parent_object_guid_0, 0);
2388                 }
2389                 if (r->meta_data_ctr) {
2390                         _mem_save_meta_data_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
2391                         NDR_PULL_SET_MEM_CTX(ndr, r->meta_data_ctr, 0);
2392                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaMetaDataCtr(ndr, NDR_SCALARS, r->meta_data_ctr));
2393                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_meta_data_ctr_0, 0);
2394                 }
2395         }
2396         return NDR_ERR_SUCCESS;
2397 }
2398
2399 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesCtr1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetNCChangesCtr1 *r)
2400 {
2401         if (ndr_flags & NDR_SCALARS) {
2402                 NDR_CHECK(ndr_push_align(ndr, 8));
2403                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_guid));
2404                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
2405                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->naming_context));
2406                 NDR_CHECK(ndr_push_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->old_highwatermark));
2407                 NDR_CHECK(ndr_push_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->new_highwatermark));
2408                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->uptodateness_vector));
2409                 NDR_CHECK(ndr_push_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_SCALARS, &r->mapping_ctr));
2410                 NDR_CHECK(ndr_push_drsuapi_DsExtendedError(ndr, NDR_SCALARS, r->extended_ret));
2411                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->object_count));
2412                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_drsuapi_DsGetNCChangesCtr1(r, ndr->flags) + 55));
2413                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->first_object));
2414                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->more_data));
2415         }
2416         if (ndr_flags & NDR_BUFFERS) {
2417                 if (r->naming_context) {
2418                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
2419                 }
2420                 if (r->uptodateness_vector) {
2421                         NDR_CHECK(ndr_push_drsuapi_DsReplicaCursorCtrEx(ndr, NDR_SCALARS, r->uptodateness_vector));
2422                 }
2423                 NDR_CHECK(ndr_push_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_BUFFERS, &r->mapping_ctr));
2424                 if (r->first_object) {
2425                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectListItemEx(ndr, NDR_SCALARS|NDR_BUFFERS, r->first_object));
2426                 }
2427         }
2428         return NDR_ERR_SUCCESS;
2429 }
2430
2431 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesCtr1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNCChangesCtr1 *r)
2432 {
2433         uint32_t _ptr_naming_context;
2434         TALLOC_CTX *_mem_save_naming_context_0;
2435         uint32_t _ptr_uptodateness_vector;
2436         TALLOC_CTX *_mem_save_uptodateness_vector_0;
2437         uint32_t _ptr_first_object;
2438         TALLOC_CTX *_mem_save_first_object_0;
2439         if (ndr_flags & NDR_SCALARS) {
2440                 NDR_CHECK(ndr_pull_align(ndr, 8));
2441                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_guid));
2442                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
2443                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_naming_context));
2444                 if (_ptr_naming_context) {
2445                         NDR_PULL_ALLOC(ndr, r->naming_context);
2446                 } else {
2447                         r->naming_context = NULL;
2448                 }
2449                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->old_highwatermark));
2450                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->new_highwatermark));
2451                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_uptodateness_vector));
2452                 if (_ptr_uptodateness_vector) {
2453                         NDR_PULL_ALLOC(ndr, r->uptodateness_vector);
2454                 } else {
2455                         r->uptodateness_vector = NULL;
2456                 }
2457                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_SCALARS, &r->mapping_ctr));
2458                 NDR_CHECK(ndr_pull_drsuapi_DsExtendedError(ndr, NDR_SCALARS, &r->extended_ret));
2459                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->object_count));
2460                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size));
2461                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_first_object));
2462                 if (_ptr_first_object) {
2463                         NDR_PULL_ALLOC(ndr, r->first_object);
2464                 } else {
2465                         r->first_object = NULL;
2466                 }
2467                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->more_data));
2468         }
2469         if (ndr_flags & NDR_BUFFERS) {
2470                 if (r->naming_context) {
2471                         _mem_save_naming_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
2472                         NDR_PULL_SET_MEM_CTX(ndr, r->naming_context, 0);
2473                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
2474                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_naming_context_0, 0);
2475                 }
2476                 if (r->uptodateness_vector) {
2477                         _mem_save_uptodateness_vector_0 = NDR_PULL_GET_MEM_CTX(ndr);
2478                         NDR_PULL_SET_MEM_CTX(ndr, r->uptodateness_vector, 0);
2479                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursorCtrEx(ndr, NDR_SCALARS, r->uptodateness_vector));
2480                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_uptodateness_vector_0, 0);
2481                 }
2482                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_BUFFERS, &r->mapping_ctr));
2483                 if (r->first_object) {
2484                         _mem_save_first_object_0 = NDR_PULL_GET_MEM_CTX(ndr);
2485                         NDR_PULL_SET_MEM_CTX(ndr, r->first_object, 0);
2486                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectListItemEx(ndr, NDR_SCALARS|NDR_BUFFERS, r->first_object));
2487                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_first_object_0, 0);
2488                 }
2489         }
2490         return NDR_ERR_SUCCESS;
2491 }
2492
2493 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesCtr1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesCtr1 *r)
2494 {
2495         ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesCtr1");
2496         ndr->depth++;
2497         ndr_print_GUID(ndr, "source_dsa_guid", &r->source_dsa_guid);
2498         ndr_print_GUID(ndr, "source_dsa_invocation_id", &r->source_dsa_invocation_id);
2499         ndr_print_ptr(ndr, "naming_context", r->naming_context);
2500         ndr->depth++;
2501         if (r->naming_context) {
2502                 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "naming_context", r->naming_context);
2503         }
2504         ndr->depth--;
2505         ndr_print_drsuapi_DsReplicaHighWaterMark(ndr, "old_highwatermark", &r->old_highwatermark);
2506         ndr_print_drsuapi_DsReplicaHighWaterMark(ndr, "new_highwatermark", &r->new_highwatermark);
2507         ndr_print_ptr(ndr, "uptodateness_vector", r->uptodateness_vector);
2508         ndr->depth++;
2509         if (r->uptodateness_vector) {
2510                 ndr_print_drsuapi_DsReplicaCursorCtrEx(ndr, "uptodateness_vector", r->uptodateness_vector);
2511         }
2512         ndr->depth--;
2513         ndr_print_drsuapi_DsReplicaOIDMapping_Ctr(ndr, "mapping_ctr", &r->mapping_ctr);
2514         ndr_print_drsuapi_DsExtendedError(ndr, "extended_ret", r->extended_ret);
2515         ndr_print_uint32(ndr, "object_count", r->object_count);
2516         ndr_print_uint32(ndr, "__ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_drsuapi_DsGetNCChangesCtr1(r, ndr->flags) + 55:r->__ndr_size);
2517         ndr_print_ptr(ndr, "first_object", r->first_object);
2518         ndr->depth++;
2519         if (r->first_object) {
2520                 ndr_print_drsuapi_DsReplicaObjectListItemEx(ndr, "first_object", r->first_object);
2521         }
2522         ndr->depth--;
2523         ndr_print_uint32(ndr, "more_data", r->more_data);
2524         ndr->depth--;
2525 }
2526
2527 _PUBLIC_ size_t ndr_size_drsuapi_DsGetNCChangesCtr1(const struct drsuapi_DsGetNCChangesCtr1 *r, int flags)
2528 {
2529         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_drsuapi_DsGetNCChangesCtr1);
2530 }
2531
2532 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsLinkedAttributeFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
2533 {
2534         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
2535         return NDR_ERR_SUCCESS;
2536 }
2537
2538 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsLinkedAttributeFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
2539 {
2540         uint32_t v;
2541         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
2542         *r = v;
2543         return NDR_ERR_SUCCESS;
2544 }
2545
2546 _PUBLIC_ void ndr_print_drsuapi_DsLinkedAttributeFlags(struct ndr_print *ndr, const char *name, uint32_t r)
2547 {
2548         ndr_print_uint32(ndr, name, r);
2549         ndr->depth++;
2550         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_LINKED_ATTRIBUTE_FLAG_ACTIVE", DRSUAPI_DS_LINKED_ATTRIBUTE_FLAG_ACTIVE, r);
2551         ndr->depth--;
2552 }
2553
2554 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaLinkedAttribute(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaLinkedAttribute *r)
2555 {
2556         if (ndr_flags & NDR_SCALARS) {
2557                 NDR_CHECK(ndr_push_align(ndr, 8));
2558                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->identifier));
2559                 NDR_CHECK(ndr_push_drsuapi_DsAttributeId(ndr, NDR_SCALARS, r->attid));
2560                 NDR_CHECK(ndr_push_drsuapi_DsAttributeValue(ndr, NDR_SCALARS, &r->value));
2561                 NDR_CHECK(ndr_push_drsuapi_DsLinkedAttributeFlags(ndr, NDR_SCALARS, r->flags));
2562                 NDR_CHECK(ndr_push_NTTIME_1sec(ndr, NDR_SCALARS, r->originating_add_time));
2563                 NDR_CHECK(ndr_push_drsuapi_DsReplicaMetaData(ndr, NDR_SCALARS, &r->meta_data));
2564         }
2565         if (ndr_flags & NDR_BUFFERS) {
2566                 if (r->identifier) {
2567                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->identifier));
2568                 }
2569                 NDR_CHECK(ndr_push_drsuapi_DsAttributeValue(ndr, NDR_BUFFERS, &r->value));
2570         }
2571         return NDR_ERR_SUCCESS;
2572 }
2573
2574 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaLinkedAttribute(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaLinkedAttribute *r)
2575 {
2576         uint32_t _ptr_identifier;
2577         TALLOC_CTX *_mem_save_identifier_0;
2578         if (ndr_flags & NDR_SCALARS) {
2579                 NDR_CHECK(ndr_pull_align(ndr, 8));
2580                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_identifier));
2581                 if (_ptr_identifier) {
2582                         NDR_PULL_ALLOC(ndr, r->identifier);
2583                 } else {
2584                         r->identifier = NULL;
2585                 }
2586                 NDR_CHECK(ndr_pull_drsuapi_DsAttributeId(ndr, NDR_SCALARS, &r->attid));
2587                 NDR_CHECK(ndr_pull_drsuapi_DsAttributeValue(ndr, NDR_SCALARS, &r->value));
2588                 NDR_CHECK(ndr_pull_drsuapi_DsLinkedAttributeFlags(ndr, NDR_SCALARS, &r->flags));
2589                 NDR_CHECK(ndr_pull_NTTIME_1sec(ndr, NDR_SCALARS, &r->originating_add_time));
2590                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaMetaData(ndr, NDR_SCALARS, &r->meta_data));
2591         }
2592         if (ndr_flags & NDR_BUFFERS) {
2593                 if (r->identifier) {
2594                         _mem_save_identifier_0 = NDR_PULL_GET_MEM_CTX(ndr);
2595                         NDR_PULL_SET_MEM_CTX(ndr, r->identifier, 0);
2596                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->identifier));
2597                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_identifier_0, 0);
2598                 }
2599                 NDR_CHECK(ndr_pull_drsuapi_DsAttributeValue(ndr, NDR_BUFFERS, &r->value));
2600         }
2601         return NDR_ERR_SUCCESS;
2602 }
2603
2604 _PUBLIC_ void ndr_print_drsuapi_DsReplicaLinkedAttribute(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaLinkedAttribute *r)
2605 {
2606         ndr_print_struct(ndr, name, "drsuapi_DsReplicaLinkedAttribute");
2607         ndr->depth++;
2608         ndr_print_ptr(ndr, "identifier", r->identifier);
2609         ndr->depth++;
2610         if (r->identifier) {
2611                 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "identifier", r->identifier);
2612         }
2613         ndr->depth--;
2614         ndr_print_drsuapi_DsAttributeId(ndr, "attid", r->attid);
2615         ndr_print_drsuapi_DsAttributeValue(ndr, "value", &r->value);
2616         ndr_print_drsuapi_DsLinkedAttributeFlags(ndr, "flags", r->flags);
2617         ndr_print_NTTIME_1sec(ndr, "originating_add_time", r->originating_add_time);
2618         ndr_print_drsuapi_DsReplicaMetaData(ndr, "meta_data", &r->meta_data);
2619         ndr->depth--;
2620 }
2621
2622 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesCtr6(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetNCChangesCtr6 *r)
2623 {
2624         uint32_t cntr_linked_attributes_1;
2625         if (ndr_flags & NDR_SCALARS) {
2626                 NDR_CHECK(ndr_push_align(ndr, 8));
2627                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_guid));
2628                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
2629                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->naming_context));
2630                 NDR_CHECK(ndr_push_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->old_highwatermark));
2631                 NDR_CHECK(ndr_push_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->new_highwatermark));
2632                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->uptodateness_vector));
2633                 NDR_CHECK(ndr_push_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_SCALARS, &r->mapping_ctr));
2634                 NDR_CHECK(ndr_push_drsuapi_DsExtendedError(ndr, NDR_SCALARS, r->extended_ret));
2635                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->object_count));
2636                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_drsuapi_DsGetNCChangesCtr6(r, ndr->flags) + 55));
2637                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->first_object));
2638                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->more_data));
2639                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nc_object_count));
2640                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nc_linked_attributes_count));
2641                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->linked_attributes_count));
2642                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->linked_attributes));
2643                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->drs_error));
2644         }
2645         if (ndr_flags & NDR_BUFFERS) {
2646                 if (r->naming_context) {
2647                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
2648                 }
2649                 if (r->uptodateness_vector) {
2650                         NDR_CHECK(ndr_push_drsuapi_DsReplicaCursor2CtrEx(ndr, NDR_SCALARS, r->uptodateness_vector));
2651                 }
2652                 NDR_CHECK(ndr_push_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_BUFFERS, &r->mapping_ctr));
2653                 if (r->first_object) {
2654                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectListItemEx(ndr, NDR_SCALARS|NDR_BUFFERS, r->first_object));
2655                 }
2656                 if (r->linked_attributes) {
2657                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->linked_attributes_count));
2658                         for (cntr_linked_attributes_1 = 0; cntr_linked_attributes_1 < r->linked_attributes_count; cntr_linked_attributes_1++) {
2659                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaLinkedAttribute(ndr, NDR_SCALARS, &r->linked_attributes[cntr_linked_attributes_1]));
2660                         }
2661                         for (cntr_linked_attributes_1 = 0; cntr_linked_attributes_1 < r->linked_attributes_count; cntr_linked_attributes_1++) {
2662                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaLinkedAttribute(ndr, NDR_BUFFERS, &r->linked_attributes[cntr_linked_attributes_1]));
2663                         }
2664                 }
2665         }
2666         return NDR_ERR_SUCCESS;
2667 }
2668
2669 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesCtr6(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNCChangesCtr6 *r)
2670 {
2671         uint32_t _ptr_naming_context;
2672         TALLOC_CTX *_mem_save_naming_context_0;
2673         uint32_t _ptr_uptodateness_vector;
2674         TALLOC_CTX *_mem_save_uptodateness_vector_0;
2675         uint32_t _ptr_first_object;
2676         TALLOC_CTX *_mem_save_first_object_0;
2677         uint32_t _ptr_linked_attributes;
2678         uint32_t cntr_linked_attributes_1;
2679         TALLOC_CTX *_mem_save_linked_attributes_0;
2680         TALLOC_CTX *_mem_save_linked_attributes_1;
2681         if (ndr_flags & NDR_SCALARS) {
2682                 NDR_CHECK(ndr_pull_align(ndr, 8));
2683                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_guid));
2684                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
2685                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_naming_context));
2686                 if (_ptr_naming_context) {
2687                         NDR_PULL_ALLOC(ndr, r->naming_context);
2688                 } else {
2689                         r->naming_context = NULL;
2690                 }
2691                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->old_highwatermark));
2692                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->new_highwatermark));
2693                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_uptodateness_vector));
2694                 if (_ptr_uptodateness_vector) {
2695                         NDR_PULL_ALLOC(ndr, r->uptodateness_vector);
2696                 } else {
2697                         r->uptodateness_vector = NULL;
2698                 }
2699                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_SCALARS, &r->mapping_ctr));
2700                 NDR_CHECK(ndr_pull_drsuapi_DsExtendedError(ndr, NDR_SCALARS, &r->extended_ret));
2701                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->object_count));
2702                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size));
2703                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_first_object));
2704                 if (_ptr_first_object) {
2705                         NDR_PULL_ALLOC(ndr, r->first_object);
2706                 } else {
2707                         r->first_object = NULL;
2708                 }
2709                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->more_data));
2710                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nc_object_count));
2711                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nc_linked_attributes_count));
2712                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->linked_attributes_count));
2713                 if (r->linked_attributes_count < 0 || r->linked_attributes_count > 1048576) {
2714                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
2715                 }
2716                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_linked_attributes));
2717                 if (_ptr_linked_attributes) {
2718                         NDR_PULL_ALLOC(ndr, r->linked_attributes);
2719                 } else {
2720                         r->linked_attributes = NULL;
2721                 }
2722                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->drs_error));
2723         }
2724         if (ndr_flags & NDR_BUFFERS) {
2725                 if (r->naming_context) {
2726                         _mem_save_naming_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
2727                         NDR_PULL_SET_MEM_CTX(ndr, r->naming_context, 0);
2728                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
2729                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_naming_context_0, 0);
2730                 }
2731                 if (r->uptodateness_vector) {
2732                         _mem_save_uptodateness_vector_0 = NDR_PULL_GET_MEM_CTX(ndr);
2733                         NDR_PULL_SET_MEM_CTX(ndr, r->uptodateness_vector, 0);
2734                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursor2CtrEx(ndr, NDR_SCALARS, r->uptodateness_vector));
2735                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_uptodateness_vector_0, 0);
2736                 }
2737                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_BUFFERS, &r->mapping_ctr));
2738                 if (r->first_object) {
2739                         _mem_save_first_object_0 = NDR_PULL_GET_MEM_CTX(ndr);
2740                         NDR_PULL_SET_MEM_CTX(ndr, r->first_object, 0);
2741                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectListItemEx(ndr, NDR_SCALARS|NDR_BUFFERS, r->first_object));
2742                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_first_object_0, 0);
2743                 }
2744                 if (r->linked_attributes) {
2745                         _mem_save_linked_attributes_0 = NDR_PULL_GET_MEM_CTX(ndr);
2746                         NDR_PULL_SET_MEM_CTX(ndr, r->linked_attributes, 0);
2747                         NDR_CHECK(ndr_pull_array_size(ndr, &r->linked_attributes));
2748                         NDR_PULL_ALLOC_N(ndr, r->linked_attributes, ndr_get_array_size(ndr, &r->linked_attributes));
2749                         _mem_save_linked_attributes_1 = NDR_PULL_GET_MEM_CTX(ndr);
2750                         NDR_PULL_SET_MEM_CTX(ndr, r->linked_attributes, 0);
2751                         for (cntr_linked_attributes_1 = 0; cntr_linked_attributes_1 < r->linked_attributes_count; cntr_linked_attributes_1++) {
2752                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaLinkedAttribute(ndr, NDR_SCALARS, &r->linked_attributes[cntr_linked_attributes_1]));
2753                         }
2754                         for (cntr_linked_attributes_1 = 0; cntr_linked_attributes_1 < r->linked_attributes_count; cntr_linked_attributes_1++) {
2755                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaLinkedAttribute(ndr, NDR_BUFFERS, &r->linked_attributes[cntr_linked_attributes_1]));
2756                         }
2757                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_linked_attributes_1, 0);
2758                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_linked_attributes_0, 0);
2759                 }
2760                 if (r->linked_attributes) {
2761                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->linked_attributes, r->linked_attributes_count));
2762                 }
2763         }
2764         return NDR_ERR_SUCCESS;
2765 }
2766
2767 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesCtr6(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesCtr6 *r)
2768 {
2769         uint32_t cntr_linked_attributes_1;
2770         ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesCtr6");
2771         ndr->depth++;
2772         ndr_print_GUID(ndr, "source_dsa_guid", &r->source_dsa_guid);
2773         ndr_print_GUID(ndr, "source_dsa_invocation_id", &r->source_dsa_invocation_id);
2774         ndr_print_ptr(ndr, "naming_context", r->naming_context);
2775         ndr->depth++;
2776         if (r->naming_context) {
2777                 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "naming_context", r->naming_context);
2778         }
2779         ndr->depth--;
2780         ndr_print_drsuapi_DsReplicaHighWaterMark(ndr, "old_highwatermark", &r->old_highwatermark);
2781         ndr_print_drsuapi_DsReplicaHighWaterMark(ndr, "new_highwatermark", &r->new_highwatermark);
2782         ndr_print_ptr(ndr, "uptodateness_vector", r->uptodateness_vector);
2783         ndr->depth++;
2784         if (r->uptodateness_vector) {
2785                 ndr_print_drsuapi_DsReplicaCursor2CtrEx(ndr, "uptodateness_vector", r->uptodateness_vector);
2786         }
2787         ndr->depth--;
2788         ndr_print_drsuapi_DsReplicaOIDMapping_Ctr(ndr, "mapping_ctr", &r->mapping_ctr);
2789         ndr_print_drsuapi_DsExtendedError(ndr, "extended_ret", r->extended_ret);
2790         ndr_print_uint32(ndr, "object_count", r->object_count);
2791         ndr_print_uint32(ndr, "__ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_drsuapi_DsGetNCChangesCtr6(r, ndr->flags) + 55:r->__ndr_size);
2792         ndr_print_ptr(ndr, "first_object", r->first_object);
2793         ndr->depth++;
2794         if (r->first_object) {
2795                 ndr_print_drsuapi_DsReplicaObjectListItemEx(ndr, "first_object", r->first_object);
2796         }
2797         ndr->depth--;
2798         ndr_print_uint32(ndr, "more_data", r->more_data);
2799         ndr_print_uint32(ndr, "nc_object_count", r->nc_object_count);
2800         ndr_print_uint32(ndr, "nc_linked_attributes_count", r->nc_linked_attributes_count);
2801         ndr_print_uint32(ndr, "linked_attributes_count", r->linked_attributes_count);
2802         ndr_print_ptr(ndr, "linked_attributes", r->linked_attributes);
2803         ndr->depth++;
2804         if (r->linked_attributes) {
2805                 ndr->print(ndr, "%s: ARRAY(%d)", "linked_attributes", (int)r->linked_attributes_count);
2806                 ndr->depth++;
2807                 for (cntr_linked_attributes_1=0;cntr_linked_attributes_1<r->linked_attributes_count;cntr_linked_attributes_1++) {
2808                         char *idx_1=NULL;
2809                         if (asprintf(&idx_1, "[%d]", cntr_linked_attributes_1) != -1) {
2810                                 ndr_print_drsuapi_DsReplicaLinkedAttribute(ndr, "linked_attributes", &r->linked_attributes[cntr_linked_attributes_1]);
2811                                 free(idx_1);
2812                         }
2813                 }
2814                 ndr->depth--;
2815         }
2816         ndr->depth--;
2817         ndr_print_WERROR(ndr, "drs_error", r->drs_error);
2818         ndr->depth--;
2819 }
2820
2821 _PUBLIC_ size_t ndr_size_drsuapi_DsGetNCChangesCtr6(const struct drsuapi_DsGetNCChangesCtr6 *r, int flags)
2822 {
2823         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_drsuapi_DsGetNCChangesCtr6);
2824 }
2825
2826 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesCtr1TS(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetNCChangesCtr1TS *r)
2827 {
2828         if (ndr_flags & NDR_SCALARS) {
2829                 NDR_CHECK(ndr_push_align(ndr, 1));
2830                 {
2831                         struct ndr_push *_ndr_ctr1;
2832                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_ctr1, 0xFFFFFC01, -1));
2833                         NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr1(_ndr_ctr1, NDR_SCALARS|NDR_BUFFERS, &r->ctr1));
2834                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_ctr1, 0xFFFFFC01, -1));
2835                 }
2836         }
2837         if (ndr_flags & NDR_BUFFERS) {
2838         }
2839         return NDR_ERR_SUCCESS;
2840 }
2841
2842 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesCtr1TS(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNCChangesCtr1TS *r)
2843 {
2844         if (ndr_flags & NDR_SCALARS) {
2845                 NDR_CHECK(ndr_pull_align(ndr, 1));
2846                 {
2847                         struct ndr_pull *_ndr_ctr1;
2848                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_ctr1, 0xFFFFFC01, -1));
2849                         NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr1(_ndr_ctr1, NDR_SCALARS|NDR_BUFFERS, &r->ctr1));
2850                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_ctr1, 0xFFFFFC01, -1));
2851                 }
2852         }
2853         if (ndr_flags & NDR_BUFFERS) {
2854         }
2855         return NDR_ERR_SUCCESS;
2856 }
2857
2858 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesCtr1TS(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesCtr1TS *r)
2859 {
2860         ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesCtr1TS");
2861         ndr->depth++;
2862         ndr_print_drsuapi_DsGetNCChangesCtr1(ndr, "ctr1", &r->ctr1);
2863         ndr->depth--;
2864 }
2865
2866 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesCtr6TS(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetNCChangesCtr6TS *r)
2867 {
2868         if (ndr_flags & NDR_SCALARS) {
2869                 NDR_CHECK(ndr_push_align(ndr, 1));
2870                 {
2871                         struct ndr_push *_ndr_ctr6;
2872                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_ctr6, 0xFFFFFC01, -1));
2873                         NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr6(_ndr_ctr6, NDR_SCALARS|NDR_BUFFERS, &r->ctr6));
2874                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_ctr6, 0xFFFFFC01, -1));
2875                 }
2876         }
2877         if (ndr_flags & NDR_BUFFERS) {
2878         }
2879         return NDR_ERR_SUCCESS;
2880 }
2881
2882 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesCtr6TS(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNCChangesCtr6TS *r)
2883 {
2884         if (ndr_flags & NDR_SCALARS) {
2885                 NDR_CHECK(ndr_pull_align(ndr, 1));
2886                 {
2887                         struct ndr_pull *_ndr_ctr6;
2888                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_ctr6, 0xFFFFFC01, -1));
2889                         NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr6(_ndr_ctr6, NDR_SCALARS|NDR_BUFFERS, &r->ctr6));
2890                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_ctr6, 0xFFFFFC01, -1));
2891                 }
2892         }
2893         if (ndr_flags & NDR_BUFFERS) {
2894         }
2895         return NDR_ERR_SUCCESS;
2896 }
2897
2898 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesCtr6TS(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesCtr6TS *r)
2899 {
2900         ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesCtr6TS");
2901         ndr->depth++;
2902         ndr_print_drsuapi_DsGetNCChangesCtr6(ndr, "ctr6", &r->ctr6);
2903         ndr->depth--;
2904 }
2905
2906 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesMSZIPCtr1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNCChangesMSZIPCtr1 *r)
2907 {
2908         uint32_t _ptr_ts;
2909         TALLOC_CTX *_mem_save_ts_0;
2910         if (ndr_flags & NDR_SCALARS) {
2911                 NDR_CHECK(ndr_pull_align(ndr, 4));
2912                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->decompressed_length));
2913                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->compressed_length));
2914                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ts));
2915                 if (_ptr_ts) {
2916                         NDR_PULL_ALLOC(ndr, r->ts);
2917                 } else {
2918                         r->ts = NULL;
2919                 }
2920         }
2921         if (ndr_flags & NDR_BUFFERS) {
2922                 if (r->ts) {
2923                         _mem_save_ts_0 = NDR_PULL_GET_MEM_CTX(ndr);
2924                         NDR_PULL_SET_MEM_CTX(ndr, r->ts, 0);
2925                         {
2926                                 struct ndr_pull *_ndr_ts;
2927                                 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_ts, 4, r->compressed_length));
2928                                 {
2929                                         struct ndr_pull *_ndr_ts_compressed;
2930                                         NDR_CHECK(ndr_pull_compression_start(_ndr_ts, &_ndr_ts_compressed, NDR_COMPRESSION_MSZIP, r->decompressed_length));
2931                                         NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr1TS(_ndr_ts_compressed, NDR_SCALARS|NDR_BUFFERS, r->ts));
2932                                         NDR_CHECK(ndr_pull_compression_end(_ndr_ts, _ndr_ts_compressed, NDR_COMPRESSION_MSZIP, r->decompressed_length));
2933                                 }
2934                                 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_ts, 4, r->compressed_length));
2935                         }
2936                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ts_0, 0);
2937                 }
2938         }
2939         return NDR_ERR_SUCCESS;
2940 }
2941
2942 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesMSZIPCtr1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesMSZIPCtr1 *r)
2943 {
2944         ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesMSZIPCtr1");
2945         ndr->depth++;
2946         ndr_print_uint32(ndr, "decompressed_length", r->decompressed_length);
2947         ndr_print_uint32(ndr, "compressed_length", r->compressed_length);
2948         ndr_print_ptr(ndr, "ts", r->ts);
2949         ndr->depth++;
2950         if (r->ts) {
2951                 ndr_print_drsuapi_DsGetNCChangesCtr1TS(ndr, "ts", r->ts);
2952         }
2953         ndr->depth--;
2954         ndr->depth--;
2955 }
2956
2957 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesMSZIPCtr6(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNCChangesMSZIPCtr6 *r)
2958 {
2959         uint32_t _ptr_ts;
2960         TALLOC_CTX *_mem_save_ts_0;
2961         if (ndr_flags & NDR_SCALARS) {
2962                 NDR_CHECK(ndr_pull_align(ndr, 4));
2963                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->decompressed_length));
2964                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->compressed_length));
2965                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ts));
2966                 if (_ptr_ts) {
2967                         NDR_PULL_ALLOC(ndr, r->ts);
2968                 } else {
2969                         r->ts = NULL;
2970                 }
2971         }
2972         if (ndr_flags & NDR_BUFFERS) {
2973                 if (r->ts) {
2974                         _mem_save_ts_0 = NDR_PULL_GET_MEM_CTX(ndr);
2975                         NDR_PULL_SET_MEM_CTX(ndr, r->ts, 0);
2976                         {
2977                                 struct ndr_pull *_ndr_ts;
2978                                 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_ts, 4, r->compressed_length));
2979                                 {
2980                                         struct ndr_pull *_ndr_ts_compressed;
2981                                         NDR_CHECK(ndr_pull_compression_start(_ndr_ts, &_ndr_ts_compressed, NDR_COMPRESSION_MSZIP, r->decompressed_length));
2982                                         NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr6TS(_ndr_ts_compressed, NDR_SCALARS|NDR_BUFFERS, r->ts));
2983                                         NDR_CHECK(ndr_pull_compression_end(_ndr_ts, _ndr_ts_compressed, NDR_COMPRESSION_MSZIP, r->decompressed_length));
2984                                 }
2985                                 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_ts, 4, r->compressed_length));
2986                         }
2987                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ts_0, 0);
2988                 }
2989         }
2990         return NDR_ERR_SUCCESS;
2991 }
2992
2993 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesMSZIPCtr6(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesMSZIPCtr6 *r)
2994 {
2995         ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesMSZIPCtr6");
2996         ndr->depth++;
2997         ndr_print_uint32(ndr, "decompressed_length", r->decompressed_length);
2998         ndr_print_uint32(ndr, "compressed_length", r->compressed_length);
2999         ndr_print_ptr(ndr, "ts", r->ts);
3000         ndr->depth++;
3001         if (r->ts) {
3002                 ndr_print_drsuapi_DsGetNCChangesCtr6TS(ndr, "ts", r->ts);
3003         }
3004         ndr->depth--;
3005         ndr->depth--;
3006 }
3007
3008 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesXPRESSCtr1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNCChangesXPRESSCtr1 *r)
3009 {
3010         uint32_t _ptr_ts;
3011         TALLOC_CTX *_mem_save_ts_0;
3012         if (ndr_flags & NDR_SCALARS) {
3013                 NDR_CHECK(ndr_pull_align(ndr, 4));
3014                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->decompressed_length));
3015                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->compressed_length));
3016                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ts));
3017                 if (_ptr_ts) {
3018                         NDR_PULL_ALLOC(ndr, r->ts);
3019                 } else {
3020                         r->ts = NULL;
3021                 }
3022         }
3023         if (ndr_flags & NDR_BUFFERS) {
3024                 if (r->ts) {
3025                         _mem_save_ts_0 = NDR_PULL_GET_MEM_CTX(ndr);
3026                         NDR_PULL_SET_MEM_CTX(ndr, r->ts, 0);
3027                         {
3028                                 struct ndr_pull *_ndr_ts;
3029                                 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_ts, 4, r->compressed_length));
3030                                 {
3031                                         struct ndr_pull *_ndr_ts_compressed;
3032                                         NDR_CHECK(ndr_pull_compression_start(_ndr_ts, &_ndr_ts_compressed, NDR_COMPRESSION_XPRESS, r->decompressed_length));
3033                                         NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr1TS(_ndr_ts_compressed, NDR_SCALARS|NDR_BUFFERS, r->ts));
3034                                         NDR_CHECK(ndr_pull_compression_end(_ndr_ts, _ndr_ts_compressed, NDR_COMPRESSION_XPRESS, r->decompressed_length));
3035                                 }
3036                                 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_ts, 4, r->compressed_length));
3037                         }
3038                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ts_0, 0);
3039                 }
3040         }
3041         return NDR_ERR_SUCCESS;
3042 }
3043
3044 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesXPRESSCtr1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesXPRESSCtr1 *r)
3045 {
3046         ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesXPRESSCtr1");
3047         ndr->depth++;
3048         ndr_print_uint32(ndr, "decompressed_length", r->decompressed_length);
3049         ndr_print_uint32(ndr, "compressed_length", r->compressed_length);
3050         ndr_print_ptr(ndr, "ts", r->ts);
3051         ndr->depth++;
3052         if (r->ts) {
3053                 ndr_print_drsuapi_DsGetNCChangesCtr1TS(ndr, "ts", r->ts);
3054         }
3055         ndr->depth--;
3056         ndr->depth--;
3057 }
3058
3059 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesXPRESSCtr6(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNCChangesXPRESSCtr6 *r)
3060 {
3061         uint32_t _ptr_ts;
3062         TALLOC_CTX *_mem_save_ts_0;
3063         if (ndr_flags & NDR_SCALARS) {
3064                 NDR_CHECK(ndr_pull_align(ndr, 4));
3065                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->decompressed_length));
3066                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->compressed_length));
3067                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ts));
3068                 if (_ptr_ts) {
3069                         NDR_PULL_ALLOC(ndr, r->ts);
3070                 } else {
3071                         r->ts = NULL;
3072                 }
3073         }
3074         if (ndr_flags & NDR_BUFFERS) {
3075                 if (r->ts) {
3076                         _mem_save_ts_0 = NDR_PULL_GET_MEM_CTX(ndr);
3077                         NDR_PULL_SET_MEM_CTX(ndr, r->ts, 0);
3078                         {
3079                                 struct ndr_pull *_ndr_ts;
3080                                 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_ts, 4, r->compressed_length));
3081                                 {
3082                                         struct ndr_pull *_ndr_ts_compressed;
3083                                         NDR_CHECK(ndr_pull_compression_start(_ndr_ts, &_ndr_ts_compressed, NDR_COMPRESSION_XPRESS, r->decompressed_length));
3084                                         NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr6TS(_ndr_ts_compressed, NDR_SCALARS|NDR_BUFFERS, r->ts));
3085                                         NDR_CHECK(ndr_pull_compression_end(_ndr_ts, _ndr_ts_compressed, NDR_COMPRESSION_XPRESS, r->decompressed_length));
3086                                 }
3087                                 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_ts, 4, r->compressed_length));
3088                         }
3089                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ts_0, 0);
3090                 }
3091         }
3092         return NDR_ERR_SUCCESS;
3093 }
3094
3095 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesXPRESSCtr6(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesXPRESSCtr6 *r)
3096 {
3097         ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesXPRESSCtr6");
3098         ndr->depth++;
3099         ndr_print_uint32(ndr, "decompressed_length", r->decompressed_length);
3100         ndr_print_uint32(ndr, "compressed_length", r->compressed_length);
3101         ndr_print_ptr(ndr, "ts", r->ts);
3102         ndr->depth++;
3103         if (r->ts) {
3104                 ndr_print_drsuapi_DsGetNCChangesCtr6TS(ndr, "ts", r->ts);
3105         }
3106         ndr->depth--;
3107         ndr->depth--;
3108 }
3109
3110 static enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesCompressionType(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsGetNCChangesCompressionType r)
3111 {
3112         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
3113         return NDR_ERR_SUCCESS;
3114 }
3115
3116 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesCompressionType(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsGetNCChangesCompressionType *r)
3117 {
3118         uint16_t v;
3119         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
3120         *r = v;
3121         return NDR_ERR_SUCCESS;
3122 }
3123
3124 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesCompressionType(struct ndr_print *ndr, const char *name, enum drsuapi_DsGetNCChangesCompressionType r)
3125 {
3126         const char *val = NULL;
3127
3128         switch (r) {
3129                 case DRSUAPI_COMPRESSION_TYPE_MSZIP: val = "DRSUAPI_COMPRESSION_TYPE_MSZIP"; break;
3130                 case DRSUAPI_COMPRESSION_TYPE_XPRESS: val = "DRSUAPI_COMPRESSION_TYPE_XPRESS"; break;
3131         }
3132         ndr_print_enum(ndr, name, "ENUM", val, r);
3133 }
3134
3135 static enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesCompressedCtr(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsGetNCChangesCompressedCtr *r)
3136 {
3137         {
3138                 uint32_t _flags_save_UNION = ndr->flags;
3139                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
3140                 if (ndr_flags & NDR_SCALARS) {
3141                         int level = ndr_push_get_switch_value(ndr, r);
3142                         switch (level) {
3143                                 case 1|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16): {
3144                                         NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesMSZIPCtr1(ndr, NDR_SCALARS, &r->mszip1));
3145                                 break; }
3146
3147                                 case 6|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16): {
3148                                         NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesMSZIPCtr6(ndr, NDR_SCALARS, &r->mszip6));
3149                                 break; }
3150
3151                                 case 1|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16): {
3152                                         NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesXPRESSCtr1(ndr, NDR_SCALARS, &r->xpress1));
3153                                 break; }
3154
3155                                 case 6|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16): {
3156                                         NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesXPRESSCtr6(ndr, NDR_SCALARS, &r->xpress6));
3157                                 break; }
3158
3159                                 default:
3160                                         return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3161                         }
3162                 }
3163                 if (ndr_flags & NDR_BUFFERS) {
3164                         int level = ndr_push_get_switch_value(ndr, r);
3165                         switch (level) {
3166                                 case 1|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16):
3167                                         NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesMSZIPCtr1(ndr, NDR_BUFFERS, &r->mszip1));
3168                                 break;
3169
3170                                 case 6|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16):
3171                                         NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesMSZIPCtr6(ndr, NDR_BUFFERS, &r->mszip6));
3172                                 break;
3173
3174                                 case 1|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16):
3175                                         NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesXPRESSCtr1(ndr, NDR_BUFFERS, &r->xpress1));
3176                                 break;
3177
3178                                 case 6|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16):
3179                                         NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesXPRESSCtr6(ndr, NDR_BUFFERS, &r->xpress6));
3180                                 break;
3181
3182                                 default:
3183                                         return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3184                         }
3185                 }
3186                 ndr->flags = _flags_save_UNION;
3187         }
3188         return NDR_ERR_SUCCESS;
3189 }
3190
3191 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesCompressedCtr(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsGetNCChangesCompressedCtr *r)
3192 {
3193         int level;
3194         {
3195                 uint32_t _flags_save_UNION = ndr->flags;
3196                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
3197                 level = ndr_pull_get_switch_value(ndr, r);
3198                 if (ndr_flags & NDR_SCALARS) {
3199                         switch (level) {
3200                                 case 1|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16): {
3201                                         NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesMSZIPCtr1(ndr, NDR_SCALARS, &r->mszip1));
3202                                 break; }
3203
3204                                 case 6|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16): {
3205                                         NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesMSZIPCtr6(ndr, NDR_SCALARS, &r->mszip6));
3206                                 break; }
3207
3208                                 case 1|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16): {
3209                                         NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesXPRESSCtr1(ndr, NDR_SCALARS, &r->xpress1));
3210                                 break; }
3211
3212                                 case 6|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16): {
3213                                         NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesXPRESSCtr6(ndr, NDR_SCALARS, &r->xpress6));
3214                                 break; }
3215
3216                                 default:
3217                                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3218                         }
3219                 }
3220                 if (ndr_flags & NDR_BUFFERS) {
3221                         switch (level) {
3222                                 case 1|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16):
3223                                         NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesMSZIPCtr1(ndr, NDR_BUFFERS, &r->mszip1));
3224                                 break;
3225
3226                                 case 6|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16):
3227                                         NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesMSZIPCtr6(ndr, NDR_BUFFERS, &r->mszip6));
3228                                 break;
3229
3230                                 case 1|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16):
3231                                         NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesXPRESSCtr1(ndr, NDR_BUFFERS, &r->xpress1));
3232                                 break;
3233
3234                                 case 6|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16):
3235                                         NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesXPRESSCtr6(ndr, NDR_BUFFERS, &r->xpress6));
3236                                 break;
3237
3238                                 default:
3239                                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3240                         }
3241                 }
3242                 ndr->flags = _flags_save_UNION;
3243         }
3244         return NDR_ERR_SUCCESS;
3245 }
3246
3247 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesCompressedCtr(struct ndr_print *ndr, const char *name, const union drsuapi_DsGetNCChangesCompressedCtr *r)
3248 {
3249         int level;
3250         {
3251                 uint32_t _flags_save_UNION = ndr->flags;
3252                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
3253                 level = ndr_print_get_switch_value(ndr, r);
3254                 ndr_print_union(ndr, name, level, "drsuapi_DsGetNCChangesCompressedCtr");
3255                 switch (level) {
3256                         case 1|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16):
3257                                 ndr_print_drsuapi_DsGetNCChangesMSZIPCtr1(ndr, "mszip1", &r->mszip1);
3258                         break;
3259
3260                         case 6|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16):
3261                                 ndr_print_drsuapi_DsGetNCChangesMSZIPCtr6(ndr, "mszip6", &r->mszip6);
3262                         break;
3263
3264                         case 1|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16):
3265                                 ndr_print_drsuapi_DsGetNCChangesXPRESSCtr1(ndr, "xpress1", &r->xpress1);
3266                         break;
3267
3268                         case 6|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16):
3269                                 ndr_print_drsuapi_DsGetNCChangesXPRESSCtr6(ndr, "xpress6", &r->xpress6);
3270                         break;
3271
3272                         default:
3273                                 ndr_print_bad_level(ndr, name, level);
3274                 }
3275                 ndr->flags = _flags_save_UNION;
3276         }
3277 }
3278
3279 static enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesCtr2(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetNCChangesCtr2 *r)
3280 {
3281         if (ndr_flags & NDR_SCALARS) {
3282                 NDR_CHECK(ndr_push_align(ndr, 4));
3283                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesMSZIPCtr1(ndr, NDR_SCALARS, &r->mszip1));
3284         }
3285         if (ndr_flags & NDR_BUFFERS) {
3286                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesMSZIPCtr1(ndr, NDR_BUFFERS, &r->mszip1));
3287         }
3288         return NDR_ERR_SUCCESS;
3289 }
3290
3291 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesCtr2(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNCChangesCtr2 *r)
3292 {
3293         if (ndr_flags & NDR_SCALARS) {
3294                 NDR_CHECK(ndr_pull_align(ndr, 4));
3295                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesMSZIPCtr1(ndr, NDR_SCALARS, &r->mszip1));
3296         }
3297         if (ndr_flags & NDR_BUFFERS) {
3298                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesMSZIPCtr1(ndr, NDR_BUFFERS, &r->mszip1));
3299         }
3300         return NDR_ERR_SUCCESS;
3301 }
3302
3303 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesCtr2(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesCtr2 *r)
3304 {
3305         ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesCtr2");
3306         ndr->depth++;
3307         ndr_print_drsuapi_DsGetNCChangesMSZIPCtr1(ndr, "mszip1", &r->mszip1);
3308         ndr->depth--;
3309 }
3310
3311 static enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesCtr7(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetNCChangesCtr7 *r)
3312 {
3313         if (ndr_flags & NDR_SCALARS) {
3314                 NDR_CHECK(ndr_push_align(ndr, 4));
3315                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->level));
3316                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCompressionType(ndr, NDR_SCALARS, r->type));
3317                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->ctr, r->level | (r->type << 16)));
3318                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCompressedCtr(ndr, NDR_SCALARS, &r->ctr));
3319         }
3320         if (ndr_flags & NDR_BUFFERS) {
3321                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCompressedCtr(ndr, NDR_BUFFERS, &r->ctr));
3322         }
3323         return NDR_ERR_SUCCESS;
3324 }
3325
3326 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesCtr7(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNCChangesCtr7 *r)
3327 {
3328         if (ndr_flags & NDR_SCALARS) {
3329                 NDR_CHECK(ndr_pull_align(ndr, 4));
3330                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->level));
3331                 if (r->level < 0 || r->level > 6) {
3332                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
3333                 }
3334                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCompressionType(ndr, NDR_SCALARS, &r->type));
3335                 if (r->type < 2 || r->type > 3) {
3336                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
3337                 }
3338                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->ctr, r->level | (r->type << 16)));
3339                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCompressedCtr(ndr, NDR_SCALARS, &r->ctr));
3340         }
3341         if (ndr_flags & NDR_BUFFERS) {
3342                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCompressedCtr(ndr, NDR_BUFFERS, &r->ctr));
3343         }
3344         return NDR_ERR_SUCCESS;
3345 }
3346
3347 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesCtr7(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesCtr7 *r)
3348 {
3349         ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesCtr7");
3350         ndr->depth++;
3351         ndr_print_int32(ndr, "level", r->level);
3352         ndr_print_drsuapi_DsGetNCChangesCompressionType(ndr, "type", r->type);
3353         ndr_print_set_switch_value(ndr, &r->ctr, r->level | (r->type << 16));
3354         ndr_print_drsuapi_DsGetNCChangesCompressedCtr(ndr, "ctr", &r->ctr);
3355         ndr->depth--;
3356 }
3357
3358 static enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesCtr(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsGetNCChangesCtr *r)
3359 {
3360         if (ndr_flags & NDR_SCALARS) {
3361                 int level = ndr_push_get_switch_value(ndr, r);
3362                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
3363                 switch (level) {
3364                         case 1: {
3365                                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr1(ndr, NDR_SCALARS, &r->ctr1));
3366                         break; }
3367
3368                         case 2: {
3369                                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr2(ndr, NDR_SCALARS, &r->ctr2));
3370                         break; }
3371
3372                         case 6: {
3373                                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr6(ndr, NDR_SCALARS, &r->ctr6));
3374                         break; }
3375
3376                         case 7: {
3377                                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr7(ndr, NDR_SCALARS, &r->ctr7));
3378                         break; }
3379
3380                         default:
3381                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3382                 }
3383         }
3384         if (ndr_flags & NDR_BUFFERS) {
3385                 int level = ndr_push_get_switch_value(ndr, r);
3386                 switch (level) {
3387                         case 1:
3388                                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr1(ndr, NDR_BUFFERS, &r->ctr1));
3389                         break;
3390
3391                         case 2:
3392                                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr2(ndr, NDR_BUFFERS, &r->ctr2));
3393                         break;
3394
3395                         case 6:
3396                                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr6(ndr, NDR_BUFFERS, &r->ctr6));
3397                         break;
3398
3399                         case 7:
3400                                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr7(ndr, NDR_BUFFERS, &r->ctr7));
3401                         break;
3402
3403                         default:
3404                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3405                 }
3406         }
3407         return NDR_ERR_SUCCESS;
3408 }
3409
3410 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesCtr(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsGetNCChangesCtr *r)
3411 {
3412         int level;
3413         int32_t _level;
3414         level = ndr_pull_get_switch_value(ndr, r);
3415         if (ndr_flags & NDR_SCALARS) {
3416                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
3417                 if (_level != level) {
3418                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
3419                 }
3420                 switch (level) {
3421                         case 1: {
3422                                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr1(ndr, NDR_SCALARS, &r->ctr1));
3423                         break; }
3424
3425                         case 2: {
3426                                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr2(ndr, NDR_SCALARS, &r->ctr2));
3427                         break; }
3428
3429                         case 6: {
3430                                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr6(ndr, NDR_SCALARS, &r->ctr6));
3431                         break; }
3432
3433                         case 7: {
3434                                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr7(ndr, NDR_SCALARS, &r->ctr7));
3435                         break; }
3436
3437                         default:
3438                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3439                 }
3440         }
3441         if (ndr_flags & NDR_BUFFERS) {
3442                 switch (level) {
3443                         case 1:
3444                                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr1(ndr, NDR_BUFFERS, &r->ctr1));
3445                         break;
3446
3447                         case 2:
3448                                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr2(ndr, NDR_BUFFERS, &r->ctr2));
3449                         break;
3450
3451                         case 6:
3452                                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr6(ndr, NDR_BUFFERS, &r->ctr6));
3453                         break;
3454
3455                         case 7:
3456                                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr7(ndr, NDR_BUFFERS, &r->ctr7));
3457                         break;
3458
3459                         default:
3460                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3461                 }
3462         }
3463         return NDR_ERR_SUCCESS;
3464 }
3465
3466 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesCtr(struct ndr_print *ndr, const char *name, const union drsuapi_DsGetNCChangesCtr *r)
3467 {
3468         int level;
3469         level = ndr_print_get_switch_value(ndr, r);
3470         ndr_print_union(ndr, name, level, "drsuapi_DsGetNCChangesCtr");
3471         switch (level) {
3472                 case 1:
3473                         ndr_print_drsuapi_DsGetNCChangesCtr1(ndr, "ctr1", &r->ctr1);
3474                 break;
3475
3476                 case 2:
3477                         ndr_print_drsuapi_DsGetNCChangesCtr2(ndr, "ctr2", &r->ctr2);
3478                 break;
3479
3480                 case 6:
3481                         ndr_print_drsuapi_DsGetNCChangesCtr6(ndr, "ctr6", &r->ctr6);
3482                 break;
3483
3484                 case 7:
3485                         ndr_print_drsuapi_DsGetNCChangesCtr7(ndr, "ctr7", &r->ctr7);
3486                 break;
3487
3488                 default:
3489                         ndr_print_bad_level(ndr, name, level);
3490         }
3491 }
3492
3493 static enum ndr_err_code ndr_push_drsuapi_DsReplicaUpdateRefsOptions(struct ndr_push *ndr, int ndr_flags, uint32_t r)
3494 {
3495         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
3496         return NDR_ERR_SUCCESS;
3497 }
3498
3499 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaUpdateRefsOptions(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
3500 {
3501         uint32_t v;
3502         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
3503         *r = v;
3504         return NDR_ERR_SUCCESS;
3505 }
3506
3507 _PUBLIC_ void ndr_print_drsuapi_DsReplicaUpdateRefsOptions(struct ndr_print *ndr, const char *name, uint32_t r)
3508 {
3509         ndr_print_uint32(ndr, name, r);
3510         ndr->depth++;
3511         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_UPDATE_ASYNCHRONOUS_OPERATION", DRSUAPI_DS_REPLICA_UPDATE_ASYNCHRONOUS_OPERATION, r);
3512         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_UPDATE_WRITEABLE", DRSUAPI_DS_REPLICA_UPDATE_WRITEABLE, r);
3513         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_UPDATE_ADD_REFERENCE", DRSUAPI_DS_REPLICA_UPDATE_ADD_REFERENCE, r);
3514         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_UPDATE_DELETE_REFERENCE", DRSUAPI_DS_REPLICA_UPDATE_DELETE_REFERENCE, r);
3515         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_UPDATE_0x00000010", DRSUAPI_DS_REPLICA_UPDATE_0x00000010, r);
3516         ndr->depth--;
3517 }
3518
3519 static enum ndr_err_code ndr_push_drsuapi_DsReplicaUpdateRefsRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaUpdateRefsRequest1 *r)
3520 {
3521         if (ndr_flags & NDR_SCALARS) {
3522                 NDR_CHECK(ndr_push_align(ndr, 4));
3523                 if (r->naming_context == NULL) {
3524                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3525                 }
3526                 NDR_CHECK(ndr_push_ref_ptr(ndr));
3527                 if (r->dest_dsa_dns_name == NULL) {
3528                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3529                 }
3530                 NDR_CHECK(ndr_push_ref_ptr(ndr));
3531                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->dest_dsa_guid));
3532                 NDR_CHECK(ndr_push_drsuapi_DsReplicaUpdateRefsOptions(ndr, NDR_SCALARS, r->options));
3533         }
3534         if (ndr_flags & NDR_BUFFERS) {
3535                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
3536                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dest_dsa_dns_name, CH_DOS)));
3537                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3538                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dest_dsa_dns_name, CH_DOS)));
3539                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dest_dsa_dns_name, ndr_charset_length(r->dest_dsa_dns_name, CH_DOS), sizeof(uint8_t), CH_DOS));
3540         }
3541         return NDR_ERR_SUCCESS;
3542 }
3543
3544 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaUpdateRefsRequest1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaUpdateRefsRequest1 *r)
3545 {
3546         uint32_t _ptr_naming_context;
3547         TALLOC_CTX *_mem_save_naming_context_0;
3548         uint32_t _ptr_dest_dsa_dns_name;
3549         if (ndr_flags & NDR_SCALARS) {
3550                 NDR_CHECK(ndr_pull_align(ndr, 4));
3551                 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_naming_context));
3552                 if (_ptr_naming_context) {
3553                         NDR_PULL_ALLOC(ndr, r->naming_context);
3554                 } else {
3555                         r->naming_context = NULL;
3556                 }
3557                 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_dest_dsa_dns_name));
3558                 if (_ptr_dest_dsa_dns_name) {
3559                         NDR_PULL_ALLOC(ndr, r->dest_dsa_dns_name);
3560                 } else {
3561                         r->dest_dsa_dns_name = NULL;
3562                 }
3563                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->dest_dsa_guid));
3564                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaUpdateRefsOptions(ndr, NDR_SCALARS, &r->options));
3565         }
3566         if (ndr_flags & NDR_BUFFERS) {
3567                 _mem_save_naming_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
3568                 NDR_PULL_SET_MEM_CTX(ndr, r->naming_context, 0);
3569                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
3570                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_naming_context_0, 0);
3571                 NDR_CHECK(ndr_pull_array_size(ndr, &r->dest_dsa_dns_name));
3572                 NDR_CHECK(ndr_pull_array_length(ndr, &r->dest_dsa_dns_name));
3573                 if (ndr_get_array_length(ndr, &r->dest_dsa_dns_name) > ndr_get_array_size(ndr, &r->dest_dsa_dns_name)) {
3574                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dest_dsa_dns_name), ndr_get_array_length(ndr, &r->dest_dsa_dns_name));
3575                 }
3576                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dest_dsa_dns_name), sizeof(uint8_t)));
3577                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dest_dsa_dns_name, ndr_get_array_length(ndr, &r->dest_dsa_dns_name), sizeof(uint8_t), CH_DOS));
3578         }
3579         return NDR_ERR_SUCCESS;
3580 }
3581
3582 _PUBLIC_ void ndr_print_drsuapi_DsReplicaUpdateRefsRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaUpdateRefsRequest1 *r)
3583 {
3584         ndr_print_struct(ndr, name, "drsuapi_DsReplicaUpdateRefsRequest1");
3585         ndr->depth++;
3586         ndr_print_ptr(ndr, "naming_context", r->naming_context);
3587         ndr->depth++;
3588         ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "naming_context", r->naming_context);
3589         ndr->depth--;
3590         ndr_print_ptr(ndr, "dest_dsa_dns_name", r->dest_dsa_dns_name);
3591         ndr->depth++;
3592         ndr_print_string(ndr, "dest_dsa_dns_name", r->dest_dsa_dns_name);
3593         ndr->depth--;
3594         ndr_print_GUID(ndr, "dest_dsa_guid", &r->dest_dsa_guid);
3595         ndr_print_drsuapi_DsReplicaUpdateRefsOptions(ndr, "options", r->options);
3596         ndr->depth--;
3597 }
3598
3599 static enum ndr_err_code ndr_push_drsuapi_DsReplicaUpdateRefsRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsReplicaUpdateRefsRequest *r)
3600 {
3601         if (ndr_flags & NDR_SCALARS) {
3602                 int level = ndr_push_get_switch_value(ndr, r);
3603                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
3604                 switch (level) {
3605                         case 1: {
3606                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaUpdateRefsRequest1(ndr, NDR_SCALARS, &r->req1));
3607                         break; }
3608
3609                         default:
3610                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3611                 }
3612         }
3613         if (ndr_flags & NDR_BUFFERS) {
3614                 int level = ndr_push_get_switch_value(ndr, r);
3615                 switch (level) {
3616                         case 1:
3617                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaUpdateRefsRequest1(ndr, NDR_BUFFERS, &r->req1));
3618                         break;
3619
3620                         default:
3621                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3622                 }
3623         }
3624         return NDR_ERR_SUCCESS;
3625 }
3626
3627 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaUpdateRefsRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsReplicaUpdateRefsRequest *r)
3628 {
3629         int level;
3630         int32_t _level;
3631         level = ndr_pull_get_switch_value(ndr, r);
3632         if (ndr_flags & NDR_SCALARS) {
3633                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
3634                 if (_level != level) {
3635                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
3636                 }
3637                 switch (level) {
3638                         case 1: {
3639                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaUpdateRefsRequest1(ndr, NDR_SCALARS, &r->req1));
3640                         break; }
3641
3642                         default:
3643                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3644                 }
3645         }
3646         if (ndr_flags & NDR_BUFFERS) {
3647                 switch (level) {
3648                         case 1:
3649                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaUpdateRefsRequest1(ndr, NDR_BUFFERS, &r->req1));
3650                         break;
3651
3652                         default:
3653                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3654                 }
3655         }
3656         return NDR_ERR_SUCCESS;
3657 }
3658
3659 _PUBLIC_ void ndr_print_drsuapi_DsReplicaUpdateRefsRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsReplicaUpdateRefsRequest *r)
3660 {
3661         int level;
3662         level = ndr_print_get_switch_value(ndr, r);
3663         ndr_print_union(ndr, name, level, "drsuapi_DsReplicaUpdateRefsRequest");
3664         switch (level) {
3665                 case 1:
3666                         ndr_print_drsuapi_DsReplicaUpdateRefsRequest1(ndr, "req1", &r->req1);
3667                 break;
3668
3669                 default:
3670                         ndr_print_bad_level(ndr, name, level);
3671         }
3672 }
3673
3674 static enum ndr_err_code ndr_push_drsuapi_DsReplicaAddOptions(struct ndr_push *ndr, int ndr_flags, uint32_t r)
3675 {
3676         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
3677         return NDR_ERR_SUCCESS;
3678 }
3679
3680 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaAddOptions(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
3681 {
3682         uint32_t v;
3683         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
3684         *r = v;
3685         return NDR_ERR_SUCCESS;
3686 }
3687
3688 _PUBLIC_ void ndr_print_drsuapi_DsReplicaAddOptions(struct ndr_print *ndr, const char *name, uint32_t r)
3689 {
3690         ndr_print_uint32(ndr, name, r);
3691         ndr->depth++;
3692         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_ADD_ASYNCHRONOUS_OPERATION", DRSUAPI_DS_REPLICA_ADD_ASYNCHRONOUS_OPERATION, r);
3693         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_ADD_WRITEABLE", DRSUAPI_DS_REPLICA_ADD_WRITEABLE, r);
3694         ndr->depth--;
3695 }
3696
3697 static enum ndr_err_code ndr_push_drsuapi_DsReplicaDeleteOptions(struct ndr_push *ndr, int ndr_flags, uint32_t r)
3698 {
3699         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
3700         return NDR_ERR_SUCCESS;
3701 }
3702
3703 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaDeleteOptions(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
3704 {
3705         uint32_t v;
3706         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
3707         *r = v;
3708         return NDR_ERR_SUCCESS;
3709 }
3710
3711 _PUBLIC_ void ndr_print_drsuapi_DsReplicaDeleteOptions(struct ndr_print *ndr, const char *name, uint32_t r)
3712 {
3713         ndr_print_uint32(ndr, name, r);
3714         ndr->depth++;
3715         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_DELETE_ASYNCHRONOUS_OPERATION", DRSUAPI_DS_REPLICA_DELETE_ASYNCHRONOUS_OPERATION, r);
3716         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_DELETE_WRITEABLE", DRSUAPI_DS_REPLICA_DELETE_WRITEABLE, r);
3717         ndr->depth--;
3718 }
3719
3720 static enum ndr_err_code ndr_push_drsuapi_DsReplicaModifyOptions(struct ndr_push *ndr, int ndr_flags, uint32_t r)
3721 {
3722         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
3723         return NDR_ERR_SUCCESS;
3724 }
3725
3726 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaModifyOptions(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
3727 {
3728         uint32_t v;
3729         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
3730         *r = v;
3731         return NDR_ERR_SUCCESS;
3732 }
3733
3734 _PUBLIC_ void ndr_print_drsuapi_DsReplicaModifyOptions(struct ndr_print *ndr, const char *name, uint32_t r)
3735 {
3736         ndr_print_uint32(ndr, name, r);
3737         ndr->depth++;
3738         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_MODIFY_ASYNCHRONOUS_OPERATION", DRSUAPI_DS_REPLICA_MODIFY_ASYNCHRONOUS_OPERATION, r);
3739         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_MODIFY_WRITEABLE", DRSUAPI_DS_REPLICA_MODIFY_WRITEABLE, r);
3740         ndr->depth--;
3741 }
3742
3743 static enum ndr_err_code ndr_push_drsuapi_DsMembershipType(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsMembershipType r)
3744 {
3745         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
3746         return NDR_ERR_SUCCESS;
3747 }
3748
3749 static enum ndr_err_code ndr_pull_drsuapi_DsMembershipType(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsMembershipType *r)
3750 {
3751         uint32_t v;
3752         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
3753         *r = v;
3754         return NDR_ERR_SUCCESS;
3755 }
3756
3757 _PUBLIC_ void ndr_print_drsuapi_DsMembershipType(struct ndr_print *ndr, const char *name, enum drsuapi_DsMembershipType r)
3758 {
3759         const char *val = NULL;
3760
3761         switch (r) {
3762                 case DRSUAPI_DS_MEMBERSHIP_TYPE_UNIVERSAL_AND_DOMAIN_GROUPS: val = "DRSUAPI_DS_MEMBERSHIP_TYPE_UNIVERSAL_AND_DOMAIN_GROUPS"; break;
3763                 case DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_LOCAL_GROUPS: val = "DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_LOCAL_GROUPS"; break;
3764                 case DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_GROUPS: val = "DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_GROUPS"; break;
3765                 case DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_LOCAL_GROUPS2: val = "DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_LOCAL_GROUPS2"; break;
3766                 case DRSUAPI_DS_MEMBERSHIP_TYPE_UNIVERSAL_GROUPS: val = "DRSUAPI_DS_MEMBERSHIP_TYPE_UNIVERSAL_GROUPS"; break;
3767                 case DRSUAPI_DS_MEMBERSHIP_TYPE_GROUPMEMBERS: val = "DRSUAPI_DS_MEMBERSHIP_TYPE_GROUPMEMBERS"; break;
3768                 case DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_GROUPS2: val = "DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_GROUPS2"; break;
3769         }
3770         ndr_print_enum(ndr, name, "ENUM", val, r);
3771 }
3772
3773 static enum ndr_err_code ndr_push_drsuapi_DsGetMembershipsCtr1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetMembershipsCtr1 *r)
3774 {
3775         uint32_t cntr_info_array_1;
3776         uint32_t cntr_group_attrs_1;
3777         uint32_t cntr_sids_1;
3778         if (ndr_flags & NDR_SCALARS) {
3779                 NDR_CHECK(ndr_push_align(ndr, 4));
3780                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->status));
3781                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_memberships));
3782                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_sids));
3783                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info_array));
3784                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->group_attrs));
3785                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sids));
3786         }
3787         if (ndr_flags & NDR_BUFFERS) {
3788                 if (r->info_array) {
3789                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_memberships));
3790                         for (cntr_info_array_1 = 0; cntr_info_array_1 < r->num_memberships; cntr_info_array_1++) {
3791                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info_array[cntr_info_array_1]));
3792                         }
3793                         for (cntr_info_array_1 = 0; cntr_info_array_1 < r->num_memberships; cntr_info_array_1++) {
3794                                 if (r->info_array[cntr_info_array_1]) {
3795                                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->info_array[cntr_info_array_1]));
3796                                 }
3797                         }
3798                 }
3799                 if (r->group_attrs) {
3800                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_memberships));
3801                         for (cntr_group_attrs_1 = 0; cntr_group_attrs_1 < r->num_memberships; cntr_group_attrs_1++) {
3802                                 NDR_CHECK(ndr_push_samr_GroupAttrs(ndr, NDR_SCALARS, r->group_attrs[cntr_group_attrs_1]));
3803                         }
3804                 }
3805                 if (r->sids) {
3806                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_sids));
3807                         for (cntr_sids_1 = 0; cntr_sids_1 < r->num_sids; cntr_sids_1++) {
3808                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sids[cntr_sids_1]));
3809                         }
3810                         for (cntr_sids_1 = 0; cntr_sids_1 < r->num_sids; cntr_sids_1++) {
3811                                 if (r->sids[cntr_sids_1]) {
3812                                         NDR_CHECK(ndr_push_dom_sid28(ndr, NDR_SCALARS|NDR_BUFFERS, r->sids[cntr_sids_1]));
3813                                 }
3814                         }
3815                 }
3816         }
3817         return NDR_ERR_SUCCESS;
3818 }
3819
3820 static enum ndr_err_code ndr_pull_drsuapi_DsGetMembershipsCtr1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetMembershipsCtr1 *r)
3821 {
3822         uint32_t _ptr_info_array;
3823         uint32_t cntr_info_array_1;
3824         TALLOC_CTX *_mem_save_info_array_0;
3825         TALLOC_CTX *_mem_save_info_array_1;
3826         TALLOC_CTX *_mem_save_info_array_2;
3827         uint32_t _ptr_group_attrs;
3828         uint32_t cntr_group_attrs_1;
3829         TALLOC_CTX *_mem_save_group_attrs_0;
3830         TALLOC_CTX *_mem_save_group_attrs_1;
3831         uint32_t _ptr_sids;
3832         uint32_t cntr_sids_1;
3833         TALLOC_CTX *_mem_save_sids_0;
3834         TALLOC_CTX *_mem_save_sids_1;
3835         TALLOC_CTX *_mem_save_sids_2;
3836         if (ndr_flags & NDR_SCALARS) {
3837                 NDR_CHECK(ndr_pull_align(ndr, 4));
3838                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->status));
3839                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_memberships));
3840                 if (r->num_memberships < 0 || r->num_memberships > 10000) {
3841                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
3842                 }
3843                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_sids));
3844                 if (r->num_sids < 0 || r->num_sids > 10000) {
3845                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
3846                 }
3847                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info_array));
3848                 if (_ptr_info_array) {
3849                         NDR_PULL_ALLOC(ndr, r->info_array);
3850                 } else {
3851                         r->info_array = NULL;
3852                 }
3853                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_group_attrs));
3854                 if (_ptr_group_attrs) {
3855                         NDR_PULL_ALLOC(ndr, r->group_attrs);
3856                 } else {
3857                         r->group_attrs = NULL;
3858                 }
3859                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sids));
3860                 if (_ptr_sids) {
3861                         NDR_PULL_ALLOC(ndr, r->sids);
3862                 } else {
3863                         r->sids = NULL;
3864                 }
3865         }
3866         if (ndr_flags & NDR_BUFFERS) {
3867                 if (r->info_array) {
3868                         _mem_save_info_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
3869                         NDR_PULL_SET_MEM_CTX(ndr, r->info_array, 0);
3870                         NDR_CHECK(ndr_pull_array_size(ndr, &r->info_array));
3871                         NDR_PULL_ALLOC_N(ndr, r->info_array, ndr_get_array_size(ndr, &r->info_array));
3872                         _mem_save_info_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
3873                         NDR_PULL_SET_MEM_CTX(ndr, r->info_array, 0);
3874                         for (cntr_info_array_1 = 0; cntr_info_array_1 < r->num_memberships; cntr_info_array_1++) {
3875                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info_array));
3876                                 if (_ptr_info_array) {
3877                                         NDR_PULL_ALLOC(ndr, r->info_array[cntr_info_array_1]);
3878                                 } else {
3879                                         r->info_array[cntr_info_array_1] = NULL;
3880                                 }
3881                         }
3882                         for (cntr_info_array_1 = 0; cntr_info_array_1 < r->num_memberships; cntr_info_array_1++) {
3883                                 if (r->info_array[cntr_info_array_1]) {
3884                                         _mem_save_info_array_2 = NDR_PULL_GET_MEM_CTX(ndr);
3885                                         NDR_PULL_SET_MEM_CTX(ndr, r->info_array[cntr_info_array_1], 0);
3886                                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->info_array[cntr_info_array_1]));
3887                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_array_2, 0);
3888                                 }
3889                         }
3890                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_array_1, 0);
3891                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_array_0, 0);
3892                 }
3893                 if (r->group_attrs) {
3894                         _mem_save_group_attrs_0 = NDR_PULL_GET_MEM_CTX(ndr);
3895                         NDR_PULL_SET_MEM_CTX(ndr, r->group_attrs, 0);
3896                         NDR_CHECK(ndr_pull_array_size(ndr, &r->group_attrs));
3897                         NDR_PULL_ALLOC_N(ndr, r->group_attrs, ndr_get_array_size(ndr, &r->group_attrs));
3898                         _mem_save_group_attrs_1 = NDR_PULL_GET_MEM_CTX(ndr);
3899                         NDR_PULL_SET_MEM_CTX(ndr, r->group_attrs, 0);
3900                         for (cntr_group_attrs_1 = 0; cntr_group_attrs_1 < r->num_memberships; cntr_group_attrs_1++) {
3901                                 NDR_CHECK(ndr_pull_samr_GroupAttrs(ndr, NDR_SCALARS, &r->group_attrs[cntr_group_attrs_1]));
3902                         }
3903                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_attrs_1, 0);
3904                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_attrs_0, 0);
3905                 }
3906                 if (r->sids) {
3907                         _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
3908                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
3909                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sids));
3910                         NDR_PULL_ALLOC_N(ndr, r->sids, ndr_get_array_size(ndr, &r->sids));
3911                         _mem_save_sids_1 = NDR_PULL_GET_MEM_CTX(ndr);
3912                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
3913                         for (cntr_sids_1 = 0; cntr_sids_1 < r->num_sids; cntr_sids_1++) {
3914                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sids));
3915                                 if (_ptr_sids) {
3916                                         NDR_PULL_ALLOC(ndr, r->sids[cntr_sids_1]);
3917                                 } else {
3918                                         r->sids[cntr_sids_1] = NULL;
3919                                 }
3920                         }
3921                         for (cntr_sids_1 = 0; cntr_sids_1 < r->num_sids; cntr_sids_1++) {
3922                                 if (r->sids[cntr_sids_1]) {
3923                                         _mem_save_sids_2 = NDR_PULL_GET_MEM_CTX(ndr);
3924                                         NDR_PULL_SET_MEM_CTX(ndr, r->sids[cntr_sids_1], 0);
3925                                         NDR_CHECK(ndr_pull_dom_sid28(ndr, NDR_SCALARS|NDR_BUFFERS, r->sids[cntr_sids_1]));
3926                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_2, 0);
3927                                 }
3928                         }
3929                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_1, 0);
3930                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, 0);
3931                 }
3932                 if (r->info_array) {
3933                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->info_array, r->num_memberships));
3934                 }
3935                 if (r->group_attrs) {
3936                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->group_attrs, r->num_memberships));
3937                 }
3938                 if (r->sids) {
3939                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sids, r->num_sids));
3940                 }
3941         }
3942         return NDR_ERR_SUCCESS;
3943 }
3944
3945 _PUBLIC_ void ndr_print_drsuapi_DsGetMembershipsCtr1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetMembershipsCtr1 *r)
3946 {
3947         uint32_t cntr_info_array_1;
3948         uint32_t cntr_group_attrs_1;
3949         uint32_t cntr_sids_1;
3950         ndr_print_struct(ndr, name, "drsuapi_DsGetMembershipsCtr1");
3951         ndr->depth++;
3952         ndr_print_NTSTATUS(ndr, "status", r->status);
3953         ndr_print_uint32(ndr, "num_memberships", r->num_memberships);
3954         ndr_print_uint32(ndr, "num_sids", r->num_sids);
3955         ndr_print_ptr(ndr, "info_array", r->info_array);
3956         ndr->depth++;
3957         if (r->info_array) {
3958                 ndr->print(ndr, "%s: ARRAY(%d)", "info_array", (int)r->num_memberships);
3959                 ndr->depth++;
3960                 for (cntr_info_array_1=0;cntr_info_array_1<r->num_memberships;cntr_info_array_1++) {
3961                         char *idx_1=NULL;
3962                         if (asprintf(&idx_1, "[%d]", cntr_info_array_1) != -1) {
3963                                 ndr_print_ptr(ndr, "info_array", r->info_array[cntr_info_array_1]);
3964                                 ndr->depth++;
3965                                 if (r->info_array[cntr_info_array_1]) {
3966                                         ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "info_array", r->info_array[cntr_info_array_1]);
3967                                 }
3968                                 ndr->depth--;
3969                                 free(idx_1);
3970                         }
3971                 }
3972                 ndr->depth--;
3973         }
3974         ndr->depth--;
3975         ndr_print_ptr(ndr, "group_attrs", r->group_attrs);
3976         ndr->depth++;
3977         if (r->group_attrs) {
3978                 ndr->print(ndr, "%s: ARRAY(%d)", "group_attrs", (int)r->num_memberships);
3979                 ndr->depth++;
3980                 for (cntr_group_attrs_1=0;cntr_group_attrs_1<r->num_memberships;cntr_group_attrs_1++) {
3981                         char *idx_1=NULL;
3982                         if (asprintf(&idx_1, "[%d]", cntr_group_attrs_1) != -1) {
3983                                 ndr_print_samr_GroupAttrs(ndr, "group_attrs", r->group_attrs[cntr_group_attrs_1]);
3984                                 free(idx_1);
3985                         }
3986                 }
3987                 ndr->depth--;
3988         }
3989         ndr->depth--;
3990         ndr_print_ptr(ndr, "sids", r->sids);
3991         ndr->depth++;
3992         if (r->sids) {
3993                 ndr->print(ndr, "%s: ARRAY(%d)", "sids", (int)r->num_sids);
3994                 ndr->depth++;
3995                 for (cntr_sids_1=0;cntr_sids_1<r->num_sids;cntr_sids_1++) {
3996                         char *idx_1=NULL;
3997                         if (asprintf(&idx_1, "[%d]", cntr_sids_1) != -1) {
3998                                 ndr_print_ptr(ndr, "sids", r->sids[cntr_sids_1]);
3999                                 ndr->depth++;
4000                                 if (r->sids[cntr_sids_1]) {
4001                                         ndr_print_dom_sid28(ndr, "sids", r->sids[cntr_sids_1]);
4002                                 }
4003                                 ndr->depth--;
4004                                 free(idx_1);
4005                         }
4006                 }
4007                 ndr->depth--;
4008         }
4009         ndr->depth--;
4010         ndr->depth--;
4011 }
4012
4013 static enum ndr_err_code ndr_push_drsuapi_DsGetMembershipsCtr(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsGetMembershipsCtr *r)
4014 {
4015         if (ndr_flags & NDR_SCALARS) {
4016                 int level = ndr_push_get_switch_value(ndr, r);
4017                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
4018                 switch (level) {
4019                         case 1: {
4020                                 NDR_CHECK(ndr_push_drsuapi_DsGetMembershipsCtr1(ndr, NDR_SCALARS, &r->ctr1));
4021                         break; }
4022
4023                         default:
4024                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4025                 }
4026         }
4027         if (ndr_flags & NDR_BUFFERS) {
4028                 int level = ndr_push_get_switch_value(ndr, r);
4029                 switch (level) {
4030                         case 1:
4031                                 NDR_CHECK(ndr_push_drsuapi_DsGetMembershipsCtr1(ndr, NDR_BUFFERS, &r->ctr1));
4032                         break;
4033
4034                         default:
4035                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4036                 }
4037         }
4038         return NDR_ERR_SUCCESS;
4039 }
4040
4041 static enum ndr_err_code ndr_pull_drsuapi_DsGetMembershipsCtr(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsGetMembershipsCtr *r)
4042 {
4043         int level;
4044         int32_t _level;
4045         level = ndr_pull_get_switch_value(ndr, r);
4046         if (ndr_flags & NDR_SCALARS) {
4047                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
4048                 if (_level != level) {
4049                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
4050                 }
4051                 switch (level) {
4052                         case 1: {
4053                                 NDR_CHECK(ndr_pull_drsuapi_DsGetMembershipsCtr1(ndr, NDR_SCALARS, &r->ctr1));
4054                         break; }
4055
4056                         default:
4057                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4058                 }
4059         }
4060         if (ndr_flags & NDR_BUFFERS) {
4061                 switch (level) {
4062                         case 1:
4063                                 NDR_CHECK(ndr_pull_drsuapi_DsGetMembershipsCtr1(ndr, NDR_BUFFERS, &r->ctr1));
4064                         break;
4065
4066                         default:
4067                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4068                 }
4069         }
4070         return NDR_ERR_SUCCESS;
4071 }
4072
4073 _PUBLIC_ void ndr_print_drsuapi_DsGetMembershipsCtr(struct ndr_print *ndr, const char *name, const union drsuapi_DsGetMembershipsCtr *r)
4074 {
4075         int level;
4076         level = ndr_print_get_switch_value(ndr, r);
4077         ndr_print_union(ndr, name, level, "drsuapi_DsGetMembershipsCtr");
4078         switch (level) {
4079                 case 1:
4080                         ndr_print_drsuapi_DsGetMembershipsCtr1(ndr, "ctr1", &r->ctr1);
4081                 break;
4082
4083                 default:
4084                         ndr_print_bad_level(ndr, name, level);
4085         }
4086 }
4087
4088 static enum ndr_err_code ndr_push_drsuapi_DsGetMembershipsRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetMembershipsRequest1 *r)
4089 {
4090         uint32_t cntr_info_array_1;
4091         if (ndr_flags & NDR_SCALARS) {
4092                 NDR_CHECK(ndr_push_align(ndr, 4));
4093                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
4094                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info_array));
4095                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
4096                 NDR_CHECK(ndr_push_drsuapi_DsMembershipType(ndr, NDR_SCALARS, r->type));
4097                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
4098         }
4099         if (ndr_flags & NDR_BUFFERS) {
4100                 if (r->info_array) {
4101                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
4102                         for (cntr_info_array_1 = 0; cntr_info_array_1 < r->count; cntr_info_array_1++) {
4103                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info_array[cntr_info_array_1]));
4104                         }
4105                         for (cntr_info_array_1 = 0; cntr_info_array_1 < r->count; cntr_info_array_1++) {
4106                                 if (r->info_array[cntr_info_array_1]) {
4107                                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->info_array[cntr_info_array_1]));
4108                                 }
4109                         }
4110                 }
4111                 if (r->domain) {
4112                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain));
4113                 }
4114         }
4115         return NDR_ERR_SUCCESS;
4116 }
4117
4118 static enum ndr_err_code ndr_pull_drsuapi_DsGetMembershipsRequest1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetMembershipsRequest1 *r)
4119 {
4120         uint32_t _ptr_info_array;
4121         uint32_t cntr_info_array_1;
4122         TALLOC_CTX *_mem_save_info_array_0;
4123         TALLOC_CTX *_mem_save_info_array_1;
4124         TALLOC_CTX *_mem_save_info_array_2;
4125         uint32_t _ptr_domain;
4126         TALLOC_CTX *_mem_save_domain_0;
4127         if (ndr_flags & NDR_SCALARS) {
4128                 NDR_CHECK(ndr_pull_align(ndr, 4));
4129                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
4130                 if (r->count < 1 || r->count > 10000) {
4131                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
4132                 }
4133                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info_array));
4134                 if (_ptr_info_array) {
4135                         NDR_PULL_ALLOC(ndr, r->info_array);
4136                 } else {
4137                         r->info_array = NULL;
4138                 }
4139                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
4140                 NDR_CHECK(ndr_pull_drsuapi_DsMembershipType(ndr, NDR_SCALARS, &r->type));
4141                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
4142                 if (_ptr_domain) {
4143                         NDR_PULL_ALLOC(ndr, r->domain);
4144                 } else {
4145                         r->domain = NULL;
4146                 }
4147         }
4148         if (ndr_flags & NDR_BUFFERS) {
4149                 if (r->info_array) {
4150                         _mem_save_info_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
4151                         NDR_PULL_SET_MEM_CTX(ndr, r->info_array, 0);
4152                         NDR_CHECK(ndr_pull_array_size(ndr, &r->info_array));
4153                         NDR_PULL_ALLOC_N(ndr, r->info_array, ndr_get_array_size(ndr, &r->info_array));
4154                         _mem_save_info_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
4155                         NDR_PULL_SET_MEM_CTX(ndr, r->info_array, 0);
4156                         for (cntr_info_array_1 = 0; cntr_info_array_1 < r->count; cntr_info_array_1++) {
4157                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info_array));
4158                                 if (_ptr_info_array) {
4159                                         NDR_PULL_ALLOC(ndr, r->info_array[cntr_info_array_1]);
4160                                 } else {
4161                                         r->info_array[cntr_info_array_1] = NULL;
4162                                 }
4163                         }
4164                         for (cntr_info_array_1 = 0; cntr_info_array_1 < r->count; cntr_info_array_1++) {
4165                                 if (r->info_array[cntr_info_array_1]) {
4166                                         _mem_save_info_array_2 = NDR_PULL_GET_MEM_CTX(ndr);
4167                                         NDR_PULL_SET_MEM_CTX(ndr, r->info_array[cntr_info_array_1], 0);
4168                                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->info_array[cntr_info_array_1]));
4169                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_array_2, 0);
4170                                 }
4171                         }
4172                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_array_1, 0);
4173                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_array_0, 0);
4174                 }
4175                 if (r->domain) {
4176                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
4177                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
4178                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain));
4179                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
4180                 }
4181                 if (r->info_array) {
4182                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->info_array, r->count));
4183                 }
4184         }
4185         return NDR_ERR_SUCCESS;
4186 }
4187
4188 _PUBLIC_ void ndr_print_drsuapi_DsGetMembershipsRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetMembershipsRequest1 *r)
4189 {
4190         uint32_t cntr_info_array_1;
4191         ndr_print_struct(ndr, name, "drsuapi_DsGetMembershipsRequest1");
4192         ndr->depth++;
4193         ndr_print_uint32(ndr, "count", r->count);
4194         ndr_print_ptr(ndr, "info_array", r->info_array);
4195         ndr->depth++;
4196         if (r->info_array) {
4197                 ndr->print(ndr, "%s: ARRAY(%d)", "info_array", (int)r->count);
4198                 ndr->depth++;
4199                 for (cntr_info_array_1=0;cntr_info_array_1<r->count;cntr_info_array_1++) {
4200                         char *idx_1=NULL;
4201                         if (asprintf(&idx_1, "[%d]", cntr_info_array_1) != -1) {
4202                                 ndr_print_ptr(ndr, "info_array", r->info_array[cntr_info_array_1]);
4203                                 ndr->depth++;
4204                                 if (r->info_array[cntr_info_array_1]) {
4205                                         ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "info_array", r->info_array[cntr_info_array_1]);
4206                                 }
4207                                 ndr->depth--;
4208                                 free(idx_1);
4209                         }
4210                 }
4211                 ndr->depth--;
4212         }
4213         ndr->depth--;
4214         ndr_print_uint32(ndr, "flags", r->flags);
4215         ndr_print_drsuapi_DsMembershipType(ndr, "type", r->type);
4216         ndr_print_ptr(ndr, "domain", r->domain);
4217         ndr->depth++;
4218         if (r->domain) {
4219                 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "domain", r->domain);
4220         }
4221         ndr->depth--;
4222         ndr->depth--;
4223 }
4224
4225 static enum ndr_err_code ndr_push_drsuapi_DsGetMembershipsRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsGetMembershipsRequest *r)
4226 {
4227         if (ndr_flags & NDR_SCALARS) {
4228                 int level = ndr_push_get_switch_value(ndr, r);
4229                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
4230                 switch (level) {
4231                         case 1: {
4232                                 NDR_CHECK(ndr_push_drsuapi_DsGetMembershipsRequest1(ndr, NDR_SCALARS, &r->req1));
4233                         break; }
4234
4235                         default:
4236                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4237                 }
4238         }
4239         if (ndr_flags & NDR_BUFFERS) {
4240                 int level = ndr_push_get_switch_value(ndr, r);
4241                 switch (level) {
4242                         case 1:
4243                                 NDR_CHECK(ndr_push_drsuapi_DsGetMembershipsRequest1(ndr, NDR_BUFFERS, &r->req1));
4244                         break;
4245
4246                         default:
4247                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4248                 }
4249         }
4250         return NDR_ERR_SUCCESS;
4251 }
4252
4253 static enum ndr_err_code ndr_pull_drsuapi_DsGetMembershipsRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsGetMembershipsRequest *r)
4254 {
4255         int level;
4256         int32_t _level;
4257         level = ndr_pull_get_switch_value(ndr, r);
4258         if (ndr_flags & NDR_SCALARS) {
4259                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
4260                 if (_level != level) {
4261                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
4262                 }
4263                 switch (level) {
4264                         case 1: {
4265                                 NDR_CHECK(ndr_pull_drsuapi_DsGetMembershipsRequest1(ndr, NDR_SCALARS, &r->req1));
4266                         break; }
4267
4268                         default:
4269                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4270                 }
4271         }
4272         if (ndr_flags & NDR_BUFFERS) {
4273                 switch (level) {
4274                         case 1:
4275                                 NDR_CHECK(ndr_pull_drsuapi_DsGetMembershipsRequest1(ndr, NDR_BUFFERS, &r->req1));
4276                         break;
4277
4278                         default:
4279                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4280                 }
4281         }
4282         return NDR_ERR_SUCCESS;
4283 }
4284
4285 _PUBLIC_ void ndr_print_drsuapi_DsGetMembershipsRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsGetMembershipsRequest *r)
4286 {
4287         int level;
4288         level = ndr_print_get_switch_value(ndr, r);
4289         ndr_print_union(ndr, name, level, "drsuapi_DsGetMembershipsRequest");
4290         switch (level) {
4291                 case 1:
4292                         ndr_print_drsuapi_DsGetMembershipsRequest1(ndr, "req1", &r->req1);
4293                 break;
4294
4295                 default:
4296                         ndr_print_bad_level(ndr, name, level);
4297         }
4298 }
4299
4300 static enum ndr_err_code ndr_push_drsuapi_DsGetNT4ChangeLogRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetNT4ChangeLogRequest1 *r)
4301 {
4302         if (ndr_flags & NDR_SCALARS) {
4303                 NDR_CHECK(ndr_push_align(ndr, 4));
4304                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
4305                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
4306                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
4307                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
4308         }
4309         if (ndr_flags & NDR_BUFFERS) {
4310                 if (r->data) {
4311                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
4312                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
4313                 }
4314         }
4315         return NDR_ERR_SUCCESS;
4316 }
4317
4318 static enum ndr_err_code ndr_pull_drsuapi_DsGetNT4ChangeLogRequest1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNT4ChangeLogRequest1 *r)
4319 {
4320         uint32_t _ptr_data;
4321         TALLOC_CTX *_mem_save_data_0;
4322         if (ndr_flags & NDR_SCALARS) {
4323                 NDR_CHECK(ndr_pull_align(ndr, 4));
4324                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
4325                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
4326                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
4327                 if (r->length < 0 || r->length > 0x00A00000) {
4328                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
4329                 }
4330                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
4331                 if (_ptr_data) {
4332                         NDR_PULL_ALLOC(ndr, r->data);
4333                 } else {
4334                         r->data = NULL;
4335                 }
4336         }
4337         if (ndr_flags & NDR_BUFFERS) {
4338                 if (r->data) {
4339                         _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
4340                         NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
4341                         NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
4342                         NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
4343                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_size(ndr, &r->data)));
4344                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
4345                 }
4346                 if (r->data) {
4347                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->length));
4348                 }
4349         }
4350         return NDR_ERR_SUCCESS;
4351 }
4352
4353 _PUBLIC_ void ndr_print_drsuapi_DsGetNT4ChangeLogRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNT4ChangeLogRequest1 *r)
4354 {
4355         ndr_print_struct(ndr, name, "drsuapi_DsGetNT4ChangeLogRequest1");
4356         ndr->depth++;
4357         ndr_print_uint32(ndr, "unknown1", r->unknown1);
4358         ndr_print_uint32(ndr, "unknown2", r->unknown2);
4359         ndr_print_uint32(ndr, "length", r->length);
4360         ndr_print_ptr(ndr, "data", r->data);
4361         ndr->depth++;
4362         if (r->data) {
4363                 ndr_print_array_uint8(ndr, "data", r->data, r->length);
4364         }
4365         ndr->depth--;
4366         ndr->depth--;
4367 }
4368
4369 static enum ndr_err_code ndr_push_drsuapi_DsGetNT4ChangeLogRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsGetNT4ChangeLogRequest *r)
4370 {
4371         if (ndr_flags & NDR_SCALARS) {
4372                 int level = ndr_push_get_switch_value(ndr, r);
4373                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
4374                 switch (level) {
4375                         case 1: {
4376                                 NDR_CHECK(ndr_push_drsuapi_DsGetNT4ChangeLogRequest1(ndr, NDR_SCALARS, &r->req1));
4377                         break; }
4378
4379                         default:
4380                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4381                 }
4382         }
4383         if (ndr_flags & NDR_BUFFERS) {
4384                 int level = ndr_push_get_switch_value(ndr, r);
4385                 switch (level) {
4386                         case 1:
4387                                 NDR_CHECK(ndr_push_drsuapi_DsGetNT4ChangeLogRequest1(ndr, NDR_BUFFERS, &r->req1));
4388                         break;
4389
4390                         default:
4391                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4392                 }
4393         }
4394         return NDR_ERR_SUCCESS;
4395 }
4396
4397 static enum ndr_err_code ndr_pull_drsuapi_DsGetNT4ChangeLogRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsGetNT4ChangeLogRequest *r)
4398 {
4399         int level;
4400         uint32_t _level;
4401         level = ndr_pull_get_switch_value(ndr, r);
4402         if (ndr_flags & NDR_SCALARS) {
4403                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
4404                 if (_level != level) {
4405                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
4406                 }
4407                 switch (level) {
4408                         case 1: {
4409                                 NDR_CHECK(ndr_pull_drsuapi_DsGetNT4ChangeLogRequest1(ndr, NDR_SCALARS, &r->req1));
4410                         break; }
4411
4412                         default:
4413                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4414                 }
4415         }
4416         if (ndr_flags & NDR_BUFFERS) {
4417                 switch (level) {
4418                         case 1:
4419                                 NDR_CHECK(ndr_pull_drsuapi_DsGetNT4ChangeLogRequest1(ndr, NDR_BUFFERS, &r->req1));
4420                         break;
4421
4422                         default:
4423                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4424                 }
4425         }
4426         return NDR_ERR_SUCCESS;
4427 }
4428
4429 _PUBLIC_ void ndr_print_drsuapi_DsGetNT4ChangeLogRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsGetNT4ChangeLogRequest *r)
4430 {
4431         int level;
4432         level = ndr_print_get_switch_value(ndr, r);
4433         ndr_print_union(ndr, name, level, "drsuapi_DsGetNT4ChangeLogRequest");
4434         switch (level) {
4435                 case 1:
4436                         ndr_print_drsuapi_DsGetNT4ChangeLogRequest1(ndr, "req1", &r->req1);
4437                 break;
4438
4439                 default:
4440                         ndr_print_bad_level(ndr, name, level);
4441         }
4442 }
4443
4444 static enum ndr_err_code ndr_push_drsuapi_DsGetNT4ChangeLogInfo1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetNT4ChangeLogInfo1 *r)
4445 {
4446         if (ndr_flags & NDR_SCALARS) {
4447                 NDR_CHECK(ndr_push_align(ndr, 8));
4448                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length1));
4449                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length2));
4450                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->unknown1));
4451                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->time2));
4452                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->unknown3));
4453                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->time4));
4454                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->unknown5));
4455                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->time6));
4456                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->status));
4457                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data1));
4458                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data2));
4459         }
4460         if (ndr_flags & NDR_BUFFERS) {
4461                 if (r->data1) {
4462                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length1));
4463                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data1, r->length1));
4464                 }
4465                 if (r->data2) {
4466                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length2));
4467                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data2, r->length2));
4468                 }
4469         }
4470         return NDR_ERR_SUCCESS;
4471 }
4472
4473 static enum ndr_err_code ndr_pull_drsuapi_DsGetNT4ChangeLogInfo1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNT4ChangeLogInfo1 *r)
4474 {
4475         uint32_t _ptr_data1;
4476         TALLOC_CTX *_mem_save_data1_0;
4477         uint32_t _ptr_data2;
4478         TALLOC_CTX *_mem_save_data2_0;
4479         if (ndr_flags & NDR_SCALARS) {
4480                 NDR_CHECK(ndr_pull_align(ndr, 8));
4481                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length1));
4482                 if (r->length1 < 0 || r->length1 > 0x00A00000) {
4483                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
4484                 }
4485                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length2));
4486                 if (r->length2 < 0 || r->length2 > 0x00A00000) {
4487                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
4488                 }
4489                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->unknown1));
4490                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->time2));
4491                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->unknown3));
4492                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->time4));
4493                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->unknown5));
4494                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->time6));
4495                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->status));
4496                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data1));
4497                 if (_ptr_data1) {
4498                         NDR_PULL_ALLOC(ndr, r->data1);
4499                 } else {
4500                         r->data1 = NULL;
4501                 }
4502                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data2));
4503                 if (_ptr_data2) {
4504                         NDR_PULL_ALLOC(ndr, r->data2);
4505                 } else {
4506                         r->data2 = NULL;
4507                 }
4508         }
4509         if (ndr_flags & NDR_BUFFERS) {
4510                 if (r->data1) {
4511                         _mem_save_data1_0 = NDR_PULL_GET_MEM_CTX(ndr);
4512                         NDR_PULL_SET_MEM_CTX(ndr, r->data1, 0);
4513                         NDR_CHECK(ndr_pull_array_size(ndr, &r->data1));
4514                         NDR_PULL_ALLOC_N(ndr, r->data1, ndr_get_array_size(ndr, &r->data1));
4515                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data1, ndr_get_array_size(ndr, &r->data1)));
4516                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data1_0, 0);
4517                 }
4518                 if (r->data2) {
4519                         _mem_save_data2_0 = NDR_PULL_GET_MEM_CTX(ndr);
4520                         NDR_PULL_SET_MEM_CTX(ndr, r->data2, 0);
4521                         NDR_CHECK(ndr_pull_array_size(ndr, &r->data2));
4522                         NDR_PULL_ALLOC_N(ndr, r->data2, ndr_get_array_size(ndr, &r->data2));
4523                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data2, ndr_get_array_size(ndr, &r->data2)));
4524                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data2_0, 0);
4525                 }
4526                 if (r->data1) {
4527                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data1, r->length1));
4528                 }
4529                 if (r->data2) {
4530                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data2, r->length2));
4531                 }
4532         }
4533         return NDR_ERR_SUCCESS;
4534 }
4535
4536 _PUBLIC_ void ndr_print_drsuapi_DsGetNT4ChangeLogInfo1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNT4ChangeLogInfo1 *r)
4537 {
4538         ndr_print_struct(ndr, name, "drsuapi_DsGetNT4ChangeLogInfo1");
4539         ndr->depth++;
4540         ndr_print_uint32(ndr, "length1", r->length1);
4541         ndr_print_uint32(ndr, "length2", r->length2);
4542         ndr_print_hyper(ndr, "unknown1", r->unknown1);
4543         ndr_print_NTTIME(ndr, "time2", r->time2);
4544         ndr_print_hyper(ndr, "unknown3", r->unknown3);
4545         ndr_print_NTTIME(ndr, "time4", r->time4);
4546         ndr_print_hyper(ndr, "unknown5", r->unknown5);
4547         ndr_print_NTTIME(ndr, "time6", r->time6);
4548         ndr_print_NTSTATUS(ndr, "status", r->status);
4549         ndr_print_ptr(ndr, "data1", r->data1);
4550         ndr->depth++;
4551         if (r->data1) {
4552                 ndr_print_array_uint8(ndr, "data1", r->data1, r->length1);
4553         }
4554         ndr->depth--;
4555         ndr_print_ptr(ndr, "data2", r->data2);
4556         ndr->depth++;
4557         if (r->data2) {
4558                 ndr_print_array_uint8(ndr, "data2", r->data2, r->length2);
4559         }
4560         ndr->depth--;
4561         ndr->depth--;
4562 }
4563
4564 static enum ndr_err_code ndr_push_drsuapi_DsGetNT4ChangeLogInfo(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsGetNT4ChangeLogInfo *r)
4565 {
4566         if (ndr_flags & NDR_SCALARS) {
4567                 int level = ndr_push_get_switch_value(ndr, r);
4568                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
4569                 switch (level) {
4570                         case 1: {
4571                                 NDR_CHECK(ndr_push_drsuapi_DsGetNT4ChangeLogInfo1(ndr, NDR_SCALARS, &r->info1));
4572                         break; }
4573
4574                         default:
4575                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4576                 }
4577         }
4578         if (ndr_flags & NDR_BUFFERS) {
4579                 int level = ndr_push_get_switch_value(ndr, r);
4580                 switch (level) {
4581                         case 1:
4582                                 NDR_CHECK(ndr_push_drsuapi_DsGetNT4ChangeLogInfo1(ndr, NDR_BUFFERS, &r->info1));
4583                         break;
4584
4585                         default:
4586                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4587                 }
4588         }
4589         return NDR_ERR_SUCCESS;
4590 }
4591
4592 static enum ndr_err_code ndr_pull_drsuapi_DsGetNT4ChangeLogInfo(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsGetNT4ChangeLogInfo *r)
4593 {
4594         int level;
4595         uint32_t _level;
4596         level = ndr_pull_get_switch_value(ndr, r);
4597         if (ndr_flags & NDR_SCALARS) {
4598                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
4599                 if (_level != level) {
4600                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
4601                 }
4602                 switch (level) {
4603                         case 1: {
4604                                 NDR_CHECK(ndr_pull_drsuapi_DsGetNT4ChangeLogInfo1(ndr, NDR_SCALARS, &r->info1));
4605                         break; }
4606
4607                         default:
4608                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4609                 }
4610         }
4611         if (ndr_flags & NDR_BUFFERS) {
4612                 switch (level) {
4613                         case 1:
4614                                 NDR_CHECK(ndr_pull_drsuapi_DsGetNT4ChangeLogInfo1(ndr, NDR_BUFFERS, &r->info1));
4615                         break;
4616
4617                         default:
4618                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4619                 }
4620         }
4621         return NDR_ERR_SUCCESS;
4622 }
4623
4624 _PUBLIC_ void ndr_print_drsuapi_DsGetNT4ChangeLogInfo(struct ndr_print *ndr, const char *name, const union drsuapi_DsGetNT4ChangeLogInfo *r)
4625 {
4626         int level;
4627         level = ndr_print_get_switch_value(ndr, r);
4628         ndr_print_union(ndr, name, level, "drsuapi_DsGetNT4ChangeLogInfo");
4629         switch (level) {
4630                 case 1:
4631                         ndr_print_drsuapi_DsGetNT4ChangeLogInfo1(ndr, "info1", &r->info1);
4632                 break;
4633
4634                 default:
4635                         ndr_print_bad_level(ndr, name, level);
4636         }
4637 }
4638
4639 static enum ndr_err_code ndr_push_drsuapi_DsNameStatus(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsNameStatus r)
4640 {
4641         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
4642         return NDR_ERR_SUCCESS;
4643 }
4644
4645 static enum ndr_err_code ndr_pull_drsuapi_DsNameStatus(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsNameStatus *r)
4646 {
4647         uint32_t v;
4648         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
4649         *r = v;
4650         return NDR_ERR_SUCCESS;
4651 }
4652
4653 _PUBLIC_ void ndr_print_drsuapi_DsNameStatus(struct ndr_print *ndr, const char *name, enum drsuapi_DsNameStatus r)
4654 {
4655         const char *val = NULL;
4656
4657         switch (r) {
4658                 case DRSUAPI_DS_NAME_STATUS_OK: val = "DRSUAPI_DS_NAME_STATUS_OK"; break;
4659                 case DRSUAPI_DS_NAME_STATUS_RESOLVE_ERROR: val = "DRSUAPI_DS_NAME_STATUS_RESOLVE_ERROR"; break;
4660                 case DRSUAPI_DS_NAME_STATUS_NOT_FOUND: val = "DRSUAPI_DS_NAME_STATUS_NOT_FOUND"; break;
4661                 case DRSUAPI_DS_NAME_STATUS_NOT_UNIQUE: val = "DRSUAPI_DS_NAME_STATUS_NOT_UNIQUE"; break;
4662                 case DRSUAPI_DS_NAME_STATUS_NO_MAPPING: val = "DRSUAPI_DS_NAME_STATUS_NO_MAPPING"; break;
4663                 case DRSUAPI_DS_NAME_STATUS_DOMAIN_ONLY: val = "DRSUAPI_DS_NAME_STATUS_DOMAIN_ONLY"; break;
4664                 case DRSUAPI_DS_NAME_STATUS_NO_SYNTACTICAL_MAPPING: val = "DRSUAPI_DS_NAME_STATUS_NO_SYNTACTICAL_MAPPING"; break;
4665                 case DRSUAPI_DS_NAME_STATUS_TRUST_REFERRAL: val = "DRSUAPI_DS_NAME_STATUS_TRUST_REFERRAL"; break;
4666         }
4667         ndr_print_enum(ndr, name, "ENUM", val, r);
4668 }
4669
4670 static enum ndr_err_code ndr_push_drsuapi_DsNameFlags(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsNameFlags r)
4671 {
4672         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
4673         return NDR_ERR_SUCCESS;
4674 }
4675
4676 static enum ndr_err_code ndr_pull_drsuapi_DsNameFlags(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsNameFlags *r)
4677 {
4678         uint32_t v;
4679         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
4680         *r = v;
4681         return NDR_ERR_SUCCESS;
4682 }
4683
4684 _PUBLIC_ void ndr_print_drsuapi_DsNameFlags(struct ndr_print *ndr, const char *name, enum drsuapi_DsNameFlags r)
4685 {
4686         const char *val = NULL;
4687
4688         switch (r) {
4689                 case DRSUAPI_DS_NAME_FLAG_NO_FLAGS: val = "DRSUAPI_DS_NAME_FLAG_NO_FLAGS"; break;
4690                 case DRSUAPI_DS_NAME_FLAG_SYNTACTICAL_ONLY: val = "DRSUAPI_DS_NAME_FLAG_SYNTACTICAL_ONLY"; break;
4691                 case DRSUAPI_DS_NAME_FLAG_EVAL_AT_DC: val = "DRSUAPI_DS_NAME_FLAG_EVAL_AT_DC"; break;
4692                 case DRSUAPI_DS_NAME_FLAG_GCVERIFY: val = "DRSUAPI_DS_NAME_FLAG_GCVERIFY"; break;
4693                 case DRSUAPI_DS_NAME_FLAG_TRUST_REFERRAL: val = "DRSUAPI_DS_NAME_FLAG_TRUST_REFERRAL"; break;
4694         }
4695         ndr_print_enum(ndr, name, "ENUM", val, r);
4696 }
4697
4698 static enum ndr_err_code ndr_push_drsuapi_DsNameFormat(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsNameFormat r)
4699 {
4700         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
4701         return NDR_ERR_SUCCESS;
4702 }
4703
4704 static enum ndr_err_code ndr_pull_drsuapi_DsNameFormat(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsNameFormat *r)
4705 {
4706         uint32_t v;
4707         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
4708         *r = v;
4709         return NDR_ERR_SUCCESS;
4710 }
4711
4712 _PUBLIC_ void ndr_print_drsuapi_DsNameFormat(struct ndr_print *ndr, const char *name, enum drsuapi_DsNameFormat r)
4713 {
4714         const char *val = NULL;
4715
4716         switch (r) {
4717                 case DRSUAPI_DS_NAME_FORMAT_UNKNOWN: val = "DRSUAPI_DS_NAME_FORMAT_UNKNOWN"; break;
4718                 case DRSUAPI_DS_NAME_FORMAT_FQDN_1779: val = "DRSUAPI_DS_NAME_FORMAT_FQDN_1779"; break;
4719                 case DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT: val = "DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT"; break;
4720                 case DRSUAPI_DS_NAME_FORMAT_DISPLAY: val = "DRSUAPI_DS_NAME_FORMAT_DISPLAY"; break;
4721                 case DRSUAPI_DS_NAME_FORMAT_GUID: val = "DRSUAPI_DS_NAME_FORMAT_GUID"; break;
4722                 case DRSUAPI_DS_NAME_FORMAT_CANONICAL: val = "DRSUAPI_DS_NAME_FORMAT_CANONICAL"; break;
4723                 case DRSUAPI_DS_NAME_FORMAT_USER_PRINCIPAL: val = "DRSUAPI_DS_NAME_FORMAT_USER_PRINCIPAL"; break;
4724                 case DRSUAPI_DS_NAME_FORMAT_CANONICAL_EX: val = "DRSUAPI_DS_NAME_FORMAT_CANONICAL_EX"; break;
4725                 case DRSUAPI_DS_NAME_FORMAT_SERVICE_PRINCIPAL: val = "DRSUAPI_DS_NAME_FORMAT_SERVICE_PRINCIPAL"; break;
4726                 case DRSUAPI_DS_NAME_FORMAT_SID_OR_SID_HISTORY: val = "DRSUAPI_DS_NAME_FORMAT_SID_OR_SID_HISTORY"; break;
4727                 case DRSUAPI_DS_NAME_FORMAT_DNS_DOMAIN: val = "DRSUAPI_DS_NAME_FORMAT_DNS_DOMAIN"; break;
4728         }
4729         ndr_print_enum(ndr, name, "ENUM", val, r);
4730 }
4731
4732 static enum ndr_err_code ndr_push_drsuapi_DsNameString(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsNameString *r)
4733 {
4734         if (ndr_flags & NDR_SCALARS) {
4735                 NDR_CHECK(ndr_push_align(ndr, 4));
4736                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->str));
4737         }
4738         if (ndr_flags & NDR_BUFFERS) {
4739                 if (r->str) {
4740                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->str, CH_UTF16)));
4741                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4742                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->str, CH_UTF16)));
4743                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->str, ndr_charset_length(r->str, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4744                 }
4745         }
4746         return NDR_ERR_SUCCESS;
4747 }
4748
4749 static enum ndr_err_code ndr_pull_drsuapi_DsNameString(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsNameString *r)
4750 {
4751         uint32_t _ptr_str;
4752         TALLOC_CTX *_mem_save_str_0;
4753         if (ndr_flags & NDR_SCALARS) {
4754                 NDR_CHECK(ndr_pull_align(ndr, 4));
4755                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_str));
4756                 if (_ptr_str) {
4757                         NDR_PULL_ALLOC(ndr, r->str);
4758                 } else {
4759                         r->str = NULL;
4760                 }
4761         }
4762         if (ndr_flags & NDR_BUFFERS) {
4763                 if (r->str) {
4764                         _mem_save_str_0 = NDR_PULL_GET_MEM_CTX(ndr);
4765                         NDR_PULL_SET_MEM_CTX(ndr, r->str, 0);
4766                         NDR_CHECK(ndr_pull_array_size(ndr, &r->str));
4767                         NDR_CHECK(ndr_pull_array_length(ndr, &r->str));
4768                         if (ndr_get_array_length(ndr, &r->str) > ndr_get_array_size(ndr, &r->str)) {
4769                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->str), ndr_get_array_length(ndr, &r->str));
4770                         }
4771                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->str), sizeof(uint16_t)));
4772                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->str, ndr_get_array_length(ndr, &r->str), sizeof(uint16_t), CH_UTF16));
4773                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_str_0, 0);
4774                 }
4775         }
4776         return NDR_ERR_SUCCESS;
4777 }
4778
4779 _PUBLIC_ void ndr_print_drsuapi_DsNameString(struct ndr_print *ndr, const char *name, const struct drsuapi_DsNameString *r)
4780 {
4781         ndr_print_struct(ndr, name, "drsuapi_DsNameString");
4782         ndr->depth++;
4783         ndr_print_ptr(ndr, "str", r->str);
4784         ndr->depth++;
4785         if (r->str) {
4786                 ndr_print_string(ndr, "str", r->str);
4787         }
4788         ndr->depth--;
4789         ndr->depth--;
4790 }
4791
4792 static enum ndr_err_code ndr_push_drsuapi_DsNameRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsNameRequest1 *r)
4793 {
4794         uint32_t cntr_names_1;
4795         if (ndr_flags & NDR_SCALARS) {
4796                 NDR_CHECK(ndr_push_align(ndr, 4));
4797                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->codepage));
4798                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->language));
4799                 NDR_CHECK(ndr_push_drsuapi_DsNameFlags(ndr, NDR_SCALARS, r->format_flags));
4800                 NDR_CHECK(ndr_push_drsuapi_DsNameFormat(ndr, NDR_SCALARS, r->format_offered));
4801                 NDR_CHECK(ndr_push_drsuapi_DsNameFormat(ndr, NDR_SCALARS, r->format_desired));
4802                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
4803                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->names));
4804         }
4805         if (ndr_flags & NDR_BUFFERS) {
4806                 if (r->names) {
4807                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
4808                         for (cntr_names_1 = 0; cntr_names_1 < r->count; cntr_names_1++) {
4809                                 NDR_CHECK(ndr_push_drsuapi_DsNameString(ndr, NDR_SCALARS, &r->names[cntr_names_1]));
4810                         }
4811                         for (cntr_names_1 = 0; cntr_names_1 < r->count; cntr_names_1++) {
4812                                 NDR_CHECK(ndr_push_drsuapi_DsNameString(ndr, NDR_BUFFERS, &r->names[cntr_names_1]));
4813                         }
4814                 }
4815         }
4816         return NDR_ERR_SUCCESS;
4817 }
4818
4819 static enum ndr_err_code ndr_pull_drsuapi_DsNameRequest1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsNameRequest1 *r)
4820 {
4821         uint32_t _ptr_names;
4822         uint32_t cntr_names_1;
4823         TALLOC_CTX *_mem_save_names_0;
4824         TALLOC_CTX *_mem_save_names_1;
4825         if (ndr_flags & NDR_SCALARS) {
4826                 NDR_CHECK(ndr_pull_align(ndr, 4));
4827                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->codepage));
4828                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->language));
4829                 NDR_CHECK(ndr_pull_drsuapi_DsNameFlags(ndr, NDR_SCALARS, &r->format_flags));
4830                 NDR_CHECK(ndr_pull_drsuapi_DsNameFormat(ndr, NDR_SCALARS, &r->format_offered));
4831                 NDR_CHECK(ndr_pull_drsuapi_DsNameFormat(ndr, NDR_SCALARS, &r->format_desired));
4832                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
4833                 if (r->count < 1 || r->count > 10000) {
4834                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
4835                 }
4836                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_names));
4837                 if (_ptr_names) {
4838                         NDR_PULL_ALLOC(ndr, r->names);
4839                 } else {
4840                         r->names = NULL;
4841                 }
4842         }
4843         if (ndr_flags & NDR_BUFFERS) {
4844                 if (r->names) {
4845                         _mem_save_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
4846                         NDR_PULL_SET_MEM_CTX(ndr, r->names, 0);
4847                         NDR_CHECK(ndr_pull_array_size(ndr, &r->names));
4848                         NDR_PULL_ALLOC_N(ndr, r->names, ndr_get_array_size(ndr, &r->names));
4849                         _mem_save_names_1 = NDR_PULL_GET_MEM_CTX(ndr);
4850                         NDR_PULL_SET_MEM_CTX(ndr, r->names, 0);
4851                         for (cntr_names_1 = 0; cntr_names_1 < r->count; cntr_names_1++) {
4852                                 NDR_CHECK(ndr_pull_drsuapi_DsNameString(ndr, NDR_SCALARS, &r->names[cntr_names_1]));
4853                         }
4854                         for (cntr_names_1 = 0; cntr_names_1 < r->count; cntr_names_1++) {
4855                                 NDR_CHECK(ndr_pull_drsuapi_DsNameString(ndr, NDR_BUFFERS, &r->names[cntr_names_1]));
4856                         }
4857                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_names_1, 0);
4858                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_names_0, 0);
4859                 }
4860                 if (r->names) {
4861                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->names, r->count));
4862                 }
4863         }
4864         return NDR_ERR_SUCCESS;
4865 }
4866
4867 _PUBLIC_ void ndr_print_drsuapi_DsNameRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsNameRequest1 *r)
4868 {
4869         uint32_t cntr_names_1;
4870         ndr_print_struct(ndr, name, "drsuapi_DsNameRequest1");
4871         ndr->depth++;
4872         ndr_print_uint32(ndr, "codepage", r->codepage);
4873         ndr_print_uint32(ndr, "language", r->language);
4874         ndr_print_drsuapi_DsNameFlags(ndr, "format_flags", r->format_flags);
4875         ndr_print_drsuapi_DsNameFormat(ndr, "format_offered", r->format_offered);
4876         ndr_print_drsuapi_DsNameFormat(ndr, "format_desired", r->format_desired);
4877         ndr_print_uint32(ndr, "count", r->count);
4878         ndr_print_ptr(ndr, "names", r->names);
4879         ndr->depth++;
4880         if (r->names) {
4881                 ndr->print(ndr, "%s: ARRAY(%d)", "names", (int)r->count);
4882                 ndr->depth++;
4883                 for (cntr_names_1=0;cntr_names_1<r->count;cntr_names_1++) {
4884                         char *idx_1=NULL;
4885                         if (asprintf(&idx_1, "[%d]", cntr_names_1) != -1) {
4886                                 ndr_print_drsuapi_DsNameString(ndr, "names", &r->names[cntr_names_1]);
4887                                 free(idx_1);
4888                         }
4889                 }
4890                 ndr->depth--;
4891         }
4892         ndr->depth--;
4893         ndr->depth--;
4894 }
4895
4896 static enum ndr_err_code ndr_push_drsuapi_DsNameRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsNameRequest *r)
4897 {
4898         if (ndr_flags & NDR_SCALARS) {
4899                 int level = ndr_push_get_switch_value(ndr, r);
4900                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
4901                 switch (level) {
4902                         case 1: {
4903                                 NDR_CHECK(ndr_push_drsuapi_DsNameRequest1(ndr, NDR_SCALARS, &r->req1));
4904                         break; }
4905
4906                         default:
4907                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4908                 }
4909         }
4910         if (ndr_flags & NDR_BUFFERS) {
4911                 int level = ndr_push_get_switch_value(ndr, r);
4912                 switch (level) {
4913                         case 1:
4914                                 NDR_CHECK(ndr_push_drsuapi_DsNameRequest1(ndr, NDR_BUFFERS, &r->req1));
4915                         break;
4916
4917                         default:
4918                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4919                 }
4920         }
4921         return NDR_ERR_SUCCESS;
4922 }
4923
4924 static enum ndr_err_code ndr_pull_drsuapi_DsNameRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsNameRequest *r)
4925 {
4926         int level;
4927         int32_t _level;
4928         level = ndr_pull_get_switch_value(ndr, r);
4929         if (ndr_flags & NDR_SCALARS) {
4930                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
4931                 if (_level != level) {
4932                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
4933                 }
4934                 switch (level) {
4935                         case 1: {
4936                                 NDR_CHECK(ndr_pull_drsuapi_DsNameRequest1(ndr, NDR_SCALARS, &r->req1));
4937                         break; }
4938
4939                         default:
4940                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4941                 }
4942         }
4943         if (ndr_flags & NDR_BUFFERS) {
4944                 switch (level) {
4945                         case 1:
4946                                 NDR_CHECK(ndr_pull_drsuapi_DsNameRequest1(ndr, NDR_BUFFERS, &r->req1));
4947                         break;
4948
4949                         default:
4950                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4951                 }
4952         }
4953         return NDR_ERR_SUCCESS;
4954 }
4955
4956 _PUBLIC_ void ndr_print_drsuapi_DsNameRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsNameRequest *r)
4957 {
4958         int level;
4959         level = ndr_print_get_switch_value(ndr, r);
4960         ndr_print_union(ndr, name, level, "drsuapi_DsNameRequest");
4961         switch (level) {
4962                 case 1:
4963                         ndr_print_drsuapi_DsNameRequest1(ndr, "req1", &r->req1);
4964                 break;
4965
4966                 default:
4967                         ndr_print_bad_level(ndr, name, level);
4968         }
4969 }
4970
4971 static enum ndr_err_code ndr_push_drsuapi_DsNameInfo1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsNameInfo1 *r)
4972 {
4973         if (ndr_flags & NDR_SCALARS) {
4974                 NDR_CHECK(ndr_push_align(ndr, 4));
4975                 NDR_CHECK(ndr_push_drsuapi_DsNameStatus(ndr, NDR_SCALARS, r->status));
4976                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dns_domain_name));
4977                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->result_name));
4978         }
4979         if (ndr_flags & NDR_BUFFERS) {
4980                 if (r->dns_domain_name) {
4981                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dns_domain_name, CH_UTF16)));
4982                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4983                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dns_domain_name, CH_UTF16)));
4984                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dns_domain_name, ndr_charset_length(r->dns_domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4985                 }
4986                 if (r->result_name) {
4987                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->result_name, CH_UTF16)));
4988                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4989                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->result_name, CH_UTF16)));
4990                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->result_name, ndr_charset_length(r->result_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4991                 }
4992         }
4993         return NDR_ERR_SUCCESS;
4994 }
4995
4996 static enum ndr_err_code ndr_pull_drsuapi_DsNameInfo1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsNameInfo1 *r)
4997 {
4998         uint32_t _ptr_dns_domain_name;
4999         TALLOC_CTX *_mem_save_dns_domain_name_0;
5000         uint32_t _ptr_result_name;
5001         TALLOC_CTX *_mem_save_result_name_0;
5002         if (ndr_flags & NDR_SCALARS) {
5003                 NDR_CHECK(ndr_pull_align(ndr, 4));
5004                 NDR_CHECK(ndr_pull_drsuapi_DsNameStatus(ndr, NDR_SCALARS, &r->status));
5005                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dns_domain_name));
5006                 if (_ptr_dns_domain_name) {
5007                         NDR_PULL_ALLOC(ndr, r->dns_domain_name);
5008                 } else {
5009                         r->dns_domain_name = NULL;
5010                 }
5011                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_result_name));
5012                 if (_ptr_result_name) {
5013                         NDR_PULL_ALLOC(ndr, r->result_name);
5014                 } else {
5015                         r->result_name = NULL;
5016                 }
5017         }
5018         if (ndr_flags & NDR_BUFFERS) {
5019                 if (r->dns_domain_name) {
5020                         _mem_save_dns_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5021                         NDR_PULL_SET_MEM_CTX(ndr, r->dns_domain_name, 0);
5022                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dns_domain_name));
5023                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dns_domain_name));
5024                         if (ndr_get_array_length(ndr, &r->dns_domain_name) > ndr_get_array_size(ndr, &r->dns_domain_name)) {
5025                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dns_domain_name), ndr_get_array_length(ndr, &r->dns_domain_name));
5026                         }
5027                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dns_domain_name), sizeof(uint16_t)));
5028                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dns_domain_name, ndr_get_array_length(ndr, &r->dns_domain_name), sizeof(uint16_t), CH_UTF16));
5029                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dns_domain_name_0, 0);
5030                 }
5031                 if (r->result_name) {
5032                         _mem_save_result_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5033                         NDR_PULL_SET_MEM_CTX(ndr, r->result_name, 0);
5034                         NDR_CHECK(ndr_pull_array_size(ndr, &r->result_name));
5035                         NDR_CHECK(ndr_pull_array_length(ndr, &r->result_name));
5036                         if (ndr_get_array_length(ndr, &r->result_name) > ndr_get_array_size(ndr, &r->result_name)) {
5037                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->result_name), ndr_get_array_length(ndr, &r->result_name));
5038                         }
5039                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->result_name), sizeof(uint16_t)));
5040                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->result_name, ndr_get_array_length(ndr, &r->result_name), sizeof(uint16_t), CH_UTF16));
5041                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_result_name_0, 0);
5042                 }
5043         }
5044         return NDR_ERR_SUCCESS;
5045 }
5046
5047 _PUBLIC_ void ndr_print_drsuapi_DsNameInfo1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsNameInfo1 *r)
5048 {
5049         ndr_print_struct(ndr, name, "drsuapi_DsNameInfo1");
5050         ndr->depth++;
5051         ndr_print_drsuapi_DsNameStatus(ndr, "status", r->status);
5052         ndr_print_ptr(ndr, "dns_domain_name", r->dns_domain_name);
5053         ndr->depth++;
5054         if (r->dns_domain_name) {
5055                 ndr_print_string(ndr, "dns_domain_name", r->dns_domain_name);
5056         }
5057         ndr->depth--;
5058         ndr_print_ptr(ndr, "result_name", r->result_name);
5059         ndr->depth++;
5060         if (r->result_name) {
5061                 ndr_print_string(ndr, "result_name", r->result_name);
5062         }
5063         ndr->depth--;
5064         ndr->depth--;
5065 }
5066
5067 static enum ndr_err_code ndr_push_drsuapi_DsNameCtr1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsNameCtr1 *r)
5068 {
5069         uint32_t cntr_array_1;
5070         if (ndr_flags & NDR_SCALARS) {
5071                 NDR_CHECK(ndr_push_align(ndr, 4));
5072                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
5073                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->array));
5074         }
5075         if (ndr_flags & NDR_BUFFERS) {
5076                 if (r->array) {
5077                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
5078                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
5079                                 NDR_CHECK(ndr_push_drsuapi_DsNameInfo1(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
5080                         }
5081                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
5082                                 NDR_CHECK(ndr_push_drsuapi_DsNameInfo1(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
5083                         }
5084                 }
5085         }
5086         return NDR_ERR_SUCCESS;
5087 }
5088
5089 static enum ndr_err_code ndr_pull_drsuapi_DsNameCtr1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsNameCtr1 *r)
5090 {
5091         uint32_t _ptr_array;
5092         uint32_t cntr_array_1;
5093         TALLOC_CTX *_mem_save_array_0;
5094         TALLOC_CTX *_mem_save_array_1;
5095         if (ndr_flags & NDR_SCALARS) {
5096                 NDR_CHECK(ndr_pull_align(ndr, 4));
5097                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
5098                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_array));
5099                 if (_ptr_array) {
5100                         NDR_PULL_ALLOC(ndr, r->array);
5101                 } else {
5102                         r->array = NULL;
5103                 }
5104         }
5105         if (ndr_flags & NDR_BUFFERS) {
5106                 if (r->array) {
5107                         _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
5108                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
5109                         NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
5110                         NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
5111                         _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
5112                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
5113                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
5114                                 NDR_CHECK(ndr_pull_drsuapi_DsNameInfo1(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
5115                         }
5116                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
5117                                 NDR_CHECK(ndr_pull_drsuapi_DsNameInfo1(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
5118                         }
5119                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0);
5120                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
5121                 }
5122                 if (r->array) {
5123                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
5124                 }
5125         }
5126         return NDR_ERR_SUCCESS;
5127 }
5128
5129 _PUBLIC_ void ndr_print_drsuapi_DsNameCtr1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsNameCtr1 *r)
5130 {
5131         uint32_t cntr_array_1;
5132         ndr_print_struct(ndr, name, "drsuapi_DsNameCtr1");
5133         ndr->depth++;
5134         ndr_print_uint32(ndr, "count", r->count);
5135         ndr_print_ptr(ndr, "array", r->array);
5136         ndr->depth++;
5137         if (r->array) {
5138                 ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
5139                 ndr->depth++;
5140                 for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
5141                         char *idx_1=NULL;
5142                         if (asprintf(&idx_1, "[%d]", cntr_array_1) != -1) {
5143                                 ndr_print_drsuapi_DsNameInfo1(ndr, "array", &r->array[cntr_array_1]);
5144                                 free(idx_1);
5145                         }
5146                 }
5147                 ndr->depth--;
5148         }
5149         ndr->depth--;
5150         ndr->depth--;
5151 }
5152
5153 static enum ndr_err_code ndr_push_drsuapi_DsNameCtr(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsNameCtr *r)
5154 {
5155         if (ndr_flags & NDR_SCALARS) {
5156                 int level = ndr_push_get_switch_value(ndr, r);
5157                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
5158                 switch (level) {
5159                         case 1: {
5160                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->ctr1));
5161                         break; }
5162
5163                         default:
5164                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5165                 }
5166         }
5167         if (ndr_flags & NDR_BUFFERS) {
5168                 int level = ndr_push_get_switch_value(ndr, r);
5169                 switch (level) {
5170                         case 1:
5171                                 if (r->ctr1) {
5172                                         NDR_CHECK(ndr_push_drsuapi_DsNameCtr1(ndr, NDR_SCALARS|NDR_BUFFERS, r->ctr1));
5173                                 }
5174                         break;
5175
5176                         default:
5177                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5178                 }
5179         }
5180         return NDR_ERR_SUCCESS;
5181 }
5182
5183 static enum ndr_err_code ndr_pull_drsuapi_DsNameCtr(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsNameCtr *r)
5184 {
5185         int level;
5186         int32_t _level;
5187         TALLOC_CTX *_mem_save_ctr1_0;
5188         level = ndr_pull_get_switch_value(ndr, r);
5189         if (ndr_flags & NDR_SCALARS) {
5190                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
5191                 if (_level != level) {
5192                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
5193                 }
5194                 switch (level) {
5195                         case 1: {
5196                                 uint32_t _ptr_ctr1;
5197                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr1));
5198                                 if (_ptr_ctr1) {
5199                                         NDR_PULL_ALLOC(ndr, r->ctr1);
5200                                 } else {
5201                                         r->ctr1 = NULL;
5202                                 }
5203                         break; }
5204
5205                         default:
5206                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5207                 }
5208         }
5209         if (ndr_flags & NDR_BUFFERS) {
5210                 switch (level) {
5211                         case 1:
5212                                 if (r->ctr1) {
5213                                         _mem_save_ctr1_0 = NDR_PULL_GET_MEM_CTX(ndr);
5214                                         NDR_PULL_SET_MEM_CTX(ndr, r->ctr1, 0);
5215                                         NDR_CHECK(ndr_pull_drsuapi_DsNameCtr1(ndr, NDR_SCALARS|NDR_BUFFERS, r->ctr1));
5216                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr1_0, 0);
5217                                 }
5218                         break;
5219
5220                         default:
5221                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5222                 }
5223         }
5224         return NDR_ERR_SUCCESS;
5225 }
5226
5227 _PUBLIC_ void ndr_print_drsuapi_DsNameCtr(struct ndr_print *ndr, const char *name, const union drsuapi_DsNameCtr *r)
5228 {
5229         int level;
5230         level = ndr_print_get_switch_value(ndr, r);
5231         ndr_print_union(ndr, name, level, "drsuapi_DsNameCtr");
5232         switch (level) {
5233                 case 1:
5234                         ndr_print_ptr(ndr, "ctr1", r->ctr1);
5235                         ndr->depth++;
5236                         if (r->ctr1) {
5237                                 ndr_print_drsuapi_DsNameCtr1(ndr, "ctr1", r->ctr1);
5238                         }
5239                         ndr->depth--;
5240                 break;
5241
5242                 default:
5243                         ndr_print_bad_level(ndr, name, level);
5244         }
5245 }
5246
5247 static enum ndr_err_code ndr_push_drsuapi_DsSpnOperation(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsSpnOperation r)
5248 {
5249         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
5250         return NDR_ERR_SUCCESS;
5251 }
5252
5253 static enum ndr_err_code ndr_pull_drsuapi_DsSpnOperation(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsSpnOperation *r)
5254 {
5255         uint32_t v;
5256         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
5257         *r = v;
5258         return NDR_ERR_SUCCESS;
5259 }
5260
5261 _PUBLIC_ void ndr_print_drsuapi_DsSpnOperation(struct ndr_print *ndr, const char *name, enum drsuapi_DsSpnOperation r)
5262 {
5263         const char *val = NULL;
5264
5265         switch (r) {
5266                 case DRSUAPI_DS_SPN_OPERATION_ADD: val = "DRSUAPI_DS_SPN_OPERATION_ADD"; break;
5267                 case DRSUAPI_DS_SPN_OPERATION_REPLACE: val = "DRSUAPI_DS_SPN_OPERATION_REPLACE"; break;
5268                 case DRSUAPI_DS_SPN_OPERATION_DELETE: val = "DRSUAPI_DS_SPN_OPERATION_DELETE"; break;
5269         }
5270         ndr_print_enum(ndr, name, "ENUM", val, r);
5271 }
5272
5273 static enum ndr_err_code ndr_push_drsuapi_DsWriteAccountSpnRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsWriteAccountSpnRequest1 *r)
5274 {
5275         uint32_t cntr_spn_names_1;
5276         if (ndr_flags & NDR_SCALARS) {
5277                 NDR_CHECK(ndr_push_align(ndr, 4));
5278                 NDR_CHECK(ndr_push_drsuapi_DsSpnOperation(ndr, NDR_SCALARS, r->operation));
5279                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
5280                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->object_dn));
5281                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
5282                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->spn_names));
5283         }
5284         if (ndr_flags & NDR_BUFFERS) {
5285                 if (r->object_dn) {
5286                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->object_dn, CH_UTF16)));
5287                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5288                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->object_dn, CH_UTF16)));
5289                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->object_dn, ndr_charset_length(r->object_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5290                 }
5291                 if (r->spn_names) {
5292                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
5293                         for (cntr_spn_names_1 = 0; cntr_spn_names_1 < r->count; cntr_spn_names_1++) {
5294                                 NDR_CHECK(ndr_push_drsuapi_DsNameString(ndr, NDR_SCALARS, &r->spn_names[cntr_spn_names_1]));
5295                         }
5296                         for (cntr_spn_names_1 = 0; cntr_spn_names_1 < r->count; cntr_spn_names_1++) {
5297                                 NDR_CHECK(ndr_push_drsuapi_DsNameString(ndr, NDR_BUFFERS, &r->spn_names[cntr_spn_names_1]));
5298                         }
5299                 }
5300         }
5301         return NDR_ERR_SUCCESS;
5302 }
5303
5304 static enum ndr_err_code ndr_pull_drsuapi_DsWriteAccountSpnRequest1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsWriteAccountSpnRequest1 *r)
5305 {
5306         uint32_t _ptr_object_dn;
5307         TALLOC_CTX *_mem_save_object_dn_0;
5308         uint32_t _ptr_spn_names;
5309         uint32_t cntr_spn_names_1;
5310         TALLOC_CTX *_mem_save_spn_names_0;
5311         TALLOC_CTX *_mem_save_spn_names_1;
5312         if (ndr_flags & NDR_SCALARS) {
5313                 NDR_CHECK(ndr_pull_align(ndr, 4));
5314                 NDR_CHECK(ndr_pull_drsuapi_DsSpnOperation(ndr, NDR_SCALARS, &r->operation));
5315                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
5316                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_object_dn));
5317                 if (_ptr_object_dn) {
5318                         NDR_PULL_ALLOC(ndr, r->object_dn);
5319                 } else {
5320                         r->object_dn = NULL;
5321                 }
5322                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
5323                 if (r->count < 0 || r->count > 10000) {
5324                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
5325                 }
5326                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_spn_names));
5327                 if (_ptr_spn_names) {
5328                         NDR_PULL_ALLOC(ndr, r->spn_names);
5329                 } else {
5330                         r->spn_names = NULL;
5331                 }
5332         }
5333         if (ndr_flags & NDR_BUFFERS) {
5334                 if (r->object_dn) {
5335                         _mem_save_object_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
5336                         NDR_PULL_SET_MEM_CTX(ndr, r->object_dn, 0);
5337                         NDR_CHECK(ndr_pull_array_size(ndr, &r->object_dn));
5338                         NDR_CHECK(ndr_pull_array_length(ndr, &r->object_dn));
5339                         if (ndr_get_array_length(ndr, &r->object_dn) > ndr_get_array_size(ndr, &r->object_dn)) {
5340                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->object_dn), ndr_get_array_length(ndr, &r->object_dn));
5341                         }
5342                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->object_dn), sizeof(uint16_t)));
5343                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->object_dn, ndr_get_array_length(ndr, &r->object_dn), sizeof(uint16_t), CH_UTF16));
5344                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_object_dn_0, 0);
5345                 }
5346                 if (r->spn_names) {
5347                         _mem_save_spn_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
5348                         NDR_PULL_SET_MEM_CTX(ndr, r->spn_names, 0);
5349                         NDR_CHECK(ndr_pull_array_size(ndr, &r->spn_names));
5350                         NDR_PULL_ALLOC_N(ndr, r->spn_names, ndr_get_array_size(ndr, &r->spn_names));
5351                         _mem_save_spn_names_1 = NDR_PULL_GET_MEM_CTX(ndr);
5352                         NDR_PULL_SET_MEM_CTX(ndr, r->spn_names, 0);
5353                         for (cntr_spn_names_1 = 0; cntr_spn_names_1 < r->count; cntr_spn_names_1++) {
5354                                 NDR_CHECK(ndr_pull_drsuapi_DsNameString(ndr, NDR_SCALARS, &r->spn_names[cntr_spn_names_1]));
5355                         }
5356                         for (cntr_spn_names_1 = 0; cntr_spn_names_1 < r->count; cntr_spn_names_1++) {
5357                                 NDR_CHECK(ndr_pull_drsuapi_DsNameString(ndr, NDR_BUFFERS, &r->spn_names[cntr_spn_names_1]));
5358                         }
5359                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_spn_names_1, 0);
5360                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_spn_names_0, 0);
5361                 }
5362                 if (r->spn_names) {
5363                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->spn_names, r->count));
5364                 }
5365         }
5366         return NDR_ERR_SUCCESS;
5367 }
5368
5369 _PUBLIC_ void ndr_print_drsuapi_DsWriteAccountSpnRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsWriteAccountSpnRequest1 *r)
5370 {
5371         uint32_t cntr_spn_names_1;
5372         ndr_print_struct(ndr, name, "drsuapi_DsWriteAccountSpnRequest1");
5373         ndr->depth++;
5374         ndr_print_drsuapi_DsSpnOperation(ndr, "operation", r->operation);
5375         ndr_print_uint32(ndr, "unknown1", r->unknown1);
5376         ndr_print_ptr(ndr, "object_dn", r->object_dn);
5377         ndr->depth++;
5378         if (r->object_dn) {
5379                 ndr_print_string(ndr, "object_dn", r->object_dn);
5380         }
5381         ndr->depth--;
5382         ndr_print_uint32(ndr, "count", r->count);
5383         ndr_print_ptr(ndr, "spn_names", r->spn_names);
5384         ndr->depth++;
5385         if (r->spn_names) {
5386                 ndr->print(ndr, "%s: ARRAY(%d)", "spn_names", (int)r->count);
5387                 ndr->depth++;
5388                 for (cntr_spn_names_1=0;cntr_spn_names_1<r->count;cntr_spn_names_1++) {
5389                         char *idx_1=NULL;
5390                         if (asprintf(&idx_1, "[%d]", cntr_spn_names_1) != -1) {
5391                                 ndr_print_drsuapi_DsNameString(ndr, "spn_names", &r->spn_names[cntr_spn_names_1]);
5392                                 free(idx_1);
5393                         }
5394                 }
5395                 ndr->depth--;
5396         }
5397         ndr->depth--;
5398         ndr->depth--;
5399 }
5400
5401 static enum ndr_err_code ndr_push_drsuapi_DsWriteAccountSpnRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsWriteAccountSpnRequest *r)
5402 {
5403         if (ndr_flags & NDR_SCALARS) {
5404                 int level = ndr_push_get_switch_value(ndr, r);
5405                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
5406                 switch (level) {
5407                         case 1: {
5408                                 NDR_CHECK(ndr_push_drsuapi_DsWriteAccountSpnRequest1(ndr, NDR_SCALARS, &r->req1));
5409                         break; }
5410
5411                         default:
5412                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5413                 }
5414         }
5415         if (ndr_flags & NDR_BUFFERS) {
5416                 int level = ndr_push_get_switch_value(ndr, r);
5417                 switch (level) {
5418                         case 1:
5419                                 NDR_CHECK(ndr_push_drsuapi_DsWriteAccountSpnRequest1(ndr, NDR_BUFFERS, &r->req1));
5420                         break;
5421
5422                         default:
5423                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5424                 }
5425         }
5426         return NDR_ERR_SUCCESS;
5427 }
5428
5429 static enum ndr_err_code ndr_pull_drsuapi_DsWriteAccountSpnRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsWriteAccountSpnRequest *r)
5430 {
5431         int level;
5432         int32_t _level;
5433         level = ndr_pull_get_switch_value(ndr, r);
5434         if (ndr_flags & NDR_SCALARS) {
5435                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
5436                 if (_level != level) {
5437                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
5438                 }
5439                 switch (level) {
5440                         case 1: {
5441                                 NDR_CHECK(ndr_pull_drsuapi_DsWriteAccountSpnRequest1(ndr, NDR_SCALARS, &r->req1));
5442                         break; }
5443
5444                         default:
5445                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5446                 }
5447         }
5448         if (ndr_flags & NDR_BUFFERS) {
5449                 switch (level) {
5450                         case 1:
5451                                 NDR_CHECK(ndr_pull_drsuapi_DsWriteAccountSpnRequest1(ndr, NDR_BUFFERS, &r->req1));
5452                         break;
5453
5454                         default:
5455                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5456                 }
5457         }
5458         return NDR_ERR_SUCCESS;
5459 }
5460
5461 _PUBLIC_ void ndr_print_drsuapi_DsWriteAccountSpnRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsWriteAccountSpnRequest *r)
5462 {
5463         int level;
5464         level = ndr_print_get_switch_value(ndr, r);
5465         ndr_print_union(ndr, name, level, "drsuapi_DsWriteAccountSpnRequest");
5466         switch (level) {
5467                 case 1:
5468                         ndr_print_drsuapi_DsWriteAccountSpnRequest1(ndr, "req1", &r->req1);
5469                 break;
5470
5471                 default:
5472                         ndr_print_bad_level(ndr, name, level);
5473         }
5474 }
5475
5476 static enum ndr_err_code ndr_push_drsuapi_DsWriteAccountSpnResult1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsWriteAccountSpnResult1 *r)
5477 {
5478         if (ndr_flags & NDR_SCALARS) {
5479                 NDR_CHECK(ndr_push_align(ndr, 4));
5480                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->status));
5481         }
5482         if (ndr_flags & NDR_BUFFERS) {
5483         }
5484         return NDR_ERR_SUCCESS;
5485 }
5486
5487 static enum ndr_err_code ndr_pull_drsuapi_DsWriteAccountSpnResult1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsWriteAccountSpnResult1 *r)
5488 {
5489         if (ndr_flags & NDR_SCALARS) {
5490                 NDR_CHECK(ndr_pull_align(ndr, 4));
5491                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->status));
5492         }
5493         if (ndr_flags & NDR_BUFFERS) {
5494         }
5495         return NDR_ERR_SUCCESS;
5496 }
5497
5498 _PUBLIC_ void ndr_print_drsuapi_DsWriteAccountSpnResult1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsWriteAccountSpnResult1 *r)
5499 {
5500         ndr_print_struct(ndr, name, "drsuapi_DsWriteAccountSpnResult1");
5501         ndr->depth++;
5502         ndr_print_WERROR(ndr, "status", r->status);
5503         ndr->depth--;
5504 }
5505
5506 static enum ndr_err_code ndr_push_drsuapi_DsWriteAccountSpnResult(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsWriteAccountSpnResult *r)
5507 {
5508         if (ndr_flags & NDR_SCALARS) {
5509                 int level = ndr_push_get_switch_value(ndr, r);
5510                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
5511                 switch (level) {
5512                         case 1: {
5513                                 NDR_CHECK(ndr_push_drsuapi_DsWriteAccountSpnResult1(ndr, NDR_SCALARS, &r->res1));
5514                         break; }
5515
5516                         default:
5517                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5518                 }
5519         }
5520         if (ndr_flags & NDR_BUFFERS) {
5521                 int level = ndr_push_get_switch_value(ndr, r);
5522                 switch (level) {
5523                         case 1:
5524                         break;
5525
5526                         default:
5527                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5528                 }
5529         }
5530         return NDR_ERR_SUCCESS;
5531 }
5532
5533 static enum ndr_err_code ndr_pull_drsuapi_DsWriteAccountSpnResult(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsWriteAccountSpnResult *r)
5534 {
5535         int level;
5536         int32_t _level;
5537         level = ndr_pull_get_switch_value(ndr, r);
5538         if (ndr_flags & NDR_SCALARS) {
5539                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
5540                 if (_level != level) {
5541                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
5542                 }
5543                 switch (level) {
5544                         case 1: {
5545                                 NDR_CHECK(ndr_pull_drsuapi_DsWriteAccountSpnResult1(ndr, NDR_SCALARS, &r->res1));
5546                         break; }
5547
5548                         default:
5549                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5550                 }
5551         }
5552         if (ndr_flags & NDR_BUFFERS) {
5553                 switch (level) {
5554                         case 1:
5555                         break;
5556
5557                         default:
5558                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5559                 }
5560         }
5561         return NDR_ERR_SUCCESS;
5562 }
5563
5564 _PUBLIC_ void ndr_print_drsuapi_DsWriteAccountSpnResult(struct ndr_print *ndr, const char *name, const union drsuapi_DsWriteAccountSpnResult *r)
5565 {
5566         int level;
5567         level = ndr_print_get_switch_value(ndr, r);
5568         ndr_print_union(ndr, name, level, "drsuapi_DsWriteAccountSpnResult");
5569         switch (level) {
5570                 case 1:
5571                         ndr_print_drsuapi_DsWriteAccountSpnResult1(ndr, "res1", &r->res1);
5572                 break;
5573
5574                 default:
5575                         ndr_print_bad_level(ndr, name, level);
5576         }
5577 }
5578
5579 static enum ndr_err_code ndr_push_drsuapi_DsRemoveDSServerRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsRemoveDSServerRequest1 *r)
5580 {
5581         if (ndr_flags & NDR_SCALARS) {
5582                 NDR_CHECK(ndr_push_align(ndr, 4));
5583                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_dn));
5584                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_dn));
5585                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->commit));
5586         }
5587         if (ndr_flags & NDR_BUFFERS) {
5588                 if (r->server_dn) {
5589                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_dn, CH_UTF16)));
5590                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5591                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_dn, CH_UTF16)));
5592                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_dn, ndr_charset_length(r->server_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5593                 }
5594                 if (r->domain_dn) {
5595                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_dn, CH_UTF16)));
5596                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5597                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_dn, CH_UTF16)));
5598                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain_dn, ndr_charset_length(r->domain_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5599                 }
5600         }
5601         return NDR_ERR_SUCCESS;
5602 }
5603
5604 static enum ndr_err_code ndr_pull_drsuapi_DsRemoveDSServerRequest1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsRemoveDSServerRequest1 *r)
5605 {
5606         uint32_t _ptr_server_dn;
5607         TALLOC_CTX *_mem_save_server_dn_0;
5608         uint32_t _ptr_domain_dn;
5609         TALLOC_CTX *_mem_save_domain_dn_0;
5610         if (ndr_flags & NDR_SCALARS) {
5611                 NDR_CHECK(ndr_pull_align(ndr, 4));
5612                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_dn));
5613                 if (_ptr_server_dn) {
5614                         NDR_PULL_ALLOC(ndr, r->server_dn);
5615                 } else {
5616                         r->server_dn = NULL;
5617                 }
5618                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_dn));
5619                 if (_ptr_domain_dn) {
5620                         NDR_PULL_ALLOC(ndr, r->domain_dn);
5621                 } else {
5622                         r->domain_dn = NULL;
5623                 }
5624                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->commit));
5625         }
5626         if (ndr_flags & NDR_BUFFERS) {
5627                 if (r->server_dn) {
5628                         _mem_save_server_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
5629                         NDR_PULL_SET_MEM_CTX(ndr, r->server_dn, 0);
5630                         NDR_CHECK(ndr_pull_array_size(ndr, &r->server_dn));
5631                         NDR_CHECK(ndr_pull_array_length(ndr, &r->server_dn));
5632                         if (ndr_get_array_length(ndr, &r->server_dn) > ndr_get_array_size(ndr, &r->server_dn)) {
5633                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->server_dn), ndr_get_array_length(ndr, &r->server_dn));
5634                         }
5635                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_dn), sizeof(uint16_t)));
5636                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_dn, ndr_get_array_length(ndr, &r->server_dn), sizeof(uint16_t), CH_UTF16));
5637                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_dn_0, 0);
5638                 }
5639                 if (r->domain_dn) {
5640                         _mem_save_domain_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
5641                         NDR_PULL_SET_MEM_CTX(ndr, r->domain_dn, 0);
5642                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain_dn));
5643                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain_dn));
5644                         if (ndr_get_array_length(ndr, &r->domain_dn) > ndr_get_array_size(ndr, &r->domain_dn)) {
5645                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain_dn), ndr_get_array_length(ndr, &r->domain_dn));
5646                         }
5647                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain_dn), sizeof(uint16_t)));
5648                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain_dn, ndr_get_array_length(ndr, &r->domain_dn), sizeof(uint16_t), CH_UTF16));
5649                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_dn_0, 0);
5650                 }
5651         }
5652         return NDR_ERR_SUCCESS;
5653 }
5654
5655 _PUBLIC_ void ndr_print_drsuapi_DsRemoveDSServerRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsRemoveDSServerRequest1 *r)
5656 {
5657         ndr_print_struct(ndr, name, "drsuapi_DsRemoveDSServerRequest1");
5658         ndr->depth++;
5659         ndr_print_ptr(ndr, "server_dn", r->server_dn);
5660         ndr->depth++;
5661         if (r->server_dn) {
5662                 ndr_print_string(ndr, "server_dn", r->server_dn);
5663         }
5664         ndr->depth--;
5665         ndr_print_ptr(ndr, "domain_dn", r->domain_dn);
5666         ndr->depth++;
5667         if (r->domain_dn) {
5668                 ndr_print_string(ndr, "domain_dn", r->domain_dn);
5669         }
5670         ndr->depth--;
5671         ndr_print_uint32(ndr, "commit", r->commit);
5672         ndr->depth--;
5673 }
5674
5675 static enum ndr_err_code ndr_push_drsuapi_DsRemoveDSServerRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsRemoveDSServerRequest *r)
5676 {
5677         if (ndr_flags & NDR_SCALARS) {
5678                 int level = ndr_push_get_switch_value(ndr, r);
5679                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
5680                 switch (level) {
5681                         case 1: {
5682                                 NDR_CHECK(ndr_push_drsuapi_DsRemoveDSServerRequest1(ndr, NDR_SCALARS, &r->req1));
5683                         break; }
5684
5685                         default:
5686                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5687                 }
5688         }
5689         if (ndr_flags & NDR_BUFFERS) {
5690                 int level = ndr_push_get_switch_value(ndr, r);
5691                 switch (level) {
5692                         case 1:
5693                                 NDR_CHECK(ndr_push_drsuapi_DsRemoveDSServerRequest1(ndr, NDR_BUFFERS, &r->req1));
5694                         break;
5695
5696                         default:
5697                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5698                 }
5699         }
5700         return NDR_ERR_SUCCESS;
5701 }
5702
5703 static enum ndr_err_code ndr_pull_drsuapi_DsRemoveDSServerRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsRemoveDSServerRequest *r)
5704 {
5705         int level;
5706         int32_t _level;
5707         level = ndr_pull_get_switch_value(ndr, r);
5708         if (ndr_flags & NDR_SCALARS) {
5709                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
5710                 if (_level != level) {
5711                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
5712                 }
5713                 switch (level) {
5714                         case 1: {
5715                                 NDR_CHECK(ndr_pull_drsuapi_DsRemoveDSServerRequest1(ndr, NDR_SCALARS, &r->req1));
5716                         break; }
5717
5718                         default:
5719                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5720                 }
5721         }
5722         if (ndr_flags & NDR_BUFFERS) {
5723                 switch (level) {
5724                         case 1:
5725                                 NDR_CHECK(ndr_pull_drsuapi_DsRemoveDSServerRequest1(ndr, NDR_BUFFERS, &r->req1));
5726                         break;
5727
5728                         default:
5729                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5730                 }
5731         }
5732         return NDR_ERR_SUCCESS;
5733 }
5734
5735 _PUBLIC_ void ndr_print_drsuapi_DsRemoveDSServerRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsRemoveDSServerRequest *r)
5736 {
5737         int level;
5738         level = ndr_print_get_switch_value(ndr, r);
5739         ndr_print_union(ndr, name, level, "drsuapi_DsRemoveDSServerRequest");
5740         switch (level) {
5741                 case 1:
5742                         ndr_print_drsuapi_DsRemoveDSServerRequest1(ndr, "req1", &r->req1);
5743                 break;
5744
5745                 default:
5746                         ndr_print_bad_level(ndr, name, level);
5747         }
5748 }
5749
5750 static enum ndr_err_code ndr_push_drsuapi_DsRemoveDSServerResult1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsRemoveDSServerResult1 *r)
5751 {
5752         if (ndr_flags & NDR_SCALARS) {
5753                 NDR_CHECK(ndr_push_align(ndr, 4));
5754                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->last_dc_in_domain));
5755         }
5756         if (ndr_flags & NDR_BUFFERS) {
5757         }
5758         return NDR_ERR_SUCCESS;
5759 }
5760
5761 static enum ndr_err_code ndr_pull_drsuapi_DsRemoveDSServerResult1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsRemoveDSServerResult1 *r)
5762 {
5763         if (ndr_flags & NDR_SCALARS) {
5764                 NDR_CHECK(ndr_pull_align(ndr, 4));
5765                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->last_dc_in_domain));
5766         }
5767         if (ndr_flags & NDR_BUFFERS) {
5768         }
5769         return NDR_ERR_SUCCESS;
5770 }
5771
5772 _PUBLIC_ void ndr_print_drsuapi_DsRemoveDSServerResult1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsRemoveDSServerResult1 *r)
5773 {
5774         ndr_print_struct(ndr, name, "drsuapi_DsRemoveDSServerResult1");
5775         ndr->depth++;
5776         ndr_print_uint32(ndr, "last_dc_in_domain", r->last_dc_in_domain);
5777         ndr->depth--;
5778 }
5779
5780 static enum ndr_err_code ndr_push_drsuapi_DsRemoveDSServerResult(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsRemoveDSServerResult *r)
5781 {
5782         if (ndr_flags & NDR_SCALARS) {
5783                 int level = ndr_push_get_switch_value(ndr, r);
5784                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
5785                 switch (level) {
5786                         case 1: {
5787                                 NDR_CHECK(ndr_push_drsuapi_DsRemoveDSServerResult1(ndr, NDR_SCALARS, &r->res1));
5788                         break; }
5789
5790                         default:
5791                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5792                 }
5793         }
5794         if (ndr_flags & NDR_BUFFERS) {
5795                 int level = ndr_push_get_switch_value(ndr, r);
5796                 switch (level) {
5797                         case 1:
5798                         break;
5799
5800                         default:
5801                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5802                 }
5803         }
5804         return NDR_ERR_SUCCESS;
5805 }
5806
5807 static enum ndr_err_code ndr_pull_drsuapi_DsRemoveDSServerResult(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsRemoveDSServerResult *r)
5808 {
5809         int level;
5810         int32_t _level;
5811         level = ndr_pull_get_switch_value(ndr, r);
5812         if (ndr_flags & NDR_SCALARS) {
5813                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
5814                 if (_level != level) {
5815                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
5816                 }
5817                 switch (level) {
5818                         case 1: {
5819                                 NDR_CHECK(ndr_pull_drsuapi_DsRemoveDSServerResult1(ndr, NDR_SCALARS, &r->res1));
5820                         break; }
5821
5822                         default:
5823                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5824                 }
5825         }
5826         if (ndr_flags & NDR_BUFFERS) {
5827                 switch (level) {
5828                         case 1:
5829                         break;
5830
5831                         default:
5832                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5833                 }
5834         }
5835         return NDR_ERR_SUCCESS;
5836 }
5837
5838 _PUBLIC_ void ndr_print_drsuapi_DsRemoveDSServerResult(struct ndr_print *ndr, const char *name, const union drsuapi_DsRemoveDSServerResult *r)
5839 {
5840         int level;
5841         level = ndr_print_get_switch_value(ndr, r);
5842         ndr_print_union(ndr, name, level, "drsuapi_DsRemoveDSServerResult");
5843         switch (level) {
5844                 case 1:
5845                         ndr_print_drsuapi_DsRemoveDSServerResult1(ndr, "res1", &r->res1);
5846                 break;
5847
5848                 default:
5849                         ndr_print_bad_level(ndr, name, level);
5850         }
5851 }
5852
5853 static enum ndr_err_code ndr_push_drsuapi_DsGetDCInfoRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetDCInfoRequest1 *r)
5854 {
5855         if (ndr_flags & NDR_SCALARS) {
5856                 NDR_CHECK(ndr_push_align(ndr, 4));
5857                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_name));
5858                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->level));
5859         }
5860         if (ndr_flags & NDR_BUFFERS) {
5861                 if (r->domain_name) {
5862                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF16)));
5863                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5864                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF16)));
5865                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain_name, ndr_charset_length(r->domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5866                 }
5867         }
5868         return NDR_ERR_SUCCESS;
5869 }
5870
5871 static enum ndr_err_code ndr_pull_drsuapi_DsGetDCInfoRequest1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetDCInfoRequest1 *r)
5872 {
5873         uint32_t _ptr_domain_name;
5874         TALLOC_CTX *_mem_save_domain_name_0;
5875         if (ndr_flags & NDR_SCALARS) {
5876                 NDR_CHECK(ndr_pull_align(ndr, 4));
5877                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
5878                 if (_ptr_domain_name) {
5879                         NDR_PULL_ALLOC(ndr, r->domain_name);
5880                 } else {
5881                         r->domain_name = NULL;
5882                 }
5883                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->level));
5884         }
5885         if (ndr_flags & NDR_BUFFERS) {
5886                 if (r->domain_name) {
5887                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5888                         NDR_PULL_SET_MEM_CTX(ndr, r->domain_name, 0);
5889                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain_name));
5890                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain_name));
5891                         if (ndr_get_array_length(ndr, &r->domain_name) > ndr_get_array_size(ndr, &r->domain_name)) {
5892                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain_name), ndr_get_array_length(ndr, &r->domain_name));
5893                         }
5894                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t)));
5895                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain_name, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t), CH_UTF16));
5896                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
5897                 }
5898         }
5899         return NDR_ERR_SUCCESS;
5900 }
5901
5902 _PUBLIC_ void ndr_print_drsuapi_DsGetDCInfoRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetDCInfoRequest1 *r)
5903 {
5904         ndr_print_struct(ndr, name, "drsuapi_DsGetDCInfoRequest1");
5905         ndr->depth++;
5906         ndr_print_ptr(ndr, "domain_name", r->domain_name);
5907         ndr->depth++;
5908         if (r->domain_name) {
5909                 ndr_print_string(ndr, "domain_name", r->domain_name);
5910         }
5911         ndr->depth--;
5912         ndr_print_int32(ndr, "level", r->level);
5913         ndr->depth--;
5914 }
5915
5916 static enum ndr_err_code ndr_push_drsuapi_DsGetDCInfoRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsGetDCInfoRequest *r)
5917 {
5918         if (ndr_flags & NDR_SCALARS) {
5919                 int level = ndr_push_get_switch_value(ndr, r);
5920                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
5921                 switch (level) {
5922                         case 1: {
5923                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfoRequest1(ndr, NDR_SCALARS, &r->req1));
5924                         break; }
5925
5926                         default:
5927                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5928                 }
5929         }
5930         if (ndr_flags & NDR_BUFFERS) {
5931                 int level = ndr_push_get_switch_value(ndr, r);
5932                 switch (level) {
5933                         case 1:
5934                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfoRequest1(ndr, NDR_BUFFERS, &r->req1));
5935                         break;
5936
5937                         default:
5938                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5939                 }
5940         }
5941         return NDR_ERR_SUCCESS;
5942 }
5943
5944 static enum ndr_err_code ndr_pull_drsuapi_DsGetDCInfoRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsGetDCInfoRequest *r)
5945 {
5946         int level;
5947         int32_t _level;
5948         level = ndr_pull_get_switch_value(ndr, r);
5949         if (ndr_flags & NDR_SCALARS) {
5950                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
5951                 if (_level != level) {
5952                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
5953                 }
5954                 switch (level) {
5955                         case 1: {
5956                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfoRequest1(ndr, NDR_SCALARS, &r->req1));
5957                         break; }
5958
5959                         default:
5960                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5961                 }
5962         }
5963         if (ndr_flags & NDR_BUFFERS) {
5964                 switch (level) {
5965                         case 1:
5966                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfoRequest1(ndr, NDR_BUFFERS, &r->req1));
5967                         break;
5968
5969                         default:
5970                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5971                 }
5972         }
5973         return NDR_ERR_SUCCESS;
5974 }
5975
5976 _PUBLIC_ void ndr_print_drsuapi_DsGetDCInfoRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsGetDCInfoRequest *r)
5977 {
5978         int level;
5979         level = ndr_print_get_switch_value(ndr, r);
5980         ndr_print_union(ndr, name, level, "drsuapi_DsGetDCInfoRequest");
5981         switch (level) {
5982                 case 1:
5983                         ndr_print_drsuapi_DsGetDCInfoRequest1(ndr, "req1", &r->req1);
5984                 break;
5985
5986                 default:
5987                         ndr_print_bad_level(ndr, name, level);
5988         }
5989 }
5990
5991 static enum ndr_err_code ndr_push_drsuapi_DsGetDCInfo1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetDCInfo1 *r)
5992 {
5993         if (ndr_flags & NDR_SCALARS) {
5994                 NDR_CHECK(ndr_push_align(ndr, 4));
5995                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->netbios_name));
5996                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dns_name));
5997                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->site_name));
5998                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->computer_dn));
5999                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_dn));
6000                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_pdc));
6001                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_enabled));
6002         }
6003         if (ndr_flags & NDR_BUFFERS) {
6004                 if (r->netbios_name) {
6005                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
6006                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6007                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
6008                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->netbios_name, ndr_charset_length(r->netbios_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6009                 }
6010                 if (r->dns_name) {
6011                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
6012                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6013                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
6014                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dns_name, ndr_charset_length(r->dns_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6015                 }
6016                 if (r->site_name) {
6017                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->site_name, CH_UTF16)));
6018                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6019                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->site_name, CH_UTF16)));
6020                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->site_name, ndr_charset_length(r->site_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6021                 }
6022                 if (r->computer_dn) {
6023                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->computer_dn, CH_UTF16)));
6024                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6025                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->computer_dn, CH_UTF16)));
6026                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->computer_dn, ndr_charset_length(r->computer_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6027                 }
6028                 if (r->server_dn) {
6029                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_dn, CH_UTF16)));
6030                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6031                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_dn, CH_UTF16)));
6032                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_dn, ndr_charset_length(r->server_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6033                 }
6034         }
6035         return NDR_ERR_SUCCESS;
6036 }
6037
6038 static enum ndr_err_code ndr_pull_drsuapi_DsGetDCInfo1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetDCInfo1 *r)
6039 {
6040         uint32_t _ptr_netbios_name;
6041         TALLOC_CTX *_mem_save_netbios_name_0;
6042         uint32_t _ptr_dns_name;
6043         TALLOC_CTX *_mem_save_dns_name_0;
6044         uint32_t _ptr_site_name;
6045         TALLOC_CTX *_mem_save_site_name_0;
6046         uint32_t _ptr_computer_dn;
6047         TALLOC_CTX *_mem_save_computer_dn_0;
6048         uint32_t _ptr_server_dn;
6049         TALLOC_CTX *_mem_save_server_dn_0;
6050         if (ndr_flags & NDR_SCALARS) {
6051                 NDR_CHECK(ndr_pull_align(ndr, 4));
6052                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_netbios_name));
6053                 if (_ptr_netbios_name) {
6054                         NDR_PULL_ALLOC(ndr, r->netbios_name);
6055                 } else {
6056                         r->netbios_name = NULL;
6057                 }
6058                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dns_name));
6059                 if (_ptr_dns_name) {
6060                         NDR_PULL_ALLOC(ndr, r->dns_name);
6061                 } else {
6062                         r->dns_name = NULL;
6063                 }
6064                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_name));
6065                 if (_ptr_site_name) {
6066                         NDR_PULL_ALLOC(ndr, r->site_name);
6067                 } else {
6068                         r->site_name = NULL;
6069                 }
6070                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_dn));
6071                 if (_ptr_computer_dn) {
6072                         NDR_PULL_ALLOC(ndr, r->computer_dn);
6073                 } else {
6074                         r->computer_dn = NULL;
6075                 }
6076                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_dn));
6077                 if (_ptr_server_dn) {
6078                         NDR_PULL_ALLOC(ndr, r->server_dn);
6079                 } else {
6080                         r->server_dn = NULL;
6081                 }
6082                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_pdc));
6083                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_enabled));
6084         }
6085         if (ndr_flags & NDR_BUFFERS) {
6086                 if (r->netbios_name) {
6087                         _mem_save_netbios_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6088                         NDR_PULL_SET_MEM_CTX(ndr, r->netbios_name, 0);
6089                         NDR_CHECK(ndr_pull_array_size(ndr, &r->netbios_name));
6090                         NDR_CHECK(ndr_pull_array_length(ndr, &r->netbios_name));
6091                         if (ndr_get_array_length(ndr, &r->netbios_name) > ndr_get_array_size(ndr, &r->netbios_name)) {
6092                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->netbios_name), ndr_get_array_length(ndr, &r->netbios_name));
6093                         }
6094                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t)));
6095                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->netbios_name, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t), CH_UTF16));
6096                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_netbios_name_0, 0);
6097                 }
6098                 if (r->dns_name) {
6099                         _mem_save_dns_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6100                         NDR_PULL_SET_MEM_CTX(ndr, r->dns_name, 0);
6101                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dns_name));
6102                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dns_name));
6103                         if (ndr_get_array_length(ndr, &r->dns_name) > ndr_get_array_size(ndr, &r->dns_name)) {
6104                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dns_name), ndr_get_array_length(ndr, &r->dns_name));
6105                         }
6106                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t)));
6107                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dns_name, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t), CH_UTF16));
6108                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dns_name_0, 0);
6109                 }
6110                 if (r->site_name) {
6111                         _mem_save_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6112                         NDR_PULL_SET_MEM_CTX(ndr, r->site_name, 0);
6113                         NDR_CHECK(ndr_pull_array_size(ndr, &r->site_name));
6114                         NDR_CHECK(ndr_pull_array_length(ndr, &r->site_name));
6115                         if (ndr_get_array_length(ndr, &r->site_name) > ndr_get_array_size(ndr, &r->site_name)) {
6116                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->site_name), ndr_get_array_length(ndr, &r->site_name));
6117                         }
6118                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->site_name), sizeof(uint16_t)));
6119                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->site_name, ndr_get_array_length(ndr, &r->site_name), sizeof(uint16_t), CH_UTF16));
6120                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0);
6121                 }
6122                 if (r->computer_dn) {
6123                         _mem_save_computer_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
6124                         NDR_PULL_SET_MEM_CTX(ndr, r->computer_dn, 0);
6125                         NDR_CHECK(ndr_pull_array_size(ndr, &r->computer_dn));
6126                         NDR_CHECK(ndr_pull_array_length(ndr, &r->computer_dn));
6127                         if (ndr_get_array_length(ndr, &r->computer_dn) > ndr_get_array_size(ndr, &r->computer_dn)) {
6128                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->computer_dn), ndr_get_array_length(ndr, &r->computer_dn));
6129                         }
6130                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->computer_dn), sizeof(uint16_t)));
6131                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->computer_dn, ndr_get_array_length(ndr, &r->computer_dn), sizeof(uint16_t), CH_UTF16));
6132                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_dn_0, 0);
6133                 }
6134                 if (r->server_dn) {
6135                         _mem_save_server_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
6136                         NDR_PULL_SET_MEM_CTX(ndr, r->server_dn, 0);
6137                         NDR_CHECK(ndr_pull_array_size(ndr, &r->server_dn));
6138                         NDR_CHECK(ndr_pull_array_length(ndr, &r->server_dn));
6139                         if (ndr_get_array_length(ndr, &r->server_dn) > ndr_get_array_size(ndr, &r->server_dn)) {
6140                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->server_dn), ndr_get_array_length(ndr, &r->server_dn));
6141                         }
6142                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_dn), sizeof(uint16_t)));
6143                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_dn, ndr_get_array_length(ndr, &r->server_dn), sizeof(uint16_t), CH_UTF16));
6144                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_dn_0, 0);
6145                 }
6146         }
6147         return NDR_ERR_SUCCESS;
6148 }
6149
6150 _PUBLIC_ void ndr_print_drsuapi_DsGetDCInfo1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetDCInfo1 *r)
6151 {
6152         ndr_print_struct(ndr, name, "drsuapi_DsGetDCInfo1");
6153         ndr->depth++;
6154         ndr_print_ptr(ndr, "netbios_name", r->netbios_name);
6155         ndr->depth++;
6156         if (r->netbios_name) {
6157                 ndr_print_string(ndr, "netbios_name", r->netbios_name);
6158         }
6159         ndr->depth--;
6160         ndr_print_ptr(ndr, "dns_name", r->dns_name);
6161         ndr->depth++;
6162         if (r->dns_name) {
6163                 ndr_print_string(ndr, "dns_name", r->dns_name);
6164         }
6165         ndr->depth--;
6166         ndr_print_ptr(ndr, "site_name", r->site_name);
6167         ndr->depth++;
6168         if (r->site_name) {
6169                 ndr_print_string(ndr, "site_name", r->site_name);
6170         }
6171         ndr->depth--;
6172         ndr_print_ptr(ndr, "computer_dn", r->computer_dn);
6173         ndr->depth++;
6174         if (r->computer_dn) {
6175                 ndr_print_string(ndr, "computer_dn", r->computer_dn);
6176         }
6177         ndr->depth--;
6178         ndr_print_ptr(ndr, "server_dn", r->server_dn);
6179         ndr->depth++;
6180         if (r->server_dn) {
6181                 ndr_print_string(ndr, "server_dn", r->server_dn);
6182         }
6183         ndr->depth--;
6184         ndr_print_uint32(ndr, "is_pdc", r->is_pdc);
6185         ndr_print_uint32(ndr, "is_enabled", r->is_enabled);
6186         ndr->depth--;
6187 }
6188
6189 static enum ndr_err_code ndr_push_drsuapi_DsGetDCInfoCtr1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetDCInfoCtr1 *r)
6190 {
6191         uint32_t cntr_array_1;
6192         if (ndr_flags & NDR_SCALARS) {
6193                 NDR_CHECK(ndr_push_align(ndr, 4));
6194                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
6195                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->array));
6196         }
6197         if (ndr_flags & NDR_BUFFERS) {
6198                 if (r->array) {
6199                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
6200                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
6201                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfo1(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
6202                         }
6203                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
6204                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfo1(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
6205                         }
6206                 }
6207         }
6208         return NDR_ERR_SUCCESS;
6209 }
6210
6211 static enum ndr_err_code ndr_pull_drsuapi_DsGetDCInfoCtr1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetDCInfoCtr1 *r)
6212 {
6213         uint32_t _ptr_array;
6214         uint32_t cntr_array_1;
6215         TALLOC_CTX *_mem_save_array_0;
6216         TALLOC_CTX *_mem_save_array_1;
6217         if (ndr_flags & NDR_SCALARS) {
6218                 NDR_CHECK(ndr_pull_align(ndr, 4));
6219                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
6220                 if (r->count < 0 || r->count > 10000) {
6221                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
6222                 }
6223                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_array));
6224                 if (_ptr_array) {
6225                         NDR_PULL_ALLOC(ndr, r->array);
6226                 } else {
6227                         r->array = NULL;
6228                 }
6229         }
6230         if (ndr_flags & NDR_BUFFERS) {
6231                 if (r->array) {
6232                         _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
6233                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
6234                         NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
6235                         NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
6236                         _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
6237                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
6238                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
6239                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfo1(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
6240                         }
6241                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
6242                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfo1(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
6243                         }
6244                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0);
6245                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
6246                 }
6247                 if (r->array) {
6248                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
6249                 }
6250         }
6251         return NDR_ERR_SUCCESS;
6252 }
6253
6254 _PUBLIC_ void ndr_print_drsuapi_DsGetDCInfoCtr1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetDCInfoCtr1 *r)
6255 {
6256         uint32_t cntr_array_1;
6257         ndr_print_struct(ndr, name, "drsuapi_DsGetDCInfoCtr1");
6258         ndr->depth++;
6259         ndr_print_uint32(ndr, "count", r->count);
6260         ndr_print_ptr(ndr, "array", r->array);
6261         ndr->depth++;
6262         if (r->array) {
6263                 ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
6264                 ndr->depth++;
6265                 for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
6266                         char *idx_1=NULL;
6267                         if (asprintf(&idx_1, "[%d]", cntr_array_1) != -1) {
6268                                 ndr_print_drsuapi_DsGetDCInfo1(ndr, "array", &r->array[cntr_array_1]);
6269                                 free(idx_1);
6270                         }
6271                 }
6272                 ndr->depth--;
6273         }
6274         ndr->depth--;
6275         ndr->depth--;
6276 }
6277
6278 static enum ndr_err_code ndr_push_drsuapi_DsGetDCInfo2(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetDCInfo2 *r)
6279 {
6280         if (ndr_flags & NDR_SCALARS) {
6281                 NDR_CHECK(ndr_push_align(ndr, 4));
6282                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->netbios_name));
6283                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dns_name));
6284                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->site_name));
6285                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->site_dn));
6286                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->computer_dn));
6287                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_dn));
6288                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->ntds_dn));
6289                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_pdc));
6290                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_enabled));
6291                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_gc));
6292                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->site_guid));
6293                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->computer_guid));
6294                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->server_guid));
6295                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->ntds_guid));
6296         }
6297         if (ndr_flags & NDR_BUFFERS) {
6298                 if (r->netbios_name) {
6299                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
6300                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6301                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
6302                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->netbios_name, ndr_charset_length(r->netbios_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6303                 }
6304                 if (r->dns_name) {
6305                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
6306                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6307                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
6308                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dns_name, ndr_charset_length(r->dns_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6309                 }
6310                 if (r->site_name) {
6311                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->site_name, CH_UTF16)));
6312                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6313                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->site_name, CH_UTF16)));
6314                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->site_name, ndr_charset_length(r->site_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6315                 }
6316                 if (r->site_dn) {
6317                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->site_dn, CH_UTF16)));
6318                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6319                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->site_dn, CH_UTF16)));
6320                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->site_dn, ndr_charset_length(r->site_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6321                 }
6322                 if (r->computer_dn) {
6323                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->computer_dn, CH_UTF16)));
6324                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6325                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->computer_dn, CH_UTF16)));
6326                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->computer_dn, ndr_charset_length(r->computer_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6327                 }
6328                 if (r->server_dn) {
6329                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_dn, CH_UTF16)));
6330                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6331                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_dn, CH_UTF16)));
6332                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_dn, ndr_charset_length(r->server_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6333                 }
6334                 if (r->ntds_dn) {
6335                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->ntds_dn, CH_UTF16)));
6336                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6337                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->ntds_dn, CH_UTF16)));
6338                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ntds_dn, ndr_charset_length(r->ntds_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6339                 }
6340         }
6341         return NDR_ERR_SUCCESS;
6342 }
6343
6344 static enum ndr_err_code ndr_pull_drsuapi_DsGetDCInfo2(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetDCInfo2 *r)
6345 {
6346         uint32_t _ptr_netbios_name;
6347         TALLOC_CTX *_mem_save_netbios_name_0;
6348         uint32_t _ptr_dns_name;
6349         TALLOC_CTX *_mem_save_dns_name_0;
6350         uint32_t _ptr_site_name;
6351         TALLOC_CTX *_mem_save_site_name_0;
6352         uint32_t _ptr_site_dn;
6353         TALLOC_CTX *_mem_save_site_dn_0;
6354         uint32_t _ptr_computer_dn;
6355         TALLOC_CTX *_mem_save_computer_dn_0;
6356         uint32_t _ptr_server_dn;
6357         TALLOC_CTX *_mem_save_server_dn_0;
6358         uint32_t _ptr_ntds_dn;
6359         TALLOC_CTX *_mem_save_ntds_dn_0;
6360         if (ndr_flags & NDR_SCALARS) {
6361                 NDR_CHECK(ndr_pull_align(ndr, 4));
6362                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_netbios_name));
6363                 if (_ptr_netbios_name) {
6364                         NDR_PULL_ALLOC(ndr, r->netbios_name);
6365                 } else {
6366                         r->netbios_name = NULL;
6367                 }
6368                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dns_name));
6369                 if (_ptr_dns_name) {
6370                         NDR_PULL_ALLOC(ndr, r->dns_name);
6371                 } else {
6372                         r->dns_name = NULL;
6373                 }
6374                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_name));
6375                 if (_ptr_site_name) {
6376                         NDR_PULL_ALLOC(ndr, r->site_name);
6377                 } else {
6378                         r->site_name = NULL;
6379                 }
6380                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_dn));
6381                 if (_ptr_site_dn) {
6382                         NDR_PULL_ALLOC(ndr, r->site_dn);
6383                 } else {
6384                         r->site_dn = NULL;
6385                 }
6386                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_dn));
6387                 if (_ptr_computer_dn) {
6388                         NDR_PULL_ALLOC(ndr, r->computer_dn);
6389                 } else {
6390                         r->computer_dn = NULL;
6391                 }
6392                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_dn));
6393                 if (_ptr_server_dn) {
6394                         NDR_PULL_ALLOC(ndr, r->server_dn);
6395                 } else {
6396                         r->server_dn = NULL;
6397                 }
6398                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ntds_dn));
6399                 if (_ptr_ntds_dn) {
6400                         NDR_PULL_ALLOC(ndr, r->ntds_dn);
6401                 } else {
6402                         r->ntds_dn = NULL;
6403                 }
6404                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_pdc));
6405                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_enabled));
6406                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_gc));
6407                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->site_guid));
6408                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->computer_guid));
6409                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->server_guid));
6410                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->ntds_guid));
6411         }
6412         if (ndr_flags & NDR_BUFFERS) {
6413                 if (r->netbios_name) {
6414                         _mem_save_netbios_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6415                         NDR_PULL_SET_MEM_CTX(ndr, r->netbios_name, 0);
6416                         NDR_CHECK(ndr_pull_array_size(ndr, &r->netbios_name));
6417                         NDR_CHECK(ndr_pull_array_length(ndr, &r->netbios_name));
6418                         if (ndr_get_array_length(ndr, &r->netbios_name) > ndr_get_array_size(ndr, &r->netbios_name)) {
6419                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->netbios_name), ndr_get_array_length(ndr, &r->netbios_name));
6420                         }
6421                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t)));
6422                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->netbios_name, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t), CH_UTF16));
6423                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_netbios_name_0, 0);
6424                 }
6425                 if (r->dns_name) {
6426                         _mem_save_dns_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6427                         NDR_PULL_SET_MEM_CTX(ndr, r->dns_name, 0);
6428                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dns_name));
6429                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dns_name));
6430                         if (ndr_get_array_length(ndr, &r->dns_name) > ndr_get_array_size(ndr, &r->dns_name)) {
6431                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dns_name), ndr_get_array_length(ndr, &r->dns_name));
6432                         }
6433                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t)));
6434                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dns_name, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t), CH_UTF16));
6435                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dns_name_0, 0);
6436                 }
6437                 if (r->site_name) {
6438                         _mem_save_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6439                         NDR_PULL_SET_MEM_CTX(ndr, r->site_name, 0);
6440                         NDR_CHECK(ndr_pull_array_size(ndr, &r->site_name));
6441                         NDR_CHECK(ndr_pull_array_length(ndr, &r->site_name));
6442                         if (ndr_get_array_length(ndr, &r->site_name) > ndr_get_array_size(ndr, &r->site_name)) {
6443                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->site_name), ndr_get_array_length(ndr, &r->site_name));
6444                         }
6445                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->site_name), sizeof(uint16_t)));
6446                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->site_name, ndr_get_array_length(ndr, &r->site_name), sizeof(uint16_t), CH_UTF16));
6447                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0);
6448                 }
6449                 if (r->site_dn) {
6450                         _mem_save_site_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
6451                         NDR_PULL_SET_MEM_CTX(ndr, r->site_dn, 0);
6452                         NDR_CHECK(ndr_pull_array_size(ndr, &r->site_dn));
6453                         NDR_CHECK(ndr_pull_array_length(ndr, &r->site_dn));
6454                         if (ndr_get_array_length(ndr, &r->site_dn) > ndr_get_array_size(ndr, &r->site_dn)) {
6455                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->site_dn), ndr_get_array_length(ndr, &r->site_dn));
6456                         }
6457                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->site_dn), sizeof(uint16_t)));
6458                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->site_dn, ndr_get_array_length(ndr, &r->site_dn), sizeof(uint16_t), CH_UTF16));
6459                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_dn_0, 0);
6460                 }
6461                 if (r->computer_dn) {
6462                         _mem_save_computer_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
6463                         NDR_PULL_SET_MEM_CTX(ndr, r->computer_dn, 0);
6464                         NDR_CHECK(ndr_pull_array_size(ndr, &r->computer_dn));
6465                         NDR_CHECK(ndr_pull_array_length(ndr, &r->computer_dn));
6466                         if (ndr_get_array_length(ndr, &r->computer_dn) > ndr_get_array_size(ndr, &r->computer_dn)) {
6467                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->computer_dn), ndr_get_array_length(ndr, &r->computer_dn));
6468                         }
6469                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->computer_dn), sizeof(uint16_t)));
6470                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->computer_dn, ndr_get_array_length(ndr, &r->computer_dn), sizeof(uint16_t), CH_UTF16));
6471                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_dn_0, 0);
6472                 }
6473                 if (r->server_dn) {
6474                         _mem_save_server_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
6475                         NDR_PULL_SET_MEM_CTX(ndr, r->server_dn, 0);
6476                         NDR_CHECK(ndr_pull_array_size(ndr, &r->server_dn));
6477                         NDR_CHECK(ndr_pull_array_length(ndr, &r->server_dn));
6478                         if (ndr_get_array_length(ndr, &r->server_dn) > ndr_get_array_size(ndr, &r->server_dn)) {
6479                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->server_dn), ndr_get_array_length(ndr, &r->server_dn));
6480                         }
6481                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_dn), sizeof(uint16_t)));
6482                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_dn, ndr_get_array_length(ndr, &r->server_dn), sizeof(uint16_t), CH_UTF16));
6483                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_dn_0, 0);
6484                 }
6485                 if (r->ntds_dn) {
6486                         _mem_save_ntds_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
6487                         NDR_PULL_SET_MEM_CTX(ndr, r->ntds_dn, 0);
6488                         NDR_CHECK(ndr_pull_array_size(ndr, &r->ntds_dn));
6489                         NDR_CHECK(ndr_pull_array_length(ndr, &r->ntds_dn));
6490                         if (ndr_get_array_length(ndr, &r->ntds_dn) > ndr_get_array_size(ndr, &r->ntds_dn)) {
6491                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->ntds_dn), ndr_get_array_length(ndr, &r->ntds_dn));
6492                         }
6493                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->ntds_dn), sizeof(uint16_t)));
6494                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ntds_dn, ndr_get_array_length(ndr, &r->ntds_dn), sizeof(uint16_t), CH_UTF16));
6495                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ntds_dn_0, 0);
6496                 }
6497         }
6498         return NDR_ERR_SUCCESS;
6499 }
6500
6501 _PUBLIC_ void ndr_print_drsuapi_DsGetDCInfo2(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetDCInfo2 *r)
6502 {
6503         ndr_print_struct(ndr, name, "drsuapi_DsGetDCInfo2");
6504         ndr->depth++;
6505         ndr_print_ptr(ndr, "netbios_name", r->netbios_name);
6506         ndr->depth++;
6507         if (r->netbios_name) {
6508                 ndr_print_string(ndr, "netbios_name", r->netbios_name);
6509         }
6510         ndr->depth--;
6511         ndr_print_ptr(ndr, "dns_name", r->dns_name);
6512         ndr->depth++;
6513         if (r->dns_name) {
6514                 ndr_print_string(ndr, "dns_name", r->dns_name);
6515         }
6516         ndr->depth--;
6517         ndr_print_ptr(ndr, "site_name", r->site_name);
6518         ndr->depth++;
6519         if (r->site_name) {
6520                 ndr_print_string(ndr, "site_name", r->site_name);
6521         }
6522         ndr->depth--;
6523         ndr_print_ptr(ndr, "site_dn", r->site_dn);
6524         ndr->depth++;
6525         if (r->site_dn) {
6526                 ndr_print_string(ndr, "site_dn", r->site_dn);
6527         }
6528         ndr->depth--;
6529         ndr_print_ptr(ndr, "computer_dn", r->computer_dn);
6530         ndr->depth++;
6531         if (r->computer_dn) {
6532                 ndr_print_string(ndr, "computer_dn", r->computer_dn);
6533         }
6534         ndr->depth--;
6535         ndr_print_ptr(ndr, "server_dn", r->server_dn);
6536         ndr->depth++;
6537         if (r->server_dn) {
6538                 ndr_print_string(ndr, "server_dn", r->server_dn);
6539         }
6540         ndr->depth--;
6541         ndr_print_ptr(ndr, "ntds_dn", r->ntds_dn);
6542         ndr->depth++;
6543         if (r->ntds_dn) {
6544                 ndr_print_string(ndr, "ntds_dn", r->ntds_dn);
6545         }
6546         ndr->depth--;
6547         ndr_print_uint32(ndr, "is_pdc", r->is_pdc);
6548         ndr_print_uint32(ndr, "is_enabled", r->is_enabled);
6549         ndr_print_uint32(ndr, "is_gc", r->is_gc);
6550         ndr_print_GUID(ndr, "site_guid", &r->site_guid);
6551         ndr_print_GUID(ndr, "computer_guid", &r->computer_guid);
6552         ndr_print_GUID(ndr, "server_guid", &r->server_guid);
6553         ndr_print_GUID(ndr, "ntds_guid", &r->ntds_guid);
6554         ndr->depth--;
6555 }
6556
6557 static enum ndr_err_code ndr_push_drsuapi_DsGetDCInfoCtr2(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetDCInfoCtr2 *r)
6558 {
6559         uint32_t cntr_array_1;
6560         if (ndr_flags & NDR_SCALARS) {
6561                 NDR_CHECK(ndr_push_align(ndr, 4));
6562                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
6563                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->array));
6564         }
6565         if (ndr_flags & NDR_BUFFERS) {
6566                 if (r->array) {
6567                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
6568                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
6569                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfo2(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
6570                         }
6571                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
6572                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfo2(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
6573                         }
6574                 }
6575         }
6576         return NDR_ERR_SUCCESS;
6577 }
6578
6579 static enum ndr_err_code ndr_pull_drsuapi_DsGetDCInfoCtr2(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetDCInfoCtr2 *r)
6580 {
6581         uint32_t _ptr_array;
6582         uint32_t cntr_array_1;
6583         TALLOC_CTX *_mem_save_array_0;
6584         TALLOC_CTX *_mem_save_array_1;
6585         if (ndr_flags & NDR_SCALARS) {
6586                 NDR_CHECK(ndr_pull_align(ndr, 4));
6587                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
6588                 if (r->count < 0 || r->count > 10000) {
6589                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
6590                 }
6591                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_array));
6592                 if (_ptr_array) {
6593                         NDR_PULL_ALLOC(ndr, r->array);
6594                 } else {
6595                         r->array = NULL;
6596                 }
6597         }
6598         if (ndr_flags & NDR_BUFFERS) {
6599                 if (r->array) {
6600                         _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
6601                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
6602                         NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
6603                         NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
6604                         _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
6605                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
6606                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
6607                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfo2(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
6608                         }
6609                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
6610                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfo2(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
6611                         }
6612                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0);
6613                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
6614                 }
6615                 if (r->array) {
6616                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
6617                 }
6618         }
6619         return NDR_ERR_SUCCESS;
6620 }
6621
6622 _PUBLIC_ void ndr_print_drsuapi_DsGetDCInfoCtr2(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetDCInfoCtr2 *r)
6623 {
6624         uint32_t cntr_array_1;
6625         ndr_print_struct(ndr, name, "drsuapi_DsGetDCInfoCtr2");
6626         ndr->depth++;
6627         ndr_print_uint32(ndr, "count", r->count);
6628         ndr_print_ptr(ndr, "array", r->array);
6629         ndr->depth++;
6630         if (r->array) {
6631                 ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
6632                 ndr->depth++;
6633                 for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
6634                         char *idx_1=NULL;
6635                         if (asprintf(&idx_1, "[%d]", cntr_array_1) != -1) {
6636                                 ndr_print_drsuapi_DsGetDCInfo2(ndr, "array", &r->array[cntr_array_1]);
6637                                 free(idx_1);
6638                         }
6639                 }
6640                 ndr->depth--;
6641         }
6642         ndr->depth--;
6643         ndr->depth--;
6644 }
6645
6646 static enum ndr_err_code ndr_push_drsuapi_DsGetDCInfo3(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetDCInfo3 *r)
6647 {
6648         if (ndr_flags & NDR_SCALARS) {
6649                 NDR_CHECK(ndr_push_align(ndr, 4));
6650                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->netbios_name));
6651                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dns_name));
6652                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->site_name));
6653                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->site_dn));
6654                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->computer_dn));
6655                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_dn));
6656                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->ntds_dn));
6657                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_pdc));
6658                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_enabled));
6659                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_gc));
6660                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_rodc));
6661                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->site_guid));
6662                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->computer_guid));
6663                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->server_guid));
6664                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->ntds_guid));
6665         }
6666         if (ndr_flags & NDR_BUFFERS) {
6667                 if (r->netbios_name) {
6668                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
6669                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6670                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
6671                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->netbios_name, ndr_charset_length(r->netbios_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6672                 }
6673                 if (r->dns_name) {
6674                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
6675                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6676                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
6677                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dns_name, ndr_charset_length(r->dns_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6678                 }
6679                 if (r->site_name) {
6680                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->site_name, CH_UTF16)));
6681                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6682                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->site_name, CH_UTF16)));
6683                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->site_name, ndr_charset_length(r->site_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6684                 }
6685                 if (r->site_dn) {
6686                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->site_dn, CH_UTF16)));
6687                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6688                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->site_dn, CH_UTF16)));
6689                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->site_dn, ndr_charset_length(r->site_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6690                 }
6691                 if (r->computer_dn) {
6692                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->computer_dn, CH_UTF16)));
6693                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6694                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->computer_dn, CH_UTF16)));
6695                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->computer_dn, ndr_charset_length(r->computer_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6696                 }
6697                 if (r->server_dn) {
6698                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_dn, CH_UTF16)));
6699                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6700                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_dn, CH_UTF16)));
6701                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_dn, ndr_charset_length(r->server_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6702                 }
6703                 if (r->ntds_dn) {
6704                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->ntds_dn, CH_UTF16)));
6705                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6706                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->ntds_dn, CH_UTF16)));
6707                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ntds_dn, ndr_charset_length(r->ntds_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6708                 }
6709         }
6710         return NDR_ERR_SUCCESS;
6711 }
6712
6713 static enum ndr_err_code ndr_pull_drsuapi_DsGetDCInfo3(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetDCInfo3 *r)
6714 {
6715         uint32_t _ptr_netbios_name;
6716         TALLOC_CTX *_mem_save_netbios_name_0;
6717         uint32_t _ptr_dns_name;
6718         TALLOC_CTX *_mem_save_dns_name_0;
6719         uint32_t _ptr_site_name;
6720         TALLOC_CTX *_mem_save_site_name_0;
6721         uint32_t _ptr_site_dn;
6722         TALLOC_CTX *_mem_save_site_dn_0;
6723         uint32_t _ptr_computer_dn;
6724         TALLOC_CTX *_mem_save_computer_dn_0;
6725         uint32_t _ptr_server_dn;
6726         TALLOC_CTX *_mem_save_server_dn_0;
6727         uint32_t _ptr_ntds_dn;
6728         TALLOC_CTX *_mem_save_ntds_dn_0;
6729         if (ndr_flags & NDR_SCALARS) {
6730                 NDR_CHECK(ndr_pull_align(ndr, 4));
6731                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_netbios_name));
6732                 if (_ptr_netbios_name) {
6733                         NDR_PULL_ALLOC(ndr, r->netbios_name);
6734                 } else {
6735                         r->netbios_name = NULL;
6736                 }
6737                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dns_name));
6738                 if (_ptr_dns_name) {
6739                         NDR_PULL_ALLOC(ndr, r->dns_name);
6740                 } else {
6741                         r->dns_name = NULL;
6742                 }
6743                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_name));
6744                 if (_ptr_site_name) {
6745                         NDR_PULL_ALLOC(ndr, r->site_name);
6746                 } else {
6747                         r->site_name = NULL;
6748                 }
6749                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_dn));
6750                 if (_ptr_site_dn) {
6751                         NDR_PULL_ALLOC(ndr, r->site_dn);
6752                 } else {
6753                         r->site_dn = NULL;
6754                 }
6755                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_dn));
6756                 if (_ptr_computer_dn) {
6757                         NDR_PULL_ALLOC(ndr, r->computer_dn);
6758                 } else {
6759                         r->computer_dn = NULL;
6760                 }
6761                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_dn));
6762                 if (_ptr_server_dn) {
6763                         NDR_PULL_ALLOC(ndr, r->server_dn);
6764                 } else {
6765                         r->server_dn = NULL;
6766                 }
6767                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ntds_dn));
6768                 if (_ptr_ntds_dn) {
6769                         NDR_PULL_ALLOC(ndr, r->ntds_dn);
6770                 } else {
6771                         r->ntds_dn = NULL;
6772                 }
6773                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_pdc));
6774                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_enabled));
6775                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_gc));
6776                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_rodc));
6777                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->site_guid));
6778                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->computer_guid));
6779                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->server_guid));
6780                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->ntds_guid));
6781         }
6782         if (ndr_flags & NDR_BUFFERS) {
6783                 if (r->netbios_name) {
6784                         _mem_save_netbios_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6785                         NDR_PULL_SET_MEM_CTX(ndr, r->netbios_name, 0);
6786                         NDR_CHECK(ndr_pull_array_size(ndr, &r->netbios_name));
6787                         NDR_CHECK(ndr_pull_array_length(ndr, &r->netbios_name));
6788                         if (ndr_get_array_length(ndr, &r->netbios_name) > ndr_get_array_size(ndr, &r->netbios_name)) {
6789                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->netbios_name), ndr_get_array_length(ndr, &r->netbios_name));
6790                         }
6791                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t)));
6792                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->netbios_name, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t), CH_UTF16));
6793                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_netbios_name_0, 0);
6794                 }
6795                 if (r->dns_name) {
6796                         _mem_save_dns_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6797                         NDR_PULL_SET_MEM_CTX(ndr, r->dns_name, 0);
6798                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dns_name));
6799                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dns_name));
6800                         if (ndr_get_array_length(ndr, &r->dns_name) > ndr_get_array_size(ndr, &r->dns_name)) {
6801                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dns_name), ndr_get_array_length(ndr, &r->dns_name));
6802                         }
6803                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t)));
6804                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dns_name, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t), CH_UTF16));
6805                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dns_name_0, 0);
6806                 }
6807                 if (r->site_name) {
6808                         _mem_save_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6809                         NDR_PULL_SET_MEM_CTX(ndr, r->site_name, 0);
6810                         NDR_CHECK(ndr_pull_array_size(ndr, &r->site_name));
6811                         NDR_CHECK(ndr_pull_array_length(ndr, &r->site_name));
6812                         if (ndr_get_array_length(ndr, &r->site_name) > ndr_get_array_size(ndr, &r->site_name)) {
6813                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->site_name), ndr_get_array_length(ndr, &r->site_name));
6814                         }
6815                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->site_name), sizeof(uint16_t)));
6816                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->site_name, ndr_get_array_length(ndr, &r->site_name), sizeof(uint16_t), CH_UTF16));
6817                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0);
6818                 }
6819                 if (r->site_dn) {
6820                         _mem_save_site_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
6821                         NDR_PULL_SET_MEM_CTX(ndr, r->site_dn, 0);
6822                         NDR_CHECK(ndr_pull_array_size(ndr, &r->site_dn));
6823                         NDR_CHECK(ndr_pull_array_length(ndr, &r->site_dn));
6824                         if (ndr_get_array_length(ndr, &r->site_dn) > ndr_get_array_size(ndr, &r->site_dn)) {
6825                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->site_dn), ndr_get_array_length(ndr, &r->site_dn));
6826                         }
6827                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->site_dn), sizeof(uint16_t)));
6828                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->site_dn, ndr_get_array_length(ndr, &r->site_dn), sizeof(uint16_t), CH_UTF16));
6829                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_dn_0, 0);
6830                 }
6831                 if (r->computer_dn) {
6832                         _mem_save_computer_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
6833                         NDR_PULL_SET_MEM_CTX(ndr, r->computer_dn, 0);
6834                         NDR_CHECK(ndr_pull_array_size(ndr, &r->computer_dn));
6835                         NDR_CHECK(ndr_pull_array_length(ndr, &r->computer_dn));
6836                         if (ndr_get_array_length(ndr, &r->computer_dn) > ndr_get_array_size(ndr, &r->computer_dn)) {
6837                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->computer_dn), ndr_get_array_length(ndr, &r->computer_dn));
6838                         }
6839                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->computer_dn), sizeof(uint16_t)));
6840                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->computer_dn, ndr_get_array_length(ndr, &r->computer_dn), sizeof(uint16_t), CH_UTF16));
6841                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_dn_0, 0);
6842                 }
6843                 if (r->server_dn) {
6844                         _mem_save_server_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
6845                         NDR_PULL_SET_MEM_CTX(ndr, r->server_dn, 0);
6846                         NDR_CHECK(ndr_pull_array_size(ndr, &r->server_dn));
6847                         NDR_CHECK(ndr_pull_array_length(ndr, &r->server_dn));
6848                         if (ndr_get_array_length(ndr, &r->server_dn) > ndr_get_array_size(ndr, &r->server_dn)) {
6849                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->server_dn), ndr_get_array_length(ndr, &r->server_dn));
6850                         }
6851                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_dn), sizeof(uint16_t)));
6852                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_dn, ndr_get_array_length(ndr, &r->server_dn), sizeof(uint16_t), CH_UTF16));
6853                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_dn_0, 0);
6854                 }
6855                 if (r->ntds_dn) {
6856                         _mem_save_ntds_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
6857                         NDR_PULL_SET_MEM_CTX(ndr, r->ntds_dn, 0);
6858                         NDR_CHECK(ndr_pull_array_size(ndr, &r->ntds_dn));
6859                         NDR_CHECK(ndr_pull_array_length(ndr, &r->ntds_dn));
6860                         if (ndr_get_array_length(ndr, &r->ntds_dn) > ndr_get_array_size(ndr, &r->ntds_dn)) {
6861                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->ntds_dn), ndr_get_array_length(ndr, &r->ntds_dn));
6862                         }
6863                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->ntds_dn), sizeof(uint16_t)));
6864                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ntds_dn, ndr_get_array_length(ndr, &r->ntds_dn), sizeof(uint16_t), CH_UTF16));
6865                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ntds_dn_0, 0);
6866                 }
6867         }
6868         return NDR_ERR_SUCCESS;
6869 }
6870
6871 _PUBLIC_ void ndr_print_drsuapi_DsGetDCInfo3(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetDCInfo3 *r)
6872 {
6873         ndr_print_struct(ndr, name, "drsuapi_DsGetDCInfo3");
6874         ndr->depth++;
6875         ndr_print_ptr(ndr, "netbios_name", r->netbios_name);
6876         ndr->depth++;
6877         if (r->netbios_name) {
6878                 ndr_print_string(ndr, "netbios_name", r->netbios_name);
6879         }
6880         ndr->depth--;
6881         ndr_print_ptr(ndr, "dns_name", r->dns_name);
6882         ndr->depth++;
6883         if (r->dns_name) {
6884                 ndr_print_string(ndr, "dns_name", r->dns_name);
6885         }
6886         ndr->depth--;
6887         ndr_print_ptr(ndr, "site_name", r->site_name);
6888         ndr->depth++;
6889         if (r->site_name) {
6890                 ndr_print_string(ndr, "site_name", r->site_name);
6891         }
6892         ndr->depth--;
6893         ndr_print_ptr(ndr, "site_dn", r->site_dn);
6894         ndr->depth++;
6895         if (r->site_dn) {
6896                 ndr_print_string(ndr, "site_dn", r->site_dn);
6897         }
6898         ndr->depth--;
6899         ndr_print_ptr(ndr, "computer_dn", r->computer_dn);
6900         ndr->depth++;
6901         if (r->computer_dn) {
6902                 ndr_print_string(ndr, "computer_dn", r->computer_dn);
6903         }
6904         ndr->depth--;
6905         ndr_print_ptr(ndr, "server_dn", r->server_dn);
6906         ndr->depth++;
6907         if (r->server_dn) {
6908                 ndr_print_string(ndr, "server_dn", r->server_dn);
6909         }
6910         ndr->depth--;
6911         ndr_print_ptr(ndr, "ntds_dn", r->ntds_dn);
6912         ndr->depth++;
6913         if (r->ntds_dn) {
6914                 ndr_print_string(ndr, "ntds_dn", r->ntds_dn);
6915         }
6916         ndr->depth--;
6917         ndr_print_uint32(ndr, "is_pdc", r->is_pdc);
6918         ndr_print_uint32(ndr, "is_enabled", r->is_enabled);
6919         ndr_print_uint32(ndr, "is_gc", r->is_gc);
6920         ndr_print_uint32(ndr, "is_rodc", r->is_rodc);
6921         ndr_print_GUID(ndr, "site_guid", &r->site_guid);
6922         ndr_print_GUID(ndr, "computer_guid", &r->computer_guid);
6923         ndr_print_GUID(ndr, "server_guid", &r->server_guid);
6924         ndr_print_GUID(ndr, "ntds_guid", &r->ntds_guid);
6925         ndr->depth--;
6926 }
6927
6928 static enum ndr_err_code ndr_push_drsuapi_DsGetDCInfoCtr3(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetDCInfoCtr3 *r)
6929 {
6930         uint32_t cntr_array_1;
6931         if (ndr_flags & NDR_SCALARS) {
6932                 NDR_CHECK(ndr_push_align(ndr, 4));
6933                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
6934                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->array));
6935         }
6936         if (ndr_flags & NDR_BUFFERS) {
6937                 if (r->array) {
6938                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
6939                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
6940                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfo3(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
6941                         }
6942                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
6943                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfo3(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
6944                         }
6945                 }
6946         }
6947         return NDR_ERR_SUCCESS;
6948 }
6949
6950 static enum ndr_err_code ndr_pull_drsuapi_DsGetDCInfoCtr3(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetDCInfoCtr3 *r)
6951 {
6952         uint32_t _ptr_array;
6953         uint32_t cntr_array_1;
6954         TALLOC_CTX *_mem_save_array_0;
6955         TALLOC_CTX *_mem_save_array_1;
6956         if (ndr_flags & NDR_SCALARS) {
6957                 NDR_CHECK(ndr_pull_align(ndr, 4));
6958                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
6959                 if (r->count < 0 || r->count > 10000) {
6960                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
6961                 }
6962                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_array));
6963                 if (_ptr_array) {
6964                         NDR_PULL_ALLOC(ndr, r->array);
6965                 } else {
6966                         r->array = NULL;
6967                 }
6968         }
6969         if (ndr_flags & NDR_BUFFERS) {
6970                 if (r->array) {
6971                         _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
6972                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
6973                         NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
6974                         NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
6975                         _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
6976                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
6977                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
6978                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfo3(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
6979                         }
6980                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
6981                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfo3(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
6982                         }
6983                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0);
6984                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
6985                 }
6986                 if (r->array) {
6987                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
6988                 }
6989         }
6990         return NDR_ERR_SUCCESS;
6991 }
6992
6993 _PUBLIC_ void ndr_print_drsuapi_DsGetDCInfoCtr3(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetDCInfoCtr3 *r)
6994 {
6995         uint32_t cntr_array_1;
6996         ndr_print_struct(ndr, name, "drsuapi_DsGetDCInfoCtr3");
6997         ndr->depth++;
6998         ndr_print_uint32(ndr, "count", r->count);
6999         ndr_print_ptr(ndr, "array", r->array);
7000         ndr->depth++;
7001         if (r->array) {
7002                 ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
7003                 ndr->depth++;
7004                 for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
7005                         char *idx_1=NULL;
7006                         if (asprintf(&idx_1, "[%d]", cntr_array_1) != -1) {
7007                                 ndr_print_drsuapi_DsGetDCInfo3(ndr, "array", &r->array[cntr_array_1]);
7008                                 free(idx_1);
7009                         }
7010                 }
7011                 ndr->depth--;
7012         }
7013         ndr->depth--;
7014         ndr->depth--;
7015 }
7016
7017 static enum ndr_err_code ndr_push_drsuapi_DsGetDCConnection01(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetDCConnection01 *r)
7018 {
7019         if (ndr_flags & NDR_SCALARS) {
7020                 NDR_CHECK(ndr_push_align(ndr, 4));
7021                 {
7022                         uint32_t _flags_save_ipv4address = ndr->flags;
7023                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
7024                         NDR_CHECK(ndr_push_ipv4address(ndr, NDR_SCALARS, r->client_ip_address));
7025                         ndr->flags = _flags_save_ipv4address;
7026                 }
7027                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
7028                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->connection_time));
7029                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
7030                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
7031                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
7032                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client_account));
7033         }
7034         if (ndr_flags & NDR_BUFFERS) {
7035                 if (r->client_account) {
7036                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client_account, CH_UTF16)));
7037                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7038                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client_account, CH_UTF16)));
7039                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client_account, ndr_charset_length(r->client_account, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7040                 }
7041         }
7042         return NDR_ERR_SUCCESS;
7043 }
7044
7045 static enum ndr_err_code ndr_pull_drsuapi_DsGetDCConnection01(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetDCConnection01 *r)
7046 {
7047         uint32_t _ptr_client_account;
7048         TALLOC_CTX *_mem_save_client_account_0;
7049         if (ndr_flags & NDR_SCALARS) {
7050                 NDR_CHECK(ndr_pull_align(ndr, 4));
7051                 {
7052                         uint32_t _flags_save_ipv4address = ndr->flags;
7053                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
7054                         NDR_CHECK(ndr_pull_ipv4address(ndr, NDR_SCALARS, &r->client_ip_address));
7055                         ndr->flags = _flags_save_ipv4address;
7056                 }
7057                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
7058                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->connection_time));
7059                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
7060                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
7061                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
7062                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_account));
7063                 if (_ptr_client_account) {
7064                         NDR_PULL_ALLOC(ndr, r->client_account);
7065                 } else {
7066                         r->client_account = NULL;
7067                 }
7068         }
7069         if (ndr_flags & NDR_BUFFERS) {
7070                 if (r->client_account) {
7071                         _mem_save_client_account_0 = NDR_PULL_GET_MEM_CTX(ndr);
7072                         NDR_PULL_SET_MEM_CTX(ndr, r->client_account, 0);
7073                         NDR_CHECK(ndr_pull_array_size(ndr, &r->client_account));
7074                         NDR_CHECK(ndr_pull_array_length(ndr, &r->client_account));
7075                         if (ndr_get_array_length(ndr, &r->client_account) > ndr_get_array_size(ndr, &r->client_account)) {
7076                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->client_account), ndr_get_array_length(ndr, &r->client_account));
7077                         }
7078                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client_account), sizeof(uint16_t)));
7079                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client_account, ndr_get_array_length(ndr, &r->client_account), sizeof(uint16_t), CH_UTF16));
7080                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_account_0, 0);
7081                 }
7082         }
7083         return NDR_ERR_SUCCESS;
7084 }
7085
7086 _PUBLIC_ void ndr_print_drsuapi_DsGetDCConnection01(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetDCConnection01 *r)
7087 {
7088         ndr_print_struct(ndr, name, "drsuapi_DsGetDCConnection01");
7089         ndr->depth++;
7090         ndr_print_ipv4address(ndr, "client_ip_address", r->client_ip_address);
7091         ndr_print_uint32(ndr, "unknown2", r->unknown2);
7092         ndr_print_uint32(ndr, "connection_time", r->connection_time);
7093         ndr_print_uint32(ndr, "unknown4", r->unknown4);
7094         ndr_print_uint32(ndr, "unknown5", r->unknown5);
7095         ndr_print_uint32(ndr, "unknown6", r->unknown6);
7096         ndr_print_ptr(ndr, "client_account", r->client_account);
7097         ndr->depth++;
7098         if (r->client_account) {
7099                 ndr_print_string(ndr, "client_account", r->client_account);
7100         }
7101         ndr->depth--;
7102         ndr->depth--;
7103 }
7104
7105 static enum ndr_err_code ndr_push_drsuapi_DsGetDCConnectionCtr01(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetDCConnectionCtr01 *r)
7106 {
7107         uint32_t cntr_array_1;
7108         if (ndr_flags & NDR_SCALARS) {
7109                 NDR_CHECK(ndr_push_align(ndr, 4));
7110                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7111                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->array));
7112         }
7113         if (ndr_flags & NDR_BUFFERS) {
7114                 if (r->array) {
7115                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7116                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7117                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCConnection01(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
7118                         }
7119                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7120                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCConnection01(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
7121                         }
7122                 }
7123         }
7124         return NDR_ERR_SUCCESS;
7125 }
7126
7127 static enum ndr_err_code ndr_pull_drsuapi_DsGetDCConnectionCtr01(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetDCConnectionCtr01 *r)
7128 {
7129         uint32_t _ptr_array;
7130         uint32_t cntr_array_1;
7131         TALLOC_CTX *_mem_save_array_0;
7132         TALLOC_CTX *_mem_save_array_1;
7133         if (ndr_flags & NDR_SCALARS) {
7134                 NDR_CHECK(ndr_pull_align(ndr, 4));
7135                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
7136                 if (r->count < 0 || r->count > 10000) {
7137                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
7138                 }
7139                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_array));
7140                 if (_ptr_array) {
7141                         NDR_PULL_ALLOC(ndr, r->array);
7142                 } else {
7143                         r->array = NULL;
7144                 }
7145         }
7146         if (ndr_flags & NDR_BUFFERS) {
7147                 if (r->array) {
7148                         _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
7149                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
7150                         NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
7151                         NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
7152                         _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
7153                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
7154                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7155                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCConnection01(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
7156                         }
7157                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7158                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCConnection01(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
7159                         }
7160                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0);
7161                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
7162                 }
7163                 if (r->array) {
7164                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
7165                 }
7166         }
7167         return NDR_ERR_SUCCESS;
7168 }
7169
7170 _PUBLIC_ void ndr_print_drsuapi_DsGetDCConnectionCtr01(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetDCConnectionCtr01 *r)
7171 {
7172         uint32_t cntr_array_1;
7173         ndr_print_struct(ndr, name, "drsuapi_DsGetDCConnectionCtr01");
7174         ndr->depth++;
7175         ndr_print_uint32(ndr, "count", r->count);
7176         ndr_print_ptr(ndr, "array", r->array);
7177         ndr->depth++;
7178         if (r->array) {
7179                 ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
7180                 ndr->depth++;
7181                 for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
7182                         char *idx_1=NULL;
7183                         if (asprintf(&idx_1, "[%d]", cntr_array_1) != -1) {
7184                                 ndr_print_drsuapi_DsGetDCConnection01(ndr, "array", &r->array[cntr_array_1]);
7185                                 free(idx_1);
7186                         }
7187                 }
7188                 ndr->depth--;
7189         }
7190         ndr->depth--;
7191         ndr->depth--;
7192 }
7193
7194 static enum ndr_err_code ndr_push_drsuapi_DsGetDCInfoCtr(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsGetDCInfoCtr *r)
7195 {
7196         if (ndr_flags & NDR_SCALARS) {
7197                 int level = ndr_push_get_switch_value(ndr, r);
7198                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
7199                 switch (level) {
7200                         case DRSUAPI_DC_INFO_CTR_1: {
7201                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfoCtr1(ndr, NDR_SCALARS, &r->ctr1));
7202                         break; }
7203
7204                         case DRSUAPI_DC_INFO_CTR_2: {
7205                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfoCtr2(ndr, NDR_SCALARS, &r->ctr2));
7206                         break; }
7207
7208                         case DRSUAPI_DC_INFO_CTR_3: {
7209                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfoCtr3(ndr, NDR_SCALARS, &r->ctr3));
7210                         break; }
7211
7212                         case DRSUAPI_DC_CONNECTION_CTR_01: {
7213                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCConnectionCtr01(ndr, NDR_SCALARS, &r->ctr01));
7214                         break; }
7215
7216                         default:
7217                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7218                 }
7219         }
7220         if (ndr_flags & NDR_BUFFERS) {
7221                 int level = ndr_push_get_switch_value(ndr, r);
7222                 switch (level) {
7223                         case DRSUAPI_DC_INFO_CTR_1:
7224                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfoCtr1(ndr, NDR_BUFFERS, &r->ctr1));
7225                         break;
7226
7227                         case DRSUAPI_DC_INFO_CTR_2:
7228                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfoCtr2(ndr, NDR_BUFFERS, &r->ctr2));
7229                         break;
7230
7231                         case DRSUAPI_DC_INFO_CTR_3:
7232                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfoCtr3(ndr, NDR_BUFFERS, &r->ctr3));
7233                         break;
7234
7235                         case DRSUAPI_DC_CONNECTION_CTR_01:
7236                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCConnectionCtr01(ndr, NDR_BUFFERS, &r->ctr01));
7237                         break;
7238
7239                         default:
7240                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7241                 }
7242         }
7243         return NDR_ERR_SUCCESS;
7244 }
7245
7246 static enum ndr_err_code ndr_pull_drsuapi_DsGetDCInfoCtr(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsGetDCInfoCtr *r)
7247 {
7248         int level;
7249         int32_t _level;
7250         level = ndr_pull_get_switch_value(ndr, r);
7251         if (ndr_flags & NDR_SCALARS) {
7252                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
7253                 if (_level != level) {
7254                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
7255                 }
7256                 switch (level) {
7257                         case DRSUAPI_DC_INFO_CTR_1: {
7258                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfoCtr1(ndr, NDR_SCALARS, &r->ctr1));
7259                         break; }
7260
7261                         case DRSUAPI_DC_INFO_CTR_2: {
7262                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfoCtr2(ndr, NDR_SCALARS, &r->ctr2));
7263                         break; }
7264
7265                         case DRSUAPI_DC_INFO_CTR_3: {
7266                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfoCtr3(ndr, NDR_SCALARS, &r->ctr3));
7267                         break; }
7268
7269                         case DRSUAPI_DC_CONNECTION_CTR_01: {
7270                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCConnectionCtr01(ndr, NDR_SCALARS, &r->ctr01));
7271                         break; }
7272
7273                         default:
7274                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7275                 }
7276         }
7277         if (ndr_flags & NDR_BUFFERS) {
7278                 switch (level) {
7279                         case DRSUAPI_DC_INFO_CTR_1:
7280                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfoCtr1(ndr, NDR_BUFFERS, &r->ctr1));
7281                         break;
7282
7283                         case DRSUAPI_DC_INFO_CTR_2:
7284                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfoCtr2(ndr, NDR_BUFFERS, &r->ctr2));
7285                         break;
7286
7287                         case DRSUAPI_DC_INFO_CTR_3:
7288                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfoCtr3(ndr, NDR_BUFFERS, &r->ctr3));
7289                         break;
7290
7291                         case DRSUAPI_DC_CONNECTION_CTR_01:
7292                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCConnectionCtr01(ndr, NDR_BUFFERS, &r->ctr01));
7293                         break;
7294
7295                         default:
7296                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7297                 }
7298         }
7299         return NDR_ERR_SUCCESS;
7300 }
7301
7302 _PUBLIC_ void ndr_print_drsuapi_DsGetDCInfoCtr(struct ndr_print *ndr, const char *name, const union drsuapi_DsGetDCInfoCtr *r)
7303 {
7304         int level;
7305         level = ndr_print_get_switch_value(ndr, r);
7306         ndr_print_union(ndr, name, level, "drsuapi_DsGetDCInfoCtr");
7307         switch (level) {
7308                 case DRSUAPI_DC_INFO_CTR_1:
7309                         ndr_print_drsuapi_DsGetDCInfoCtr1(ndr, "ctr1", &r->ctr1);
7310                 break;
7311
7312                 case DRSUAPI_DC_INFO_CTR_2:
7313                         ndr_print_drsuapi_DsGetDCInfoCtr2(ndr, "ctr2", &r->ctr2);
7314                 break;
7315
7316                 case DRSUAPI_DC_INFO_CTR_3:
7317                         ndr_print_drsuapi_DsGetDCInfoCtr3(ndr, "ctr3", &r->ctr3);
7318                 break;
7319
7320                 case DRSUAPI_DC_CONNECTION_CTR_01:
7321                         ndr_print_drsuapi_DsGetDCConnectionCtr01(ndr, "ctr01", &r->ctr01);
7322                 break;
7323
7324                 default:
7325                         ndr_print_bad_level(ndr, name, level);
7326         }
7327 }
7328
7329 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaObjectListItem(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaObjectListItem *r)
7330 {
7331         if (ndr_flags & NDR_SCALARS) {
7332                 NDR_CHECK(ndr_push_align(ndr, 4));
7333                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->next_object));
7334                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObject(ndr, NDR_SCALARS, &r->object));
7335         }
7336         if (ndr_flags & NDR_BUFFERS) {
7337                 if (r->next_object) {
7338                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectListItem(ndr, NDR_SCALARS|NDR_BUFFERS, r->next_object));
7339                 }
7340                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObject(ndr, NDR_BUFFERS, &r->object));
7341         }
7342         return NDR_ERR_SUCCESS;
7343 }
7344
7345 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaObjectListItem(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaObjectListItem *r)
7346 {
7347         uint32_t _ptr_next_object;
7348         TALLOC_CTX *_mem_save_next_object_0;
7349         if (ndr_flags & NDR_SCALARS) {
7350                 NDR_CHECK(ndr_pull_align(ndr, 4));
7351                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_next_object));
7352                 if (_ptr_next_object) {
7353                         NDR_PULL_ALLOC(ndr, r->next_object);
7354                 } else {
7355                         r->next_object = NULL;
7356                 }
7357                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObject(ndr, NDR_SCALARS, &r->object));
7358         }
7359         if (ndr_flags & NDR_BUFFERS) {
7360                 if (r->next_object) {
7361                         _mem_save_next_object_0 = NDR_PULL_GET_MEM_CTX(ndr);
7362                         NDR_PULL_SET_MEM_CTX(ndr, r->next_object, 0);
7363                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectListItem(ndr, NDR_SCALARS|NDR_BUFFERS, r->next_object));
7364                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_next_object_0, 0);
7365                 }
7366                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObject(ndr, NDR_BUFFERS, &r->object));
7367         }
7368         return NDR_ERR_SUCCESS;
7369 }
7370
7371 static enum ndr_err_code ndr_push_drsuapi_DsAddEntryRequest2(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAddEntryRequest2 *r)
7372 {
7373         if (ndr_flags & NDR_SCALARS) {
7374                 NDR_CHECK(ndr_push_align(ndr, 4));
7375                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectListItem(ndr, NDR_SCALARS, &r->first_object));
7376         }
7377         if (ndr_flags & NDR_BUFFERS) {
7378                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectListItem(ndr, NDR_BUFFERS, &r->first_object));
7379         }
7380         return NDR_ERR_SUCCESS;
7381 }
7382
7383 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryRequest2(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntryRequest2 *r)
7384 {
7385         if (ndr_flags & NDR_SCALARS) {
7386                 NDR_CHECK(ndr_pull_align(ndr, 4));
7387                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectListItem(ndr, NDR_SCALARS, &r->first_object));
7388         }
7389         if (ndr_flags & NDR_BUFFERS) {
7390                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectListItem(ndr, NDR_BUFFERS, &r->first_object));
7391         }
7392         return NDR_ERR_SUCCESS;
7393 }
7394
7395 _PUBLIC_ void ndr_print_drsuapi_DsAddEntryRequest2(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntryRequest2 *r)
7396 {
7397         ndr_print_struct(ndr, name, "drsuapi_DsAddEntryRequest2");
7398         ndr->depth++;
7399         ndr_print_drsuapi_DsReplicaObjectListItem(ndr, "first_object", &r->first_object);
7400         ndr->depth--;
7401 }
7402
7403 static enum ndr_err_code ndr_push_drsuapi_DsAddEntryRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsAddEntryRequest *r)
7404 {
7405         if (ndr_flags & NDR_SCALARS) {
7406                 int level = ndr_push_get_switch_value(ndr, r);
7407                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
7408                 switch (level) {
7409                         case 2: {
7410                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryRequest2(ndr, NDR_SCALARS, &r->req2));
7411                         break; }
7412
7413                         default:
7414                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7415                 }
7416         }
7417         if (ndr_flags & NDR_BUFFERS) {
7418                 int level = ndr_push_get_switch_value(ndr, r);
7419                 switch (level) {
7420                         case 2:
7421                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryRequest2(ndr, NDR_BUFFERS, &r->req2));
7422                         break;
7423
7424                         default:
7425                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7426                 }
7427         }
7428         return NDR_ERR_SUCCESS;
7429 }
7430
7431 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsAddEntryRequest *r)
7432 {
7433         int level;
7434         int32_t _level;
7435         level = ndr_pull_get_switch_value(ndr, r);
7436         if (ndr_flags & NDR_SCALARS) {
7437                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
7438                 if (_level != level) {
7439                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
7440                 }
7441                 switch (level) {
7442                         case 2: {
7443                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryRequest2(ndr, NDR_SCALARS, &r->req2));
7444                         break; }
7445
7446                         default:
7447                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7448                 }
7449         }
7450         if (ndr_flags & NDR_BUFFERS) {
7451                 switch (level) {
7452                         case 2:
7453                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryRequest2(ndr, NDR_BUFFERS, &r->req2));
7454                         break;
7455
7456                         default:
7457                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7458                 }
7459         }
7460         return NDR_ERR_SUCCESS;
7461 }
7462
7463 _PUBLIC_ void ndr_print_drsuapi_DsAddEntryRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsAddEntryRequest *r)
7464 {
7465         int level;
7466         level = ndr_print_get_switch_value(ndr, r);
7467         ndr_print_union(ndr, name, level, "drsuapi_DsAddEntryRequest");
7468         switch (level) {
7469                 case 2:
7470                         ndr_print_drsuapi_DsAddEntryRequest2(ndr, "req2", &r->req2);
7471                 break;
7472
7473                 default:
7474                         ndr_print_bad_level(ndr, name, level);
7475         }
7476 }
7477
7478 static enum ndr_err_code ndr_push_drsuapi_DsAddEntryErrorInfoX(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAddEntryErrorInfoX *r)
7479 {
7480         if (ndr_flags & NDR_SCALARS) {
7481                 NDR_CHECK(ndr_push_align(ndr, 4));
7482                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
7483                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->status));
7484                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
7485                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown3));
7486         }
7487         if (ndr_flags & NDR_BUFFERS) {
7488         }
7489         return NDR_ERR_SUCCESS;
7490 }
7491
7492 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryErrorInfoX(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntryErrorInfoX *r)
7493 {
7494         if (ndr_flags & NDR_SCALARS) {
7495                 NDR_CHECK(ndr_pull_align(ndr, 4));
7496                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
7497                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->status));
7498                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
7499                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown3));
7500         }
7501         if (ndr_flags & NDR_BUFFERS) {
7502         }
7503         return NDR_ERR_SUCCESS;
7504 }
7505
7506 _PUBLIC_ void ndr_print_drsuapi_DsAddEntryErrorInfoX(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntryErrorInfoX *r)
7507 {
7508         ndr_print_struct(ndr, name, "drsuapi_DsAddEntryErrorInfoX");
7509         ndr->depth++;
7510         ndr_print_uint32(ndr, "unknown1", r->unknown1);
7511         ndr_print_WERROR(ndr, "status", r->status);
7512         ndr_print_uint32(ndr, "unknown2", r->unknown2);
7513         ndr_print_uint16(ndr, "unknown3", r->unknown3);
7514         ndr->depth--;
7515 }
7516
7517 static enum ndr_err_code ndr_push_drsuapi_DsAddEntryExtraErrorBuffer(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAddEntryExtraErrorBuffer *r)
7518 {
7519         if (ndr_flags & NDR_SCALARS) {
7520                 NDR_CHECK(ndr_push_align(ndr, 4));
7521                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
7522                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
7523         }
7524         if (ndr_flags & NDR_BUFFERS) {
7525                 if (r->data) {
7526                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
7527                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->size));
7528                 }
7529         }
7530         return NDR_ERR_SUCCESS;
7531 }
7532
7533 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryExtraErrorBuffer(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntryExtraErrorBuffer *r)
7534 {
7535         uint32_t _ptr_data;
7536         TALLOC_CTX *_mem_save_data_0;
7537         if (ndr_flags & NDR_SCALARS) {
7538                 NDR_CHECK(ndr_pull_align(ndr, 4));
7539                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
7540                 if (r->size < 0 || r->size > 10485760) {
7541                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
7542                 }
7543                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
7544                 if (_ptr_data) {
7545                         NDR_PULL_ALLOC(ndr, r->data);
7546                 } else {
7547                         r->data = NULL;
7548                 }
7549         }
7550         if (ndr_flags & NDR_BUFFERS) {
7551                 if (r->data) {
7552                         _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
7553                         NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
7554                         NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
7555                         NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
7556                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_size(ndr, &r->data)));
7557                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
7558                 }
7559                 if (r->data) {
7560                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->size));
7561                 }
7562         }
7563         return NDR_ERR_SUCCESS;
7564 }
7565
7566 _PUBLIC_ void ndr_print_drsuapi_DsAddEntryExtraErrorBuffer(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntryExtraErrorBuffer *r)
7567 {
7568         ndr_print_struct(ndr, name, "drsuapi_DsAddEntryExtraErrorBuffer");
7569         ndr->depth++;
7570         ndr_print_uint32(ndr, "size", r->size);
7571         ndr_print_ptr(ndr, "data", r->data);
7572         ndr->depth++;
7573         if (r->data) {
7574                 ndr_print_array_uint8(ndr, "data", r->data, r->size);
7575         }
7576         ndr->depth--;
7577         ndr->depth--;
7578 }
7579
7580 static enum ndr_err_code ndr_push_drsuapi_DsAddEntryExtraError1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAddEntryExtraError1 *r)
7581 {
7582         if (ndr_flags & NDR_SCALARS) {
7583                 NDR_CHECK(ndr_push_align(ndr, 4));
7584                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->error));
7585                 NDR_CHECK(ndr_push_drsuapi_DsAttributeId(ndr, NDR_SCALARS, r->attid));
7586                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
7587                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryExtraErrorBuffer(ndr, NDR_SCALARS, &r->buffer));
7588         }
7589         if (ndr_flags & NDR_BUFFERS) {
7590                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryExtraErrorBuffer(ndr, NDR_BUFFERS, &r->buffer));
7591         }
7592         return NDR_ERR_SUCCESS;
7593 }
7594
7595 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryExtraError1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntryExtraError1 *r)
7596 {
7597         if (ndr_flags & NDR_SCALARS) {
7598                 NDR_CHECK(ndr_pull_align(ndr, 4));
7599                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->error));
7600                 NDR_CHECK(ndr_pull_drsuapi_DsAttributeId(ndr, NDR_SCALARS, &r->attid));
7601                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
7602                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryExtraErrorBuffer(ndr, NDR_SCALARS, &r->buffer));
7603         }
7604         if (ndr_flags & NDR_BUFFERS) {
7605                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryExtraErrorBuffer(ndr, NDR_BUFFERS, &r->buffer));
7606         }
7607         return NDR_ERR_SUCCESS;
7608 }
7609
7610 _PUBLIC_ void ndr_print_drsuapi_DsAddEntryExtraError1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntryExtraError1 *r)
7611 {
7612         ndr_print_struct(ndr, name, "drsuapi_DsAddEntryExtraError1");
7613         ndr->depth++;
7614         ndr_print_drsuapi_DsAddEntryErrorInfoX(ndr, "error", &r->error);
7615         ndr_print_drsuapi_DsAttributeId(ndr, "attid", r->attid);
7616         ndr_print_uint32(ndr, "unknown2", r->unknown2);
7617         ndr_print_drsuapi_DsAddEntryExtraErrorBuffer(ndr, "buffer", &r->buffer);
7618         ndr->depth--;
7619 }
7620
7621 static enum ndr_err_code ndr_push_drsuapi_DsAddEntryErrorListItem1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAddEntryErrorListItem1 *r)
7622 {
7623         if (ndr_flags & NDR_SCALARS) {
7624                 NDR_CHECK(ndr_push_align(ndr, 4));
7625                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->next));
7626                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryExtraError1(ndr, NDR_SCALARS, &r->error));
7627         }
7628         if (ndr_flags & NDR_BUFFERS) {
7629                 if (r->next) {
7630                         NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorListItem1(ndr, NDR_SCALARS|NDR_BUFFERS, r->next));
7631                 }
7632                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryExtraError1(ndr, NDR_BUFFERS, &r->error));
7633         }
7634         return NDR_ERR_SUCCESS;
7635 }
7636
7637 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryErrorListItem1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntryErrorListItem1 *r)
7638 {
7639         uint32_t _ptr_next;
7640         TALLOC_CTX *_mem_save_next_0;
7641         if (ndr_flags & NDR_SCALARS) {
7642                 NDR_CHECK(ndr_pull_align(ndr, 4));
7643                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_next));
7644                 if (_ptr_next) {
7645                         NDR_PULL_ALLOC(ndr, r->next);
7646                 } else {
7647                         r->next = NULL;
7648                 }
7649                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryExtraError1(ndr, NDR_SCALARS, &r->error));
7650         }
7651         if (ndr_flags & NDR_BUFFERS) {
7652                 if (r->next) {
7653                         _mem_save_next_0 = NDR_PULL_GET_MEM_CTX(ndr);
7654                         NDR_PULL_SET_MEM_CTX(ndr, r->next, 0);
7655                         NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorListItem1(ndr, NDR_SCALARS|NDR_BUFFERS, r->next));
7656                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_next_0, 0);
7657                 }
7658                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryExtraError1(ndr, NDR_BUFFERS, &r->error));
7659         }
7660         return NDR_ERR_SUCCESS;
7661 }
7662
7663 _PUBLIC_ void ndr_print_drsuapi_DsAddEntryErrorListItem1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntryErrorListItem1 *r)
7664 {
7665         ndr_print_struct(ndr, name, "drsuapi_DsAddEntryErrorListItem1");
7666         ndr->depth++;
7667         ndr_print_ptr(ndr, "next", r->next);
7668         ndr->depth++;
7669         if (r->next) {
7670                 ndr_print_drsuapi_DsAddEntryErrorListItem1(ndr, "next", r->next);
7671         }
7672         ndr->depth--;
7673         ndr_print_drsuapi_DsAddEntryExtraError1(ndr, "error", &r->error);
7674         ndr->depth--;
7675 }
7676
7677 static enum ndr_err_code ndr_push_drsuapi_DsAddEntryErrorInfo1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAddEntryErrorInfo1 *r)
7678 {
7679         if (ndr_flags & NDR_SCALARS) {
7680                 NDR_CHECK(ndr_push_align(ndr, 4));
7681                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->id));
7682                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->status));
7683                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorListItem1(ndr, NDR_SCALARS, &r->first));
7684         }
7685         if (ndr_flags & NDR_BUFFERS) {
7686                 if (r->id) {
7687                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->id));
7688                 }
7689                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorListItem1(ndr, NDR_BUFFERS, &r->first));
7690         }
7691         return NDR_ERR_SUCCESS;
7692 }
7693
7694 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryErrorInfo1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntryErrorInfo1 *r)
7695 {
7696         uint32_t _ptr_id;
7697         TALLOC_CTX *_mem_save_id_0;
7698         if (ndr_flags & NDR_SCALARS) {
7699                 NDR_CHECK(ndr_pull_align(ndr, 4));
7700                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_id));
7701                 if (_ptr_id) {
7702                         NDR_PULL_ALLOC(ndr, r->id);
7703                 } else {
7704                         r->id = NULL;
7705                 }
7706                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->status));
7707                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorListItem1(ndr, NDR_SCALARS, &r->first));
7708         }
7709         if (ndr_flags & NDR_BUFFERS) {
7710                 if (r->id) {
7711                         _mem_save_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
7712                         NDR_PULL_SET_MEM_CTX(ndr, r->id, 0);
7713                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->id));
7714                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_id_0, 0);
7715                 }
7716                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorListItem1(ndr, NDR_BUFFERS, &r->first));
7717         }
7718         return NDR_ERR_SUCCESS;
7719 }
7720
7721 _PUBLIC_ void ndr_print_drsuapi_DsAddEntryErrorInfo1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntryErrorInfo1 *r)
7722 {
7723         ndr_print_struct(ndr, name, "drsuapi_DsAddEntryErrorInfo1");
7724         ndr->depth++;
7725         ndr_print_ptr(ndr, "id", r->id);
7726         ndr->depth++;
7727         if (r->id) {
7728                 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "id", r->id);
7729         }
7730         ndr->depth--;
7731         ndr_print_WERROR(ndr, "status", r->status);
7732         ndr_print_drsuapi_DsAddEntryErrorListItem1(ndr, "first", &r->first);
7733         ndr->depth--;
7734 }
7735
7736 static enum ndr_err_code ndr_push_drsuapi_DsAddEntryErrorInfo(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsAddEntryErrorInfo *r)
7737 {
7738         if (ndr_flags & NDR_SCALARS) {
7739                 int level = ndr_push_get_switch_value(ndr, r);
7740                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
7741                 switch (level) {
7742                         case 1: {
7743                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfo1(ndr, NDR_SCALARS, &r->error1));
7744                         break; }
7745
7746                         case 4: {
7747                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->errorX));
7748                         break; }
7749
7750                         case 5: {
7751                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->errorX));
7752                         break; }
7753
7754                         case 6: {
7755                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->errorX));
7756                         break; }
7757
7758                         case 7: {
7759                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->errorX));
7760                         break; }
7761
7762                         default:
7763                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7764                 }
7765         }
7766         if (ndr_flags & NDR_BUFFERS) {
7767                 int level = ndr_push_get_switch_value(ndr, r);
7768                 switch (level) {
7769                         case 1:
7770                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfo1(ndr, NDR_BUFFERS, &r->error1));
7771                         break;
7772
7773                         case 4:
7774                         break;
7775
7776                         case 5:
7777                         break;
7778
7779                         case 6:
7780                         break;
7781
7782                         case 7:
7783                         break;
7784
7785                         default:
7786                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7787                 }
7788         }
7789         return NDR_ERR_SUCCESS;
7790 }
7791
7792 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryErrorInfo(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsAddEntryErrorInfo *r)
7793 {
7794         int level;
7795         uint32_t _level;
7796         level = ndr_pull_get_switch_value(ndr, r);
7797         if (ndr_flags & NDR_SCALARS) {
7798                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
7799                 if (_level != level) {
7800                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
7801                 }
7802                 switch (level) {
7803                         case 1: {
7804                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfo1(ndr, NDR_SCALARS, &r->error1));
7805                         break; }
7806
7807                         case 4: {
7808                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->errorX));
7809                         break; }
7810
7811                         case 5: {
7812                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->errorX));
7813                         break; }
7814
7815                         case 6: {
7816                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->errorX));
7817                         break; }
7818
7819                         case 7: {
7820                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->errorX));
7821                         break; }
7822
7823                         default:
7824                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7825                 }
7826         }
7827         if (ndr_flags & NDR_BUFFERS) {
7828                 switch (level) {
7829                         case 1:
7830                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfo1(ndr, NDR_BUFFERS, &r->error1));
7831                         break;
7832
7833                         case 4:
7834                         break;
7835
7836                         case 5:
7837                         break;
7838
7839                         case 6:
7840                         break;
7841
7842                         case 7:
7843                         break;
7844
7845                         default:
7846                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7847                 }
7848         }
7849         return NDR_ERR_SUCCESS;
7850 }
7851
7852 _PUBLIC_ void ndr_print_drsuapi_DsAddEntryErrorInfo(struct ndr_print *ndr, const char *name, const union drsuapi_DsAddEntryErrorInfo *r)
7853 {
7854         int level;
7855         level = ndr_print_get_switch_value(ndr, r);
7856         ndr_print_union(ndr, name, level, "drsuapi_DsAddEntryErrorInfo");
7857         switch (level) {
7858                 case 1:
7859                         ndr_print_drsuapi_DsAddEntryErrorInfo1(ndr, "error1", &r->error1);
7860                 break;
7861
7862                 case 4:
7863                         ndr_print_drsuapi_DsAddEntryErrorInfoX(ndr, "errorX", &r->errorX);
7864                 break;
7865
7866                 case 5:
7867                         ndr_print_drsuapi_DsAddEntryErrorInfoX(ndr, "errorX", &r->errorX);
7868                 break;
7869
7870                 case 6:
7871                         ndr_print_drsuapi_DsAddEntryErrorInfoX(ndr, "errorX", &r->errorX);
7872                 break;
7873
7874                 case 7:
7875                         ndr_print_drsuapi_DsAddEntryErrorInfoX(ndr, "errorX", &r->errorX);
7876                 break;
7877
7878                 default:
7879                         ndr_print_bad_level(ndr, name, level);
7880         }
7881 }
7882
7883 static enum ndr_err_code ndr_push_drsuapi_DsAddEntryError1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAddEntryError1 *r)
7884 {
7885         if (ndr_flags & NDR_SCALARS) {
7886                 NDR_CHECK(ndr_push_align(ndr, 4));
7887                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->status));
7888                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
7889                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info));
7890         }
7891         if (ndr_flags & NDR_BUFFERS) {
7892                 if (r->info) {
7893                         NDR_CHECK(ndr_push_set_switch_value(ndr, r->info, r->level));
7894                         NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info));
7895                 }
7896         }
7897         return NDR_ERR_SUCCESS;
7898 }
7899
7900 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryError1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntryError1 *r)
7901 {
7902         uint32_t _ptr_info;
7903         TALLOC_CTX *_mem_save_info_0;
7904         if (ndr_flags & NDR_SCALARS) {
7905                 NDR_CHECK(ndr_pull_align(ndr, 4));
7906                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->status));
7907                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
7908                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
7909                 if (_ptr_info) {
7910                         NDR_PULL_ALLOC(ndr, r->info);
7911                 } else {
7912                         r->info = NULL;
7913                 }
7914         }
7915         if (ndr_flags & NDR_BUFFERS) {
7916                 if (r->info) {
7917                         _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
7918                         NDR_PULL_SET_MEM_CTX(ndr, r->info, 0);
7919                         NDR_CHECK(ndr_pull_set_switch_value(ndr, r->info, r->level));
7920                         NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info));
7921                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
7922                 }
7923         }
7924         return NDR_ERR_SUCCESS;
7925 }
7926
7927 _PUBLIC_ void ndr_print_drsuapi_DsAddEntryError1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntryError1 *r)
7928 {
7929         ndr_print_struct(ndr, name, "drsuapi_DsAddEntryError1");
7930         ndr->depth++;
7931         ndr_print_WERROR(ndr, "status", r->status);
7932         ndr_print_uint32(ndr, "level", r->level);
7933         ndr_print_ptr(ndr, "info", r->info);
7934         ndr->depth++;
7935         if (r->info) {
7936                 ndr_print_set_switch_value(ndr, r->info, r->level);
7937                 ndr_print_drsuapi_DsAddEntryErrorInfo(ndr, "info", r->info);
7938         }
7939         ndr->depth--;
7940         ndr->depth--;
7941 }
7942
7943 static enum ndr_err_code ndr_push_drsuapi_DsAddEntryError(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsAddEntryError *r)
7944 {
7945         if (ndr_flags & NDR_SCALARS) {
7946                 int level = ndr_push_get_switch_value(ndr, r);
7947                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
7948                 switch (level) {
7949                         case 1: {
7950                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryError1(ndr, NDR_SCALARS, &r->info1));
7951                         break; }
7952
7953                         default:
7954                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7955                 }
7956         }
7957         if (ndr_flags & NDR_BUFFERS) {
7958                 int level = ndr_push_get_switch_value(ndr, r);
7959                 switch (level) {
7960                         case 1:
7961                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryError1(ndr, NDR_BUFFERS, &r->info1));
7962                         break;
7963
7964                         default:
7965                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7966                 }
7967         }
7968         return NDR_ERR_SUCCESS;
7969 }
7970
7971 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryError(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsAddEntryError *r)
7972 {
7973         int level;
7974         uint32_t _level;
7975         level = ndr_pull_get_switch_value(ndr, r);
7976         if (ndr_flags & NDR_SCALARS) {
7977                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
7978                 if (_level != level) {
7979                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
7980                 }
7981                 switch (level) {
7982                         case 1: {
7983                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryError1(ndr, NDR_SCALARS, &r->info1));
7984                         break; }
7985
7986                         default:
7987                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7988                 }
7989         }
7990         if (ndr_flags & NDR_BUFFERS) {
7991                 switch (level) {
7992                         case 1:
7993                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryError1(ndr, NDR_BUFFERS, &r->info1));
7994                         break;
7995
7996                         default:
7997                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7998                 }
7999         }
8000         return NDR_ERR_SUCCESS;
8001 }
8002
8003 _PUBLIC_ void ndr_print_drsuapi_DsAddEntryError(struct ndr_print *ndr, const char *name, const union drsuapi_DsAddEntryError *r)
8004 {
8005         int level;
8006         level = ndr_print_get_switch_value(ndr, r);
8007         ndr_print_union(ndr, name, level, "drsuapi_DsAddEntryError");
8008         switch (level) {
8009                 case 1:
8010                         ndr_print_drsuapi_DsAddEntryError1(ndr, "info1", &r->info1);
8011                 break;
8012
8013                 default:
8014                         ndr_print_bad_level(ndr, name, level);
8015         }
8016 }
8017
8018 static enum ndr_err_code ndr_push_drsuapi_DsReplicaObjectIdentifier2(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaObjectIdentifier2 *r)
8019 {
8020         if (ndr_flags & NDR_SCALARS) {
8021                 NDR_CHECK(ndr_push_align(ndr, 4));
8022                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
8023                 NDR_CHECK(ndr_push_dom_sid28(ndr, NDR_SCALARS, &r->sid));
8024         }
8025         if (ndr_flags & NDR_BUFFERS) {
8026                 NDR_CHECK(ndr_push_dom_sid28(ndr, NDR_BUFFERS, &r->sid));
8027         }
8028         return NDR_ERR_SUCCESS;
8029 }
8030
8031 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaObjectIdentifier2(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaObjectIdentifier2 *r)
8032 {
8033         if (ndr_flags & NDR_SCALARS) {
8034                 NDR_CHECK(ndr_pull_align(ndr, 4));
8035                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
8036                 NDR_CHECK(ndr_pull_dom_sid28(ndr, NDR_SCALARS, &r->sid));
8037         }
8038         if (ndr_flags & NDR_BUFFERS) {
8039                 NDR_CHECK(ndr_pull_dom_sid28(ndr, NDR_BUFFERS, &r->sid));
8040         }
8041         return NDR_ERR_SUCCESS;
8042 }
8043
8044 _PUBLIC_ void ndr_print_drsuapi_DsReplicaObjectIdentifier2(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaObjectIdentifier2 *r)
8045 {
8046         ndr_print_struct(ndr, name, "drsuapi_DsReplicaObjectIdentifier2");
8047         ndr->depth++;
8048         ndr_print_GUID(ndr, "guid", &r->guid);
8049         ndr_print_dom_sid28(ndr, "sid", &r->sid);
8050         ndr->depth--;
8051 }
8052
8053 static enum ndr_err_code ndr_push_drsuapi_DsAddEntryCtr2(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAddEntryCtr2 *r)
8054 {
8055         uint32_t cntr_objects_1;
8056         if (ndr_flags & NDR_SCALARS) {
8057                 NDR_CHECK(ndr_push_align(ndr, 4));
8058                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->id));
8059                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
8060                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->error));
8061                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8062                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->objects));
8063         }
8064         if (ndr_flags & NDR_BUFFERS) {
8065                 if (r->id) {
8066                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->id));
8067                 }
8068                 if (r->objects) {
8069                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8070                         for (cntr_objects_1 = 0; cntr_objects_1 < r->count; cntr_objects_1++) {
8071                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier2(ndr, NDR_SCALARS, &r->objects[cntr_objects_1]));
8072                         }
8073                         for (cntr_objects_1 = 0; cntr_objects_1 < r->count; cntr_objects_1++) {
8074                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier2(ndr, NDR_BUFFERS, &r->objects[cntr_objects_1]));
8075                         }
8076                 }
8077         }
8078         return NDR_ERR_SUCCESS;
8079 }
8080
8081 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryCtr2(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntryCtr2 *r)
8082 {
8083         uint32_t _ptr_id;
8084         TALLOC_CTX *_mem_save_id_0;
8085         uint32_t _ptr_objects;
8086         uint32_t cntr_objects_1;
8087         TALLOC_CTX *_mem_save_objects_0;
8088         TALLOC_CTX *_mem_save_objects_1;
8089         if (ndr_flags & NDR_SCALARS) {
8090                 NDR_CHECK(ndr_pull_align(ndr, 4));
8091                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_id));
8092                 if (_ptr_id) {
8093                         NDR_PULL_ALLOC(ndr, r->id);
8094                 } else {
8095                         r->id = NULL;
8096                 }
8097                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
8098                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->error));
8099                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
8100                 if (r->count < 0 || r->count > 10000) {
8101                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
8102                 }
8103                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_objects));
8104                 if (_ptr_objects) {
8105                         NDR_PULL_ALLOC(ndr, r->objects);
8106                 } else {
8107                         r->objects = NULL;
8108                 }
8109         }
8110         if (ndr_flags & NDR_BUFFERS) {
8111                 if (r->id) {
8112                         _mem_save_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
8113                         NDR_PULL_SET_MEM_CTX(ndr, r->id, 0);
8114                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->id));
8115                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_id_0, 0);
8116                 }
8117                 if (r->objects) {
8118                         _mem_save_objects_0 = NDR_PULL_GET_MEM_CTX(ndr);
8119                         NDR_PULL_SET_MEM_CTX(ndr, r->objects, 0);
8120                         NDR_CHECK(ndr_pull_array_size(ndr, &r->objects));
8121                         NDR_PULL_ALLOC_N(ndr, r->objects, ndr_get_array_size(ndr, &r->objects));
8122                         _mem_save_objects_1 = NDR_PULL_GET_MEM_CTX(ndr);
8123                         NDR_PULL_SET_MEM_CTX(ndr, r->objects, 0);
8124                         for (cntr_objects_1 = 0; cntr_objects_1 < r->count; cntr_objects_1++) {
8125                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier2(ndr, NDR_SCALARS, &r->objects[cntr_objects_1]));
8126                         }
8127                         for (cntr_objects_1 = 0; cntr_objects_1 < r->count; cntr_objects_1++) {
8128                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier2(ndr, NDR_BUFFERS, &r->objects[cntr_objects_1]));
8129                         }
8130                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_objects_1, 0);
8131                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_objects_0, 0);
8132                 }
8133                 if (r->objects) {
8134                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->objects, r->count));
8135                 }
8136         }
8137         return NDR_ERR_SUCCESS;
8138 }
8139
8140 _PUBLIC_ void ndr_print_drsuapi_DsAddEntryCtr2(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntryCtr2 *r)
8141 {
8142         uint32_t cntr_objects_1;
8143         ndr_print_struct(ndr, name, "drsuapi_DsAddEntryCtr2");
8144         ndr->depth++;
8145         ndr_print_ptr(ndr, "id", r->id);
8146         ndr->depth++;
8147         if (r->id) {
8148                 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "id", r->id);
8149         }
8150         ndr->depth--;
8151         ndr_print_uint32(ndr, "unknown1", r->unknown1);
8152         ndr_print_drsuapi_DsAddEntryErrorInfoX(ndr, "error", &r->error);
8153         ndr_print_uint32(ndr, "count", r->count);
8154         ndr_print_ptr(ndr, "objects", r->objects);
8155         ndr->depth++;
8156         if (r->objects) {
8157                 ndr->print(ndr, "%s: ARRAY(%d)", "objects", (int)r->count);
8158                 ndr->depth++;
8159                 for (cntr_objects_1=0;cntr_objects_1<r->count;cntr_objects_1++) {
8160                         char *idx_1=NULL;
8161                         if (asprintf(&idx_1, "[%d]", cntr_objects_1) != -1) {
8162                                 ndr_print_drsuapi_DsReplicaObjectIdentifier2(ndr, "objects", &r->objects[cntr_objects_1]);
8163                                 free(idx_1);
8164                         }
8165                 }
8166                 ndr->depth--;
8167         }
8168         ndr->depth--;
8169         ndr->depth--;
8170 }
8171
8172 static enum ndr_err_code ndr_push_drsuapi_DsAddEntryCtr3(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAddEntryCtr3 *r)
8173 {
8174         uint32_t cntr_objects_1;
8175         if (ndr_flags & NDR_SCALARS) {
8176                 NDR_CHECK(ndr_push_align(ndr, 4));
8177                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->id));
8178                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
8179                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->error));
8180                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8181                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->objects));
8182         }
8183         if (ndr_flags & NDR_BUFFERS) {
8184                 if (r->id) {
8185                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->id));
8186                 }
8187                 if (r->error) {
8188                         NDR_CHECK(ndr_push_set_switch_value(ndr, r->error, r->level));
8189                         NDR_CHECK(ndr_push_drsuapi_DsAddEntryError(ndr, NDR_SCALARS|NDR_BUFFERS, r->error));
8190                 }
8191                 if (r->objects) {
8192                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8193                         for (cntr_objects_1 = 0; cntr_objects_1 < r->count; cntr_objects_1++) {
8194                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier2(ndr, NDR_SCALARS, &r->objects[cntr_objects_1]));
8195                         }
8196                         for (cntr_objects_1 = 0; cntr_objects_1 < r->count; cntr_objects_1++) {
8197                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier2(ndr, NDR_BUFFERS, &r->objects[cntr_objects_1]));
8198                         }
8199                 }
8200         }
8201         return NDR_ERR_SUCCESS;
8202 }
8203
8204 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryCtr3(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntryCtr3 *r)
8205 {
8206         uint32_t _ptr_id;
8207         TALLOC_CTX *_mem_save_id_0;
8208         uint32_t _ptr_error;
8209         TALLOC_CTX *_mem_save_error_0;
8210         uint32_t _ptr_objects;
8211         uint32_t cntr_objects_1;
8212         TALLOC_CTX *_mem_save_objects_0;
8213         TALLOC_CTX *_mem_save_objects_1;
8214         if (ndr_flags & NDR_SCALARS) {
8215                 NDR_CHECK(ndr_pull_align(ndr, 4));
8216                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_id));
8217                 if (_ptr_id) {
8218                         NDR_PULL_ALLOC(ndr, r->id);
8219                 } else {
8220                         r->id = NULL;
8221                 }
8222                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
8223                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_error));
8224                 if (_ptr_error) {
8225                         NDR_PULL_ALLOC(ndr, r->error);
8226                 } else {
8227                         r->error = NULL;
8228                 }
8229                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
8230                 if (r->count < 0 || r->count > 10000) {
8231                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
8232                 }
8233                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_objects));
8234                 if (_ptr_objects) {
8235                         NDR_PULL_ALLOC(ndr, r->objects);
8236                 } else {
8237                         r->objects = NULL;
8238                 }
8239         }
8240         if (ndr_flags & NDR_BUFFERS) {
8241                 if (r->id) {
8242                         _mem_save_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
8243                         NDR_PULL_SET_MEM_CTX(ndr, r->id, 0);
8244                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->id));
8245                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_id_0, 0);
8246                 }
8247                 if (r->error) {
8248                         _mem_save_error_0 = NDR_PULL_GET_MEM_CTX(ndr);
8249                         NDR_PULL_SET_MEM_CTX(ndr, r->error, 0);
8250                         NDR_CHECK(ndr_pull_set_switch_value(ndr, r->error, r->level));
8251                         NDR_CHECK(ndr_pull_drsuapi_DsAddEntryError(ndr, NDR_SCALARS|NDR_BUFFERS, r->error));
8252                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_error_0, 0);
8253                 }
8254                 if (r->objects) {
8255                         _mem_save_objects_0 = NDR_PULL_GET_MEM_CTX(ndr);
8256                         NDR_PULL_SET_MEM_CTX(ndr, r->objects, 0);
8257                         NDR_CHECK(ndr_pull_array_size(ndr, &r->objects));
8258                         NDR_PULL_ALLOC_N(ndr, r->objects, ndr_get_array_size(ndr, &r->objects));
8259                         _mem_save_objects_1 = NDR_PULL_GET_MEM_CTX(ndr);
8260                         NDR_PULL_SET_MEM_CTX(ndr, r->objects, 0);
8261                         for (cntr_objects_1 = 0; cntr_objects_1 < r->count; cntr_objects_1++) {
8262                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier2(ndr, NDR_SCALARS, &r->objects[cntr_objects_1]));
8263                         }
8264                         for (cntr_objects_1 = 0; cntr_objects_1 < r->count; cntr_objects_1++) {
8265                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier2(ndr, NDR_BUFFERS, &r->objects[cntr_objects_1]));
8266                         }
8267                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_objects_1, 0);
8268                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_objects_0, 0);
8269                 }
8270                 if (r->objects) {
8271                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->objects, r->count));
8272                 }
8273         }
8274         return NDR_ERR_SUCCESS;
8275 }
8276
8277 _PUBLIC_ void ndr_print_drsuapi_DsAddEntryCtr3(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntryCtr3 *r)
8278 {
8279         uint32_t cntr_objects_1;
8280         ndr_print_struct(ndr, name, "drsuapi_DsAddEntryCtr3");
8281         ndr->depth++;
8282         ndr_print_ptr(ndr, "id", r->id);
8283         ndr->depth++;
8284         if (r->id) {
8285                 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "id", r->id);
8286         }
8287         ndr->depth--;
8288         ndr_print_uint32(ndr, "level", r->level);
8289         ndr_print_ptr(ndr, "error", r->error);
8290         ndr->depth++;
8291         if (r->error) {
8292                 ndr_print_set_switch_value(ndr, r->error, r->level);
8293                 ndr_print_drsuapi_DsAddEntryError(ndr, "error", r->error);
8294         }
8295         ndr->depth--;
8296         ndr_print_uint32(ndr, "count", r->count);
8297         ndr_print_ptr(ndr, "objects", r->objects);
8298         ndr->depth++;
8299         if (r->objects) {
8300                 ndr->print(ndr, "%s: ARRAY(%d)", "objects", (int)r->count);
8301                 ndr->depth++;
8302                 for (cntr_objects_1=0;cntr_objects_1<r->count;cntr_objects_1++) {
8303                         char *idx_1=NULL;
8304                         if (asprintf(&idx_1, "[%d]", cntr_objects_1) != -1) {
8305                                 ndr_print_drsuapi_DsReplicaObjectIdentifier2(ndr, "objects", &r->objects[cntr_objects_1]);
8306                                 free(idx_1);
8307                         }
8308                 }
8309                 ndr->depth--;
8310         }
8311         ndr->depth--;
8312         ndr->depth--;
8313 }
8314
8315 static enum ndr_err_code ndr_push_drsuapi_DsAddEntryCtr(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsAddEntryCtr *r)
8316 {
8317         if (ndr_flags & NDR_SCALARS) {
8318                 int level = ndr_push_get_switch_value(ndr, r);
8319                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
8320                 switch (level) {
8321                         case 2: {
8322                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryCtr2(ndr, NDR_SCALARS, &r->ctr2));
8323                         break; }
8324
8325                         case 3: {
8326                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryCtr3(ndr, NDR_SCALARS, &r->ctr3));
8327                         break; }
8328
8329                         default:
8330                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
8331                 }
8332         }
8333         if (ndr_flags & NDR_BUFFERS) {
8334                 int level = ndr_push_get_switch_value(ndr, r);
8335                 switch (level) {
8336                         case 2:
8337                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryCtr2(ndr, NDR_BUFFERS, &r->ctr2));
8338                         break;
8339
8340                         case 3:
8341                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryCtr3(ndr, NDR_BUFFERS, &r->ctr3));
8342                         break;
8343
8344                         default:
8345                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
8346                 }
8347         }
8348         return NDR_ERR_SUCCESS;
8349 }
8350
8351 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryCtr(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsAddEntryCtr *r)
8352 {
8353         int level;
8354         int32_t _level;
8355         level = ndr_pull_get_switch_value(ndr, r);
8356         if (ndr_flags & NDR_SCALARS) {
8357                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
8358                 if (_level != level) {
8359                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
8360                 }
8361                 switch (level) {
8362                         case 2: {
8363                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryCtr2(ndr, NDR_SCALARS, &r->ctr2));
8364                         break; }
8365
8366                         case 3: {
8367                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryCtr3(ndr, NDR_SCALARS, &r->ctr3));
8368                         break; }
8369
8370                         default:
8371                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
8372                 }
8373         }
8374         if (ndr_flags & NDR_BUFFERS) {
8375                 switch (level) {
8376                         case 2:
8377                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryCtr2(ndr, NDR_BUFFERS, &r->ctr2));
8378                         break;
8379
8380                         case 3:
8381                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryCtr3(ndr, NDR_BUFFERS, &r->ctr3));
8382                         break;
8383
8384                         default:
8385                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
8386                 }
8387         }
8388         return NDR_ERR_SUCCESS;
8389 }
8390
8391 _PUBLIC_ void ndr_print_drsuapi_DsAddEntryCtr(struct ndr_print *ndr, const char *name, const union drsuapi_DsAddEntryCtr *r)
8392 {
8393         int level;
8394         level = ndr_print_get_switch_value(ndr, r);
8395         ndr_print_union(ndr, name, level, "drsuapi_DsAddEntryCtr");
8396         switch (level) {
8397                 case 2:
8398                         ndr_print_drsuapi_DsAddEntryCtr2(ndr, "ctr2", &r->ctr2);
8399                 break;
8400
8401                 case 3:
8402                         ndr_print_drsuapi_DsAddEntryCtr3(ndr, "ctr3", &r->ctr3);
8403                 break;
8404
8405                 default:
8406                         ndr_print_bad_level(ndr, name, level);
8407         }
8408 }
8409
8410 static enum ndr_err_code ndr_push_drsuapi_DsReplicaGetInfoLevel(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsReplicaGetInfoLevel r)
8411 {
8412         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
8413         return NDR_ERR_SUCCESS;
8414 }
8415
8416 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaGetInfoLevel(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsReplicaGetInfoLevel *r)
8417 {
8418         uint32_t v;
8419         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
8420         *r = v;
8421         return NDR_ERR_SUCCESS;
8422 }
8423
8424 _PUBLIC_ void ndr_print_drsuapi_DsReplicaGetInfoLevel(struct ndr_print *ndr, const char *name, enum drsuapi_DsReplicaGetInfoLevel r)
8425 {
8426         const char *val = NULL;
8427
8428         switch (r) {
8429                 case DRSUAPI_DS_REPLICA_GET_INFO: val = "DRSUAPI_DS_REPLICA_GET_INFO"; break;
8430                 case DRSUAPI_DS_REPLICA_GET_INFO2: val = "DRSUAPI_DS_REPLICA_GET_INFO2"; break;
8431         }
8432         ndr_print_enum(ndr, name, "ENUM", val, r);
8433 }
8434
8435 static enum ndr_err_code ndr_push_drsuapi_DsReplicaInfoType(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsReplicaInfoType r)
8436 {
8437         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
8438         return NDR_ERR_SUCCESS;
8439 }
8440
8441 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaInfoType(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsReplicaInfoType *r)
8442 {
8443         uint32_t v;
8444         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
8445         *r = v;
8446         return NDR_ERR_SUCCESS;
8447 }
8448
8449 _PUBLIC_ void ndr_print_drsuapi_DsReplicaInfoType(struct ndr_print *ndr, const char *name, enum drsuapi_DsReplicaInfoType r)
8450 {
8451         const char *val = NULL;
8452
8453         switch (r) {
8454                 case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS: val = "DRSUAPI_DS_REPLICA_INFO_NEIGHBORS"; break;
8455                 case DRSUAPI_DS_REPLICA_INFO_CURSORS: val = "DRSUAPI_DS_REPLICA_INFO_CURSORS"; break;
8456                 case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA: val = "DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA"; break;
8457                 case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES: val = "DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES"; break;
8458                 case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES: val = "DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES"; break;
8459                 case DRSUAPI_DS_REPLICA_INFO_PENDING_OPS: val = "DRSUAPI_DS_REPLICA_INFO_PENDING_OPS"; break;
8460                 case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA: val = "DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA"; break;
8461                 case DRSUAPI_DS_REPLICA_INFO_CURSORS2: val = "DRSUAPI_DS_REPLICA_INFO_CURSORS2"; break;
8462                 case DRSUAPI_DS_REPLICA_INFO_CURSORS3: val = "DRSUAPI_DS_REPLICA_INFO_CURSORS3"; break;
8463                 case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2: val = "DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2"; break;
8464                 case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2: val = "DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2"; break;
8465                 case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02: val = "DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02"; break;
8466                 case DRSUAPI_DS_REPLICA_INFO_CONNECTIONS04: val = "DRSUAPI_DS_REPLICA_INFO_CONNECTIONS04"; break;
8467                 case DRSUAPI_DS_REPLICA_INFO_CURSORS05: val = "DRSUAPI_DS_REPLICA_INFO_CURSORS05"; break;
8468                 case DRSUAPI_DS_REPLICA_INFO_06: val = "DRSUAPI_DS_REPLICA_INFO_06"; break;
8469         }
8470         ndr_print_enum(ndr, name, "ENUM", val, r);
8471 }
8472
8473 static enum ndr_err_code ndr_push_drsuapi_DsReplicaGetInfoRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaGetInfoRequest1 *r)
8474 {
8475         if (ndr_flags & NDR_SCALARS) {
8476                 NDR_CHECK(ndr_push_align(ndr, 4));
8477                 NDR_CHECK(ndr_push_drsuapi_DsReplicaInfoType(ndr, NDR_SCALARS, r->info_type));
8478                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->object_dn));
8479                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid1));
8480         }
8481         if (ndr_flags & NDR_BUFFERS) {
8482                 if (r->object_dn) {
8483                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->object_dn, CH_UTF16)));
8484                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8485                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->object_dn, CH_UTF16)));
8486                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->object_dn, ndr_charset_length(r->object_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8487                 }
8488         }
8489         return NDR_ERR_SUCCESS;
8490 }
8491
8492 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaGetInfoRequest1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaGetInfoRequest1 *r)
8493 {
8494         uint32_t _ptr_object_dn;
8495         TALLOC_CTX *_mem_save_object_dn_0;
8496         if (ndr_flags & NDR_SCALARS) {
8497                 NDR_CHECK(ndr_pull_align(ndr, 4));
8498                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaInfoType(ndr, NDR_SCALARS, &r->info_type));
8499                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_object_dn));
8500                 if (_ptr_object_dn) {
8501                         NDR_PULL_ALLOC(ndr, r->object_dn);
8502                 } else {
8503                         r->object_dn = NULL;
8504                 }
8505                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid1));
8506         }
8507         if (ndr_flags & NDR_BUFFERS) {
8508                 if (r->object_dn) {
8509                         _mem_save_object_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
8510                         NDR_PULL_SET_MEM_CTX(ndr, r->object_dn, 0);
8511                         NDR_CHECK(ndr_pull_array_size(ndr, &r->object_dn));
8512                         NDR_CHECK(ndr_pull_array_length(ndr, &r->object_dn));
8513                         if (ndr_get_array_length(ndr, &r->object_dn) > ndr_get_array_size(ndr, &r->object_dn)) {
8514                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->object_dn), ndr_get_array_length(ndr, &r->object_dn));
8515                         }
8516                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->object_dn), sizeof(uint16_t)));
8517                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->object_dn, ndr_get_array_length(ndr, &r->object_dn), sizeof(uint16_t), CH_UTF16));
8518                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_object_dn_0, 0);
8519                 }
8520         }
8521         return NDR_ERR_SUCCESS;
8522 }
8523
8524 _PUBLIC_ void ndr_print_drsuapi_DsReplicaGetInfoRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaGetInfoRequest1 *r)
8525 {
8526         ndr_print_struct(ndr, name, "drsuapi_DsReplicaGetInfoRequest1");
8527         ndr->depth++;
8528         ndr_print_drsuapi_DsReplicaInfoType(ndr, "info_type", r->info_type);
8529         ndr_print_ptr(ndr, "object_dn", r->object_dn);
8530         ndr->depth++;
8531         if (r->object_dn) {
8532                 ndr_print_string(ndr, "object_dn", r->object_dn);
8533         }
8534         ndr->depth--;
8535         ndr_print_GUID(ndr, "guid1", &r->guid1);
8536         ndr->depth--;
8537 }
8538
8539 static enum ndr_err_code ndr_push_drsuapi_DsReplicaGetInfoRequest2(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaGetInfoRequest2 *r)
8540 {
8541         if (ndr_flags & NDR_SCALARS) {
8542                 NDR_CHECK(ndr_push_align(ndr, 4));
8543                 NDR_CHECK(ndr_push_drsuapi_DsReplicaInfoType(ndr, NDR_SCALARS, r->info_type));
8544                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->object_dn));
8545                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid1));
8546                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
8547                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->string1));
8548                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->string2));
8549                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
8550         }
8551         if (ndr_flags & NDR_BUFFERS) {
8552                 if (r->object_dn) {
8553                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->object_dn, CH_UTF16)));
8554                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8555                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->object_dn, CH_UTF16)));
8556                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->object_dn, ndr_charset_length(r->object_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8557                 }
8558                 if (r->string1) {
8559                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->string1, CH_UTF16)));
8560                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8561                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->string1, CH_UTF16)));
8562                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->string1, ndr_charset_length(r->string1, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8563                 }
8564                 if (r->string2) {
8565                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->string2, CH_UTF16)));
8566                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8567                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->string2, CH_UTF16)));
8568                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->string2, ndr_charset_length(r->string2, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8569                 }
8570         }
8571         return NDR_ERR_SUCCESS;
8572 }
8573
8574 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaGetInfoRequest2(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaGetInfoRequest2 *r)
8575 {
8576         uint32_t _ptr_object_dn;
8577         TALLOC_CTX *_mem_save_object_dn_0;
8578         uint32_t _ptr_string1;
8579         TALLOC_CTX *_mem_save_string1_0;
8580         uint32_t _ptr_string2;
8581         TALLOC_CTX *_mem_save_string2_0;
8582         if (ndr_flags & NDR_SCALARS) {
8583                 NDR_CHECK(ndr_pull_align(ndr, 4));
8584                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaInfoType(ndr, NDR_SCALARS, &r->info_type));
8585                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_object_dn));
8586                 if (_ptr_object_dn) {
8587                         NDR_PULL_ALLOC(ndr, r->object_dn);
8588                 } else {
8589                         r->object_dn = NULL;
8590                 }
8591                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid1));
8592                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
8593                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_string1));
8594                 if (_ptr_string1) {
8595                         NDR_PULL_ALLOC(ndr, r->string1);
8596                 } else {
8597                         r->string1 = NULL;
8598                 }
8599                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_string2));
8600                 if (_ptr_string2) {
8601                         NDR_PULL_ALLOC(ndr, r->string2);
8602                 } else {
8603                         r->string2 = NULL;
8604                 }
8605                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
8606         }
8607         if (ndr_flags & NDR_BUFFERS) {
8608                 if (r->object_dn) {
8609                         _mem_save_object_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
8610                         NDR_PULL_SET_MEM_CTX(ndr, r->object_dn, 0);
8611                         NDR_CHECK(ndr_pull_array_size(ndr, &r->object_dn));
8612                         NDR_CHECK(ndr_pull_array_length(ndr, &r->object_dn));
8613                         if (ndr_get_array_length(ndr, &r->object_dn) > ndr_get_array_size(ndr, &r->object_dn)) {
8614                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->object_dn), ndr_get_array_length(ndr, &r->object_dn));
8615                         }
8616                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->object_dn), sizeof(uint16_t)));
8617                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->object_dn, ndr_get_array_length(ndr, &r->object_dn), sizeof(uint16_t), CH_UTF16));
8618                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_object_dn_0, 0);
8619                 }
8620                 if (r->string1) {
8621                         _mem_save_string1_0 = NDR_PULL_GET_MEM_CTX(ndr);
8622                         NDR_PULL_SET_MEM_CTX(ndr, r->string1, 0);
8623                         NDR_CHECK(ndr_pull_array_size(ndr, &r->string1));
8624                         NDR_CHECK(ndr_pull_array_length(ndr, &r->string1));
8625                         if (ndr_get_array_length(ndr, &r->string1) > ndr_get_array_size(ndr, &r->string1)) {
8626                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->string1), ndr_get_array_length(ndr, &r->string1));
8627                         }
8628                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->string1), sizeof(uint16_t)));
8629                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string1, ndr_get_array_length(ndr, &r->string1), sizeof(uint16_t), CH_UTF16));
8630                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string1_0, 0);
8631                 }
8632                 if (r->string2) {
8633                         _mem_save_string2_0 = NDR_PULL_GET_MEM_CTX(ndr);
8634                         NDR_PULL_SET_MEM_CTX(ndr, r->string2, 0);
8635                         NDR_CHECK(ndr_pull_array_size(ndr, &r->string2));
8636                         NDR_CHECK(ndr_pull_array_length(ndr, &r->string2));
8637                         if (ndr_get_array_length(ndr, &r->string2) > ndr_get_array_size(ndr, &r->string2)) {
8638                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->string2), ndr_get_array_length(ndr, &r->string2));
8639                         }
8640                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->string2), sizeof(uint16_t)));
8641                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string2, ndr_get_array_length(ndr, &r->string2), sizeof(uint16_t), CH_UTF16));
8642                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string2_0, 0);
8643                 }
8644         }
8645         return NDR_ERR_SUCCESS;
8646 }
8647
8648 _PUBLIC_ void ndr_print_drsuapi_DsReplicaGetInfoRequest2(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaGetInfoRequest2 *r)
8649 {
8650         ndr_print_struct(ndr, name, "drsuapi_DsReplicaGetInfoRequest2");
8651         ndr->depth++;
8652         ndr_print_drsuapi_DsReplicaInfoType(ndr, "info_type", r->info_type);
8653         ndr_print_ptr(ndr, "object_dn", r->object_dn);
8654         ndr->depth++;
8655         if (r->object_dn) {
8656                 ndr_print_string(ndr, "object_dn", r->object_dn);
8657         }
8658         ndr->depth--;
8659         ndr_print_GUID(ndr, "guid1", &r->guid1);
8660         ndr_print_uint32(ndr, "unknown1", r->unknown1);
8661         ndr_print_ptr(ndr, "string1", r->string1);
8662         ndr->depth++;
8663         if (r->string1) {
8664                 ndr_print_string(ndr, "string1", r->string1);
8665         }
8666         ndr->depth--;
8667         ndr_print_ptr(ndr, "string2", r->string2);
8668         ndr->depth++;
8669         if (r->string2) {
8670                 ndr_print_string(ndr, "string2", r->string2);
8671         }
8672         ndr->depth--;
8673         ndr_print_uint32(ndr, "unknown2", r->unknown2);
8674         ndr->depth--;
8675 }
8676
8677 static enum ndr_err_code ndr_push_drsuapi_DsReplicaGetInfoRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsReplicaGetInfoRequest *r)
8678 {
8679         if (ndr_flags & NDR_SCALARS) {
8680                 int level = ndr_push_get_switch_value(ndr, r);
8681                 NDR_CHECK(ndr_push_drsuapi_DsReplicaGetInfoLevel(ndr, NDR_SCALARS, level));
8682                 switch (level) {
8683                         case DRSUAPI_DS_REPLICA_GET_INFO: {
8684                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaGetInfoRequest1(ndr, NDR_SCALARS, &r->req1));
8685                         break; }
8686
8687                         case DRSUAPI_DS_REPLICA_GET_INFO2: {
8688                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaGetInfoRequest2(ndr, NDR_SCALARS, &r->req2));
8689                         break; }
8690
8691                         default:
8692                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
8693                 }
8694         }
8695         if (ndr_flags & NDR_BUFFERS) {
8696                 int level = ndr_push_get_switch_value(ndr, r);
8697                 switch (level) {
8698                         case DRSUAPI_DS_REPLICA_GET_INFO:
8699                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaGetInfoRequest1(ndr, NDR_BUFFERS, &r->req1));
8700                         break;
8701
8702                         case DRSUAPI_DS_REPLICA_GET_INFO2:
8703                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaGetInfoRequest2(ndr, NDR_BUFFERS, &r->req2));
8704                         break;
8705
8706                         default:
8707                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
8708                 }
8709         }
8710         return NDR_ERR_SUCCESS;
8711 }
8712
8713 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaGetInfoRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsReplicaGetInfoRequest *r)
8714 {
8715         int level;
8716         uint32_t _level;
8717         level = ndr_pull_get_switch_value(ndr, r);
8718         if (ndr_flags & NDR_SCALARS) {
8719                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
8720                 if (_level != level) {
8721                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
8722                 }
8723                 switch (level) {
8724                         case DRSUAPI_DS_REPLICA_GET_INFO: {
8725                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaGetInfoRequest1(ndr, NDR_SCALARS, &r->req1));
8726                         break; }
8727
8728                         case DRSUAPI_DS_REPLICA_GET_INFO2: {
8729                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaGetInfoRequest2(ndr, NDR_SCALARS, &r->req2));
8730                         break; }
8731
8732                         default:
8733                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
8734                 }
8735         }
8736         if (ndr_flags & NDR_BUFFERS) {
8737                 switch (level) {
8738                         case DRSUAPI_DS_REPLICA_GET_INFO:
8739                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaGetInfoRequest1(ndr, NDR_BUFFERS, &r->req1));
8740                         break;
8741
8742                         case DRSUAPI_DS_REPLICA_GET_INFO2:
8743                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaGetInfoRequest2(ndr, NDR_BUFFERS, &r->req2));
8744                         break;
8745
8746                         default:
8747                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
8748                 }
8749         }
8750         return NDR_ERR_SUCCESS;
8751 }
8752
8753 _PUBLIC_ void ndr_print_drsuapi_DsReplicaGetInfoRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsReplicaGetInfoRequest *r)
8754 {
8755         int level;
8756         level = ndr_print_get_switch_value(ndr, r);
8757         ndr_print_union(ndr, name, level, "drsuapi_DsReplicaGetInfoRequest");
8758         switch (level) {
8759                 case DRSUAPI_DS_REPLICA_GET_INFO:
8760                         ndr_print_drsuapi_DsReplicaGetInfoRequest1(ndr, "req1", &r->req1);
8761                 break;
8762
8763                 case DRSUAPI_DS_REPLICA_GET_INFO2:
8764                         ndr_print_drsuapi_DsReplicaGetInfoRequest2(ndr, "req2", &r->req2);
8765                 break;
8766
8767                 default:
8768                         ndr_print_bad_level(ndr, name, level);
8769         }
8770 }
8771
8772 static enum ndr_err_code ndr_push_drsuapi_DsReplicaNeighbour(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaNeighbour *r)
8773 {
8774         if (ndr_flags & NDR_SCALARS) {
8775                 NDR_CHECK(ndr_push_align(ndr, 8));
8776                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->naming_context_dn));
8777                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->source_dsa_obj_dn));
8778                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->source_dsa_address));
8779                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->transport_obj_dn));
8780                 NDR_CHECK(ndr_push_drsuapi_DsReplicaNeighbourFlags(ndr, NDR_SCALARS, r->replica_flags));
8781                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
8782                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->naming_context_obj_guid));
8783                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_obj_guid));
8784                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
8785                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->transport_obj_guid));
8786                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->tmp_highest_usn));
8787                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->highest_usn));
8788                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_success));
8789                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_attempt));
8790                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->result_last_attempt));
8791                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->consecutive_sync_failures));
8792         }
8793         if (ndr_flags & NDR_BUFFERS) {
8794                 if (r->naming_context_dn) {
8795                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->naming_context_dn, CH_UTF16)));
8796                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8797                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->naming_context_dn, CH_UTF16)));
8798                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->naming_context_dn, ndr_charset_length(r->naming_context_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8799                 }
8800                 if (r->source_dsa_obj_dn) {
8801                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->source_dsa_obj_dn, CH_UTF16)));
8802                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8803                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->source_dsa_obj_dn, CH_UTF16)));
8804                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->source_dsa_obj_dn, ndr_charset_length(r->source_dsa_obj_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8805                 }
8806                 if (r->source_dsa_address) {
8807                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->source_dsa_address, CH_UTF16)));
8808                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8809                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->source_dsa_address, CH_UTF16)));
8810                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->source_dsa_address, ndr_charset_length(r->source_dsa_address, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8811                 }
8812                 if (r->transport_obj_dn) {
8813                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->transport_obj_dn, CH_UTF16)));
8814                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8815                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->transport_obj_dn, CH_UTF16)));
8816                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->transport_obj_dn, ndr_charset_length(r->transport_obj_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8817                 }
8818         }
8819         return NDR_ERR_SUCCESS;
8820 }
8821
8822 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaNeighbour(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaNeighbour *r)
8823 {
8824         uint32_t _ptr_naming_context_dn;
8825         TALLOC_CTX *_mem_save_naming_context_dn_0;
8826         uint32_t _ptr_source_dsa_obj_dn;
8827         TALLOC_CTX *_mem_save_source_dsa_obj_dn_0;
8828         uint32_t _ptr_source_dsa_address;
8829         TALLOC_CTX *_mem_save_source_dsa_address_0;
8830         uint32_t _ptr_transport_obj_dn;
8831         TALLOC_CTX *_mem_save_transport_obj_dn_0;
8832         if (ndr_flags & NDR_SCALARS) {
8833                 NDR_CHECK(ndr_pull_align(ndr, 8));
8834                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_naming_context_dn));
8835                 if (_ptr_naming_context_dn) {
8836                         NDR_PULL_ALLOC(ndr, r->naming_context_dn);
8837                 } else {
8838                         r->naming_context_dn = NULL;
8839                 }
8840                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_source_dsa_obj_dn));
8841                 if (_ptr_source_dsa_obj_dn) {
8842                         NDR_PULL_ALLOC(ndr, r->source_dsa_obj_dn);
8843                 } else {
8844                         r->source_dsa_obj_dn = NULL;
8845                 }
8846                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_source_dsa_address));
8847                 if (_ptr_source_dsa_address) {
8848                         NDR_PULL_ALLOC(ndr, r->source_dsa_address);
8849                 } else {
8850                         r->source_dsa_address = NULL;
8851                 }
8852                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_transport_obj_dn));
8853                 if (_ptr_transport_obj_dn) {
8854                         NDR_PULL_ALLOC(ndr, r->transport_obj_dn);
8855                 } else {
8856                         r->transport_obj_dn = NULL;
8857                 }
8858                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaNeighbourFlags(ndr, NDR_SCALARS, &r->replica_flags));
8859                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
8860                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->naming_context_obj_guid));
8861                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_obj_guid));
8862                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
8863                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->transport_obj_guid));
8864                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->tmp_highest_usn));
8865                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->highest_usn));
8866                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_success));
8867                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_attempt));
8868                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->result_last_attempt));
8869                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->consecutive_sync_failures));
8870         }
8871         if (ndr_flags & NDR_BUFFERS) {
8872                 if (r->naming_context_dn) {
8873                         _mem_save_naming_context_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
8874                         NDR_PULL_SET_MEM_CTX(ndr, r->naming_context_dn, 0);
8875                         NDR_CHECK(ndr_pull_array_size(ndr, &r->naming_context_dn));
8876                         NDR_CHECK(ndr_pull_array_length(ndr, &r->naming_context_dn));
8877                         if (ndr_get_array_length(ndr, &r->naming_context_dn) > ndr_get_array_size(ndr, &r->naming_context_dn)) {
8878                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->naming_context_dn), ndr_get_array_length(ndr, &r->naming_context_dn));
8879                         }
8880                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->naming_context_dn), sizeof(uint16_t)));
8881                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->naming_context_dn, ndr_get_array_length(ndr, &r->naming_context_dn), sizeof(uint16_t), CH_UTF16));
8882                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_naming_context_dn_0, 0);
8883                 }
8884                 if (r->source_dsa_obj_dn) {
8885                         _mem_save_source_dsa_obj_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
8886                         NDR_PULL_SET_MEM_CTX(ndr, r->source_dsa_obj_dn, 0);
8887                         NDR_CHECK(ndr_pull_array_size(ndr, &r->source_dsa_obj_dn));
8888                         NDR_CHECK(ndr_pull_array_length(ndr, &r->source_dsa_obj_dn));
8889                         if (ndr_get_array_length(ndr, &r->source_dsa_obj_dn) > ndr_get_array_size(ndr, &r->source_dsa_obj_dn)) {
8890                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->source_dsa_obj_dn), ndr_get_array_length(ndr, &r->source_dsa_obj_dn));
8891                         }
8892                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->source_dsa_obj_dn), sizeof(uint16_t)));
8893                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->source_dsa_obj_dn, ndr_get_array_length(ndr, &r->source_dsa_obj_dn), sizeof(uint16_t), CH_UTF16));
8894                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_source_dsa_obj_dn_0, 0);
8895                 }
8896                 if (r->source_dsa_address) {
8897                         _mem_save_source_dsa_address_0 = NDR_PULL_GET_MEM_CTX(ndr);
8898                         NDR_PULL_SET_MEM_CTX(ndr, r->source_dsa_address, 0);
8899                         NDR_CHECK(ndr_pull_array_size(ndr, &r->source_dsa_address));
8900                         NDR_CHECK(ndr_pull_array_length(ndr, &r->source_dsa_address));
8901                         if (ndr_get_array_length(ndr, &r->source_dsa_address) > ndr_get_array_size(ndr, &r->source_dsa_address)) {
8902                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->source_dsa_address), ndr_get_array_length(ndr, &r->source_dsa_address));
8903                         }
8904                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->source_dsa_address), sizeof(uint16_t)));
8905                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->source_dsa_address, ndr_get_array_length(ndr, &r->source_dsa_address), sizeof(uint16_t), CH_UTF16));
8906                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_source_dsa_address_0, 0);
8907                 }
8908                 if (r->transport_obj_dn) {
8909                         _mem_save_transport_obj_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
8910                         NDR_PULL_SET_MEM_CTX(ndr, r->transport_obj_dn, 0);
8911                         NDR_CHECK(ndr_pull_array_size(ndr, &r->transport_obj_dn));
8912                         NDR_CHECK(ndr_pull_array_length(ndr, &r->transport_obj_dn));
8913                         if (ndr_get_array_length(ndr, &r->transport_obj_dn) > ndr_get_array_size(ndr, &r->transport_obj_dn)) {
8914                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->transport_obj_dn), ndr_get_array_length(ndr, &r->transport_obj_dn));
8915                         }
8916                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->transport_obj_dn), sizeof(uint16_t)));
8917                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->transport_obj_dn, ndr_get_array_length(ndr, &r->transport_obj_dn), sizeof(uint16_t), CH_UTF16));
8918                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_transport_obj_dn_0, 0);
8919                 }
8920         }
8921         return NDR_ERR_SUCCESS;
8922 }
8923
8924 _PUBLIC_ void ndr_print_drsuapi_DsReplicaNeighbour(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaNeighbour *r)
8925 {
8926         ndr_print_struct(ndr, name, "drsuapi_DsReplicaNeighbour");
8927         ndr->depth++;
8928         ndr_print_ptr(ndr, "naming_context_dn", r->naming_context_dn);
8929         ndr->depth++;
8930         if (r->naming_context_dn) {
8931                 ndr_print_string(ndr, "naming_context_dn", r->naming_context_dn);
8932         }
8933         ndr->depth--;
8934         ndr_print_ptr(ndr, "source_dsa_obj_dn", r->source_dsa_obj_dn);
8935         ndr->depth++;
8936         if (r->source_dsa_obj_dn) {
8937                 ndr_print_string(ndr, "source_dsa_obj_dn", r->source_dsa_obj_dn);
8938         }
8939         ndr->depth--;
8940         ndr_print_ptr(ndr, "source_dsa_address", r->source_dsa_address);
8941         ndr->depth++;
8942         if (r->source_dsa_address) {
8943                 ndr_print_string(ndr, "source_dsa_address", r->source_dsa_address);
8944         }
8945         ndr->depth--;
8946         ndr_print_ptr(ndr, "transport_obj_dn", r->transport_obj_dn);
8947         ndr->depth++;
8948         if (r->transport_obj_dn) {
8949                 ndr_print_string(ndr, "transport_obj_dn", r->transport_obj_dn);
8950         }
8951         ndr->depth--;
8952         ndr_print_drsuapi_DsReplicaNeighbourFlags(ndr, "replica_flags", r->replica_flags);
8953         ndr_print_uint32(ndr, "reserved", r->reserved);
8954         ndr_print_GUID(ndr, "naming_context_obj_guid", &r->naming_context_obj_guid);
8955         ndr_print_GUID(ndr, "source_dsa_obj_guid", &r->source_dsa_obj_guid);
8956         ndr_print_GUID(ndr, "source_dsa_invocation_id", &r->source_dsa_invocation_id);
8957         ndr_print_GUID(ndr, "transport_obj_guid", &r->transport_obj_guid);
8958         ndr_print_hyper(ndr, "tmp_highest_usn", r->tmp_highest_usn);
8959         ndr_print_hyper(ndr, "highest_usn", r->highest_usn);
8960         ndr_print_NTTIME(ndr, "last_success", r->last_success);
8961         ndr_print_NTTIME(ndr, "last_attempt", r->last_attempt);
8962         ndr_print_WERROR(ndr, "result_last_attempt", r->result_last_attempt);
8963         ndr_print_uint32(ndr, "consecutive_sync_failures", r->consecutive_sync_failures);
8964         ndr->depth--;
8965 }
8966
8967 static enum ndr_err_code ndr_push_drsuapi_DsReplicaNeighbourCtr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaNeighbourCtr *r)
8968 {
8969         uint32_t cntr_array_0;
8970         if (ndr_flags & NDR_SCALARS) {
8971                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8972                 NDR_CHECK(ndr_push_align(ndr, 8));
8973                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8974                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
8975                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
8976                         NDR_CHECK(ndr_push_drsuapi_DsReplicaNeighbour(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
8977                 }
8978         }
8979         if (ndr_flags & NDR_BUFFERS) {
8980                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
8981                         NDR_CHECK(ndr_push_drsuapi_DsReplicaNeighbour(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
8982                 }
8983         }
8984         return NDR_ERR_SUCCESS;
8985 }
8986
8987 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaNeighbourCtr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaNeighbourCtr *r)
8988 {
8989         uint32_t cntr_array_0;
8990         TALLOC_CTX *_mem_save_array_0;
8991         if (ndr_flags & NDR_SCALARS) {
8992                 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
8993                 NDR_CHECK(ndr_pull_align(ndr, 8));
8994                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
8995                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
8996                 NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
8997                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
8998                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
8999                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
9000                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaNeighbour(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
9001                 }
9002                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
9003                 if (r->array) {
9004                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
9005                 }
9006         }
9007         if (ndr_flags & NDR_BUFFERS) {
9008                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
9009                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
9010                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
9011                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaNeighbour(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
9012                 }
9013                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
9014         }
9015         return NDR_ERR_SUCCESS;
9016 }
9017
9018 _PUBLIC_ void ndr_print_drsuapi_DsReplicaNeighbourCtr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaNeighbourCtr *r)
9019 {
9020         uint32_t cntr_array_0;
9021         ndr_print_struct(ndr, name, "drsuapi_DsReplicaNeighbourCtr");
9022         ndr->depth++;
9023         ndr_print_uint32(ndr, "count", r->count);
9024         ndr_print_uint32(ndr, "reserved", r->reserved);
9025         ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
9026         ndr->depth++;
9027         for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
9028                 char *idx_0=NULL;
9029                 if (asprintf(&idx_0, "[%d]", cntr_array_0) != -1) {
9030                         ndr_print_drsuapi_DsReplicaNeighbour(ndr, "array", &r->array[cntr_array_0]);
9031                         free(idx_0);
9032                 }
9033         }
9034         ndr->depth--;
9035         ndr->depth--;
9036 }
9037
9038 static enum ndr_err_code ndr_push_drsuapi_DsReplicaCursorCtr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaCursorCtr *r)
9039 {
9040         uint32_t cntr_array_0;
9041         if (ndr_flags & NDR_SCALARS) {
9042                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
9043                 NDR_CHECK(ndr_push_align(ndr, 8));
9044                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
9045                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
9046                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
9047                         NDR_CHECK(ndr_push_drsuapi_DsReplicaCursor(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
9048                 }
9049         }
9050         if (ndr_flags & NDR_BUFFERS) {
9051         }
9052         return NDR_ERR_SUCCESS;
9053 }
9054
9055 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaCursorCtr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaCursorCtr *r)
9056 {
9057         uint32_t cntr_array_0;
9058         TALLOC_CTX *_mem_save_array_0;
9059         if (ndr_flags & NDR_SCALARS) {
9060                 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
9061                 NDR_CHECK(ndr_pull_align(ndr, 8));
9062                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
9063                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
9064                 NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
9065                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
9066                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
9067                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
9068                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursor(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
9069                 }
9070                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
9071                 if (r->array) {
9072                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
9073                 }
9074         }
9075         if (ndr_flags & NDR_BUFFERS) {
9076         }
9077         return NDR_ERR_SUCCESS;
9078 }
9079
9080 _PUBLIC_ void ndr_print_drsuapi_DsReplicaCursorCtr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaCursorCtr *r)
9081 {
9082         uint32_t cntr_array_0;
9083         ndr_print_struct(ndr, name, "drsuapi_DsReplicaCursorCtr");
9084         ndr->depth++;
9085         ndr_print_uint32(ndr, "count", r->count);
9086         ndr_print_uint32(ndr, "reserved", r->reserved);
9087         ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
9088         ndr->depth++;
9089         for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
9090                 char *idx_0=NULL;
9091                 if (asprintf(&idx_0, "[%d]", cntr_array_0) != -1) {
9092                         ndr_print_drsuapi_DsReplicaCursor(ndr, "array", &r->array[cntr_array_0]);
9093                         free(idx_0);
9094                 }
9095         }
9096         ndr->depth--;
9097         ndr->depth--;
9098 }
9099
9100 static enum ndr_err_code ndr_push_drsuapi_DsReplicaObjMetaData(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaObjMetaData *r)
9101 {
9102         if (ndr_flags & NDR_SCALARS) {
9103                 NDR_CHECK(ndr_push_align(ndr, 8));
9104                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->attribute_name));
9105                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
9106                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->originating_change_time));
9107                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->originating_invocation_id));
9108                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->originating_usn));
9109                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->local_usn));
9110         }
9111         if (ndr_flags & NDR_BUFFERS) {
9112                 if (r->attribute_name) {
9113                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->attribute_name, CH_UTF16)));
9114                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9115                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->attribute_name, CH_UTF16)));
9116                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->attribute_name, ndr_charset_length(r->attribute_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9117                 }
9118         }
9119         return NDR_ERR_SUCCESS;
9120 }
9121
9122 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaObjMetaData(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaObjMetaData *r)
9123 {
9124         uint32_t _ptr_attribute_name;
9125         TALLOC_CTX *_mem_save_attribute_name_0;
9126         if (ndr_flags & NDR_SCALARS) {
9127                 NDR_CHECK(ndr_pull_align(ndr, 8));
9128                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_attribute_name));
9129                 if (_ptr_attribute_name) {
9130                         NDR_PULL_ALLOC(ndr, r->attribute_name);
9131                 } else {
9132                         r->attribute_name = NULL;
9133                 }
9134                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
9135                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->originating_change_time));
9136                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->originating_invocation_id));
9137                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->originating_usn));
9138                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->local_usn));
9139         }
9140         if (ndr_flags & NDR_BUFFERS) {
9141                 if (r->attribute_name) {
9142                         _mem_save_attribute_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9143                         NDR_PULL_SET_MEM_CTX(ndr, r->attribute_name, 0);
9144                         NDR_CHECK(ndr_pull_array_size(ndr, &r->attribute_name));
9145                         NDR_CHECK(ndr_pull_array_length(ndr, &r->attribute_name));
9146                         if (ndr_get_array_length(ndr, &r->attribute_name) > ndr_get_array_size(ndr, &r->attribute_name)) {
9147                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->attribute_name), ndr_get_array_length(ndr, &r->attribute_name));
9148                         }
9149                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->attribute_name), sizeof(uint16_t)));
9150                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->attribute_name, ndr_get_array_length(ndr, &r->attribute_name), sizeof(uint16_t), CH_UTF16));
9151                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribute_name_0, 0);
9152                 }
9153         }
9154         return NDR_ERR_SUCCESS;
9155 }
9156
9157 _PUBLIC_ void ndr_print_drsuapi_DsReplicaObjMetaData(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaObjMetaData *r)
9158 {
9159         ndr_print_struct(ndr, name, "drsuapi_DsReplicaObjMetaData");
9160         ndr->depth++;
9161         ndr_print_ptr(ndr, "attribute_name", r->attribute_name);
9162         ndr->depth++;
9163         if (r->attribute_name) {
9164                 ndr_print_string(ndr, "attribute_name", r->attribute_name);
9165         }
9166         ndr->depth--;
9167         ndr_print_uint32(ndr, "version", r->version);
9168         ndr_print_NTTIME(ndr, "originating_change_time", r->originating_change_time);
9169         ndr_print_GUID(ndr, "originating_invocation_id", &r->originating_invocation_id);
9170         ndr_print_hyper(ndr, "originating_usn", r->originating_usn);
9171         ndr_print_hyper(ndr, "local_usn", r->local_usn);
9172         ndr->depth--;
9173 }
9174
9175 static enum ndr_err_code ndr_push_drsuapi_DsReplicaObjMetaDataCtr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaObjMetaDataCtr *r)
9176 {
9177         uint32_t cntr_array_0;
9178         if (ndr_flags & NDR_SCALARS) {
9179                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
9180                 NDR_CHECK(ndr_push_align(ndr, 8));
9181                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
9182                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
9183                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
9184                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjMetaData(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
9185                 }
9186         }
9187         if (ndr_flags & NDR_BUFFERS) {
9188                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
9189                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjMetaData(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
9190                 }
9191         }
9192         return NDR_ERR_SUCCESS;
9193 }
9194
9195 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaObjMetaDataCtr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaObjMetaDataCtr *r)
9196 {
9197         uint32_t cntr_array_0;
9198         TALLOC_CTX *_mem_save_array_0;
9199         if (ndr_flags & NDR_SCALARS) {
9200                 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
9201                 NDR_CHECK(ndr_pull_align(ndr, 8));
9202                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
9203                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
9204                 NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
9205                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
9206                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
9207                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
9208                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjMetaData(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
9209                 }
9210                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
9211                 if (r->array) {
9212                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
9213                 }
9214         }
9215         if (ndr_flags & NDR_BUFFERS) {
9216                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
9217                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
9218                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
9219                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjMetaData(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
9220                 }
9221                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
9222         }
9223         return NDR_ERR_SUCCESS;
9224 }
9225
9226 _PUBLIC_ void ndr_print_drsuapi_DsReplicaObjMetaDataCtr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaObjMetaDataCtr *r)
9227 {
9228         uint32_t cntr_array_0;
9229         ndr_print_struct(ndr, name, "drsuapi_DsReplicaObjMetaDataCtr");
9230         ndr->depth++;
9231         ndr_print_uint32(ndr, "count", r->count);
9232         ndr_print_uint32(ndr, "reserved", r->reserved);
9233         ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
9234         ndr->depth++;
9235         for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
9236                 char *idx_0=NULL;
9237                 if (asprintf(&idx_0, "[%d]", cntr_array_0) != -1) {
9238                         ndr_print_drsuapi_DsReplicaObjMetaData(ndr, "array", &r->array[cntr_array_0]);
9239                         free(idx_0);
9240                 }
9241         }
9242         ndr->depth--;
9243         ndr->depth--;
9244 }
9245
9246 static enum ndr_err_code ndr_push_drsuapi_DsReplicaKccDsaFailure(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaKccDsaFailure *r)
9247 {
9248         if (ndr_flags & NDR_SCALARS) {
9249                 NDR_CHECK(ndr_push_align(ndr, 4));
9250                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dsa_obj_dn));
9251                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->dsa_obj_guid));
9252                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->first_failure));
9253                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_failures));
9254                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->last_result));
9255         }
9256         if (ndr_flags & NDR_BUFFERS) {
9257                 if (r->dsa_obj_dn) {
9258                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dsa_obj_dn, CH_UTF16)));
9259                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9260                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dsa_obj_dn, CH_UTF16)));
9261                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dsa_obj_dn, ndr_charset_length(r->dsa_obj_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9262                 }
9263         }
9264         return NDR_ERR_SUCCESS;
9265 }
9266
9267 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaKccDsaFailure(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaKccDsaFailure *r)
9268 {
9269         uint32_t _ptr_dsa_obj_dn;
9270         TALLOC_CTX *_mem_save_dsa_obj_dn_0;
9271         if (ndr_flags & NDR_SCALARS) {
9272                 NDR_CHECK(ndr_pull_align(ndr, 4));
9273                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dsa_obj_dn));
9274                 if (_ptr_dsa_obj_dn) {
9275                         NDR_PULL_ALLOC(ndr, r->dsa_obj_dn);
9276                 } else {
9277                         r->dsa_obj_dn = NULL;
9278                 }
9279                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->dsa_obj_guid));
9280                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->first_failure));
9281                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_failures));
9282                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_result));
9283         }
9284         if (ndr_flags & NDR_BUFFERS) {
9285                 if (r->dsa_obj_dn) {
9286                         _mem_save_dsa_obj_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
9287                         NDR_PULL_SET_MEM_CTX(ndr, r->dsa_obj_dn, 0);
9288                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dsa_obj_dn));
9289                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dsa_obj_dn));
9290                         if (ndr_get_array_length(ndr, &r->dsa_obj_dn) > ndr_get_array_size(ndr, &r->dsa_obj_dn)) {
9291                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dsa_obj_dn), ndr_get_array_length(ndr, &r->dsa_obj_dn));
9292                         }
9293                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dsa_obj_dn), sizeof(uint16_t)));
9294                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dsa_obj_dn, ndr_get_array_length(ndr, &r->dsa_obj_dn), sizeof(uint16_t), CH_UTF16));
9295                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dsa_obj_dn_0, 0);
9296                 }
9297         }
9298         return NDR_ERR_SUCCESS;
9299 }
9300
9301 _PUBLIC_ void ndr_print_drsuapi_DsReplicaKccDsaFailure(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaKccDsaFailure *r)
9302 {
9303         ndr_print_struct(ndr, name, "drsuapi_DsReplicaKccDsaFailure");
9304         ndr->depth++;
9305         ndr_print_ptr(ndr, "dsa_obj_dn", r->dsa_obj_dn);
9306         ndr->depth++;
9307         if (r->dsa_obj_dn) {
9308                 ndr_print_string(ndr, "dsa_obj_dn", r->dsa_obj_dn);
9309         }
9310         ndr->depth--;
9311         ndr_print_GUID(ndr, "dsa_obj_guid", &r->dsa_obj_guid);
9312         ndr_print_NTTIME(ndr, "first_failure", r->first_failure);
9313         ndr_print_uint32(ndr, "num_failures", r->num_failures);
9314         ndr_print_WERROR(ndr, "last_result", r->last_result);
9315         ndr->depth--;
9316 }
9317
9318 static enum ndr_err_code ndr_push_drsuapi_DsReplicaKccDsaFailuresCtr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaKccDsaFailuresCtr *r)
9319 {
9320         uint32_t cntr_array_0;
9321         if (ndr_flags & NDR_SCALARS) {
9322                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
9323                 NDR_CHECK(ndr_push_align(ndr, 4));
9324                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
9325                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
9326                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
9327                         NDR_CHECK(ndr_push_drsuapi_DsReplicaKccDsaFailure(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
9328                 }
9329         }
9330         if (ndr_flags & NDR_BUFFERS) {
9331                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
9332                         NDR_CHECK(ndr_push_drsuapi_DsReplicaKccDsaFailure(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
9333                 }
9334         }
9335         return NDR_ERR_SUCCESS;
9336 }
9337
9338 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaKccDsaFailuresCtr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaKccDsaFailuresCtr *r)
9339 {
9340         uint32_t cntr_array_0;
9341         TALLOC_CTX *_mem_save_array_0;
9342         if (ndr_flags & NDR_SCALARS) {
9343                 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
9344                 NDR_CHECK(ndr_pull_align(ndr, 4));
9345                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
9346                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
9347                 NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
9348                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
9349                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
9350                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
9351                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaKccDsaFailure(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
9352                 }
9353                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
9354                 if (r->array) {
9355                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
9356                 }
9357         }
9358         if (ndr_flags & NDR_BUFFERS) {
9359                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
9360                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
9361                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
9362                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaKccDsaFailure(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
9363                 }
9364                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
9365         }
9366         return NDR_ERR_SUCCESS;
9367 }
9368
9369 _PUBLIC_ void ndr_print_drsuapi_DsReplicaKccDsaFailuresCtr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaKccDsaFailuresCtr *r)
9370 {
9371         uint32_t cntr_array_0;
9372         ndr_print_struct(ndr, name, "drsuapi_DsReplicaKccDsaFailuresCtr");
9373         ndr->depth++;
9374         ndr_print_uint32(ndr, "count", r->count);
9375         ndr_print_uint32(ndr, "reserved", r->reserved);
9376         ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
9377         ndr->depth++;
9378         for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
9379                 char *idx_0=NULL;
9380                 if (asprintf(&idx_0, "[%d]", cntr_array_0) != -1) {
9381                         ndr_print_drsuapi_DsReplicaKccDsaFailure(ndr, "array", &r->array[cntr_array_0]);
9382                         free(idx_0);
9383                 }
9384         }
9385         ndr->depth--;
9386         ndr->depth--;
9387 }
9388
9389 static enum ndr_err_code ndr_push_drsuapi_DsReplicaOpType(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsReplicaOpType r)
9390 {
9391         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
9392         return NDR_ERR_SUCCESS;
9393 }
9394
9395 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaOpType(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsReplicaOpType *r)
9396 {
9397         uint16_t v;
9398         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
9399         *r = v;
9400         return NDR_ERR_SUCCESS;
9401 }
9402
9403 _PUBLIC_ void ndr_print_drsuapi_DsReplicaOpType(struct ndr_print *ndr, const char *name, enum drsuapi_DsReplicaOpType r)
9404 {
9405         const char *val = NULL;
9406
9407         switch (r) {
9408                 case DRSUAPI_DS_REPLICA_OP_TYPE_SYNC: val = "DRSUAPI_DS_REPLICA_OP_TYPE_SYNC"; break;
9409                 case DRSUAPI_DS_REPLICA_OP_TYPE_ADD: val = "DRSUAPI_DS_REPLICA_OP_TYPE_ADD"; break;
9410                 case DRSUAPI_DS_REPLICA_OP_TYPE_DELETE: val = "DRSUAPI_DS_REPLICA_OP_TYPE_DELETE"; break;
9411                 case DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY: val = "DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY"; break;
9412                 case DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS: val = "DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS"; break;
9413         }
9414         ndr_print_enum(ndr, name, "ENUM", val, r);
9415 }
9416
9417 static enum ndr_err_code ndr_push_drsuapi_DsRplicaOpOptions(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsRplicaOpOptions *r)
9418 {
9419         if (ndr_flags & NDR_SCALARS) {
9420                 int level = ndr_push_get_switch_value(ndr, r);
9421                 NDR_CHECK(ndr_push_drsuapi_DsReplicaOpType(ndr, NDR_SCALARS, level));
9422                 switch (level) {
9423                         case DRSUAPI_DS_REPLICA_OP_TYPE_SYNC: {
9424                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaSyncOptions(ndr, NDR_SCALARS, r->sync));
9425                         break; }
9426
9427                         case DRSUAPI_DS_REPLICA_OP_TYPE_ADD: {
9428                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaAddOptions(ndr, NDR_SCALARS, r->add));
9429                         break; }
9430
9431                         case DRSUAPI_DS_REPLICA_OP_TYPE_DELETE: {
9432                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaDeleteOptions(ndr, NDR_SCALARS, r->op_delete));
9433                         break; }
9434
9435                         case DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY: {
9436                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaModifyOptions(ndr, NDR_SCALARS, r->modify));
9437                         break; }
9438
9439                         case DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS: {
9440                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaUpdateRefsOptions(ndr, NDR_SCALARS, r->update_refs));
9441                         break; }
9442
9443                         default: {
9444                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown));
9445                         break; }
9446
9447                 }
9448         }
9449         if (ndr_flags & NDR_BUFFERS) {
9450                 int level = ndr_push_get_switch_value(ndr, r);
9451                 switch (level) {
9452                         case DRSUAPI_DS_REPLICA_OP_TYPE_SYNC:
9453                         break;
9454
9455                         case DRSUAPI_DS_REPLICA_OP_TYPE_ADD:
9456                         break;
9457
9458                         case DRSUAPI_DS_REPLICA_OP_TYPE_DELETE:
9459                         break;
9460
9461                         case DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY:
9462                         break;
9463
9464                         case DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS:
9465                         break;
9466
9467                         default:
9468                         break;
9469
9470                 }
9471         }
9472         return NDR_ERR_SUCCESS;
9473 }
9474
9475 static enum ndr_err_code ndr_pull_drsuapi_DsRplicaOpOptions(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsRplicaOpOptions *r)
9476 {
9477         int level;
9478         uint16_t _level;
9479         level = ndr_pull_get_switch_value(ndr, r);
9480         if (ndr_flags & NDR_SCALARS) {
9481                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
9482                 if (_level != level) {
9483                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
9484                 }
9485                 switch (level) {
9486                         case DRSUAPI_DS_REPLICA_OP_TYPE_SYNC: {
9487                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaSyncOptions(ndr, NDR_SCALARS, &r->sync));
9488                         break; }
9489
9490                         case DRSUAPI_DS_REPLICA_OP_TYPE_ADD: {
9491                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAddOptions(ndr, NDR_SCALARS, &r->add));
9492                         break; }
9493
9494                         case DRSUAPI_DS_REPLICA_OP_TYPE_DELETE: {
9495                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaDeleteOptions(ndr, NDR_SCALARS, &r->op_delete));
9496                         break; }
9497
9498                         case DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY: {
9499                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaModifyOptions(ndr, NDR_SCALARS, &r->modify));
9500                         break; }
9501
9502                         case DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS: {
9503                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaUpdateRefsOptions(ndr, NDR_SCALARS, &r->update_refs));
9504                         break; }
9505
9506                         default: {
9507                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown));
9508                         break; }
9509
9510                 }
9511         }
9512         if (ndr_flags & NDR_BUFFERS) {
9513                 switch (level) {
9514                         case DRSUAPI_DS_REPLICA_OP_TYPE_SYNC:
9515                         break;
9516
9517                         case DRSUAPI_DS_REPLICA_OP_TYPE_ADD:
9518                         break;
9519
9520                         case DRSUAPI_DS_REPLICA_OP_TYPE_DELETE:
9521                         break;
9522
9523                         case DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY:
9524                         break;
9525
9526                         case DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS:
9527                         break;
9528
9529                         default:
9530                         break;
9531
9532                 }
9533         }
9534         return NDR_ERR_SUCCESS;
9535 }
9536
9537 _PUBLIC_ void ndr_print_drsuapi_DsRplicaOpOptions(struct ndr_print *ndr, const char *name, const union drsuapi_DsRplicaOpOptions *r)
9538 {
9539         int level;
9540         level = ndr_print_get_switch_value(ndr, r);
9541         ndr_print_union(ndr, name, level, "drsuapi_DsRplicaOpOptions");
9542         switch (level) {
9543                 case DRSUAPI_DS_REPLICA_OP_TYPE_SYNC:
9544                         ndr_print_drsuapi_DsReplicaSyncOptions(ndr, "sync", r->sync);
9545                 break;
9546
9547                 case DRSUAPI_DS_REPLICA_OP_TYPE_ADD:
9548                         ndr_print_drsuapi_DsReplicaAddOptions(ndr, "add", r->add);
9549                 break;
9550
9551                 case DRSUAPI_DS_REPLICA_OP_TYPE_DELETE:
9552                         ndr_print_drsuapi_DsReplicaDeleteOptions(ndr, "op_delete", r->op_delete);
9553                 break;
9554
9555                 case DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY:
9556                         ndr_print_drsuapi_DsReplicaModifyOptions(ndr, "modify", r->modify);
9557                 break;
9558
9559                 case DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS:
9560                         ndr_print_drsuapi_DsReplicaUpdateRefsOptions(ndr, "update_refs", r->update_refs);
9561                 break;
9562
9563                 default:
9564                         ndr_print_uint32(ndr, "unknown", r->unknown);
9565                 break;
9566
9567         }
9568 }
9569
9570 static enum ndr_err_code ndr_push_drsuapi_DsReplicaOp(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaOp *r)
9571 {
9572         if (ndr_flags & NDR_SCALARS) {
9573                 NDR_CHECK(ndr_push_align(ndr, 4));
9574                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->operation_start));
9575                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->serial_num));
9576                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
9577                 NDR_CHECK(ndr_push_drsuapi_DsReplicaOpType(ndr, NDR_SCALARS, r->operation_type));
9578                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->options, r->operation_type));
9579                 NDR_CHECK(ndr_push_drsuapi_DsRplicaOpOptions(ndr, NDR_SCALARS, &r->options));
9580                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->nc_dn));
9581                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->remote_dsa_obj_dn));
9582                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->remote_dsa_address));
9583                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->nc_obj_guid));
9584                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->remote_dsa_obj_guid));
9585         }
9586         if (ndr_flags & NDR_BUFFERS) {
9587                 if (r->nc_dn) {
9588                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->nc_dn, CH_UTF16)));
9589                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9590                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->nc_dn, CH_UTF16)));
9591                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->nc_dn, ndr_charset_length(r->nc_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9592                 }
9593                 if (r->remote_dsa_obj_dn) {
9594                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->remote_dsa_obj_dn, CH_UTF16)));
9595                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9596                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->remote_dsa_obj_dn, CH_UTF16)));
9597                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->remote_dsa_obj_dn, ndr_charset_length(r->remote_dsa_obj_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9598                 }
9599                 if (r->remote_dsa_address) {
9600                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->remote_dsa_address, CH_UTF16)));
9601                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9602                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->remote_dsa_address, CH_UTF16)));
9603                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->remote_dsa_address, ndr_charset_length(r->remote_dsa_address, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9604                 }
9605         }
9606         return NDR_ERR_SUCCESS;
9607 }
9608
9609 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaOp(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaOp *r)
9610 {
9611         uint32_t _ptr_nc_dn;
9612         TALLOC_CTX *_mem_save_nc_dn_0;
9613         uint32_t _ptr_remote_dsa_obj_dn;
9614         TALLOC_CTX *_mem_save_remote_dsa_obj_dn_0;
9615         uint32_t _ptr_remote_dsa_address;
9616         TALLOC_CTX *_mem_save_remote_dsa_address_0;
9617         if (ndr_flags & NDR_SCALARS) {
9618                 NDR_CHECK(ndr_pull_align(ndr, 4));
9619                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->operation_start));
9620                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->serial_num));
9621                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
9622                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOpType(ndr, NDR_SCALARS, &r->operation_type));
9623                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->options, r->operation_type));
9624                 NDR_CHECK(ndr_pull_drsuapi_DsRplicaOpOptions(ndr, NDR_SCALARS, &r->options));
9625                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_nc_dn));
9626                 if (_ptr_nc_dn) {
9627                         NDR_PULL_ALLOC(ndr, r->nc_dn);
9628                 } else {
9629                         r->nc_dn = NULL;
9630                 }
9631                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_remote_dsa_obj_dn));
9632                 if (_ptr_remote_dsa_obj_dn) {
9633                         NDR_PULL_ALLOC(ndr, r->remote_dsa_obj_dn);
9634                 } else {
9635                         r->remote_dsa_obj_dn = NULL;
9636                 }
9637                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_remote_dsa_address));
9638                 if (_ptr_remote_dsa_address) {
9639                         NDR_PULL_ALLOC(ndr, r->remote_dsa_address);
9640                 } else {
9641                         r->remote_dsa_address = NULL;
9642                 }
9643                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->nc_obj_guid));
9644                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->remote_dsa_obj_guid));
9645         }
9646         if (ndr_flags & NDR_BUFFERS) {
9647                 if (r->nc_dn) {
9648                         _mem_save_nc_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
9649                         NDR_PULL_SET_MEM_CTX(ndr, r->nc_dn, 0);
9650                         NDR_CHECK(ndr_pull_array_size(ndr, &r->nc_dn));
9651                         NDR_CHECK(ndr_pull_array_length(ndr, &r->nc_dn));
9652                         if (ndr_get_array_length(ndr, &r->nc_dn) > ndr_get_array_size(ndr, &r->nc_dn)) {
9653                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->nc_dn), ndr_get_array_length(ndr, &r->nc_dn));
9654                         }
9655                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->nc_dn), sizeof(uint16_t)));
9656                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->nc_dn, ndr_get_array_length(ndr, &r->nc_dn), sizeof(uint16_t), CH_UTF16));
9657                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_nc_dn_0, 0);
9658                 }
9659                 if (r->remote_dsa_obj_dn) {
9660                         _mem_save_remote_dsa_obj_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
9661                         NDR_PULL_SET_MEM_CTX(ndr, r->remote_dsa_obj_dn, 0);
9662                         NDR_CHECK(ndr_pull_array_size(ndr, &r->remote_dsa_obj_dn));
9663                         NDR_CHECK(ndr_pull_array_length(ndr, &r->remote_dsa_obj_dn));
9664                         if (ndr_get_array_length(ndr, &r->remote_dsa_obj_dn) > ndr_get_array_size(ndr, &r->remote_dsa_obj_dn)) {
9665                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->remote_dsa_obj_dn), ndr_get_array_length(ndr, &r->remote_dsa_obj_dn));
9666                         }
9667                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->remote_dsa_obj_dn), sizeof(uint16_t)));
9668                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->remote_dsa_obj_dn, ndr_get_array_length(ndr, &r->remote_dsa_obj_dn), sizeof(uint16_t), CH_UTF16));
9669                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_remote_dsa_obj_dn_0, 0);
9670                 }
9671                 if (r->remote_dsa_address) {
9672                         _mem_save_remote_dsa_address_0 = NDR_PULL_GET_MEM_CTX(ndr);
9673                         NDR_PULL_SET_MEM_CTX(ndr, r->remote_dsa_address, 0);
9674                         NDR_CHECK(ndr_pull_array_size(ndr, &r->remote_dsa_address));
9675                         NDR_CHECK(ndr_pull_array_length(ndr, &r->remote_dsa_address));
9676                         if (ndr_get_array_length(ndr, &r->remote_dsa_address) > ndr_get_array_size(ndr, &r->remote_dsa_address)) {
9677                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->remote_dsa_address), ndr_get_array_length(ndr, &r->remote_dsa_address));
9678                         }
9679                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->remote_dsa_address), sizeof(uint16_t)));
9680                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->remote_dsa_address, ndr_get_array_length(ndr, &r->remote_dsa_address), sizeof(uint16_t), CH_UTF16));
9681                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_remote_dsa_address_0, 0);
9682                 }
9683         }
9684         return NDR_ERR_SUCCESS;
9685 }
9686
9687 _PUBLIC_ void ndr_print_drsuapi_DsReplicaOp(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaOp *r)
9688 {
9689         ndr_print_struct(ndr, name, "drsuapi_DsReplicaOp");
9690         ndr->depth++;
9691         ndr_print_NTTIME(ndr, "operation_start", r->operation_start);
9692         ndr_print_uint32(ndr, "serial_num", r->serial_num);
9693         ndr_print_uint32(ndr, "priority", r->priority);
9694         ndr_print_drsuapi_DsReplicaOpType(ndr, "operation_type", r->operation_type);
9695         ndr_print_set_switch_value(ndr, &r->options, r->operation_type);
9696         ndr_print_drsuapi_DsRplicaOpOptions(ndr, "options", &r->options);
9697         ndr_print_ptr(ndr, "nc_dn", r->nc_dn);
9698         ndr->depth++;
9699         if (r->nc_dn) {
9700                 ndr_print_string(ndr, "nc_dn", r->nc_dn);
9701         }
9702         ndr->depth--;
9703         ndr_print_ptr(ndr, "remote_dsa_obj_dn", r->remote_dsa_obj_dn);
9704         ndr->depth++;
9705         if (r->remote_dsa_obj_dn) {
9706                 ndr_print_string(ndr, "remote_dsa_obj_dn", r->remote_dsa_obj_dn);
9707         }
9708         ndr->depth--;
9709         ndr_print_ptr(ndr, "remote_dsa_address", r->remote_dsa_address);
9710         ndr->depth++;
9711         if (r->remote_dsa_address) {
9712                 ndr_print_string(ndr, "remote_dsa_address", r->remote_dsa_address);
9713         }
9714         ndr->depth--;
9715         ndr_print_GUID(ndr, "nc_obj_guid", &r->nc_obj_guid);
9716         ndr_print_GUID(ndr, "remote_dsa_obj_guid", &r->remote_dsa_obj_guid);
9717         ndr->depth--;
9718 }
9719
9720 static enum ndr_err_code ndr_push_drsuapi_DsReplicaOpCtr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaOpCtr *r)
9721 {
9722         uint32_t cntr_array_0;
9723         if (ndr_flags & NDR_SCALARS) {
9724                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
9725                 NDR_CHECK(ndr_push_align(ndr, 4));
9726                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->time));
9727                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
9728                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
9729                         NDR_CHECK(ndr_push_drsuapi_DsReplicaOp(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
9730                 }
9731         }
9732         if (ndr_flags & NDR_BUFFERS) {
9733                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
9734                         NDR_CHECK(ndr_push_drsuapi_DsReplicaOp(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
9735                 }
9736         }
9737         return NDR_ERR_SUCCESS;
9738 }
9739
9740 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaOpCtr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaOpCtr *r)
9741 {
9742         uint32_t cntr_array_0;
9743         TALLOC_CTX *_mem_save_array_0;
9744         if (ndr_flags & NDR_SCALARS) {
9745                 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
9746                 NDR_CHECK(ndr_pull_align(ndr, 4));
9747                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->time));
9748                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
9749                 NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
9750                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
9751                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
9752                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
9753                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaOp(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
9754                 }
9755                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
9756                 if (r->array) {
9757                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
9758                 }
9759         }
9760         if (ndr_flags & NDR_BUFFERS) {
9761                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
9762                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
9763                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
9764                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaOp(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
9765                 }
9766                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
9767         }
9768         return NDR_ERR_SUCCESS;
9769 }
9770
9771 _PUBLIC_ void ndr_print_drsuapi_DsReplicaOpCtr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaOpCtr *r)
9772 {
9773         uint32_t cntr_array_0;
9774         ndr_print_struct(ndr, name, "drsuapi_DsReplicaOpCtr");
9775         ndr->depth++;
9776         ndr_print_NTTIME(ndr, "time", r->time);
9777         ndr_print_uint32(ndr, "count", r->count);
9778         ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
9779         ndr->depth++;
9780         for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
9781                 char *idx_0=NULL;
9782                 if (asprintf(&idx_0, "[%d]", cntr_array_0) != -1) {
9783                         ndr_print_drsuapi_DsReplicaOp(ndr, "array", &r->array[cntr_array_0]);
9784                         free(idx_0);
9785                 }
9786         }
9787         ndr->depth--;
9788         ndr->depth--;
9789 }
9790
9791 static enum ndr_err_code ndr_push_drsuapi_DsReplicaAttrValMetaData(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaAttrValMetaData *r)
9792 {
9793         if (ndr_flags & NDR_SCALARS) {
9794                 NDR_CHECK(ndr_push_align(ndr, 8));
9795                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->attribute_name));
9796                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->object_dn));
9797                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_DATA_BLOB(0, r->binary, 0)));
9798                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->binary));
9799                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->deleted));
9800                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->created));
9801                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
9802                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->originating_change_time));
9803                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->originating_invocation_id));
9804                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->originating_usn));
9805                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->local_usn));
9806         }
9807         if (ndr_flags & NDR_BUFFERS) {
9808                 if (r->attribute_name) {
9809                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->attribute_name, CH_UTF16)));
9810                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9811                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->attribute_name, CH_UTF16)));
9812                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->attribute_name, ndr_charset_length(r->attribute_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9813                 }
9814                 if (r->object_dn) {
9815                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->object_dn, CH_UTF16)));
9816                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9817                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->object_dn, CH_UTF16)));
9818                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->object_dn, ndr_charset_length(r->object_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9819                 }
9820                 if (r->binary) {
9821                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->binary));
9822                 }
9823         }
9824         return NDR_ERR_SUCCESS;
9825 }
9826
9827 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaAttrValMetaData(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaAttrValMetaData *r)
9828 {
9829         uint32_t _ptr_attribute_name;
9830         TALLOC_CTX *_mem_save_attribute_name_0;
9831         uint32_t _ptr_object_dn;
9832         TALLOC_CTX *_mem_save_object_dn_0;
9833         uint32_t _ptr_binary;
9834         TALLOC_CTX *_mem_save_binary_0;
9835         if (ndr_flags & NDR_SCALARS) {
9836                 NDR_CHECK(ndr_pull_align(ndr, 8));
9837                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_attribute_name));
9838                 if (_ptr_attribute_name) {
9839                         NDR_PULL_ALLOC(ndr, r->attribute_name);
9840                 } else {
9841                         r->attribute_name = NULL;
9842                 }
9843                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_object_dn));
9844                 if (_ptr_object_dn) {
9845                         NDR_PULL_ALLOC(ndr, r->object_dn);
9846                 } else {
9847                         r->object_dn = NULL;
9848                 }
9849                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size_binary));
9850                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_binary));
9851                 if (_ptr_binary) {
9852                         NDR_PULL_ALLOC(ndr, r->binary);
9853                 } else {
9854                         r->binary = NULL;
9855                 }
9856                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->deleted));
9857                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->created));
9858                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
9859                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->originating_change_time));
9860                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->originating_invocation_id));
9861                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->originating_usn));
9862                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->local_usn));
9863         }
9864         if (ndr_flags & NDR_BUFFERS) {
9865                 if (r->attribute_name) {
9866                         _mem_save_attribute_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9867                         NDR_PULL_SET_MEM_CTX(ndr, r->attribute_name, 0);
9868                         NDR_CHECK(ndr_pull_array_size(ndr, &r->attribute_name));
9869                         NDR_CHECK(ndr_pull_array_length(ndr, &r->attribute_name));
9870                         if (ndr_get_array_length(ndr, &r->attribute_name) > ndr_get_array_size(ndr, &r->attribute_name)) {
9871                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->attribute_name), ndr_get_array_length(ndr, &r->attribute_name));
9872                         }
9873                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->attribute_name), sizeof(uint16_t)));
9874                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->attribute_name, ndr_get_array_length(ndr, &r->attribute_name), sizeof(uint16_t), CH_UTF16));
9875                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribute_name_0, 0);
9876                 }
9877                 if (r->object_dn) {
9878                         _mem_save_object_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
9879                         NDR_PULL_SET_MEM_CTX(ndr, r->object_dn, 0);
9880                         NDR_CHECK(ndr_pull_array_size(ndr, &r->object_dn));
9881                         NDR_CHECK(ndr_pull_array_length(ndr, &r->object_dn));
9882                         if (ndr_get_array_length(ndr, &r->object_dn) > ndr_get_array_size(ndr, &r->object_dn)) {
9883                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->object_dn), ndr_get_array_length(ndr, &r->object_dn));
9884                         }
9885                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->object_dn), sizeof(uint16_t)));
9886                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->object_dn, ndr_get_array_length(ndr, &r->object_dn), sizeof(uint16_t), CH_UTF16));
9887                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_object_dn_0, 0);
9888                 }
9889                 if (r->binary) {
9890                         _mem_save_binary_0 = NDR_PULL_GET_MEM_CTX(ndr);
9891                         NDR_PULL_SET_MEM_CTX(ndr, r->binary, 0);
9892                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->binary));
9893                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_binary_0, 0);
9894                 }
9895         }
9896         return NDR_ERR_SUCCESS;
9897 }
9898
9899 _PUBLIC_ void ndr_print_drsuapi_DsReplicaAttrValMetaData(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaAttrValMetaData *r)
9900 {
9901         ndr_print_struct(ndr, name, "drsuapi_DsReplicaAttrValMetaData");
9902         ndr->depth++;
9903         ndr_print_ptr(ndr, "attribute_name", r->attribute_name);
9904         ndr->depth++;
9905         if (r->attribute_name) {
9906                 ndr_print_string(ndr, "attribute_name", r->attribute_name);
9907         }
9908         ndr->depth--;
9909         ndr_print_ptr(ndr, "object_dn", r->object_dn);
9910         ndr->depth++;
9911         if (r->object_dn) {
9912                 ndr_print_string(ndr, "object_dn", r->object_dn);
9913         }
9914         ndr->depth--;
9915         ndr_print_uint32(ndr, "__ndr_size_binary", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_DATA_BLOB(0, r->binary, 0):r->__ndr_size_binary);
9916         ndr_print_ptr(ndr, "binary", r->binary);
9917         ndr->depth++;
9918         if (r->binary) {
9919                 ndr_print_DATA_BLOB(ndr, "binary", *r->binary);
9920         }
9921         ndr->depth--;
9922         ndr_print_NTTIME(ndr, "deleted", r->deleted);
9923         ndr_print_NTTIME(ndr, "created", r->created);
9924         ndr_print_uint32(ndr, "version", r->version);
9925         ndr_print_NTTIME(ndr, "originating_change_time", r->originating_change_time);
9926         ndr_print_GUID(ndr, "originating_invocation_id", &r->originating_invocation_id);
9927         ndr_print_hyper(ndr, "originating_usn", r->originating_usn);
9928         ndr_print_hyper(ndr, "local_usn", r->local_usn);
9929         ndr->depth--;
9930 }
9931
9932 static enum ndr_err_code ndr_push_drsuapi_DsReplicaAttrValMetaDataCtr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaAttrValMetaDataCtr *r)
9933 {
9934         uint32_t cntr_array_0;
9935         if (ndr_flags & NDR_SCALARS) {
9936                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
9937                 NDR_CHECK(ndr_push_align(ndr, 8));
9938                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
9939                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->enumeration_context));
9940                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
9941                         NDR_CHECK(ndr_push_drsuapi_DsReplicaAttrValMetaData(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
9942                 }
9943         }
9944         if (ndr_flags & NDR_BUFFERS) {
9945                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
9946                         NDR_CHECK(ndr_push_drsuapi_DsReplicaAttrValMetaData(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
9947                 }
9948         }
9949         return NDR_ERR_SUCCESS;
9950 }
9951
9952 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaAttrValMetaDataCtr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaAttrValMetaDataCtr *r)
9953 {
9954         uint32_t cntr_array_0;
9955         TALLOC_CTX *_mem_save_array_0;
9956         if (ndr_flags & NDR_SCALARS) {
9957                 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
9958                 NDR_CHECK(ndr_pull_align(ndr, 8));
9959                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
9960                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->enumeration_context));
9961                 NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
9962                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
9963                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
9964                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
9965                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaAttrValMetaData(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
9966                 }
9967                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
9968                 if (r->array) {
9969                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
9970                 }
9971         }
9972         if (ndr_flags & NDR_BUFFERS) {
9973                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
9974                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
9975                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
9976                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaAttrValMetaData(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
9977                 }
9978                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
9979         }
9980         return NDR_ERR_SUCCESS;
9981 }
9982
9983 _PUBLIC_ void ndr_print_drsuapi_DsReplicaAttrValMetaDataCtr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaAttrValMetaDataCtr *r)
9984 {
9985         uint32_t cntr_array_0;
9986         ndr_print_struct(ndr, name, "drsuapi_DsReplicaAttrValMetaDataCtr");
9987         ndr->depth++;
9988         ndr_print_uint32(ndr, "count", r->count);
9989         ndr_print_int32(ndr, "enumeration_context", r->enumeration_context);
9990         ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
9991         ndr->depth++;
9992         for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
9993                 char *idx_0=NULL;
9994                 if (asprintf(&idx_0, "[%d]", cntr_array_0) != -1) {
9995                         ndr_print_drsuapi_DsReplicaAttrValMetaData(ndr, "array", &r->array[cntr_array_0]);
9996                         free(idx_0);
9997                 }
9998         }
9999         ndr->depth--;
10000         ndr->depth--;
10001 }
10002
10003 static enum ndr_err_code ndr_push_drsuapi_DsReplicaCursor2Ctr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaCursor2Ctr *r)
10004 {
10005         uint32_t cntr_array_0;
10006         if (ndr_flags & NDR_SCALARS) {
10007                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
10008                 NDR_CHECK(ndr_push_align(ndr, 8));
10009                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
10010                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->enumeration_context));
10011                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
10012                         NDR_CHECK(ndr_push_drsuapi_DsReplicaCursor2(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
10013                 }
10014         }
10015         if (ndr_flags & NDR_BUFFERS) {
10016         }
10017         return NDR_ERR_SUCCESS;
10018 }
10019
10020 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaCursor2Ctr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaCursor2Ctr *r)
10021 {
10022         uint32_t cntr_array_0;
10023         TALLOC_CTX *_mem_save_array_0;
10024         if (ndr_flags & NDR_SCALARS) {
10025                 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
10026                 NDR_CHECK(ndr_pull_align(ndr, 8));
10027                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
10028                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->enumeration_context));
10029                 NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
10030                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
10031                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
10032                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
10033                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursor2(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
10034                 }
10035                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
10036                 if (r->array) {
10037                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
10038                 }
10039         }
10040         if (ndr_flags & NDR_BUFFERS) {
10041         }
10042         return NDR_ERR_SUCCESS;
10043 }
10044
10045 _PUBLIC_ void ndr_print_drsuapi_DsReplicaCursor2Ctr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaCursor2Ctr *r)
10046 {
10047         uint32_t cntr_array_0;
10048         ndr_print_struct(ndr, name, "drsuapi_DsReplicaCursor2Ctr");
10049         ndr->depth++;
10050         ndr_print_uint32(ndr, "count", r->count);
10051         ndr_print_int32(ndr, "enumeration_context", r->enumeration_context);
10052         ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
10053         ndr->depth++;
10054         for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
10055                 char *idx_0=NULL;
10056                 if (asprintf(&idx_0, "[%d]", cntr_array_0) != -1) {
10057                         ndr_print_drsuapi_DsReplicaCursor2(ndr, "array", &r->array[cntr_array_0]);
10058                         free(idx_0);
10059                 }
10060         }
10061         ndr->depth--;
10062         ndr->depth--;
10063 }
10064
10065 static enum ndr_err_code ndr_push_drsuapi_DsReplicaCursor3(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaCursor3 *r)
10066 {
10067         if (ndr_flags & NDR_SCALARS) {
10068                 NDR_CHECK(ndr_push_align(ndr, 8));
10069                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
10070                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->highest_usn));
10071                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_sync_success));
10072                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->source_dsa_obj_dn));
10073         }
10074         if (ndr_flags & NDR_BUFFERS) {
10075                 if (r->source_dsa_obj_dn) {
10076                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->source_dsa_obj_dn, CH_UTF16)));
10077                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10078                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->source_dsa_obj_dn, CH_UTF16)));
10079                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->source_dsa_obj_dn, ndr_charset_length(r->source_dsa_obj_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10080                 }
10081         }
10082         return NDR_ERR_SUCCESS;
10083 }
10084
10085 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaCursor3(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaCursor3 *r)
10086 {
10087         uint32_t _ptr_source_dsa_obj_dn;
10088         TALLOC_CTX *_mem_save_source_dsa_obj_dn_0;
10089         if (ndr_flags & NDR_SCALARS) {
10090                 NDR_CHECK(ndr_pull_align(ndr, 8));
10091                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
10092                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->highest_usn));
10093                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_sync_success));
10094                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_source_dsa_obj_dn));
10095                 if (_ptr_source_dsa_obj_dn) {
10096                         NDR_PULL_ALLOC(ndr, r->source_dsa_obj_dn);
10097                 } else {
10098                         r->source_dsa_obj_dn = NULL;
10099                 }
10100         }
10101         if (ndr_flags & NDR_BUFFERS) {
10102                 if (r->source_dsa_obj_dn) {
10103                         _mem_save_source_dsa_obj_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
10104                         NDR_PULL_SET_MEM_CTX(ndr, r->source_dsa_obj_dn, 0);
10105                         NDR_CHECK(ndr_pull_array_size(ndr, &r->source_dsa_obj_dn));
10106                         NDR_CHECK(ndr_pull_array_length(ndr, &r->source_dsa_obj_dn));
10107                         if (ndr_get_array_length(ndr, &r->source_dsa_obj_dn) > ndr_get_array_size(ndr, &r->source_dsa_obj_dn)) {
10108                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->source_dsa_obj_dn), ndr_get_array_length(ndr, &r->source_dsa_obj_dn));
10109                         }
10110                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->source_dsa_obj_dn), sizeof(uint16_t)));
10111                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->source_dsa_obj_dn, ndr_get_array_length(ndr, &r->source_dsa_obj_dn), sizeof(uint16_t), CH_UTF16));
10112                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_source_dsa_obj_dn_0, 0);
10113                 }
10114         }
10115         return NDR_ERR_SUCCESS;
10116 }
10117
10118 _PUBLIC_ void ndr_print_drsuapi_DsReplicaCursor3(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaCursor3 *r)
10119 {
10120         ndr_print_struct(ndr, name, "drsuapi_DsReplicaCursor3");
10121         ndr->depth++;
10122         ndr_print_GUID(ndr, "source_dsa_invocation_id", &r->source_dsa_invocation_id);
10123         ndr_print_hyper(ndr, "highest_usn", r->highest_usn);
10124         ndr_print_NTTIME(ndr, "last_sync_success", r->last_sync_success);
10125         ndr_print_ptr(ndr, "source_dsa_obj_dn", r->source_dsa_obj_dn);
10126         ndr->depth++;
10127         if (r->source_dsa_obj_dn) {
10128                 ndr_print_string(ndr, "source_dsa_obj_dn", r->source_dsa_obj_dn);
10129         }
10130         ndr->depth--;
10131         ndr->depth--;
10132 }
10133
10134 static enum ndr_err_code ndr_push_drsuapi_DsReplicaCursor3Ctr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaCursor3Ctr *r)
10135 {
10136         uint32_t cntr_array_0;
10137         if (ndr_flags & NDR_SCALARS) {
10138                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
10139                 NDR_CHECK(ndr_push_align(ndr, 8));
10140                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
10141                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->enumeration_context));
10142                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
10143                         NDR_CHECK(ndr_push_drsuapi_DsReplicaCursor3(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
10144                 }
10145         }
10146         if (ndr_flags & NDR_BUFFERS) {
10147                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
10148                         NDR_CHECK(ndr_push_drsuapi_DsReplicaCursor3(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
10149                 }
10150         }
10151         return NDR_ERR_SUCCESS;
10152 }
10153
10154 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaCursor3Ctr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaCursor3Ctr *r)
10155 {
10156         uint32_t cntr_array_0;
10157         TALLOC_CTX *_mem_save_array_0;
10158         if (ndr_flags & NDR_SCALARS) {
10159                 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
10160                 NDR_CHECK(ndr_pull_align(ndr, 8));
10161                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
10162                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->enumeration_context));
10163                 NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
10164                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
10165                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
10166                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
10167                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursor3(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
10168                 }
10169                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
10170                 if (r->array) {
10171                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
10172                 }
10173         }
10174         if (ndr_flags & NDR_BUFFERS) {
10175                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
10176                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
10177                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
10178                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursor3(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
10179                 }
10180                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
10181         }
10182         return NDR_ERR_SUCCESS;
10183 }
10184
10185 _PUBLIC_ void ndr_print_drsuapi_DsReplicaCursor3Ctr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaCursor3Ctr *r)
10186 {
10187         uint32_t cntr_array_0;
10188         ndr_print_struct(ndr, name, "drsuapi_DsReplicaCursor3Ctr");
10189         ndr->depth++;
10190         ndr_print_uint32(ndr, "count", r->count);
10191         ndr_print_int32(ndr, "enumeration_context", r->enumeration_context);
10192         ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
10193         ndr->depth++;
10194         for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
10195                 char *idx_0=NULL;
10196                 if (asprintf(&idx_0, "[%d]", cntr_array_0) != -1) {
10197                         ndr_print_drsuapi_DsReplicaCursor3(ndr, "array", &r->array[cntr_array_0]);
10198                         free(idx_0);
10199                 }
10200         }
10201         ndr->depth--;
10202         ndr->depth--;
10203 }
10204
10205 static enum ndr_err_code ndr_push_drsuapi_DsReplicaObjMetaData2(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaObjMetaData2 *r)
10206 {
10207         if (ndr_flags & NDR_SCALARS) {
10208                 NDR_CHECK(ndr_push_align(ndr, 8));
10209                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->attribute_name));
10210                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
10211                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->originating_change_time));
10212                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->originating_invocation_id));
10213                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->originating_usn));
10214                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->local_usn));
10215                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->originating_dsa_dn));
10216         }
10217         if (ndr_flags & NDR_BUFFERS) {
10218                 if (r->attribute_name) {
10219                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->attribute_name, CH_UTF16)));
10220                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10221                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->attribute_name, CH_UTF16)));
10222                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->attribute_name, ndr_charset_length(r->attribute_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10223                 }
10224                 if (r->originating_dsa_dn) {
10225                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->originating_dsa_dn, CH_UTF16)));
10226                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10227                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->originating_dsa_dn, CH_UTF16)));
10228                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->originating_dsa_dn, ndr_charset_length(r->originating_dsa_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10229                 }
10230         }
10231         return NDR_ERR_SUCCESS;
10232 }
10233
10234 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaObjMetaData2(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaObjMetaData2 *r)
10235 {
10236         uint32_t _ptr_attribute_name;
10237         TALLOC_CTX *_mem_save_attribute_name_0;
10238         uint32_t _ptr_originating_dsa_dn;
10239         TALLOC_CTX *_mem_save_originating_dsa_dn_0;
10240         if (ndr_flags & NDR_SCALARS) {
10241                 NDR_CHECK(ndr_pull_align(ndr, 8));
10242                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_attribute_name));
10243                 if (_ptr_attribute_name) {
10244                         NDR_PULL_ALLOC(ndr, r->attribute_name);
10245                 } else {
10246                         r->attribute_name = NULL;
10247                 }
10248                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
10249                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->originating_change_time));
10250                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->originating_invocation_id));
10251                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->originating_usn));
10252                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->local_usn));
10253                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_originating_dsa_dn));
10254                 if (_ptr_originating_dsa_dn) {
10255                         NDR_PULL_ALLOC(ndr, r->originating_dsa_dn);
10256                 } else {
10257                         r->originating_dsa_dn = NULL;
10258                 }
10259         }
10260         if (ndr_flags & NDR_BUFFERS) {
10261                 if (r->attribute_name) {
10262                         _mem_save_attribute_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10263                         NDR_PULL_SET_MEM_CTX(ndr, r->attribute_name, 0);
10264                         NDR_CHECK(ndr_pull_array_size(ndr, &r->attribute_name));
10265                         NDR_CHECK(ndr_pull_array_length(ndr, &r->attribute_name));
10266                         if (ndr_get_array_length(ndr, &r->attribute_name) > ndr_get_array_size(ndr, &r->attribute_name)) {
10267                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->attribute_name), ndr_get_array_length(ndr, &r->attribute_name));
10268                         }
10269                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->attribute_name), sizeof(uint16_t)));
10270                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->attribute_name, ndr_get_array_length(ndr, &r->attribute_name), sizeof(uint16_t), CH_UTF16));
10271                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribute_name_0, 0);
10272                 }
10273                 if (r->originating_dsa_dn) {
10274                         _mem_save_originating_dsa_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
10275                         NDR_PULL_SET_MEM_CTX(ndr, r->originating_dsa_dn, 0);
10276                         NDR_CHECK(ndr_pull_array_size(ndr, &r->originating_dsa_dn));
10277                         NDR_CHECK(ndr_pull_array_length(ndr, &r->originating_dsa_dn));
10278                         if (ndr_get_array_length(ndr, &r->originating_dsa_dn) > ndr_get_array_size(ndr, &r->originating_dsa_dn)) {
10279                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->originating_dsa_dn), ndr_get_array_length(ndr, &r->originating_dsa_dn));
10280                         }
10281                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->originating_dsa_dn), sizeof(uint16_t)));
10282                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->originating_dsa_dn, ndr_get_array_length(ndr, &r->originating_dsa_dn), sizeof(uint16_t), CH_UTF16));
10283                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_originating_dsa_dn_0, 0);
10284                 }
10285         }
10286         return NDR_ERR_SUCCESS;
10287 }
10288
10289 _PUBLIC_ void ndr_print_drsuapi_DsReplicaObjMetaData2(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaObjMetaData2 *r)
10290 {
10291         ndr_print_struct(ndr, name, "drsuapi_DsReplicaObjMetaData2");
10292         ndr->depth++;
10293         ndr_print_ptr(ndr, "attribute_name", r->attribute_name);
10294         ndr->depth++;
10295         if (r->attribute_name) {
10296                 ndr_print_string(ndr, "attribute_name", r->attribute_name);
10297         }
10298         ndr->depth--;
10299         ndr_print_uint32(ndr, "version", r->version);
10300         ndr_print_NTTIME(ndr, "originating_change_time", r->originating_change_time);
10301         ndr_print_GUID(ndr, "originating_invocation_id", &r->originating_invocation_id);
10302         ndr_print_hyper(ndr, "originating_usn", r->originating_usn);
10303         ndr_print_hyper(ndr, "local_usn", r->local_usn);
10304         ndr_print_ptr(ndr, "originating_dsa_dn", r->originating_dsa_dn);
10305         ndr->depth++;
10306         if (r->originating_dsa_dn) {
10307                 ndr_print_string(ndr, "originating_dsa_dn", r->originating_dsa_dn);
10308         }
10309         ndr->depth--;
10310         ndr->depth--;
10311 }
10312
10313 static enum ndr_err_code ndr_push_drsuapi_DsReplicaObjMetaData2Ctr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaObjMetaData2Ctr *r)
10314 {
10315         uint32_t cntr_array_0;
10316         if (ndr_flags & NDR_SCALARS) {
10317                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
10318                 NDR_CHECK(ndr_push_align(ndr, 8));
10319                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
10320                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->enumeration_context));
10321                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
10322                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjMetaData2(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
10323                 }
10324         }
10325         if (ndr_flags & NDR_BUFFERS) {
10326                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
10327                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjMetaData2(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
10328                 }
10329         }
10330         return NDR_ERR_SUCCESS;
10331 }
10332
10333 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaObjMetaData2Ctr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaObjMetaData2Ctr *r)
10334 {
10335         uint32_t cntr_array_0;
10336         TALLOC_CTX *_mem_save_array_0;
10337         if (ndr_flags & NDR_SCALARS) {
10338                 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
10339                 NDR_CHECK(ndr_pull_align(ndr, 8));
10340                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
10341                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->enumeration_context));
10342                 NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
10343                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
10344                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
10345                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
10346                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjMetaData2(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
10347                 }
10348                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
10349                 if (r->array) {
10350                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
10351                 }
10352         }
10353         if (ndr_flags & NDR_BUFFERS) {
10354                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
10355                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
10356                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
10357                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjMetaData2(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
10358                 }
10359                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
10360         }
10361         return NDR_ERR_SUCCESS;
10362 }
10363
10364 _PUBLIC_ void ndr_print_drsuapi_DsReplicaObjMetaData2Ctr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaObjMetaData2Ctr *r)
10365 {
10366         uint32_t cntr_array_0;
10367         ndr_print_struct(ndr, name, "drsuapi_DsReplicaObjMetaData2Ctr");
10368         ndr->depth++;
10369         ndr_print_uint32(ndr, "count", r->count);
10370         ndr_print_int32(ndr, "enumeration_context", r->enumeration_context);
10371         ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
10372         ndr->depth++;
10373         for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
10374                 char *idx_0=NULL;
10375                 if (asprintf(&idx_0, "[%d]", cntr_array_0) != -1) {
10376                         ndr_print_drsuapi_DsReplicaObjMetaData2(ndr, "array", &r->array[cntr_array_0]);
10377                         free(idx_0);
10378                 }
10379         }
10380         ndr->depth--;
10381         ndr->depth--;
10382 }
10383
10384 static enum ndr_err_code ndr_push_drsuapi_DsReplicaAttrValMetaData2(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaAttrValMetaData2 *r)
10385 {
10386         if (ndr_flags & NDR_SCALARS) {
10387                 NDR_CHECK(ndr_push_align(ndr, 8));
10388                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->attribute_name));
10389                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->object_dn));
10390                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_DATA_BLOB(0, r->binary, 0)));
10391                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->binary));
10392                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->deleted));
10393                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->created));
10394                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
10395                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->originating_change_time));
10396                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->originating_invocation_id));
10397                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->originating_usn));
10398                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->local_usn));
10399                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->originating_dsa_dn));
10400         }
10401         if (ndr_flags & NDR_BUFFERS) {
10402                 if (r->attribute_name) {
10403                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->attribute_name, CH_UTF16)));
10404                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10405                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->attribute_name, CH_UTF16)));
10406                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->attribute_name, ndr_charset_length(r->attribute_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10407                 }
10408                 if (r->object_dn) {
10409                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->object_dn, CH_UTF16)));
10410                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10411                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->object_dn, CH_UTF16)));
10412                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->object_dn, ndr_charset_length(r->object_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10413                 }
10414                 if (r->binary) {
10415                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->binary));
10416                 }
10417                 if (r->originating_dsa_dn) {
10418                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->originating_dsa_dn, CH_UTF16)));
10419                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10420                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->originating_dsa_dn, CH_UTF16)));
10421                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->originating_dsa_dn, ndr_charset_length(r->originating_dsa_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10422                 }
10423         }
10424         return NDR_ERR_SUCCESS;
10425 }
10426
10427 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaAttrValMetaData2(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaAttrValMetaData2 *r)
10428 {
10429         uint32_t _ptr_attribute_name;
10430         TALLOC_CTX *_mem_save_attribute_name_0;
10431         uint32_t _ptr_object_dn;
10432         TALLOC_CTX *_mem_save_object_dn_0;
10433         uint32_t _ptr_binary;
10434         TALLOC_CTX *_mem_save_binary_0;
10435         uint32_t _ptr_originating_dsa_dn;
10436         TALLOC_CTX *_mem_save_originating_dsa_dn_0;
10437         if (ndr_flags & NDR_SCALARS) {
10438                 NDR_CHECK(ndr_pull_align(ndr, 8));
10439                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_attribute_name));
10440                 if (_ptr_attribute_name) {
10441                         NDR_PULL_ALLOC(ndr, r->attribute_name);
10442                 } else {
10443                         r->attribute_name = NULL;
10444                 }
10445                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_object_dn));
10446                 if (_ptr_object_dn) {
10447                         NDR_PULL_ALLOC(ndr, r->object_dn);
10448                 } else {
10449                         r->object_dn = NULL;
10450                 }
10451                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size_binary));
10452                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_binary));
10453                 if (_ptr_binary) {
10454                         NDR_PULL_ALLOC(ndr, r->binary);
10455                 } else {
10456                         r->binary = NULL;
10457                 }
10458                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->deleted));
10459                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->created));
10460                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
10461                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->originating_change_time));
10462                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->originating_invocation_id));
10463                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->originating_usn));
10464                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->local_usn));
10465                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_originating_dsa_dn));
10466                 if (_ptr_originating_dsa_dn) {
10467                         NDR_PULL_ALLOC(ndr, r->originating_dsa_dn);
10468                 } else {
10469                         r->originating_dsa_dn = NULL;
10470                 }
10471         }
10472         if (ndr_flags & NDR_BUFFERS) {
10473                 if (r->attribute_name) {
10474                         _mem_save_attribute_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10475                         NDR_PULL_SET_MEM_CTX(ndr, r->attribute_name, 0);
10476                         NDR_CHECK(ndr_pull_array_size(ndr, &r->attribute_name));
10477                         NDR_CHECK(ndr_pull_array_length(ndr, &r->attribute_name));
10478                         if (ndr_get_array_length(ndr, &r->attribute_name) > ndr_get_array_size(ndr, &r->attribute_name)) {
10479                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->attribute_name), ndr_get_array_length(ndr, &r->attribute_name));
10480                         }
10481                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->attribute_name), sizeof(uint16_t)));
10482                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->attribute_name, ndr_get_array_length(ndr, &r->attribute_name), sizeof(uint16_t), CH_UTF16));
10483                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribute_name_0, 0);
10484                 }
10485                 if (r->object_dn) {
10486                         _mem_save_object_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
10487                         NDR_PULL_SET_MEM_CTX(ndr, r->object_dn, 0);
10488                         NDR_CHECK(ndr_pull_array_size(ndr, &r->object_dn));
10489                         NDR_CHECK(ndr_pull_array_length(ndr, &r->object_dn));
10490                         if (ndr_get_array_length(ndr, &r->object_dn) > ndr_get_array_size(ndr, &r->object_dn)) {
10491                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->object_dn), ndr_get_array_length(ndr, &r->object_dn));
10492                         }
10493                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->object_dn), sizeof(uint16_t)));
10494                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->object_dn, ndr_get_array_length(ndr, &r->object_dn), sizeof(uint16_t), CH_UTF16));
10495                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_object_dn_0, 0);
10496                 }
10497                 if (r->binary) {
10498                         _mem_save_binary_0 = NDR_PULL_GET_MEM_CTX(ndr);
10499                         NDR_PULL_SET_MEM_CTX(ndr, r->binary, 0);
10500                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->binary));
10501                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_binary_0, 0);
10502                 }
10503                 if (r->originating_dsa_dn) {
10504                         _mem_save_originating_dsa_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
10505                         NDR_PULL_SET_MEM_CTX(ndr, r->originating_dsa_dn, 0);
10506                         NDR_CHECK(ndr_pull_array_size(ndr, &r->originating_dsa_dn));
10507                         NDR_CHECK(ndr_pull_array_length(ndr, &r->originating_dsa_dn));
10508                         if (ndr_get_array_length(ndr, &r->originating_dsa_dn) > ndr_get_array_size(ndr, &r->originating_dsa_dn)) {
10509                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->originating_dsa_dn), ndr_get_array_length(ndr, &r->originating_dsa_dn));
10510                         }
10511                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->originating_dsa_dn), sizeof(uint16_t)));
10512                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->originating_dsa_dn, ndr_get_array_length(ndr, &r->originating_dsa_dn), sizeof(uint16_t), CH_UTF16));
10513                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_originating_dsa_dn_0, 0);
10514                 }
10515         }
10516         return NDR_ERR_SUCCESS;
10517 }
10518
10519 _PUBLIC_ void ndr_print_drsuapi_DsReplicaAttrValMetaData2(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaAttrValMetaData2 *r)
10520 {
10521         ndr_print_struct(ndr, name, "drsuapi_DsReplicaAttrValMetaData2");
10522         ndr->depth++;
10523         ndr_print_ptr(ndr, "attribute_name", r->attribute_name);
10524         ndr->depth++;
10525         if (r->attribute_name) {
10526                 ndr_print_string(ndr, "attribute_name", r->attribute_name);
10527         }
10528         ndr->depth--;
10529         ndr_print_ptr(ndr, "object_dn", r->object_dn);
10530         ndr->depth++;
10531         if (r->object_dn) {
10532                 ndr_print_string(ndr, "object_dn", r->object_dn);
10533         }
10534         ndr->depth--;
10535         ndr_print_uint32(ndr, "__ndr_size_binary", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_DATA_BLOB(0, r->binary, 0):r->__ndr_size_binary);
10536         ndr_print_ptr(ndr, "binary", r->binary);
10537         ndr->depth++;
10538         if (r->binary) {
10539                 ndr_print_DATA_BLOB(ndr, "binary", *r->binary);
10540         }
10541         ndr->depth--;
10542         ndr_print_NTTIME(ndr, "deleted", r->deleted);
10543         ndr_print_NTTIME(ndr, "created", r->created);
10544         ndr_print_uint32(ndr, "version", r->version);
10545         ndr_print_NTTIME(ndr, "originating_change_time", r->originating_change_time);
10546         ndr_print_GUID(ndr, "originating_invocation_id", &r->originating_invocation_id);
10547         ndr_print_hyper(ndr, "originating_usn", r->originating_usn);
10548         ndr_print_hyper(ndr, "local_usn", r->local_usn);
10549         ndr_print_ptr(ndr, "originating_dsa_dn", r->originating_dsa_dn);
10550         ndr->depth++;
10551         if (r->originating_dsa_dn) {
10552                 ndr_print_string(ndr, "originating_dsa_dn", r->originating_dsa_dn);
10553         }
10554         ndr->depth--;
10555         ndr->depth--;
10556 }
10557
10558 static enum ndr_err_code ndr_push_drsuapi_DsReplicaAttrValMetaData2Ctr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaAttrValMetaData2Ctr *r)
10559 {
10560         uint32_t cntr_array_0;
10561         if (ndr_flags & NDR_SCALARS) {
10562                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
10563                 NDR_CHECK(ndr_push_align(ndr, 8));
10564                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
10565                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->enumeration_context));
10566                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
10567                         NDR_CHECK(ndr_push_drsuapi_DsReplicaAttrValMetaData2(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
10568                 }
10569         }
10570         if (ndr_flags & NDR_BUFFERS) {
10571                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
10572                         NDR_CHECK(ndr_push_drsuapi_DsReplicaAttrValMetaData2(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
10573                 }
10574         }
10575         return NDR_ERR_SUCCESS;
10576 }
10577
10578 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaAttrValMetaData2Ctr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaAttrValMetaData2Ctr *r)
10579 {
10580         uint32_t cntr_array_0;
10581         TALLOC_CTX *_mem_save_array_0;
10582         if (ndr_flags & NDR_SCALARS) {
10583                 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
10584                 NDR_CHECK(ndr_pull_align(ndr, 8));
10585                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
10586                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->enumeration_context));
10587                 NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
10588                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
10589                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
10590                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
10591                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaAttrValMetaData2(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
10592                 }
10593                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
10594                 if (r->array) {
10595                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
10596                 }
10597         }
10598         if (ndr_flags & NDR_BUFFERS) {
10599                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
10600                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
10601                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
10602                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaAttrValMetaData2(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
10603                 }
10604                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
10605         }
10606         return NDR_ERR_SUCCESS;
10607 }
10608
10609 _PUBLIC_ void ndr_print_drsuapi_DsReplicaAttrValMetaData2Ctr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaAttrValMetaData2Ctr *r)
10610 {
10611         uint32_t cntr_array_0;
10612         ndr_print_struct(ndr, name, "drsuapi_DsReplicaAttrValMetaData2Ctr");
10613         ndr->depth++;
10614         ndr_print_uint32(ndr, "count", r->count);
10615         ndr_print_int32(ndr, "enumeration_context", r->enumeration_context);
10616         ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
10617         ndr->depth++;
10618         for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
10619                 char *idx_0=NULL;
10620                 if (asprintf(&idx_0, "[%d]", cntr_array_0) != -1) {
10621                         ndr_print_drsuapi_DsReplicaAttrValMetaData2(ndr, "array", &r->array[cntr_array_0]);
10622                         free(idx_0);
10623                 }
10624         }
10625         ndr->depth--;
10626         ndr->depth--;
10627 }
10628
10629 static enum ndr_err_code ndr_push_drsuapi_DsReplicaConnection04(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaConnection04 *r)
10630 {
10631         if (ndr_flags & NDR_SCALARS) {
10632                 NDR_CHECK(ndr_push_align(ndr, 8));
10633                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->u1));
10634                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u2));
10635                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u3));
10636                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->bind_guid));
10637                 NDR_CHECK(ndr_push_NTTIME_1sec(ndr, NDR_SCALARS, r->bind_time));
10638                 {
10639                         uint32_t _flags_save_ipv4address = ndr->flags;
10640                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
10641                         NDR_CHECK(ndr_push_ipv4address(ndr, NDR_SCALARS, r->client_ip_address));
10642                         ndr->flags = _flags_save_ipv4address;
10643                 }
10644                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u5));
10645         }
10646         if (ndr_flags & NDR_BUFFERS) {
10647         }
10648         return NDR_ERR_SUCCESS;
10649 }
10650
10651 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaConnection04(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaConnection04 *r)
10652 {
10653         if (ndr_flags & NDR_SCALARS) {
10654                 NDR_CHECK(ndr_pull_align(ndr, 8));
10655                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->u1));
10656                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u2));
10657                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u3));
10658                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->bind_guid));
10659                 NDR_CHECK(ndr_pull_NTTIME_1sec(ndr, NDR_SCALARS, &r->bind_time));
10660                 {
10661                         uint32_t _flags_save_ipv4address = ndr->flags;
10662                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
10663                         NDR_CHECK(ndr_pull_ipv4address(ndr, NDR_SCALARS, &r->client_ip_address));
10664                         ndr->flags = _flags_save_ipv4address;
10665                 }
10666                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u5));
10667         }
10668         if (ndr_flags & NDR_BUFFERS) {
10669         }
10670         return NDR_ERR_SUCCESS;
10671 }
10672
10673 _PUBLIC_ void ndr_print_drsuapi_DsReplicaConnection04(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaConnection04 *r)
10674 {
10675         ndr_print_struct(ndr, name, "drsuapi_DsReplicaConnection04");
10676         ndr->depth++;
10677         ndr_print_hyper(ndr, "u1", r->u1);
10678         ndr_print_uint32(ndr, "u2", r->u2);
10679         ndr_print_uint32(ndr, "u3", r->u3);
10680         ndr_print_GUID(ndr, "bind_guid", &r->bind_guid);
10681         ndr_print_NTTIME_1sec(ndr, "bind_time", r->bind_time);
10682         ndr_print_ipv4address(ndr, "client_ip_address", r->client_ip_address);
10683         ndr_print_uint32(ndr, "u5", r->u5);
10684         ndr->depth--;
10685 }
10686
10687 static enum ndr_err_code ndr_push_drsuapi_DsReplicaConnection04Ctr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaConnection04Ctr *r)
10688 {
10689         uint32_t cntr_array_0;
10690         if (ndr_flags & NDR_SCALARS) {
10691                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
10692                 NDR_CHECK(ndr_push_align(ndr, 8));
10693                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
10694                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
10695                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
10696                         NDR_CHECK(ndr_push_drsuapi_DsReplicaConnection04(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
10697                 }
10698         }
10699         if (ndr_flags & NDR_BUFFERS) {
10700         }
10701         return NDR_ERR_SUCCESS;
10702 }
10703
10704 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaConnection04Ctr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaConnection04Ctr *r)
10705 {
10706         uint32_t cntr_array_0;
10707         TALLOC_CTX *_mem_save_array_0;
10708         if (ndr_flags & NDR_SCALARS) {
10709                 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
10710                 NDR_CHECK(ndr_pull_align(ndr, 8));
10711                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
10712                 if (r->count < 0 || r->count > 10000) {
10713                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
10714                 }
10715                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
10716                 NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
10717                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
10718                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
10719                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
10720                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaConnection04(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
10721                 }
10722                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
10723                 if (r->array) {
10724                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
10725                 }
10726         }
10727         if (ndr_flags & NDR_BUFFERS) {
10728         }
10729         return NDR_ERR_SUCCESS;
10730 }
10731
10732 _PUBLIC_ void ndr_print_drsuapi_DsReplicaConnection04Ctr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaConnection04Ctr *r)
10733 {
10734         uint32_t cntr_array_0;
10735         ndr_print_struct(ndr, name, "drsuapi_DsReplicaConnection04Ctr");
10736         ndr->depth++;
10737         ndr_print_uint32(ndr, "count", r->count);
10738         ndr_print_uint32(ndr, "reserved", r->reserved);
10739         ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
10740         ndr->depth++;
10741         for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
10742                 char *idx_0=NULL;
10743                 if (asprintf(&idx_0, "[%d]", cntr_array_0) != -1) {
10744                         ndr_print_drsuapi_DsReplicaConnection04(ndr, "array", &r->array[cntr_array_0]);
10745                         free(idx_0);
10746                 }
10747         }
10748         ndr->depth--;
10749         ndr->depth--;
10750 }
10751
10752 static enum ndr_err_code ndr_push_drsuapi_DsReplica06(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplica06 *r)
10753 {
10754         if (ndr_flags & NDR_SCALARS) {
10755                 NDR_CHECK(ndr_push_align(ndr, 8));
10756                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->str1));
10757                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u1));
10758                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u2));
10759                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u3));
10760                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u4));
10761                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u5));
10762                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->u6));
10763                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u7));
10764         }
10765         if (ndr_flags & NDR_BUFFERS) {
10766                 if (r->str1) {
10767                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->str1, CH_UTF16)));
10768                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10769                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->str1, CH_UTF16)));
10770                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->str1, ndr_charset_length(r->str1, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10771                 }
10772         }
10773         return NDR_ERR_SUCCESS;
10774 }
10775
10776 static enum ndr_err_code ndr_pull_drsuapi_DsReplica06(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplica06 *r)
10777 {
10778         uint32_t _ptr_str1;
10779         TALLOC_CTX *_mem_save_str1_0;
10780         if (ndr_flags & NDR_SCALARS) {
10781                 NDR_CHECK(ndr_pull_align(ndr, 8));
10782                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_str1));
10783                 if (_ptr_str1) {
10784                         NDR_PULL_ALLOC(ndr, r->str1);
10785                 } else {
10786                         r->str1 = NULL;
10787                 }
10788                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u1));
10789                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u2));
10790                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u3));
10791                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u4));
10792                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u5));
10793                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->u6));
10794                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u7));
10795         }
10796         if (ndr_flags & NDR_BUFFERS) {
10797                 if (r->str1) {
10798                         _mem_save_str1_0 = NDR_PULL_GET_MEM_CTX(ndr);
10799                         NDR_PULL_SET_MEM_CTX(ndr, r->str1, 0);
10800                         NDR_CHECK(ndr_pull_array_size(ndr, &r->str1));
10801                         NDR_CHECK(ndr_pull_array_length(ndr, &r->str1));
10802                         if (ndr_get_array_length(ndr, &r->str1) > ndr_get_array_size(ndr, &r->str1)) {
10803                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->str1), ndr_get_array_length(ndr, &r->str1));
10804                         }
10805                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->str1), sizeof(uint16_t)));
10806                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->str1, ndr_get_array_length(ndr, &r->str1), sizeof(uint16_t), CH_UTF16));
10807                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_str1_0, 0);
10808                 }
10809         }
10810         return NDR_ERR_SUCCESS;
10811 }
10812
10813 _PUBLIC_ void ndr_print_drsuapi_DsReplica06(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplica06 *r)
10814 {
10815         ndr_print_struct(ndr, name, "drsuapi_DsReplica06");
10816         ndr->depth++;
10817         ndr_print_ptr(ndr, "str1", r->str1);
10818         ndr->depth++;
10819         if (r->str1) {
10820                 ndr_print_string(ndr, "str1", r->str1);
10821         }
10822         ndr->depth--;
10823         ndr_print_uint32(ndr, "u1", r->u1);
10824         ndr_print_uint32(ndr, "u2", r->u2);
10825         ndr_print_uint32(ndr, "u3", r->u3);
10826         ndr_print_uint32(ndr, "u4", r->u4);
10827         ndr_print_uint32(ndr, "u5", r->u5);
10828         ndr_print_hyper(ndr, "u6", r->u6);
10829         ndr_print_uint32(ndr, "u7", r->u7);
10830         ndr->depth--;
10831 }
10832
10833 static enum ndr_err_code ndr_push_drsuapi_DsReplica06Ctr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplica06Ctr *r)
10834 {
10835         uint32_t cntr_array_0;
10836         if (ndr_flags & NDR_SCALARS) {
10837                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
10838                 NDR_CHECK(ndr_push_align(ndr, 8));
10839                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
10840                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
10841                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
10842                         NDR_CHECK(ndr_push_drsuapi_DsReplica06(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
10843                 }
10844         }
10845         if (ndr_flags & NDR_BUFFERS) {
10846                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
10847                         NDR_CHECK(ndr_push_drsuapi_DsReplica06(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
10848                 }
10849         }
10850         return NDR_ERR_SUCCESS;
10851 }
10852
10853 static enum ndr_err_code ndr_pull_drsuapi_DsReplica06Ctr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplica06Ctr *r)
10854 {
10855         uint32_t cntr_array_0;
10856         TALLOC_CTX *_mem_save_array_0;
10857         if (ndr_flags & NDR_SCALARS) {
10858                 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
10859                 NDR_CHECK(ndr_pull_align(ndr, 8));
10860                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
10861                 if (r->count < 0 || r->count > 256) {
10862                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
10863                 }
10864                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
10865                 NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
10866                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
10867                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
10868                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
10869                         NDR_CHECK(ndr_pull_drsuapi_DsReplica06(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
10870                 }
10871                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
10872                 if (r->array) {
10873                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
10874                 }
10875         }
10876         if (ndr_flags & NDR_BUFFERS) {
10877                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
10878                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
10879                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
10880                         NDR_CHECK(ndr_pull_drsuapi_DsReplica06(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
10881                 }
10882                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
10883         }
10884         return NDR_ERR_SUCCESS;
10885 }
10886
10887 _PUBLIC_ void ndr_print_drsuapi_DsReplica06Ctr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplica06Ctr *r)
10888 {
10889         uint32_t cntr_array_0;
10890         ndr_print_struct(ndr, name, "drsuapi_DsReplica06Ctr");
10891         ndr->depth++;
10892         ndr_print_uint32(ndr, "count", r->count);
10893         ndr_print_uint32(ndr, "reserved", r->reserved);
10894         ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
10895         ndr->depth++;
10896         for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
10897                 char *idx_0=NULL;
10898                 if (asprintf(&idx_0, "[%d]", cntr_array_0) != -1) {
10899                         ndr_print_drsuapi_DsReplica06(ndr, "array", &r->array[cntr_array_0]);
10900                         free(idx_0);
10901                 }
10902         }
10903         ndr->depth--;
10904         ndr->depth--;
10905 }
10906
10907 static enum ndr_err_code ndr_push_drsuapi_DsReplicaInfo(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsReplicaInfo *r)
10908 {
10909         if (ndr_flags & NDR_SCALARS) {
10910                 int level = ndr_push_get_switch_value(ndr, r);
10911                 NDR_CHECK(ndr_push_drsuapi_DsReplicaInfoType(ndr, NDR_SCALARS, level));
10912                 switch (level) {
10913                         case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS: {
10914                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->neighbours));
10915                         break; }
10916
10917                         case DRSUAPI_DS_REPLICA_INFO_CURSORS: {
10918                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->cursors));
10919                         break; }
10920
10921                         case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA: {
10922                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->objmetadata));
10923                         break; }
10924
10925                         case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES: {
10926                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->connectfailures));
10927                         break; }
10928
10929                         case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES: {
10930                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->linkfailures));
10931                         break; }
10932
10933                         case DRSUAPI_DS_REPLICA_INFO_PENDING_OPS: {
10934                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pendingops));
10935                         break; }
10936
10937                         case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA: {
10938                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->attrvalmetadata));
10939                         break; }
10940
10941                         case DRSUAPI_DS_REPLICA_INFO_CURSORS2: {
10942                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->cursors2));
10943                         break; }
10944
10945                         case DRSUAPI_DS_REPLICA_INFO_CURSORS3: {
10946                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->cursors3));
10947                         break; }
10948
10949                         case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2: {
10950                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->objmetadata2));
10951                         break; }
10952
10953                         case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2: {
10954                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->attrvalmetadata2));
10955                         break; }
10956
10957                         case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02: {
10958                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->neighbours02));
10959                         break; }
10960
10961                         case DRSUAPI_DS_REPLICA_INFO_CONNECTIONS04: {
10962                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->connections04));
10963                         break; }
10964
10965                         case DRSUAPI_DS_REPLICA_INFO_CURSORS05: {
10966                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->cursors05));
10967                         break; }
10968
10969                         case DRSUAPI_DS_REPLICA_INFO_06: {
10970                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->i06));
10971                         break; }
10972
10973                         default:
10974                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
10975                 }
10976         }
10977         if (ndr_flags & NDR_BUFFERS) {
10978                 int level = ndr_push_get_switch_value(ndr, r);
10979                 switch (level) {
10980                         case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS:
10981                                 if (r->neighbours) {
10982                                         NDR_CHECK(ndr_push_drsuapi_DsReplicaNeighbourCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->neighbours));
10983                                 }
10984                         break;
10985
10986                         case DRSUAPI_DS_REPLICA_INFO_CURSORS:
10987                                 if (r->cursors) {
10988                                         NDR_CHECK(ndr_push_drsuapi_DsReplicaCursorCtr(ndr, NDR_SCALARS, r->cursors));
10989                                 }
10990                         break;
10991
10992                         case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA:
10993                                 if (r->objmetadata) {
10994                                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjMetaDataCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->objmetadata));
10995                                 }
10996                         break;
10997
10998                         case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES:
10999                                 if (r->connectfailures) {
11000                                         NDR_CHECK(ndr_push_drsuapi_DsReplicaKccDsaFailuresCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->connectfailures));
11001                                 }
11002                         break;
11003
11004                         case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES:
11005                                 if (r->linkfailures) {
11006                                         NDR_CHECK(ndr_push_drsuapi_DsReplicaKccDsaFailuresCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->linkfailures));
11007                                 }
11008                         break;
11009
11010                         case DRSUAPI_DS_REPLICA_INFO_PENDING_OPS:
11011                                 if (r->pendingops) {
11012                                         NDR_CHECK(ndr_push_drsuapi_DsReplicaOpCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->pendingops));
11013                                 }
11014                         break;
11015
11016                         case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA:
11017                                 if (r->attrvalmetadata) {
11018                                         NDR_CHECK(ndr_push_drsuapi_DsReplicaAttrValMetaDataCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->attrvalmetadata));
11019                                 }
11020                         break;
11021
11022                         case DRSUAPI_DS_REPLICA_INFO_CURSORS2:
11023                                 if (r->cursors2) {
11024                                         NDR_CHECK(ndr_push_drsuapi_DsReplicaCursor2Ctr(ndr, NDR_SCALARS, r->cursors2));
11025                                 }
11026                         break;
11027
11028                         case DRSUAPI_DS_REPLICA_INFO_CURSORS3:
11029                                 if (r->cursors3) {
11030                                         NDR_CHECK(ndr_push_drsuapi_DsReplicaCursor3Ctr(ndr, NDR_SCALARS|NDR_BUFFERS, r->cursors3));
11031                                 }
11032                         break;
11033
11034                         case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2:
11035                                 if (r->objmetadata2) {
11036                                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjMetaData2Ctr(ndr, NDR_SCALARS|NDR_BUFFERS, r->objmetadata2));
11037                                 }
11038                         break;
11039
11040                         case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2:
11041                                 if (r->attrvalmetadata2) {
11042                                         NDR_CHECK(ndr_push_drsuapi_DsReplicaAttrValMetaData2Ctr(ndr, NDR_SCALARS|NDR_BUFFERS, r->attrvalmetadata2));
11043                                 }
11044                         break;
11045
11046                         case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02:
11047                                 if (r->neighbours02) {
11048                                         NDR_CHECK(ndr_push_drsuapi_DsReplicaNeighbourCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->neighbours02));
11049                                 }
11050                         break;
11051
11052                         case DRSUAPI_DS_REPLICA_INFO_CONNECTIONS04:
11053                                 if (r->connections04) {
11054                                         NDR_CHECK(ndr_push_drsuapi_DsReplicaConnection04Ctr(ndr, NDR_SCALARS, r->connections04));
11055                                 }
11056                         break;
11057
11058                         case DRSUAPI_DS_REPLICA_INFO_CURSORS05:
11059                                 if (r->cursors05) {
11060                                         NDR_CHECK(ndr_push_drsuapi_DsReplicaCursorCtrEx(ndr, NDR_SCALARS, r->cursors05));
11061                                 }
11062                         break;
11063
11064                         case DRSUAPI_DS_REPLICA_INFO_06:
11065                                 if (r->i06) {
11066                                         NDR_CHECK(ndr_push_drsuapi_DsReplica06Ctr(ndr, NDR_SCALARS|NDR_BUFFERS, r->i06));
11067                                 }
11068                         break;
11069
11070                         default:
11071                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
11072                 }
11073         }
11074         return NDR_ERR_SUCCESS;
11075 }
11076
11077 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaInfo(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsReplicaInfo *r)
11078 {
11079         int level;
11080         uint32_t _level;
11081         TALLOC_CTX *_mem_save_neighbours_0;
11082         TALLOC_CTX *_mem_save_cursors_0;
11083         TALLOC_CTX *_mem_save_objmetadata_0;
11084         TALLOC_CTX *_mem_save_connectfailures_0;
11085         TALLOC_CTX *_mem_save_linkfailures_0;
11086         TALLOC_CTX *_mem_save_pendingops_0;
11087         TALLOC_CTX *_mem_save_attrvalmetadata_0;
11088         TALLOC_CTX *_mem_save_cursors2_0;
11089         TALLOC_CTX *_mem_save_cursors3_0;
11090         TALLOC_CTX *_mem_save_objmetadata2_0;
11091         TALLOC_CTX *_mem_save_attrvalmetadata2_0;
11092         TALLOC_CTX *_mem_save_neighbours02_0;
11093         TALLOC_CTX *_mem_save_connections04_0;
11094         TALLOC_CTX *_mem_save_cursors05_0;
11095         TALLOC_CTX *_mem_save_i06_0;
11096         level = ndr_pull_get_switch_value(ndr, r);
11097         if (ndr_flags & NDR_SCALARS) {
11098                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
11099                 if (_level != level) {
11100                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
11101                 }
11102                 switch (level) {
11103                         case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS: {
11104                                 uint32_t _ptr_neighbours;
11105                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_neighbours));
11106                                 if (_ptr_neighbours) {
11107                                         NDR_PULL_ALLOC(ndr, r->neighbours);
11108                                 } else {
11109                                         r->neighbours = NULL;
11110                                 }
11111                         break; }
11112
11113                         case DRSUAPI_DS_REPLICA_INFO_CURSORS: {
11114                                 uint32_t _ptr_cursors;
11115                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_cursors));
11116                                 if (_ptr_cursors) {
11117                                         NDR_PULL_ALLOC(ndr, r->cursors);
11118                                 } else {
11119                                         r->cursors = NULL;
11120                                 }
11121                         break; }
11122
11123                         case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA: {
11124                                 uint32_t _ptr_objmetadata;
11125                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_objmetadata));
11126                                 if (_ptr_objmetadata) {
11127                                         NDR_PULL_ALLOC(ndr, r->objmetadata);
11128                                 } else {
11129                                         r->objmetadata = NULL;
11130                                 }
11131                         break; }
11132
11133                         case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES: {
11134                                 uint32_t _ptr_connectfailures;
11135                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_connectfailures));
11136                                 if (_ptr_connectfailures) {
11137                                         NDR_PULL_ALLOC(ndr, r->connectfailures);
11138                                 } else {
11139                                         r->connectfailures = NULL;
11140                                 }
11141                         break; }
11142
11143                         case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES: {
11144                                 uint32_t _ptr_linkfailures;
11145                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_linkfailures));
11146                                 if (_ptr_linkfailures) {
11147                                         NDR_PULL_ALLOC(ndr, r->linkfailures);
11148                                 } else {
11149                                         r->linkfailures = NULL;
11150                                 }
11151                         break; }
11152
11153                         case DRSUAPI_DS_REPLICA_INFO_PENDING_OPS: {
11154                                 uint32_t _ptr_pendingops;
11155                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pendingops));
11156                                 if (_ptr_pendingops) {
11157                                         NDR_PULL_ALLOC(ndr, r->pendingops);
11158                                 } else {
11159                                         r->pendingops = NULL;
11160                                 }
11161                         break; }
11162
11163                         case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA: {
11164                                 uint32_t _ptr_attrvalmetadata;
11165                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_attrvalmetadata));
11166                                 if (_ptr_attrvalmetadata) {
11167                                         NDR_PULL_ALLOC(ndr, r->attrvalmetadata);
11168                                 } else {
11169                                         r->attrvalmetadata = NULL;
11170                                 }
11171                         break; }
11172
11173                         case DRSUAPI_DS_REPLICA_INFO_CURSORS2: {
11174                                 uint32_t _ptr_cursors2;
11175                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_cursors2));
11176                                 if (_ptr_cursors2) {
11177                                         NDR_PULL_ALLOC(ndr, r->cursors2);
11178                                 } else {
11179                                         r->cursors2 = NULL;
11180                                 }
11181                         break; }
11182
11183                         case DRSUAPI_DS_REPLICA_INFO_CURSORS3: {
11184                                 uint32_t _ptr_cursors3;
11185                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_cursors3));
11186                                 if (_ptr_cursors3) {
11187                                         NDR_PULL_ALLOC(ndr, r->cursors3);
11188                                 } else {
11189                                         r->cursors3 = NULL;
11190                                 }
11191                         break; }
11192
11193                         case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2: {
11194                                 uint32_t _ptr_objmetadata2;
11195                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_objmetadata2));
11196                                 if (_ptr_objmetadata2) {
11197                                         NDR_PULL_ALLOC(ndr, r->objmetadata2);
11198                                 } else {
11199                                         r->objmetadata2 = NULL;
11200                                 }
11201                         break; }
11202
11203                         case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2: {
11204                                 uint32_t _ptr_attrvalmetadata2;
11205                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_attrvalmetadata2));
11206                                 if (_ptr_attrvalmetadata2) {
11207                                         NDR_PULL_ALLOC(ndr, r->attrvalmetadata2);
11208                                 } else {
11209                                         r->attrvalmetadata2 = NULL;
11210                                 }
11211                         break; }
11212
11213                         case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02: {
11214                                 uint32_t _ptr_neighbours02;
11215                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_neighbours02));
11216                                 if (_ptr_neighbours02) {
11217                                         NDR_PULL_ALLOC(ndr, r->neighbours02);
11218                                 } else {
11219                                         r->neighbours02 = NULL;
11220                                 }
11221                         break; }
11222
11223                         case DRSUAPI_DS_REPLICA_INFO_CONNECTIONS04: {
11224                                 uint32_t _ptr_connections04;
11225                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_connections04));
11226                                 if (_ptr_connections04) {
11227                                         NDR_PULL_ALLOC(ndr, r->connections04);
11228                                 } else {
11229                                         r->connections04 = NULL;
11230                                 }
11231                         break; }
11232
11233                         case DRSUAPI_DS_REPLICA_INFO_CURSORS05: {
11234                                 uint32_t _ptr_cursors05;
11235                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_cursors05));
11236                                 if (_ptr_cursors05) {
11237                                         NDR_PULL_ALLOC(ndr, r->cursors05);
11238                                 } else {
11239                                         r->cursors05 = NULL;
11240                                 }
11241                         break; }
11242
11243                         case DRSUAPI_DS_REPLICA_INFO_06: {
11244                                 uint32_t _ptr_i06;
11245                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_i06));
11246                                 if (_ptr_i06) {
11247                                         NDR_PULL_ALLOC(ndr, r->i06);
11248                                 } else {
11249                                         r->i06 = NULL;
11250                                 }
11251                         break; }
11252
11253                         default:
11254                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
11255                 }
11256         }
11257         if (ndr_flags & NDR_BUFFERS) {
11258                 switch (level) {
11259                         case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS:
11260                                 if (r->neighbours) {
11261                                         _mem_save_neighbours_0 = NDR_PULL_GET_MEM_CTX(ndr);
11262                                         NDR_PULL_SET_MEM_CTX(ndr, r->neighbours, 0);
11263                                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaNeighbourCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->neighbours));
11264                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_neighbours_0, 0);
11265                                 }
11266                         break;
11267
11268                         case DRSUAPI_DS_REPLICA_INFO_CURSORS:
11269                                 if (r->cursors) {
11270                                         _mem_save_cursors_0 = NDR_PULL_GET_MEM_CTX(ndr);
11271                                         NDR_PULL_SET_MEM_CTX(ndr, r->cursors, 0);
11272                                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursorCtr(ndr, NDR_SCALARS, r->cursors));
11273                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_cursors_0, 0);
11274                                 }
11275                         break;
11276
11277                         case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA:
11278                                 if (r->objmetadata) {
11279                                         _mem_save_objmetadata_0 = NDR_PULL_GET_MEM_CTX(ndr);
11280                                         NDR_PULL_SET_MEM_CTX(ndr, r->objmetadata, 0);
11281                                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjMetaDataCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->objmetadata));
11282                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_objmetadata_0, 0);
11283                                 }
11284                         break;
11285
11286                         case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES:
11287                                 if (r->connectfailures) {
11288                                         _mem_save_connectfailures_0 = NDR_PULL_GET_MEM_CTX(ndr);
11289                                         NDR_PULL_SET_MEM_CTX(ndr, r->connectfailures, 0);
11290                                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaKccDsaFailuresCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->connectfailures));
11291                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_connectfailures_0, 0);
11292                                 }
11293                         break;
11294
11295                         case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES:
11296                                 if (r->linkfailures) {
11297                                         _mem_save_linkfailures_0 = NDR_PULL_GET_MEM_CTX(ndr);
11298                                         NDR_PULL_SET_MEM_CTX(ndr, r->linkfailures, 0);
11299                                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaKccDsaFailuresCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->linkfailures));
11300                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_linkfailures_0, 0);
11301                                 }
11302                         break;
11303
11304                         case DRSUAPI_DS_REPLICA_INFO_PENDING_OPS:
11305                                 if (r->pendingops) {
11306                                         _mem_save_pendingops_0 = NDR_PULL_GET_MEM_CTX(ndr);
11307                                         NDR_PULL_SET_MEM_CTX(ndr, r->pendingops, 0);
11308                                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaOpCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->pendingops));
11309                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pendingops_0, 0);
11310                                 }
11311                         break;
11312
11313                         case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA:
11314                                 if (r->attrvalmetadata) {
11315                                         _mem_save_attrvalmetadata_0 = NDR_PULL_GET_MEM_CTX(ndr);
11316                                         NDR_PULL_SET_MEM_CTX(ndr, r->attrvalmetadata, 0);
11317                                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaAttrValMetaDataCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->attrvalmetadata));
11318                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attrvalmetadata_0, 0);
11319                                 }
11320                         break;
11321
11322                         case DRSUAPI_DS_REPLICA_INFO_CURSORS2:
11323                                 if (r->cursors2) {
11324                                         _mem_save_cursors2_0 = NDR_PULL_GET_MEM_CTX(ndr);
11325                                         NDR_PULL_SET_MEM_CTX(ndr, r->cursors2, 0);
11326                                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursor2Ctr(ndr, NDR_SCALARS, r->cursors2));
11327                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_cursors2_0, 0);
11328                                 }
11329                         break;
11330
11331                         case DRSUAPI_DS_REPLICA_INFO_CURSORS3:
11332                                 if (r->cursors3) {
11333                                         _mem_save_cursors3_0 = NDR_PULL_GET_MEM_CTX(ndr);
11334                                         NDR_PULL_SET_MEM_CTX(ndr, r->cursors3, 0);
11335                                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursor3Ctr(ndr, NDR_SCALARS|NDR_BUFFERS, r->cursors3));
11336                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_cursors3_0, 0);
11337                                 }
11338                         break;
11339
11340                         case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2:
11341                                 if (r->objmetadata2) {
11342                                         _mem_save_objmetadata2_0 = NDR_PULL_GET_MEM_CTX(ndr);
11343                                         NDR_PULL_SET_MEM_CTX(ndr, r->objmetadata2, 0);
11344                                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjMetaData2Ctr(ndr, NDR_SCALARS|NDR_BUFFERS, r->objmetadata2));
11345                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_objmetadata2_0, 0);
11346                                 }
11347                         break;
11348
11349                         case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2:
11350                                 if (r->attrvalmetadata2) {
11351                                         _mem_save_attrvalmetadata2_0 = NDR_PULL_GET_MEM_CTX(ndr);
11352                                         NDR_PULL_SET_MEM_CTX(ndr, r->attrvalmetadata2, 0);
11353                                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaAttrValMetaData2Ctr(ndr, NDR_SCALARS|NDR_BUFFERS, r->attrvalmetadata2));
11354                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attrvalmetadata2_0, 0);
11355                                 }
11356                         break;
11357
11358                         case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02:
11359                                 if (r->neighbours02) {
11360                                         _mem_save_neighbours02_0 = NDR_PULL_GET_MEM_CTX(ndr);
11361                                         NDR_PULL_SET_MEM_CTX(ndr, r->neighbours02, 0);
11362                                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaNeighbourCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->neighbours02));
11363                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_neighbours02_0, 0);
11364                                 }
11365                         break;
11366
11367                         case DRSUAPI_DS_REPLICA_INFO_CONNECTIONS04:
11368                                 if (r->connections04) {
11369                                         _mem_save_connections04_0 = NDR_PULL_GET_MEM_CTX(ndr);
11370                                         NDR_PULL_SET_MEM_CTX(ndr, r->connections04, 0);
11371                                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaConnection04Ctr(ndr, NDR_SCALARS, r->connections04));
11372                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_connections04_0, 0);
11373                                 }
11374                         break;
11375
11376                         case DRSUAPI_DS_REPLICA_INFO_CURSORS05:
11377                                 if (r->cursors05) {
11378                                         _mem_save_cursors05_0 = NDR_PULL_GET_MEM_CTX(ndr);
11379                                         NDR_PULL_SET_MEM_CTX(ndr, r->cursors05, 0);
11380                                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursorCtrEx(ndr, NDR_SCALARS, r->cursors05));
11381                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_cursors05_0, 0);
11382                                 }
11383                         break;
11384
11385                         case DRSUAPI_DS_REPLICA_INFO_06:
11386                                 if (r->i06) {
11387                                         _mem_save_i06_0 = NDR_PULL_GET_MEM_CTX(ndr);
11388                                         NDR_PULL_SET_MEM_CTX(ndr, r->i06, 0);
11389                                         NDR_CHECK(ndr_pull_drsuapi_DsReplica06Ctr(ndr, NDR_SCALARS|NDR_BUFFERS, r->i06));
11390                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_i06_0, 0);
11391                                 }
11392                         break;
11393
11394                         default:
11395                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
11396                 }
11397         }
11398         return NDR_ERR_SUCCESS;
11399 }
11400
11401 _PUBLIC_ void ndr_print_drsuapi_DsReplicaInfo(struct ndr_print *ndr, const char *name, const union drsuapi_DsReplicaInfo *r)
11402 {
11403         int level;
11404         level = ndr_print_get_switch_value(ndr, r);
11405         ndr_print_union(ndr, name, level, "drsuapi_DsReplicaInfo");
11406         switch (level) {
11407                 case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS:
11408                         ndr_print_ptr(ndr, "neighbours", r->neighbours);
11409                         ndr->depth++;
11410                         if (r->neighbours) {
11411                                 ndr_print_drsuapi_DsReplicaNeighbourCtr(ndr, "neighbours", r->neighbours);
11412                         }
11413                         ndr->depth--;
11414                 break;
11415
11416                 case DRSUAPI_DS_REPLICA_INFO_CURSORS:
11417                         ndr_print_ptr(ndr, "cursors", r->cursors);
11418                         ndr->depth++;
11419                         if (r->cursors) {
11420                                 ndr_print_drsuapi_DsReplicaCursorCtr(ndr, "cursors", r->cursors);
11421                         }
11422                         ndr->depth--;
11423                 break;
11424
11425                 case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA:
11426                         ndr_print_ptr(ndr, "objmetadata", r->objmetadata);
11427                         ndr->depth++;
11428                         if (r->objmetadata) {
11429                                 ndr_print_drsuapi_DsReplicaObjMetaDataCtr(ndr, "objmetadata", r->objmetadata);
11430                         }
11431                         ndr->depth--;
11432                 break;
11433
11434                 case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES:
11435                         ndr_print_ptr(ndr, "connectfailures", r->connectfailures);
11436                         ndr->depth++;
11437                         if (r->connectfailures) {
11438                                 ndr_print_drsuapi_DsReplicaKccDsaFailuresCtr(ndr, "connectfailures", r->connectfailures);
11439                         }
11440                         ndr->depth--;
11441                 break;
11442
11443                 case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES:
11444                         ndr_print_ptr(ndr, "linkfailures", r->linkfailures);
11445                         ndr->depth++;
11446                         if (r->linkfailures) {
11447                                 ndr_print_drsuapi_DsReplicaKccDsaFailuresCtr(ndr, "linkfailures", r->linkfailures);
11448                         }
11449                         ndr->depth--;
11450                 break;
11451
11452                 case DRSUAPI_DS_REPLICA_INFO_PENDING_OPS:
11453                         ndr_print_ptr(ndr, "pendingops", r->pendingops);
11454                         ndr->depth++;
11455                         if (r->pendingops) {
11456                                 ndr_print_drsuapi_DsReplicaOpCtr(ndr, "pendingops", r->pendingops);
11457                         }
11458                         ndr->depth--;
11459                 break;
11460
11461                 case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA:
11462                         ndr_print_ptr(ndr, "attrvalmetadata", r->attrvalmetadata);
11463                         ndr->depth++;
11464                         if (r->attrvalmetadata) {
11465                                 ndr_print_drsuapi_DsReplicaAttrValMetaDataCtr(ndr, "attrvalmetadata", r->attrvalmetadata);
11466                         }
11467                         ndr->depth--;
11468                 break;
11469
11470                 case DRSUAPI_DS_REPLICA_INFO_CURSORS2:
11471                         ndr_print_ptr(ndr, "cursors2", r->cursors2);
11472                         ndr->depth++;
11473                         if (r->cursors2) {
11474                                 ndr_print_drsuapi_DsReplicaCursor2Ctr(ndr, "cursors2", r->cursors2);
11475                         }
11476                         ndr->depth--;
11477                 break;
11478
11479                 case DRSUAPI_DS_REPLICA_INFO_CURSORS3:
11480                         ndr_print_ptr(ndr, "cursors3", r->cursors3);
11481                         ndr->depth++;
11482                         if (r->cursors3) {
11483                                 ndr_print_drsuapi_DsReplicaCursor3Ctr(ndr, "cursors3", r->cursors3);
11484                         }
11485                         ndr->depth--;
11486                 break;
11487
11488                 case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2:
11489                         ndr_print_ptr(ndr, "objmetadata2", r->objmetadata2);
11490                         ndr->depth++;
11491                         if (r->objmetadata2) {
11492                                 ndr_print_drsuapi_DsReplicaObjMetaData2Ctr(ndr, "objmetadata2", r->objmetadata2);
11493                         }
11494                         ndr->depth--;
11495                 break;
11496
11497                 case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2:
11498                         ndr_print_ptr(ndr, "attrvalmetadata2", r->attrvalmetadata2);
11499                         ndr->depth++;
11500                         if (r->attrvalmetadata2) {
11501                                 ndr_print_drsuapi_DsReplicaAttrValMetaData2Ctr(ndr, "attrvalmetadata2", r->attrvalmetadata2);
11502                         }
11503                         ndr->depth--;
11504                 break;
11505
11506                 case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02:
11507                         ndr_print_ptr(ndr, "neighbours02", r->neighbours02);
11508                         ndr->depth++;
11509                         if (r->neighbours02) {
11510                                 ndr_print_drsuapi_DsReplicaNeighbourCtr(ndr, "neighbours02", r->neighbours02);
11511                         }
11512                         ndr->depth--;
11513                 break;
11514
11515                 case DRSUAPI_DS_REPLICA_INFO_CONNECTIONS04:
11516                         ndr_print_ptr(ndr, "connections04", r->connections04);
11517                         ndr->depth++;
11518                         if (r->connections04) {
11519                                 ndr_print_drsuapi_DsReplicaConnection04Ctr(ndr, "connections04", r->connections04);
11520                         }
11521                         ndr->depth--;
11522                 break;
11523
11524                 case DRSUAPI_DS_REPLICA_INFO_CURSORS05:
11525                         ndr_print_ptr(ndr, "cursors05", r->cursors05);
11526                         ndr->depth++;
11527                         if (r->cursors05) {
11528                                 ndr_print_drsuapi_DsReplicaCursorCtrEx(ndr, "cursors05", r->cursors05);
11529                         }
11530                         ndr->depth--;
11531                 break;
11532
11533                 case DRSUAPI_DS_REPLICA_INFO_06:
11534                         ndr_print_ptr(ndr, "i06", r->i06);
11535                         ndr->depth++;
11536                         if (r->i06) {
11537                                 ndr_print_drsuapi_DsReplica06Ctr(ndr, "i06", r->i06);
11538                         }
11539                         ndr->depth--;
11540                 break;
11541
11542                 default:
11543                         ndr_print_bad_level(ndr, name, level);
11544         }
11545 }
11546
11547 static enum ndr_err_code ndr_push_drsuapi_DsGetMemberships2Ctr(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsGetMemberships2Ctr *r)
11548 {
11549         if (ndr_flags & NDR_SCALARS) {
11550                 int level = ndr_push_get_switch_value(ndr, r);
11551                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
11552                 switch (level) {
11553                         case 1: {
11554                                 NDR_CHECK(ndr_push_drsuapi_DsGetMembershipsCtr1(ndr, NDR_SCALARS, &r->ctr1));
11555                         break; }
11556
11557                         default:
11558                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
11559                 }
11560         }
11561         if (ndr_flags & NDR_BUFFERS) {
11562                 int level = ndr_push_get_switch_value(ndr, r);
11563                 switch (level) {
11564                         case 1:
11565                                 NDR_CHECK(ndr_push_drsuapi_DsGetMembershipsCtr1(ndr, NDR_BUFFERS, &r->ctr1));
11566                         break;
11567
11568                         default:
11569                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
11570                 }
11571         }
11572         return NDR_ERR_SUCCESS;
11573 }
11574
11575 static enum ndr_err_code ndr_pull_drsuapi_DsGetMemberships2Ctr(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsGetMemberships2Ctr *r)
11576 {
11577         int level;
11578         int32_t _level;
11579         level = ndr_pull_get_switch_value(ndr, r);
11580         if (ndr_flags & NDR_SCALARS) {
11581                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
11582                 if (_level != level) {
11583                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
11584                 }
11585                 switch (level) {
11586                         case 1: {
11587                                 NDR_CHECK(ndr_pull_drsuapi_DsGetMembershipsCtr1(ndr, NDR_SCALARS, &r->ctr1));
11588                         break; }
11589
11590                         default:
11591                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
11592                 }
11593         }
11594         if (ndr_flags & NDR_BUFFERS) {
11595                 switch (level) {
11596                         case 1:
11597                                 NDR_CHECK(ndr_pull_drsuapi_DsGetMembershipsCtr1(ndr, NDR_BUFFERS, &r->ctr1));
11598                         break;
11599
11600                         default:
11601                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
11602                 }
11603         }
11604         return NDR_ERR_SUCCESS;
11605 }
11606
11607 _PUBLIC_ void ndr_print_drsuapi_DsGetMemberships2Ctr(struct ndr_print *ndr, const char *name, const union drsuapi_DsGetMemberships2Ctr *r)
11608 {
11609         int level;
11610         level = ndr_print_get_switch_value(ndr, r);
11611         ndr_print_union(ndr, name, level, "drsuapi_DsGetMemberships2Ctr");
11612         switch (level) {
11613                 case 1:
11614                         ndr_print_drsuapi_DsGetMembershipsCtr1(ndr, "ctr1", &r->ctr1);
11615                 break;
11616
11617                 default:
11618                         ndr_print_bad_level(ndr, name, level);
11619         }
11620 }
11621
11622 static enum ndr_err_code ndr_push_drsuapi_DsGetMemberships2Request1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetMemberships2Request1 *r)
11623 {
11624         uint32_t cntr_req_array_1;
11625         if (ndr_flags & NDR_SCALARS) {
11626                 NDR_CHECK(ndr_push_align(ndr, 4));
11627                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_req));
11628                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->req_array));
11629         }
11630         if (ndr_flags & NDR_BUFFERS) {
11631                 if (r->req_array) {
11632                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_req));
11633                         for (cntr_req_array_1 = 0; cntr_req_array_1 < r->num_req; cntr_req_array_1++) {
11634                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->req_array[cntr_req_array_1]));
11635                         }
11636                         for (cntr_req_array_1 = 0; cntr_req_array_1 < r->num_req; cntr_req_array_1++) {
11637                                 if (r->req_array[cntr_req_array_1]) {
11638                                         NDR_CHECK(ndr_push_drsuapi_DsGetMembershipsRequest1(ndr, NDR_SCALARS|NDR_BUFFERS, r->req_array[cntr_req_array_1]));
11639                                 }
11640                         }
11641                 }
11642         }
11643         return NDR_ERR_SUCCESS;
11644 }
11645
11646 static enum ndr_err_code ndr_pull_drsuapi_DsGetMemberships2Request1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetMemberships2Request1 *r)
11647 {
11648         uint32_t _ptr_req_array;
11649         uint32_t cntr_req_array_1;
11650         TALLOC_CTX *_mem_save_req_array_0;
11651         TALLOC_CTX *_mem_save_req_array_1;
11652         TALLOC_CTX *_mem_save_req_array_2;
11653         if (ndr_flags & NDR_SCALARS) {
11654                 NDR_CHECK(ndr_pull_align(ndr, 4));
11655                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_req));
11656                 if (r->num_req < 1 || r->num_req > 10000) {
11657                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
11658                 }
11659                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_req_array));
11660                 if (_ptr_req_array) {
11661                         NDR_PULL_ALLOC(ndr, r->req_array);
11662                 } else {
11663                         r->req_array = NULL;
11664                 }
11665         }
11666         if (ndr_flags & NDR_BUFFERS) {
11667                 if (r->req_array) {
11668                         _mem_save_req_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
11669                         NDR_PULL_SET_MEM_CTX(ndr, r->req_array, 0);
11670                         NDR_CHECK(ndr_pull_array_size(ndr, &r->req_array));
11671                         NDR_PULL_ALLOC_N(ndr, r->req_array, ndr_get_array_size(ndr, &r->req_array));
11672                         _mem_save_req_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
11673                         NDR_PULL_SET_MEM_CTX(ndr, r->req_array, 0);
11674                         for (cntr_req_array_1 = 0; cntr_req_array_1 < r->num_req; cntr_req_array_1++) {
11675                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_req_array));
11676                                 if (_ptr_req_array) {
11677                                         NDR_PULL_ALLOC(ndr, r->req_array[cntr_req_array_1]);
11678                                 } else {
11679                                         r->req_array[cntr_req_array_1] = NULL;
11680                                 }
11681                         }
11682                         for (cntr_req_array_1 = 0; cntr_req_array_1 < r->num_req; cntr_req_array_1++) {
11683                                 if (r->req_array[cntr_req_array_1]) {
11684                                         _mem_save_req_array_2 = NDR_PULL_GET_MEM_CTX(ndr);
11685                                         NDR_PULL_SET_MEM_CTX(ndr, r->req_array[cntr_req_array_1], 0);
11686                                         NDR_CHECK(ndr_pull_drsuapi_DsGetMembershipsRequest1(ndr, NDR_SCALARS|NDR_BUFFERS, r->req_array[cntr_req_array_1]));
11687                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_array_2, 0);
11688                                 }
11689                         }
11690                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_array_1, 0);
11691                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_array_0, 0);
11692                 }
11693                 if (r->req_array) {
11694                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->req_array, r->num_req));
11695                 }
11696         }
11697         return NDR_ERR_SUCCESS;
11698 }
11699
11700 _PUBLIC_ void ndr_print_drsuapi_DsGetMemberships2Request1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetMemberships2Request1 *r)
11701 {
11702         uint32_t cntr_req_array_1;
11703         ndr_print_struct(ndr, name, "drsuapi_DsGetMemberships2Request1");
11704         ndr->depth++;
11705         ndr_print_uint32(ndr, "num_req", r->num_req);
11706         ndr_print_ptr(ndr, "req_array", r->req_array);
11707         ndr->depth++;
11708         if (r->req_array) {
11709                 ndr->print(ndr, "%s: ARRAY(%d)", "req_array", (int)r->num_req);
11710                 ndr->depth++;
11711                 for (cntr_req_array_1=0;cntr_req_array_1<r->num_req;cntr_req_array_1++) {
11712                         char *idx_1=NULL;
11713                         if (asprintf(&idx_1, "[%d]", cntr_req_array_1) != -1) {
11714                                 ndr_print_ptr(ndr, "req_array", r->req_array[cntr_req_array_1]);
11715                                 ndr->depth++;
11716                                 if (r->req_array[cntr_req_array_1]) {
11717                                         ndr_print_drsuapi_DsGetMembershipsRequest1(ndr, "req_array", r->req_array[cntr_req_array_1]);
11718                                 }
11719                                 ndr->depth--;
11720                                 free(idx_1);
11721                         }
11722                 }
11723                 ndr->depth--;
11724         }
11725         ndr->depth--;
11726         ndr->depth--;
11727 }
11728
11729 static enum ndr_err_code ndr_push_drsuapi_DsGetMemberships2Request(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsGetMemberships2Request *r)
11730 {
11731         if (ndr_flags & NDR_SCALARS) {
11732                 int level = ndr_push_get_switch_value(ndr, r);
11733                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
11734                 switch (level) {
11735                         case 1: {
11736                                 NDR_CHECK(ndr_push_drsuapi_DsGetMemberships2Request1(ndr, NDR_SCALARS, &r->req1));
11737                         break; }
11738
11739                         default:
11740                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
11741                 }
11742         }
11743         if (ndr_flags & NDR_BUFFERS) {
11744                 int level = ndr_push_get_switch_value(ndr, r);
11745                 switch (level) {
11746                         case 1:
11747                                 NDR_CHECK(ndr_push_drsuapi_DsGetMemberships2Request1(ndr, NDR_BUFFERS, &r->req1));
11748                         break;
11749
11750                         default:
11751                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
11752                 }
11753         }
11754         return NDR_ERR_SUCCESS;
11755 }
11756
11757 static enum ndr_err_code ndr_pull_drsuapi_DsGetMemberships2Request(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsGetMemberships2Request *r)
11758 {
11759         int level;
11760         int32_t _level;
11761         level = ndr_pull_get_switch_value(ndr, r);
11762         if (ndr_flags & NDR_SCALARS) {
11763                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
11764                 if (_level != level) {
11765                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
11766                 }
11767                 switch (level) {
11768                         case 1: {
11769                                 NDR_CHECK(ndr_pull_drsuapi_DsGetMemberships2Request1(ndr, NDR_SCALARS, &r->req1));
11770                         break; }
11771
11772                         default:
11773                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
11774                 }
11775         }
11776         if (ndr_flags & NDR_BUFFERS) {
11777                 switch (level) {
11778                         case 1:
11779                                 NDR_CHECK(ndr_pull_drsuapi_DsGetMemberships2Request1(ndr, NDR_BUFFERS, &r->req1));
11780                         break;
11781
11782                         default:
11783                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
11784                 }
11785         }
11786         return NDR_ERR_SUCCESS;
11787 }
11788
11789 _PUBLIC_ void ndr_print_drsuapi_DsGetMemberships2Request(struct ndr_print *ndr, const char *name, const union drsuapi_DsGetMemberships2Request *r)
11790 {
11791         int level;
11792         level = ndr_print_get_switch_value(ndr, r);
11793         ndr_print_union(ndr, name, level, "drsuapi_DsGetMemberships2Request");
11794         switch (level) {
11795                 case 1:
11796                         ndr_print_drsuapi_DsGetMemberships2Request1(ndr, "req1", &r->req1);
11797                 break;
11798
11799                 default:
11800                         ndr_print_bad_level(ndr, name, level);
11801         }
11802 }
11803
11804 static enum ndr_err_code ndr_push_drsuapi_DsSiteCostInfo(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsSiteCostInfo *r)
11805 {
11806         if (ndr_flags & NDR_SCALARS) {
11807                 NDR_CHECK(ndr_push_align(ndr, 4));
11808                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->error_code));
11809                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->site_cost));
11810         }
11811         if (ndr_flags & NDR_BUFFERS) {
11812         }
11813         return NDR_ERR_SUCCESS;
11814 }
11815
11816 static enum ndr_err_code ndr_pull_drsuapi_DsSiteCostInfo(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsSiteCostInfo *r)
11817 {
11818         if (ndr_flags & NDR_SCALARS) {
11819                 NDR_CHECK(ndr_pull_align(ndr, 4));
11820                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->error_code));
11821                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->site_cost));
11822         }
11823         if (ndr_flags & NDR_BUFFERS) {
11824         }
11825         return NDR_ERR_SUCCESS;
11826 }
11827
11828 _PUBLIC_ void ndr_print_drsuapi_DsSiteCostInfo(struct ndr_print *ndr, const char *name, const struct drsuapi_DsSiteCostInfo *r)
11829 {
11830         ndr_print_struct(ndr, name, "drsuapi_DsSiteCostInfo");
11831         ndr->depth++;
11832         ndr_print_WERROR(ndr, "error_code", r->error_code);
11833         ndr_print_uint32(ndr, "site_cost", r->site_cost);
11834         ndr->depth--;
11835 }
11836
11837 static enum ndr_err_code ndr_push_drsuapi_QuerySitesByCostCtr1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_QuerySitesByCostCtr1 *r)
11838 {
11839         uint32_t cntr_info_1;
11840         if (ndr_flags & NDR_SCALARS) {
11841                 NDR_CHECK(ndr_push_align(ndr, 4));
11842                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_info));
11843                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info));
11844                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown));
11845         }
11846         if (ndr_flags & NDR_BUFFERS) {
11847                 if (r->info) {
11848                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_info));
11849                         for (cntr_info_1 = 0; cntr_info_1 < r->num_info; cntr_info_1++) {
11850                                 NDR_CHECK(ndr_push_drsuapi_DsSiteCostInfo(ndr, NDR_SCALARS, &r->info[cntr_info_1]));
11851                         }
11852                 }
11853         }
11854         return NDR_ERR_SUCCESS;
11855 }
11856
11857 static enum ndr_err_code ndr_pull_drsuapi_QuerySitesByCostCtr1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_QuerySitesByCostCtr1 *r)
11858 {
11859         uint32_t _ptr_info;
11860         uint32_t cntr_info_1;
11861         TALLOC_CTX *_mem_save_info_0;
11862         TALLOC_CTX *_mem_save_info_1;
11863         if (ndr_flags & NDR_SCALARS) {
11864                 NDR_CHECK(ndr_pull_align(ndr, 4));
11865                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_info));
11866                 if (r->num_info < 0 || r->num_info > 10000) {
11867                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
11868                 }
11869                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
11870                 if (_ptr_info) {
11871                         NDR_PULL_ALLOC(ndr, r->info);
11872                 } else {
11873                         r->info = NULL;
11874                 }
11875                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown));
11876         }
11877         if (ndr_flags & NDR_BUFFERS) {
11878                 if (r->info) {
11879                         _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
11880                         NDR_PULL_SET_MEM_CTX(ndr, r->info, 0);
11881                         NDR_CHECK(ndr_pull_array_size(ndr, &r->info));
11882                         NDR_PULL_ALLOC_N(ndr, r->info, ndr_get_array_size(ndr, &r->info));
11883                         _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
11884                         NDR_PULL_SET_MEM_CTX(ndr, r->info, 0);
11885                         for (cntr_info_1 = 0; cntr_info_1 < r->num_info; cntr_info_1++) {
11886                                 NDR_CHECK(ndr_pull_drsuapi_DsSiteCostInfo(ndr, NDR_SCALARS, &r->info[cntr_info_1]));
11887                         }
11888                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
11889                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
11890                 }
11891                 if (r->info) {
11892                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->info, r->num_info));
11893                 }
11894         }
11895         return NDR_ERR_SUCCESS;
11896 }
11897
11898 _PUBLIC_ void ndr_print_drsuapi_QuerySitesByCostCtr1(struct ndr_print *ndr, const char *name, const struct drsuapi_QuerySitesByCostCtr1 *r)
11899 {
11900         uint32_t cntr_info_1;
11901         ndr_print_struct(ndr, name, "drsuapi_QuerySitesByCostCtr1");
11902         ndr->depth++;
11903         ndr_print_uint32(ndr, "num_info", r->num_info);
11904         ndr_print_ptr(ndr, "info", r->info);
11905         ndr->depth++;
11906         if (r->info) {
11907                 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)r->num_info);
11908                 ndr->depth++;
11909                 for (cntr_info_1=0;cntr_info_1<r->num_info;cntr_info_1++) {
11910                         char *idx_1=NULL;
11911                         if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
11912                                 ndr_print_drsuapi_DsSiteCostInfo(ndr, "info", &r->info[cntr_info_1]);
11913                                 free(idx_1);
11914                         }
11915                 }
11916                 ndr->depth--;
11917         }
11918         ndr->depth--;
11919         ndr_print_uint32(ndr, "unknown", r->unknown);
11920         ndr->depth--;
11921 }
11922
11923 static enum ndr_err_code ndr_push_drsuapi_QuerySitesByCostCtr(struct ndr_push *ndr, int ndr_flags, const union drsuapi_QuerySitesByCostCtr *r)
11924 {
11925         if (ndr_flags & NDR_SCALARS) {
11926                 int level = ndr_push_get_switch_value(ndr, r);
11927                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
11928                 switch (level) {
11929                         case 1: {
11930                                 NDR_CHECK(ndr_push_drsuapi_QuerySitesByCostCtr1(ndr, NDR_SCALARS, &r->ctr1));
11931                         break; }
11932
11933                         default:
11934                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
11935                 }
11936         }
11937         if (ndr_flags & NDR_BUFFERS) {
11938                 int level = ndr_push_get_switch_value(ndr, r);
11939                 switch (level) {
11940                         case 1:
11941                                 NDR_CHECK(ndr_push_drsuapi_QuerySitesByCostCtr1(ndr, NDR_BUFFERS, &r->ctr1));
11942                         break;
11943
11944                         default:
11945                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
11946                 }
11947         }
11948         return NDR_ERR_SUCCESS;
11949 }
11950
11951 static enum ndr_err_code ndr_pull_drsuapi_QuerySitesByCostCtr(struct ndr_pull *ndr, int ndr_flags, union drsuapi_QuerySitesByCostCtr *r)
11952 {
11953         int level;
11954         int32_t _level;
11955         level = ndr_pull_get_switch_value(ndr, r);
11956         if (ndr_flags & NDR_SCALARS) {
11957                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
11958                 if (_level != level) {
11959                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
11960                 }
11961                 switch (level) {
11962                         case 1: {
11963                                 NDR_CHECK(ndr_pull_drsuapi_QuerySitesByCostCtr1(ndr, NDR_SCALARS, &r->ctr1));
11964                         break; }
11965
11966                         default:
11967                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
11968                 }
11969         }
11970         if (ndr_flags & NDR_BUFFERS) {
11971                 switch (level) {
11972                         case 1:
11973                                 NDR_CHECK(ndr_pull_drsuapi_QuerySitesByCostCtr1(ndr, NDR_BUFFERS, &r->ctr1));
11974                         break;
11975
11976                         default:
11977                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
11978                 }
11979         }
11980         return NDR_ERR_SUCCESS;
11981 }
11982
11983 _PUBLIC_ void ndr_print_drsuapi_QuerySitesByCostCtr(struct ndr_print *ndr, const char *name, const union drsuapi_QuerySitesByCostCtr *r)
11984 {
11985         int level;
11986         level = ndr_print_get_switch_value(ndr, r);
11987         ndr_print_union(ndr, name, level, "drsuapi_QuerySitesByCostCtr");
11988         switch (level) {
11989                 case 1:
11990                         ndr_print_drsuapi_QuerySitesByCostCtr1(ndr, "ctr1", &r->ctr1);
11991                 break;
11992
11993                 default:
11994                         ndr_print_bad_level(ndr, name, level);
11995         }
11996 }
11997
11998 static enum ndr_err_code ndr_push_drsuapi_QuerySitesByCostRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_QuerySitesByCostRequest1 *r)
11999 {
12000         uint32_t cntr_site_to_1;
12001         if (ndr_flags & NDR_SCALARS) {
12002                 NDR_CHECK(ndr_push_align(ndr, 4));
12003                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->site_from));
12004                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_req));
12005                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->site_to));
12006                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
12007         }
12008         if (ndr_flags & NDR_BUFFERS) {
12009                 if (r->site_from) {
12010                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->site_from, CH_UTF16)));
12011                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12012                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->site_from, CH_UTF16)));
12013                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->site_from, ndr_charset_length(r->site_from, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12014                 }
12015                 if (r->site_to) {
12016                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_req));
12017                         for (cntr_site_to_1 = 0; cntr_site_to_1 < r->num_req; cntr_site_to_1++) {
12018                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->site_to[cntr_site_to_1]));
12019                         }
12020                         for (cntr_site_to_1 = 0; cntr_site_to_1 < r->num_req; cntr_site_to_1++) {
12021                                 if (r->site_to[cntr_site_to_1]) {
12022                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->site_to[cntr_site_to_1], CH_UTF16)));
12023                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12024                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->site_to[cntr_site_to_1], CH_UTF16)));
12025                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->site_to[cntr_site_to_1], ndr_charset_length(r->site_to[cntr_site_to_1], CH_UTF16), sizeof(uint16_t), CH_UTF16));
12026                                 }
12027                         }
12028                 }
12029         }
12030         return NDR_ERR_SUCCESS;
12031 }
12032
12033 static enum ndr_err_code ndr_pull_drsuapi_QuerySitesByCostRequest1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_QuerySitesByCostRequest1 *r)
12034 {
12035         uint32_t _ptr_site_from;
12036         TALLOC_CTX *_mem_save_site_from_0;
12037         uint32_t _ptr_site_to;
12038         uint32_t cntr_site_to_1;
12039         TALLOC_CTX *_mem_save_site_to_0;
12040         TALLOC_CTX *_mem_save_site_to_1;
12041         TALLOC_CTX *_mem_save_site_to_2;
12042         if (ndr_flags & NDR_SCALARS) {
12043                 NDR_CHECK(ndr_pull_align(ndr, 4));
12044                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_from));
12045                 if (_ptr_site_from) {
12046                         NDR_PULL_ALLOC(ndr, r->site_from);
12047                 } else {
12048                         r->site_from = NULL;
12049                 }
12050                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_req));
12051                 if (r->num_req < 1 || r->num_req > 10000) {
12052                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
12053                 }
12054                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_to));
12055                 if (_ptr_site_to) {
12056                         NDR_PULL_ALLOC(ndr, r->site_to);
12057                 } else {
12058                         r->site_to = NULL;
12059                 }
12060                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
12061         }
12062         if (ndr_flags & NDR_BUFFERS) {
12063                 if (r->site_from) {
12064                         _mem_save_site_from_0 = NDR_PULL_GET_MEM_CTX(ndr);
12065                         NDR_PULL_SET_MEM_CTX(ndr, r->site_from, 0);
12066                         NDR_CHECK(ndr_pull_array_size(ndr, &r->site_from));
12067                         NDR_CHECK(ndr_pull_array_length(ndr, &r->site_from));
12068                         if (ndr_get_array_length(ndr, &r->site_from) > ndr_get_array_size(ndr, &r->site_from)) {
12069                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->site_from), ndr_get_array_length(ndr, &r->site_from));
12070                         }
12071                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->site_from), sizeof(uint16_t)));
12072                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->site_from, ndr_get_array_length(ndr, &r->site_from), sizeof(uint16_t), CH_UTF16));
12073                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_from_0, 0);
12074                 }
12075                 if (r->site_to) {
12076                         _mem_save_site_to_0 = NDR_PULL_GET_MEM_CTX(ndr);
12077                         NDR_PULL_SET_MEM_CTX(ndr, r->site_to, 0);
12078                         NDR_CHECK(ndr_pull_array_size(ndr, &r->site_to));
12079                         NDR_PULL_ALLOC_N(ndr, r->site_to, ndr_get_array_size(ndr, &r->site_to));
12080                         _mem_save_site_to_1 = NDR_PULL_GET_MEM_CTX(ndr);
12081                         NDR_PULL_SET_MEM_CTX(ndr, r->site_to, 0);
12082                         for (cntr_site_to_1 = 0; cntr_site_to_1 < r->num_req; cntr_site_to_1++) {
12083                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_to));
12084                                 if (_ptr_site_to) {
12085                                         NDR_PULL_ALLOC(ndr, r->site_to[cntr_site_to_1]);
12086                                 } else {
12087                                         r->site_to[cntr_site_to_1] = NULL;
12088                                 }
12089                         }
12090                         for (cntr_site_to_1 = 0; cntr_site_to_1 < r->num_req; cntr_site_to_1++) {
12091                                 if (r->site_to[cntr_site_to_1]) {
12092                                         _mem_save_site_to_2 = NDR_PULL_GET_MEM_CTX(ndr);
12093                                         NDR_PULL_SET_MEM_CTX(ndr, r->site_to[cntr_site_to_1], 0);
12094                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->site_to[cntr_site_to_1]));
12095                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->site_to[cntr_site_to_1]));
12096                                         if (ndr_get_array_length(ndr, &r->site_to[cntr_site_to_1]) > ndr_get_array_size(ndr, &r->site_to[cntr_site_to_1])) {
12097                                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->site_to[cntr_site_to_1]), ndr_get_array_length(ndr, &r->site_to[cntr_site_to_1]));
12098                                         }
12099                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->site_to[cntr_site_to_1]), sizeof(uint16_t)));
12100                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->site_to[cntr_site_to_1], ndr_get_array_length(ndr, &r->site_to[cntr_site_to_1]), sizeof(uint16_t), CH_UTF16));
12101                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_to_2, 0);
12102                                 }
12103                         }
12104                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_to_1, 0);
12105                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_to_0, 0);
12106                 }
12107                 if (r->site_to) {
12108                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->site_to, r->num_req));
12109                 }
12110         }
12111         return NDR_ERR_SUCCESS;
12112 }
12113
12114 _PUBLIC_ void ndr_print_drsuapi_QuerySitesByCostRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_QuerySitesByCostRequest1 *r)
12115 {
12116         uint32_t cntr_site_to_1;
12117         ndr_print_struct(ndr, name, "drsuapi_QuerySitesByCostRequest1");
12118         ndr->depth++;
12119         ndr_print_ptr(ndr, "site_from", r->site_from);
12120         ndr->depth++;
12121         if (r->site_from) {
12122                 ndr_print_string(ndr, "site_from", r->site_from);
12123         }
12124         ndr->depth--;
12125         ndr_print_uint32(ndr, "num_req", r->num_req);
12126         ndr_print_ptr(ndr, "site_to", r->site_to);
12127         ndr->depth++;
12128         if (r->site_to) {
12129                 ndr->print(ndr, "%s: ARRAY(%d)", "site_to", (int)r->num_req);
12130                 ndr->depth++;
12131                 for (cntr_site_to_1=0;cntr_site_to_1<r->num_req;cntr_site_to_1++) {
12132                         char *idx_1=NULL;
12133                         if (asprintf(&idx_1, "[%d]", cntr_site_to_1) != -1) {
12134                                 ndr_print_ptr(ndr, "site_to", r->site_to[cntr_site_to_1]);
12135                                 ndr->depth++;
12136                                 if (r->site_to[cntr_site_to_1]) {
12137                                         ndr_print_string(ndr, "site_to", r->site_to[cntr_site_to_1]);
12138                                 }
12139                                 ndr->depth--;
12140                                 free(idx_1);
12141                         }
12142                 }
12143                 ndr->depth--;
12144         }
12145         ndr->depth--;
12146         ndr_print_uint32(ndr, "flags", r->flags);
12147         ndr->depth--;
12148 }
12149
12150 static enum ndr_err_code ndr_push_drsuapi_QuerySitesByCostRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_QuerySitesByCostRequest *r)
12151 {
12152         if (ndr_flags & NDR_SCALARS) {
12153                 int level = ndr_push_get_switch_value(ndr, r);
12154                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
12155                 switch (level) {
12156                         case 1: {
12157                                 NDR_CHECK(ndr_push_drsuapi_QuerySitesByCostRequest1(ndr, NDR_SCALARS, &r->req1));
12158                         break; }
12159
12160                         default:
12161                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
12162                 }
12163         }
12164         if (ndr_flags & NDR_BUFFERS) {
12165                 int level = ndr_push_get_switch_value(ndr, r);
12166                 switch (level) {
12167                         case 1:
12168                                 NDR_CHECK(ndr_push_drsuapi_QuerySitesByCostRequest1(ndr, NDR_BUFFERS, &r->req1));
12169                         break;
12170
12171                         default:
12172                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
12173                 }
12174         }
12175         return NDR_ERR_SUCCESS;
12176 }
12177
12178 static enum ndr_err_code ndr_pull_drsuapi_QuerySitesByCostRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_QuerySitesByCostRequest *r)
12179 {
12180         int level;
12181         int32_t _level;
12182         level = ndr_pull_get_switch_value(ndr, r);
12183         if (ndr_flags & NDR_SCALARS) {
12184                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
12185                 if (_level != level) {
12186                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
12187                 }
12188                 switch (level) {
12189                         case 1: {
12190                                 NDR_CHECK(ndr_pull_drsuapi_QuerySitesByCostRequest1(ndr, NDR_SCALARS, &r->req1));
12191                         break; }
12192
12193                         default:
12194                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
12195                 }
12196         }
12197         if (ndr_flags & NDR_BUFFERS) {
12198                 switch (level) {
12199                         case 1:
12200                                 NDR_CHECK(ndr_pull_drsuapi_QuerySitesByCostRequest1(ndr, NDR_BUFFERS, &r->req1));
12201                         break;
12202
12203                         default:
12204                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
12205                 }
12206         }
12207         return NDR_ERR_SUCCESS;
12208 }
12209
12210 _PUBLIC_ void ndr_print_drsuapi_QuerySitesByCostRequest(struct ndr_print *ndr, const char *name, const union drsuapi_QuerySitesByCostRequest *r)
12211 {
12212         int level;
12213         level = ndr_print_get_switch_value(ndr, r);
12214         ndr_print_union(ndr, name, level, "drsuapi_QuerySitesByCostRequest");
12215         switch (level) {
12216                 case 1:
12217                         ndr_print_drsuapi_QuerySitesByCostRequest1(ndr, "req1", &r->req1);
12218                 break;
12219
12220                 default:
12221                         ndr_print_bad_level(ndr, name, level);
12222         }
12223 }
12224
12225 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsBind(struct ndr_push *ndr, int flags, const struct drsuapi_DsBind *r)
12226 {
12227         if (flags & NDR_IN) {
12228                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.bind_guid));
12229                 if (r->in.bind_guid) {
12230                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.bind_guid));
12231                 }
12232                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.bind_info));
12233                 if (r->in.bind_info) {
12234                         NDR_CHECK(ndr_push_drsuapi_DsBindInfoCtr(ndr, NDR_SCALARS, r->in.bind_info));
12235                 }
12236         }
12237         if (flags & NDR_OUT) {
12238                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.bind_info));
12239                 if (r->out.bind_info) {
12240                         NDR_CHECK(ndr_push_drsuapi_DsBindInfoCtr(ndr, NDR_SCALARS, r->out.bind_info));
12241                 }
12242                 if (r->out.bind_handle == NULL) {
12243                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12244                 }
12245                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.bind_handle));
12246                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12247         }
12248         return NDR_ERR_SUCCESS;
12249 }
12250
12251 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsBind(struct ndr_pull *ndr, int flags, struct drsuapi_DsBind *r)
12252 {
12253         uint32_t _ptr_bind_guid;
12254         uint32_t _ptr_bind_info;
12255         TALLOC_CTX *_mem_save_bind_guid_0;
12256         TALLOC_CTX *_mem_save_bind_info_0;
12257         TALLOC_CTX *_mem_save_bind_handle_0;
12258         if (flags & NDR_IN) {
12259                 ZERO_STRUCT(r->out);
12260
12261                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_bind_guid));
12262                 if (_ptr_bind_guid) {
12263                         NDR_PULL_ALLOC(ndr, r->in.bind_guid);
12264                 } else {
12265                         r->in.bind_guid = NULL;
12266                 }
12267                 if (r->in.bind_guid) {
12268                         _mem_save_bind_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
12269                         NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_guid, 0);
12270                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.bind_guid));
12271                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_guid_0, 0);
12272                 }
12273                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_bind_info));
12274                 if (_ptr_bind_info) {
12275                         NDR_PULL_ALLOC(ndr, r->in.bind_info);
12276                 } else {
12277                         r->in.bind_info = NULL;
12278                 }
12279                 if (r->in.bind_info) {
12280                         _mem_save_bind_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
12281                         NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_info, 0);
12282                         NDR_CHECK(ndr_pull_drsuapi_DsBindInfoCtr(ndr, NDR_SCALARS, r->in.bind_info));
12283                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_info_0, 0);
12284                 }
12285                 NDR_PULL_ALLOC(ndr, r->out.bind_handle);
12286                 ZERO_STRUCTP(r->out.bind_handle);
12287         }
12288         if (flags & NDR_OUT) {
12289                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_bind_info));
12290                 if (_ptr_bind_info) {
12291                         NDR_PULL_ALLOC(ndr, r->out.bind_info);
12292                 } else {
12293                         r->out.bind_info = NULL;
12294                 }
12295                 if (r->out.bind_info) {
12296                         _mem_save_bind_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
12297                         NDR_PULL_SET_MEM_CTX(ndr, r->out.bind_info, 0);
12298                         NDR_CHECK(ndr_pull_drsuapi_DsBindInfoCtr(ndr, NDR_SCALARS, r->out.bind_info));
12299                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_info_0, 0);
12300                 }
12301                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12302                         NDR_PULL_ALLOC(ndr, r->out.bind_handle);
12303                 }
12304                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
12305                 NDR_PULL_SET_MEM_CTX(ndr, r->out.bind_handle, LIBNDR_FLAG_REF_ALLOC);
12306                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.bind_handle));
12307                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
12308                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12309         }
12310         return NDR_ERR_SUCCESS;
12311 }
12312
12313 _PUBLIC_ void ndr_print_drsuapi_DsBind(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsBind *r)
12314 {
12315         ndr_print_struct(ndr, name, "drsuapi_DsBind");
12316         ndr->depth++;
12317         if (flags & NDR_SET_VALUES) {
12318                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12319         }
12320         if (flags & NDR_IN) {
12321                 ndr_print_struct(ndr, "in", "drsuapi_DsBind");
12322                 ndr->depth++;
12323                 ndr_print_ptr(ndr, "bind_guid", r->in.bind_guid);
12324                 ndr->depth++;
12325                 if (r->in.bind_guid) {
12326                         ndr_print_GUID(ndr, "bind_guid", r->in.bind_guid);
12327                 }
12328                 ndr->depth--;
12329                 ndr_print_ptr(ndr, "bind_info", r->in.bind_info);
12330                 ndr->depth++;
12331                 if (r->in.bind_info) {
12332                         ndr_print_drsuapi_DsBindInfoCtr(ndr, "bind_info", r->in.bind_info);
12333                 }
12334                 ndr->depth--;
12335                 ndr->depth--;
12336         }
12337         if (flags & NDR_OUT) {
12338                 ndr_print_struct(ndr, "out", "drsuapi_DsBind");
12339                 ndr->depth++;
12340                 ndr_print_ptr(ndr, "bind_info", r->out.bind_info);
12341                 ndr->depth++;
12342                 if (r->out.bind_info) {
12343                         ndr_print_drsuapi_DsBindInfoCtr(ndr, "bind_info", r->out.bind_info);
12344                 }
12345                 ndr->depth--;
12346                 ndr_print_ptr(ndr, "bind_handle", r->out.bind_handle);
12347                 ndr->depth++;
12348                 ndr_print_policy_handle(ndr, "bind_handle", r->out.bind_handle);
12349                 ndr->depth--;
12350                 ndr_print_WERROR(ndr, "result", r->out.result);
12351                 ndr->depth--;
12352         }
12353         ndr->depth--;
12354 }
12355
12356 static enum ndr_err_code ndr_push_drsuapi_DsUnbind(struct ndr_push *ndr, int flags, const struct drsuapi_DsUnbind *r)
12357 {
12358         if (flags & NDR_IN) {
12359                 if (r->in.bind_handle == NULL) {
12360                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12361                 }
12362                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
12363         }
12364         if (flags & NDR_OUT) {
12365                 if (r->out.bind_handle == NULL) {
12366                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12367                 }
12368                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.bind_handle));
12369                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12370         }
12371         return NDR_ERR_SUCCESS;
12372 }
12373
12374 static enum ndr_err_code ndr_pull_drsuapi_DsUnbind(struct ndr_pull *ndr, int flags, struct drsuapi_DsUnbind *r)
12375 {
12376         TALLOC_CTX *_mem_save_bind_handle_0;
12377         if (flags & NDR_IN) {
12378                 ZERO_STRUCT(r->out);
12379
12380                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12381                         NDR_PULL_ALLOC(ndr, r->in.bind_handle);
12382                 }
12383                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
12384                 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
12385                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
12386                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
12387                 NDR_PULL_ALLOC(ndr, r->out.bind_handle);
12388                 *r->out.bind_handle = *r->in.bind_handle;
12389         }
12390         if (flags & NDR_OUT) {
12391                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12392                         NDR_PULL_ALLOC(ndr, r->out.bind_handle);
12393                 }
12394                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
12395                 NDR_PULL_SET_MEM_CTX(ndr, r->out.bind_handle, LIBNDR_FLAG_REF_ALLOC);
12396                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.bind_handle));
12397                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
12398                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12399         }
12400         return NDR_ERR_SUCCESS;
12401 }
12402
12403 _PUBLIC_ void ndr_print_drsuapi_DsUnbind(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsUnbind *r)
12404 {
12405         ndr_print_struct(ndr, name, "drsuapi_DsUnbind");
12406         ndr->depth++;
12407         if (flags & NDR_SET_VALUES) {
12408                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12409         }
12410         if (flags & NDR_IN) {
12411                 ndr_print_struct(ndr, "in", "drsuapi_DsUnbind");
12412                 ndr->depth++;
12413                 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
12414                 ndr->depth++;
12415                 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
12416                 ndr->depth--;
12417                 ndr->depth--;
12418         }
12419         if (flags & NDR_OUT) {
12420                 ndr_print_struct(ndr, "out", "drsuapi_DsUnbind");
12421                 ndr->depth++;
12422                 ndr_print_ptr(ndr, "bind_handle", r->out.bind_handle);
12423                 ndr->depth++;
12424                 ndr_print_policy_handle(ndr, "bind_handle", r->out.bind_handle);
12425                 ndr->depth--;
12426                 ndr_print_WERROR(ndr, "result", r->out.result);
12427                 ndr->depth--;
12428         }
12429         ndr->depth--;
12430 }
12431
12432 static enum ndr_err_code ndr_push_drsuapi_DsReplicaSync(struct ndr_push *ndr, int flags, const struct drsuapi_DsReplicaSync *r)
12433 {
12434         if (flags & NDR_IN) {
12435                 if (r->in.bind_handle == NULL) {
12436                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12437                 }
12438                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
12439                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.level));
12440                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.req, r->in.level));
12441                 NDR_CHECK(ndr_push_drsuapi_DsReplicaSyncRequest(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
12442         }
12443         if (flags & NDR_OUT) {
12444                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12445         }
12446         return NDR_ERR_SUCCESS;
12447 }
12448
12449 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaSync(struct ndr_pull *ndr, int flags, struct drsuapi_DsReplicaSync *r)
12450 {
12451         TALLOC_CTX *_mem_save_bind_handle_0;
12452         if (flags & NDR_IN) {
12453                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12454                         NDR_PULL_ALLOC(ndr, r->in.bind_handle);
12455                 }
12456                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
12457                 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
12458                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
12459                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
12460                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.level));
12461                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.req, r->in.level));
12462                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaSyncRequest(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
12463         }
12464         if (flags & NDR_OUT) {
12465                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12466         }
12467         return NDR_ERR_SUCCESS;
12468 }
12469
12470 _PUBLIC_ void ndr_print_drsuapi_DsReplicaSync(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsReplicaSync *r)
12471 {
12472         ndr_print_struct(ndr, name, "drsuapi_DsReplicaSync");
12473         ndr->depth++;
12474         if (flags & NDR_SET_VALUES) {
12475                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12476         }
12477         if (flags & NDR_IN) {
12478                 ndr_print_struct(ndr, "in", "drsuapi_DsReplicaSync");
12479                 ndr->depth++;
12480                 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
12481                 ndr->depth++;
12482                 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
12483                 ndr->depth--;
12484                 ndr_print_int32(ndr, "level", r->in.level);
12485                 ndr_print_set_switch_value(ndr, &r->in.req, r->in.level);
12486                 ndr_print_drsuapi_DsReplicaSyncRequest(ndr, "req", &r->in.req);
12487                 ndr->depth--;
12488         }
12489         if (flags & NDR_OUT) {
12490                 ndr_print_struct(ndr, "out", "drsuapi_DsReplicaSync");
12491                 ndr->depth++;
12492                 ndr_print_WERROR(ndr, "result", r->out.result);
12493                 ndr->depth--;
12494         }
12495         ndr->depth--;
12496 }
12497
12498 static enum ndr_err_code ndr_push_drsuapi_DsGetNCChanges(struct ndr_push *ndr, int flags, const struct drsuapi_DsGetNCChanges *r)
12499 {
12500         if (flags & NDR_IN) {
12501                 if (r->in.bind_handle == NULL) {
12502                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12503                 }
12504                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
12505                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.level));
12506                 if (r->in.req == NULL) {
12507                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12508                 }
12509                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.req, r->in.level));
12510                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
12511         }
12512         if (flags & NDR_OUT) {
12513                 if (r->out.level_out == NULL) {
12514                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12515                 }
12516                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, *r->out.level_out));
12517                 if (r->out.ctr == NULL) {
12518                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12519                 }
12520                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
12521                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
12522                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12523         }
12524         return NDR_ERR_SUCCESS;
12525 }
12526
12527 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChanges(struct ndr_pull *ndr, int flags, struct drsuapi_DsGetNCChanges *r)
12528 {
12529         TALLOC_CTX *_mem_save_bind_handle_0;
12530         TALLOC_CTX *_mem_save_req_0;
12531         TALLOC_CTX *_mem_save_level_out_0;
12532         TALLOC_CTX *_mem_save_ctr_0;
12533         if (flags & NDR_IN) {
12534                 ZERO_STRUCT(r->out);
12535
12536                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12537                         NDR_PULL_ALLOC(ndr, r->in.bind_handle);
12538                 }
12539                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
12540                 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
12541                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
12542                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
12543                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.level));
12544                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12545                         NDR_PULL_ALLOC(ndr, r->in.req);
12546                 }
12547                 _mem_save_req_0 = NDR_PULL_GET_MEM_CTX(ndr);
12548                 NDR_PULL_SET_MEM_CTX(ndr, r->in.req, LIBNDR_FLAG_REF_ALLOC);
12549                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.req, r->in.level));
12550                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
12551                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_0, LIBNDR_FLAG_REF_ALLOC);
12552                 NDR_PULL_ALLOC(ndr, r->out.level_out);
12553                 ZERO_STRUCTP(r->out.level_out);
12554                 NDR_PULL_ALLOC(ndr, r->out.ctr);
12555                 ZERO_STRUCTP(r->out.ctr);
12556         }
12557         if (flags & NDR_OUT) {
12558                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12559                         NDR_PULL_ALLOC(ndr, r->out.level_out);
12560                 }
12561                 _mem_save_level_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
12562                 NDR_PULL_SET_MEM_CTX(ndr, r->out.level_out, LIBNDR_FLAG_REF_ALLOC);
12563                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, r->out.level_out));
12564                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_out_0, LIBNDR_FLAG_REF_ALLOC);
12565                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12566                         NDR_PULL_ALLOC(ndr, r->out.ctr);
12567                 }
12568                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
12569                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
12570                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
12571                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
12572                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
12573                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12574         }
12575         return NDR_ERR_SUCCESS;
12576 }
12577
12578 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChanges(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsGetNCChanges *r)
12579 {
12580         ndr_print_struct(ndr, name, "drsuapi_DsGetNCChanges");
12581         ndr->depth++;
12582         if (flags & NDR_SET_VALUES) {
12583                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12584         }
12585         if (flags & NDR_IN) {
12586                 ndr_print_struct(ndr, "in", "drsuapi_DsGetNCChanges");
12587                 ndr->depth++;
12588                 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
12589                 ndr->depth++;
12590                 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
12591                 ndr->depth--;
12592                 ndr_print_int32(ndr, "level", r->in.level);
12593                 ndr_print_ptr(ndr, "req", r->in.req);
12594                 ndr->depth++;
12595                 ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
12596                 ndr_print_drsuapi_DsGetNCChangesRequest(ndr, "req", r->in.req);
12597                 ndr->depth--;
12598                 ndr->depth--;
12599         }
12600         if (flags & NDR_OUT) {
12601                 ndr_print_struct(ndr, "out", "drsuapi_DsGetNCChanges");
12602                 ndr->depth++;
12603                 ndr_print_ptr(ndr, "level_out", r->out.level_out);
12604                 ndr->depth++;
12605                 ndr_print_int32(ndr, "level_out", *r->out.level_out);
12606                 ndr->depth--;
12607                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
12608                 ndr->depth++;
12609                 ndr_print_set_switch_value(ndr, r->out.ctr, *r->out.level_out);
12610                 ndr_print_drsuapi_DsGetNCChangesCtr(ndr, "ctr", r->out.ctr);
12611                 ndr->depth--;
12612                 ndr_print_WERROR(ndr, "result", r->out.result);
12613                 ndr->depth--;
12614         }
12615         ndr->depth--;
12616 }
12617
12618 static enum ndr_err_code ndr_push_drsuapi_DsReplicaUpdateRefs(struct ndr_push *ndr, int flags, const struct drsuapi_DsReplicaUpdateRefs *r)
12619 {
12620         if (flags & NDR_IN) {
12621                 if (r->in.bind_handle == NULL) {
12622                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12623                 }
12624                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
12625                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.level));
12626                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.req, r->in.level));
12627                 NDR_CHECK(ndr_push_drsuapi_DsReplicaUpdateRefsRequest(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
12628         }
12629         if (flags & NDR_OUT) {
12630                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12631         }
12632         return NDR_ERR_SUCCESS;
12633 }
12634
12635 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaUpdateRefs(struct ndr_pull *ndr, int flags, struct drsuapi_DsReplicaUpdateRefs *r)
12636 {
12637         TALLOC_CTX *_mem_save_bind_handle_0;
12638         if (flags & NDR_IN) {
12639                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12640                         NDR_PULL_ALLOC(ndr, r->in.bind_handle);
12641                 }
12642                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
12643                 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
12644                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
12645                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
12646                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.level));
12647                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.req, r->in.level));
12648                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaUpdateRefsRequest(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
12649         }
12650         if (flags & NDR_OUT) {
12651                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12652         }
12653         return NDR_ERR_SUCCESS;
12654 }
12655
12656 _PUBLIC_ void ndr_print_drsuapi_DsReplicaUpdateRefs(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsReplicaUpdateRefs *r)
12657 {
12658         ndr_print_struct(ndr, name, "drsuapi_DsReplicaUpdateRefs");
12659         ndr->depth++;
12660         if (flags & NDR_SET_VALUES) {
12661                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12662         }
12663         if (flags & NDR_IN) {
12664                 ndr_print_struct(ndr, "in", "drsuapi_DsReplicaUpdateRefs");
12665                 ndr->depth++;
12666                 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
12667                 ndr->depth++;
12668                 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
12669                 ndr->depth--;
12670                 ndr_print_int32(ndr, "level", r->in.level);
12671                 ndr_print_set_switch_value(ndr, &r->in.req, r->in.level);
12672                 ndr_print_drsuapi_DsReplicaUpdateRefsRequest(ndr, "req", &r->in.req);
12673                 ndr->depth--;
12674         }
12675         if (flags & NDR_OUT) {
12676                 ndr_print_struct(ndr, "out", "drsuapi_DsReplicaUpdateRefs");
12677                 ndr->depth++;
12678                 ndr_print_WERROR(ndr, "result", r->out.result);
12679                 ndr->depth--;
12680         }
12681         ndr->depth--;
12682 }
12683
12684 static enum ndr_err_code ndr_push_DRSUAPI_REPLICA_ADD(struct ndr_push *ndr, int flags, const struct DRSUAPI_REPLICA_ADD *r)
12685 {
12686         if (flags & NDR_IN) {
12687         }
12688         if (flags & NDR_OUT) {
12689                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12690         }
12691         return NDR_ERR_SUCCESS;
12692 }
12693
12694 static enum ndr_err_code ndr_pull_DRSUAPI_REPLICA_ADD(struct ndr_pull *ndr, int flags, struct DRSUAPI_REPLICA_ADD *r)
12695 {
12696         if (flags & NDR_IN) {
12697         }
12698         if (flags & NDR_OUT) {
12699                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12700         }
12701         return NDR_ERR_SUCCESS;
12702 }
12703
12704 _PUBLIC_ void ndr_print_DRSUAPI_REPLICA_ADD(struct ndr_print *ndr, const char *name, int flags, const struct DRSUAPI_REPLICA_ADD *r)
12705 {
12706         ndr_print_struct(ndr, name, "DRSUAPI_REPLICA_ADD");
12707         ndr->depth++;
12708         if (flags & NDR_SET_VALUES) {
12709                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12710         }
12711         if (flags & NDR_IN) {
12712                 ndr_print_struct(ndr, "in", "DRSUAPI_REPLICA_ADD");
12713                 ndr->depth++;
12714                 ndr->depth--;
12715         }
12716         if (flags & NDR_OUT) {
12717                 ndr_print_struct(ndr, "out", "DRSUAPI_REPLICA_ADD");
12718                 ndr->depth++;
12719                 ndr_print_WERROR(ndr, "result", r->out.result);
12720                 ndr->depth--;
12721         }
12722         ndr->depth--;
12723 }
12724
12725 static enum ndr_err_code ndr_push_DRSUAPI_REPLICA_DEL(struct ndr_push *ndr, int flags, const struct DRSUAPI_REPLICA_DEL *r)
12726 {
12727         if (flags & NDR_IN) {
12728         }
12729         if (flags & NDR_OUT) {
12730                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12731         }
12732         return NDR_ERR_SUCCESS;
12733 }
12734
12735 static enum ndr_err_code ndr_pull_DRSUAPI_REPLICA_DEL(struct ndr_pull *ndr, int flags, struct DRSUAPI_REPLICA_DEL *r)
12736 {
12737         if (flags & NDR_IN) {
12738         }
12739         if (flags & NDR_OUT) {
12740                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12741         }
12742         return NDR_ERR_SUCCESS;
12743 }
12744
12745 _PUBLIC_ void ndr_print_DRSUAPI_REPLICA_DEL(struct ndr_print *ndr, const char *name, int flags, const struct DRSUAPI_REPLICA_DEL *r)
12746 {
12747         ndr_print_struct(ndr, name, "DRSUAPI_REPLICA_DEL");
12748         ndr->depth++;
12749         if (flags & NDR_SET_VALUES) {
12750                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12751         }
12752         if (flags & NDR_IN) {
12753                 ndr_print_struct(ndr, "in", "DRSUAPI_REPLICA_DEL");
12754                 ndr->depth++;
12755                 ndr->depth--;
12756         }
12757         if (flags & NDR_OUT) {
12758                 ndr_print_struct(ndr, "out", "DRSUAPI_REPLICA_DEL");
12759                 ndr->depth++;
12760                 ndr_print_WERROR(ndr, "result", r->out.result);
12761                 ndr->depth--;
12762         }
12763         ndr->depth--;
12764 }
12765
12766 static enum ndr_err_code ndr_push_DRSUAPI_REPLICA_MODIFY(struct ndr_push *ndr, int flags, const struct DRSUAPI_REPLICA_MODIFY *r)
12767 {
12768         if (flags & NDR_IN) {
12769         }
12770         if (flags & NDR_OUT) {
12771                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12772         }
12773         return NDR_ERR_SUCCESS;
12774 }
12775
12776 static enum ndr_err_code ndr_pull_DRSUAPI_REPLICA_MODIFY(struct ndr_pull *ndr, int flags, struct DRSUAPI_REPLICA_MODIFY *r)
12777 {
12778         if (flags & NDR_IN) {
12779         }
12780         if (flags & NDR_OUT) {
12781                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12782         }
12783         return NDR_ERR_SUCCESS;
12784 }
12785
12786 _PUBLIC_ void ndr_print_DRSUAPI_REPLICA_MODIFY(struct ndr_print *ndr, const char *name, int flags, const struct DRSUAPI_REPLICA_MODIFY *r)
12787 {
12788         ndr_print_struct(ndr, name, "DRSUAPI_REPLICA_MODIFY");
12789         ndr->depth++;
12790         if (flags & NDR_SET_VALUES) {
12791                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12792         }
12793         if (flags & NDR_IN) {
12794                 ndr_print_struct(ndr, "in", "DRSUAPI_REPLICA_MODIFY");
12795                 ndr->depth++;
12796                 ndr->depth--;
12797         }
12798         if (flags & NDR_OUT) {
12799                 ndr_print_struct(ndr, "out", "DRSUAPI_REPLICA_MODIFY");
12800                 ndr->depth++;
12801                 ndr_print_WERROR(ndr, "result", r->out.result);
12802                 ndr->depth--;
12803         }
12804         ndr->depth--;
12805 }
12806
12807 static enum ndr_err_code ndr_push_DRSUAPI_VERIFY_NAMES(struct ndr_push *ndr, int flags, const struct DRSUAPI_VERIFY_NAMES *r)
12808 {
12809         if (flags & NDR_IN) {
12810         }
12811         if (flags & NDR_OUT) {
12812                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12813         }
12814         return NDR_ERR_SUCCESS;
12815 }
12816
12817 static enum ndr_err_code ndr_pull_DRSUAPI_VERIFY_NAMES(struct ndr_pull *ndr, int flags, struct DRSUAPI_VERIFY_NAMES *r)
12818 {
12819         if (flags & NDR_IN) {
12820         }
12821         if (flags & NDR_OUT) {
12822                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12823         }
12824         return NDR_ERR_SUCCESS;
12825 }
12826
12827 _PUBLIC_ void ndr_print_DRSUAPI_VERIFY_NAMES(struct ndr_print *ndr, const char *name, int flags, const struct DRSUAPI_VERIFY_NAMES *r)
12828 {
12829         ndr_print_struct(ndr, name, "DRSUAPI_VERIFY_NAMES");
12830         ndr->depth++;
12831         if (flags & NDR_SET_VALUES) {
12832                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12833         }
12834         if (flags & NDR_IN) {
12835                 ndr_print_struct(ndr, "in", "DRSUAPI_VERIFY_NAMES");
12836                 ndr->depth++;
12837                 ndr->depth--;
12838         }
12839         if (flags & NDR_OUT) {
12840                 ndr_print_struct(ndr, "out", "DRSUAPI_VERIFY_NAMES");
12841                 ndr->depth++;
12842                 ndr_print_WERROR(ndr, "result", r->out.result);
12843                 ndr->depth--;
12844         }
12845         ndr->depth--;
12846 }
12847
12848 static enum ndr_err_code ndr_push_drsuapi_DsGetMemberships(struct ndr_push *ndr, int flags, const struct drsuapi_DsGetMemberships *r)
12849 {
12850         if (flags & NDR_IN) {
12851                 if (r->in.bind_handle == NULL) {
12852                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12853                 }
12854                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
12855                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.level));
12856                 if (r->in.req == NULL) {
12857                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12858                 }
12859                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.req, r->in.level));
12860                 NDR_CHECK(ndr_push_drsuapi_DsGetMembershipsRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
12861         }
12862         if (flags & NDR_OUT) {
12863                 if (r->out.level_out == NULL) {
12864                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12865                 }
12866                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, *r->out.level_out));
12867                 if (r->out.ctr == NULL) {
12868                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12869                 }
12870                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
12871                 NDR_CHECK(ndr_push_drsuapi_DsGetMembershipsCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
12872                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12873         }
12874         return NDR_ERR_SUCCESS;
12875 }
12876
12877 static enum ndr_err_code ndr_pull_drsuapi_DsGetMemberships(struct ndr_pull *ndr, int flags, struct drsuapi_DsGetMemberships *r)
12878 {
12879         TALLOC_CTX *_mem_save_bind_handle_0;
12880         TALLOC_CTX *_mem_save_req_0;
12881         TALLOC_CTX *_mem_save_level_out_0;
12882         TALLOC_CTX *_mem_save_ctr_0;
12883         if (flags & NDR_IN) {
12884                 ZERO_STRUCT(r->out);
12885
12886                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12887                         NDR_PULL_ALLOC(ndr, r->in.bind_handle);
12888                 }
12889                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
12890                 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
12891                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
12892                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
12893                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.level));
12894                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12895                         NDR_PULL_ALLOC(ndr, r->in.req);
12896                 }
12897                 _mem_save_req_0 = NDR_PULL_GET_MEM_CTX(ndr);
12898                 NDR_PULL_SET_MEM_CTX(ndr, r->in.req, LIBNDR_FLAG_REF_ALLOC);
12899                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.req, r->in.level));
12900                 NDR_CHECK(ndr_pull_drsuapi_DsGetMembershipsRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
12901                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_0, LIBNDR_FLAG_REF_ALLOC);
12902                 NDR_PULL_ALLOC(ndr, r->out.level_out);
12903                 ZERO_STRUCTP(r->out.level_out);
12904                 NDR_PULL_ALLOC(ndr, r->out.ctr);
12905                 ZERO_STRUCTP(r->out.ctr);
12906         }
12907         if (flags & NDR_OUT) {
12908                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12909                         NDR_PULL_ALLOC(ndr, r->out.level_out);
12910                 }
12911                 _mem_save_level_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
12912                 NDR_PULL_SET_MEM_CTX(ndr, r->out.level_out, LIBNDR_FLAG_REF_ALLOC);
12913                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, r->out.level_out));
12914                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_out_0, LIBNDR_FLAG_REF_ALLOC);
12915                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12916                         NDR_PULL_ALLOC(ndr, r->out.ctr);
12917                 }
12918                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
12919                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
12920                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
12921                 NDR_CHECK(ndr_pull_drsuapi_DsGetMembershipsCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
12922                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
12923                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12924         }
12925         return NDR_ERR_SUCCESS;
12926 }
12927
12928 _PUBLIC_ void ndr_print_drsuapi_DsGetMemberships(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsGetMemberships *r)
12929 {
12930         ndr_print_struct(ndr, name, "drsuapi_DsGetMemberships");
12931         ndr->depth++;
12932         if (flags & NDR_SET_VALUES) {
12933                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12934         }
12935         if (flags & NDR_IN) {
12936                 ndr_print_struct(ndr, "in", "drsuapi_DsGetMemberships");
12937                 ndr->depth++;
12938                 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
12939                 ndr->depth++;
12940                 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
12941                 ndr->depth--;
12942                 ndr_print_int32(ndr, "level", r->in.level);
12943                 ndr_print_ptr(ndr, "req", r->in.req);
12944                 ndr->depth++;
12945                 ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
12946                 ndr_print_drsuapi_DsGetMembershipsRequest(ndr, "req", r->in.req);
12947                 ndr->depth--;
12948                 ndr->depth--;
12949         }
12950         if (flags & NDR_OUT) {
12951                 ndr_print_struct(ndr, "out", "drsuapi_DsGetMemberships");
12952                 ndr->depth++;
12953                 ndr_print_ptr(ndr, "level_out", r->out.level_out);
12954                 ndr->depth++;
12955                 ndr_print_int32(ndr, "level_out", *r->out.level_out);
12956                 ndr->depth--;
12957                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
12958                 ndr->depth++;
12959                 ndr_print_set_switch_value(ndr, r->out.ctr, *r->out.level_out);
12960                 ndr_print_drsuapi_DsGetMembershipsCtr(ndr, "ctr", r->out.ctr);
12961                 ndr->depth--;
12962                 ndr_print_WERROR(ndr, "result", r->out.result);
12963                 ndr->depth--;
12964         }
12965         ndr->depth--;
12966 }
12967
12968 static enum ndr_err_code ndr_push_DRSUAPI_INTER_DOMAIN_MOVE(struct ndr_push *ndr, int flags, const struct DRSUAPI_INTER_DOMAIN_MOVE *r)
12969 {
12970         if (flags & NDR_IN) {
12971         }
12972         if (flags & NDR_OUT) {
12973                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12974         }
12975         return NDR_ERR_SUCCESS;
12976 }
12977
12978 static enum ndr_err_code ndr_pull_DRSUAPI_INTER_DOMAIN_MOVE(struct ndr_pull *ndr, int flags, struct DRSUAPI_INTER_DOMAIN_MOVE *r)
12979 {
12980         if (flags & NDR_IN) {
12981         }
12982         if (flags & NDR_OUT) {
12983                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12984         }
12985         return NDR_ERR_SUCCESS;
12986 }
12987
12988 _PUBLIC_ void ndr_print_DRSUAPI_INTER_DOMAIN_MOVE(struct ndr_print *ndr, const char *name, int flags, const struct DRSUAPI_INTER_DOMAIN_MOVE *r)
12989 {
12990         ndr_print_struct(ndr, name, "DRSUAPI_INTER_DOMAIN_MOVE");
12991         ndr->depth++;
12992         if (flags & NDR_SET_VALUES) {
12993                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12994         }
12995         if (flags & NDR_IN) {
12996                 ndr_print_struct(ndr, "in", "DRSUAPI_INTER_DOMAIN_MOVE");
12997                 ndr->depth++;
12998                 ndr->depth--;
12999         }
13000         if (flags & NDR_OUT) {
13001                 ndr_print_struct(ndr, "out", "DRSUAPI_INTER_DOMAIN_MOVE");
13002                 ndr->depth++;
13003                 ndr_print_WERROR(ndr, "result", r->out.result);
13004                 ndr->depth--;
13005         }
13006         ndr->depth--;
13007 }
13008
13009 static enum ndr_err_code ndr_push_drsuapi_DsGetNT4ChangeLog(struct ndr_push *ndr, int flags, const struct drsuapi_DsGetNT4ChangeLog *r)
13010 {
13011         if (flags & NDR_IN) {
13012                 if (r->in.bind_handle == NULL) {
13013                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13014                 }
13015                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
13016                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
13017                 if (r->in.req == NULL) {
13018                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13019                 }
13020                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.req, r->in.level));
13021                 NDR_CHECK(ndr_push_drsuapi_DsGetNT4ChangeLogRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
13022         }
13023         if (flags & NDR_OUT) {
13024                 if (r->out.level_out == NULL) {
13025                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13026                 }
13027                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.level_out));
13028                 if (r->out.info == NULL) {
13029                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13030                 }
13031                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, *r->out.level_out));
13032                 NDR_CHECK(ndr_push_drsuapi_DsGetNT4ChangeLogInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
13033                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13034         }
13035         return NDR_ERR_SUCCESS;
13036 }
13037
13038 static enum ndr_err_code ndr_pull_drsuapi_DsGetNT4ChangeLog(struct ndr_pull *ndr, int flags, struct drsuapi_DsGetNT4ChangeLog *r)
13039 {
13040         TALLOC_CTX *_mem_save_bind_handle_0;
13041         TALLOC_CTX *_mem_save_req_0;
13042         TALLOC_CTX *_mem_save_level_out_0;
13043         TALLOC_CTX *_mem_save_info_0;
13044         if (flags & NDR_IN) {
13045                 ZERO_STRUCT(r->out);
13046
13047                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13048                         NDR_PULL_ALLOC(ndr, r->in.bind_handle);
13049                 }
13050                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
13051                 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
13052                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
13053                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
13054                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
13055                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13056                         NDR_PULL_ALLOC(ndr, r->in.req);
13057                 }
13058                 _mem_save_req_0 = NDR_PULL_GET_MEM_CTX(ndr);
13059                 NDR_PULL_SET_MEM_CTX(ndr, r->in.req, LIBNDR_FLAG_REF_ALLOC);
13060                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.req, r->in.level));
13061                 NDR_CHECK(ndr_pull_drsuapi_DsGetNT4ChangeLogRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
13062                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_0, LIBNDR_FLAG_REF_ALLOC);
13063                 NDR_PULL_ALLOC(ndr, r->out.level_out);
13064                 ZERO_STRUCTP(r->out.level_out);
13065                 NDR_PULL_ALLOC(ndr, r->out.info);
13066                 ZERO_STRUCTP(r->out.info);
13067         }
13068         if (flags & NDR_OUT) {
13069                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13070                         NDR_PULL_ALLOC(ndr, r->out.level_out);
13071                 }
13072                 _mem_save_level_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
13073                 NDR_PULL_SET_MEM_CTX(ndr, r->out.level_out, LIBNDR_FLAG_REF_ALLOC);
13074                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.level_out));
13075                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_out_0, LIBNDR_FLAG_REF_ALLOC);
13076                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13077                         NDR_PULL_ALLOC(ndr, r->out.info);
13078                 }
13079                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
13080                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
13081                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, *r->out.level_out));
13082                 NDR_CHECK(ndr_pull_drsuapi_DsGetNT4ChangeLogInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
13083                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
13084                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13085         }
13086         return NDR_ERR_SUCCESS;
13087 }
13088
13089 _PUBLIC_ void ndr_print_drsuapi_DsGetNT4ChangeLog(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsGetNT4ChangeLog *r)
13090 {
13091         ndr_print_struct(ndr, name, "drsuapi_DsGetNT4ChangeLog");
13092         ndr->depth++;
13093         if (flags & NDR_SET_VALUES) {
13094                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13095         }
13096         if (flags & NDR_IN) {
13097                 ndr_print_struct(ndr, "in", "drsuapi_DsGetNT4ChangeLog");
13098                 ndr->depth++;
13099                 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
13100                 ndr->depth++;
13101                 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
13102                 ndr->depth--;
13103                 ndr_print_uint32(ndr, "level", r->in.level);
13104                 ndr_print_ptr(ndr, "req", r->in.req);
13105                 ndr->depth++;
13106                 ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
13107                 ndr_print_drsuapi_DsGetNT4ChangeLogRequest(ndr, "req", r->in.req);
13108                 ndr->depth--;
13109                 ndr->depth--;
13110         }
13111         if (flags & NDR_OUT) {
13112                 ndr_print_struct(ndr, "out", "drsuapi_DsGetNT4ChangeLog");
13113                 ndr->depth++;
13114                 ndr_print_ptr(ndr, "level_out", r->out.level_out);
13115                 ndr->depth++;
13116                 ndr_print_uint32(ndr, "level_out", *r->out.level_out);
13117                 ndr->depth--;
13118                 ndr_print_ptr(ndr, "info", r->out.info);
13119                 ndr->depth++;
13120                 ndr_print_set_switch_value(ndr, r->out.info, *r->out.level_out);
13121                 ndr_print_drsuapi_DsGetNT4ChangeLogInfo(ndr, "info", r->out.info);
13122                 ndr->depth--;
13123                 ndr_print_WERROR(ndr, "result", r->out.result);
13124                 ndr->depth--;
13125         }
13126         ndr->depth--;
13127 }
13128
13129 static enum ndr_err_code ndr_push_drsuapi_DsCrackNames(struct ndr_push *ndr, int flags, const struct drsuapi_DsCrackNames *r)
13130 {
13131         if (flags & NDR_IN) {
13132                 if (r->in.bind_handle == NULL) {
13133                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13134                 }
13135                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
13136                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.level));
13137                 if (r->in.req == NULL) {
13138                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13139                 }
13140                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.req, r->in.level));
13141                 NDR_CHECK(ndr_push_drsuapi_DsNameRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
13142         }
13143         if (flags & NDR_OUT) {
13144                 if (r->out.level_out == NULL) {
13145                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13146                 }
13147                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, *r->out.level_out));
13148                 if (r->out.ctr == NULL) {
13149                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13150                 }
13151                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
13152                 NDR_CHECK(ndr_push_drsuapi_DsNameCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
13153                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13154         }
13155         return NDR_ERR_SUCCESS;
13156 }
13157
13158 static enum ndr_err_code ndr_pull_drsuapi_DsCrackNames(struct ndr_pull *ndr, int flags, struct drsuapi_DsCrackNames *r)
13159 {
13160         TALLOC_CTX *_mem_save_bind_handle_0;
13161         TALLOC_CTX *_mem_save_req_0;
13162         TALLOC_CTX *_mem_save_level_out_0;
13163         TALLOC_CTX *_mem_save_ctr_0;
13164         if (flags & NDR_IN) {
13165                 ZERO_STRUCT(r->out);
13166
13167                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13168                         NDR_PULL_ALLOC(ndr, r->in.bind_handle);
13169                 }
13170                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
13171                 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
13172                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
13173                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
13174                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.level));
13175                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13176                         NDR_PULL_ALLOC(ndr, r->in.req);
13177                 }
13178                 _mem_save_req_0 = NDR_PULL_GET_MEM_CTX(ndr);
13179                 NDR_PULL_SET_MEM_CTX(ndr, r->in.req, LIBNDR_FLAG_REF_ALLOC);
13180                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.req, r->in.level));
13181                 NDR_CHECK(ndr_pull_drsuapi_DsNameRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
13182                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_0, LIBNDR_FLAG_REF_ALLOC);
13183                 NDR_PULL_ALLOC(ndr, r->out.level_out);
13184                 ZERO_STRUCTP(r->out.level_out);
13185                 NDR_PULL_ALLOC(ndr, r->out.ctr);
13186                 ZERO_STRUCTP(r->out.ctr);
13187         }
13188         if (flags & NDR_OUT) {
13189                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13190                         NDR_PULL_ALLOC(ndr, r->out.level_out);
13191                 }
13192                 _mem_save_level_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
13193                 NDR_PULL_SET_MEM_CTX(ndr, r->out.level_out, LIBNDR_FLAG_REF_ALLOC);
13194                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, r->out.level_out));
13195                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_out_0, LIBNDR_FLAG_REF_ALLOC);
13196                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13197                         NDR_PULL_ALLOC(ndr, r->out.ctr);
13198                 }
13199                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
13200                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
13201                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
13202                 NDR_CHECK(ndr_pull_drsuapi_DsNameCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
13203                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
13204                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13205         }
13206         return NDR_ERR_SUCCESS;
13207 }
13208
13209 _PUBLIC_ void ndr_print_drsuapi_DsCrackNames(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsCrackNames *r)
13210 {
13211         ndr_print_struct(ndr, name, "drsuapi_DsCrackNames");
13212         ndr->depth++;
13213         if (flags & NDR_SET_VALUES) {
13214                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13215         }
13216         if (flags & NDR_IN) {
13217                 ndr_print_struct(ndr, "in", "drsuapi_DsCrackNames");
13218                 ndr->depth++;
13219                 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
13220                 ndr->depth++;
13221                 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
13222                 ndr->depth--;
13223                 ndr_print_int32(ndr, "level", r->in.level);
13224                 ndr_print_ptr(ndr, "req", r->in.req);
13225                 ndr->depth++;
13226                 ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
13227                 ndr_print_drsuapi_DsNameRequest(ndr, "req", r->in.req);
13228                 ndr->depth--;
13229                 ndr->depth--;
13230         }
13231         if (flags & NDR_OUT) {
13232                 ndr_print_struct(ndr, "out", "drsuapi_DsCrackNames");
13233                 ndr->depth++;
13234                 ndr_print_ptr(ndr, "level_out", r->out.level_out);
13235                 ndr->depth++;
13236                 ndr_print_int32(ndr, "level_out", *r->out.level_out);
13237                 ndr->depth--;
13238                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
13239                 ndr->depth++;
13240                 ndr_print_set_switch_value(ndr, r->out.ctr, *r->out.level_out);
13241                 ndr_print_drsuapi_DsNameCtr(ndr, "ctr", r->out.ctr);
13242                 ndr->depth--;
13243                 ndr_print_WERROR(ndr, "result", r->out.result);
13244                 ndr->depth--;
13245         }
13246         ndr->depth--;
13247 }
13248
13249 static enum ndr_err_code ndr_push_drsuapi_DsWriteAccountSpn(struct ndr_push *ndr, int flags, const struct drsuapi_DsWriteAccountSpn *r)
13250 {
13251         if (flags & NDR_IN) {
13252                 if (r->in.bind_handle == NULL) {
13253                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13254                 }
13255                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
13256                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.level));
13257                 if (r->in.req == NULL) {
13258                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13259                 }
13260                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.req, r->in.level));
13261                 NDR_CHECK(ndr_push_drsuapi_DsWriteAccountSpnRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
13262         }
13263         if (flags & NDR_OUT) {
13264                 if (r->out.level_out == NULL) {
13265                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13266                 }
13267                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, *r->out.level_out));
13268                 if (r->out.res == NULL) {
13269                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13270                 }
13271                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.res, *r->out.level_out));
13272                 NDR_CHECK(ndr_push_drsuapi_DsWriteAccountSpnResult(ndr, NDR_SCALARS, r->out.res));
13273                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13274         }
13275         return NDR_ERR_SUCCESS;
13276 }
13277
13278 static enum ndr_err_code ndr_pull_drsuapi_DsWriteAccountSpn(struct ndr_pull *ndr, int flags, struct drsuapi_DsWriteAccountSpn *r)
13279 {
13280         TALLOC_CTX *_mem_save_bind_handle_0;
13281         TALLOC_CTX *_mem_save_req_0;
13282         TALLOC_CTX *_mem_save_level_out_0;
13283         TALLOC_CTX *_mem_save_res_0;
13284         if (flags & NDR_IN) {
13285                 ZERO_STRUCT(r->out);
13286
13287                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13288                         NDR_PULL_ALLOC(ndr, r->in.bind_handle);
13289                 }
13290                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
13291                 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
13292                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
13293                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
13294                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.level));
13295                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13296                         NDR_PULL_ALLOC(ndr, r->in.req);
13297                 }
13298                 _mem_save_req_0 = NDR_PULL_GET_MEM_CTX(ndr);
13299                 NDR_PULL_SET_MEM_CTX(ndr, r->in.req, LIBNDR_FLAG_REF_ALLOC);
13300                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.req, r->in.level));
13301                 NDR_CHECK(ndr_pull_drsuapi_DsWriteAccountSpnRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
13302                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_0, LIBNDR_FLAG_REF_ALLOC);
13303                 NDR_PULL_ALLOC(ndr, r->out.level_out);
13304                 ZERO_STRUCTP(r->out.level_out);
13305                 NDR_PULL_ALLOC(ndr, r->out.res);
13306                 ZERO_STRUCTP(r->out.res);
13307         }
13308         if (flags & NDR_OUT) {
13309                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13310                         NDR_PULL_ALLOC(ndr, r->out.level_out);
13311                 }
13312                 _mem_save_level_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
13313                 NDR_PULL_SET_MEM_CTX(ndr, r->out.level_out, LIBNDR_FLAG_REF_ALLOC);
13314                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, r->out.level_out));
13315                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_out_0, LIBNDR_FLAG_REF_ALLOC);
13316                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13317                         NDR_PULL_ALLOC(ndr, r->out.res);
13318                 }
13319                 _mem_save_res_0 = NDR_PULL_GET_MEM_CTX(ndr);
13320                 NDR_PULL_SET_MEM_CTX(ndr, r->out.res, LIBNDR_FLAG_REF_ALLOC);
13321                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.res, *r->out.level_out));
13322                 NDR_CHECK(ndr_pull_drsuapi_DsWriteAccountSpnResult(ndr, NDR_SCALARS, r->out.res));
13323                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_res_0, LIBNDR_FLAG_REF_ALLOC);
13324                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13325         }
13326         return NDR_ERR_SUCCESS;
13327 }
13328
13329 _PUBLIC_ void ndr_print_drsuapi_DsWriteAccountSpn(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsWriteAccountSpn *r)
13330 {
13331         ndr_print_struct(ndr, name, "drsuapi_DsWriteAccountSpn");
13332         ndr->depth++;
13333         if (flags & NDR_SET_VALUES) {
13334                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13335         }
13336         if (flags & NDR_IN) {
13337                 ndr_print_struct(ndr, "in", "drsuapi_DsWriteAccountSpn");
13338                 ndr->depth++;
13339                 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
13340                 ndr->depth++;
13341                 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
13342                 ndr->depth--;
13343                 ndr_print_int32(ndr, "level", r->in.level);
13344                 ndr_print_ptr(ndr, "req", r->in.req);
13345                 ndr->depth++;
13346                 ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
13347                 ndr_print_drsuapi_DsWriteAccountSpnRequest(ndr, "req", r->in.req);
13348                 ndr->depth--;
13349                 ndr->depth--;
13350         }
13351         if (flags & NDR_OUT) {
13352                 ndr_print_struct(ndr, "out", "drsuapi_DsWriteAccountSpn");
13353                 ndr->depth++;
13354                 ndr_print_ptr(ndr, "level_out", r->out.level_out);
13355                 ndr->depth++;
13356                 ndr_print_int32(ndr, "level_out", *r->out.level_out);
13357                 ndr->depth--;
13358                 ndr_print_ptr(ndr, "res", r->out.res);
13359                 ndr->depth++;
13360                 ndr_print_set_switch_value(ndr, r->out.res, *r->out.level_out);
13361                 ndr_print_drsuapi_DsWriteAccountSpnResult(ndr, "res", r->out.res);
13362                 ndr->depth--;
13363                 ndr_print_WERROR(ndr, "result", r->out.result);
13364                 ndr->depth--;
13365         }
13366         ndr->depth--;
13367 }
13368
13369 static enum ndr_err_code ndr_push_drsuapi_DsRemoveDSServer(struct ndr_push *ndr, int flags, const struct drsuapi_DsRemoveDSServer *r)
13370 {
13371         if (flags & NDR_IN) {
13372                 if (r->in.bind_handle == NULL) {
13373                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13374                 }
13375                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
13376                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.level));
13377                 if (r->in.req == NULL) {
13378                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13379                 }
13380                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.req, r->in.level));
13381                 NDR_CHECK(ndr_push_drsuapi_DsRemoveDSServerRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
13382         }
13383         if (flags & NDR_OUT) {
13384                 if (r->out.level_out == NULL) {
13385                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13386                 }
13387                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, *r->out.level_out));
13388                 if (r->out.res == NULL) {
13389                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13390                 }
13391                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.res, *r->out.level_out));
13392                 NDR_CHECK(ndr_push_drsuapi_DsRemoveDSServerResult(ndr, NDR_SCALARS, r->out.res));
13393                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13394         }
13395         return NDR_ERR_SUCCESS;
13396 }
13397
13398 static enum ndr_err_code ndr_pull_drsuapi_DsRemoveDSServer(struct ndr_pull *ndr, int flags, struct drsuapi_DsRemoveDSServer *r)
13399 {
13400         TALLOC_CTX *_mem_save_bind_handle_0;
13401         TALLOC_CTX *_mem_save_req_0;
13402         TALLOC_CTX *_mem_save_level_out_0;
13403         TALLOC_CTX *_mem_save_res_0;
13404         if (flags & NDR_IN) {
13405                 ZERO_STRUCT(r->out);
13406
13407                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13408                         NDR_PULL_ALLOC(ndr, r->in.bind_handle);
13409                 }
13410                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
13411                 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
13412                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
13413                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
13414                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.level));
13415                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13416                         NDR_PULL_ALLOC(ndr, r->in.req);
13417                 }
13418                 _mem_save_req_0 = NDR_PULL_GET_MEM_CTX(ndr);
13419                 NDR_PULL_SET_MEM_CTX(ndr, r->in.req, LIBNDR_FLAG_REF_ALLOC);
13420                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.req, r->in.level));
13421                 NDR_CHECK(ndr_pull_drsuapi_DsRemoveDSServerRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
13422                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_0, LIBNDR_FLAG_REF_ALLOC);
13423                 NDR_PULL_ALLOC(ndr, r->out.level_out);
13424                 ZERO_STRUCTP(r->out.level_out);
13425                 NDR_PULL_ALLOC(ndr, r->out.res);
13426                 ZERO_STRUCTP(r->out.res);
13427         }
13428         if (flags & NDR_OUT) {
13429                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13430                         NDR_PULL_ALLOC(ndr, r->out.level_out);
13431                 }
13432                 _mem_save_level_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
13433                 NDR_PULL_SET_MEM_CTX(ndr, r->out.level_out, LIBNDR_FLAG_REF_ALLOC);
13434                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, r->out.level_out));
13435                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_out_0, LIBNDR_FLAG_REF_ALLOC);
13436                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13437                         NDR_PULL_ALLOC(ndr, r->out.res);
13438                 }
13439                 _mem_save_res_0 = NDR_PULL_GET_MEM_CTX(ndr);
13440                 NDR_PULL_SET_MEM_CTX(ndr, r->out.res, LIBNDR_FLAG_REF_ALLOC);
13441                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.res, *r->out.level_out));
13442                 NDR_CHECK(ndr_pull_drsuapi_DsRemoveDSServerResult(ndr, NDR_SCALARS, r->out.res));
13443                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_res_0, LIBNDR_FLAG_REF_ALLOC);
13444                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13445         }
13446         return NDR_ERR_SUCCESS;
13447 }
13448
13449 _PUBLIC_ void ndr_print_drsuapi_DsRemoveDSServer(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsRemoveDSServer *r)
13450 {
13451         ndr_print_struct(ndr, name, "drsuapi_DsRemoveDSServer");
13452         ndr->depth++;
13453         if (flags & NDR_SET_VALUES) {
13454                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13455         }
13456         if (flags & NDR_IN) {
13457                 ndr_print_struct(ndr, "in", "drsuapi_DsRemoveDSServer");
13458                 ndr->depth++;
13459                 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
13460                 ndr->depth++;
13461                 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
13462                 ndr->depth--;
13463                 ndr_print_int32(ndr, "level", r->in.level);
13464                 ndr_print_ptr(ndr, "req", r->in.req);
13465                 ndr->depth++;
13466                 ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
13467                 ndr_print_drsuapi_DsRemoveDSServerRequest(ndr, "req", r->in.req);
13468                 ndr->depth--;
13469                 ndr->depth--;
13470         }
13471         if (flags & NDR_OUT) {
13472                 ndr_print_struct(ndr, "out", "drsuapi_DsRemoveDSServer");
13473                 ndr->depth++;
13474                 ndr_print_ptr(ndr, "level_out", r->out.level_out);
13475                 ndr->depth++;
13476                 ndr_print_int32(ndr, "level_out", *r->out.level_out);
13477                 ndr->depth--;
13478                 ndr_print_ptr(ndr, "res", r->out.res);
13479                 ndr->depth++;
13480                 ndr_print_set_switch_value(ndr, r->out.res, *r->out.level_out);
13481                 ndr_print_drsuapi_DsRemoveDSServerResult(ndr, "res", r->out.res);
13482                 ndr->depth--;
13483                 ndr_print_WERROR(ndr, "result", r->out.result);
13484                 ndr->depth--;
13485         }
13486         ndr->depth--;
13487 }
13488
13489 static enum ndr_err_code ndr_push_DRSUAPI_REMOVE_DS_DOMAIN(struct ndr_push *ndr, int flags, const struct DRSUAPI_REMOVE_DS_DOMAIN *r)
13490 {
13491         if (flags & NDR_IN) {
13492         }
13493         if (flags & NDR_OUT) {
13494                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13495         }
13496         return NDR_ERR_SUCCESS;
13497 }
13498
13499 static enum ndr_err_code ndr_pull_DRSUAPI_REMOVE_DS_DOMAIN(struct ndr_pull *ndr, int flags, struct DRSUAPI_REMOVE_DS_DOMAIN *r)
13500 {
13501         if (flags & NDR_IN) {
13502         }
13503         if (flags & NDR_OUT) {
13504                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13505         }
13506         return NDR_ERR_SUCCESS;
13507 }
13508
13509 _PUBLIC_ void ndr_print_DRSUAPI_REMOVE_DS_DOMAIN(struct ndr_print *ndr, const char *name, int flags, const struct DRSUAPI_REMOVE_DS_DOMAIN *r)
13510 {
13511         ndr_print_struct(ndr, name, "DRSUAPI_REMOVE_DS_DOMAIN");
13512         ndr->depth++;
13513         if (flags & NDR_SET_VALUES) {
13514                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13515         }
13516         if (flags & NDR_IN) {
13517                 ndr_print_struct(ndr, "in", "DRSUAPI_REMOVE_DS_DOMAIN");
13518                 ndr->depth++;
13519                 ndr->depth--;
13520         }
13521         if (flags & NDR_OUT) {
13522                 ndr_print_struct(ndr, "out", "DRSUAPI_REMOVE_DS_DOMAIN");
13523                 ndr->depth++;
13524                 ndr_print_WERROR(ndr, "result", r->out.result);
13525                 ndr->depth--;
13526         }
13527         ndr->depth--;
13528 }
13529
13530 static enum ndr_err_code ndr_push_drsuapi_DsGetDomainControllerInfo(struct ndr_push *ndr, int flags, const struct drsuapi_DsGetDomainControllerInfo *r)
13531 {
13532         if (flags & NDR_IN) {
13533                 if (r->in.bind_handle == NULL) {
13534                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13535                 }
13536                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
13537                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.level));
13538                 if (r->in.req == NULL) {
13539                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13540                 }
13541                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.req, r->in.level));
13542                 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfoRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
13543         }
13544         if (flags & NDR_OUT) {
13545                 if (r->out.level_out == NULL) {
13546                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13547                 }
13548                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, *r->out.level_out));
13549                 if (r->out.ctr == NULL) {
13550                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13551                 }
13552                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
13553                 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
13554                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13555         }
13556         return NDR_ERR_SUCCESS;
13557 }
13558
13559 static enum ndr_err_code ndr_pull_drsuapi_DsGetDomainControllerInfo(struct ndr_pull *ndr, int flags, struct drsuapi_DsGetDomainControllerInfo *r)
13560 {
13561         TALLOC_CTX *_mem_save_bind_handle_0;
13562         TALLOC_CTX *_mem_save_req_0;
13563         TALLOC_CTX *_mem_save_level_out_0;
13564         TALLOC_CTX *_mem_save_ctr_0;
13565         if (flags & NDR_IN) {
13566                 ZERO_STRUCT(r->out);
13567
13568                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13569                         NDR_PULL_ALLOC(ndr, r->in.bind_handle);
13570                 }
13571                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
13572                 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
13573                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
13574                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
13575                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.level));
13576                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13577                         NDR_PULL_ALLOC(ndr, r->in.req);
13578                 }
13579                 _mem_save_req_0 = NDR_PULL_GET_MEM_CTX(ndr);
13580                 NDR_PULL_SET_MEM_CTX(ndr, r->in.req, LIBNDR_FLAG_REF_ALLOC);
13581                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.req, r->in.level));
13582                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfoRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
13583                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_0, LIBNDR_FLAG_REF_ALLOC);
13584                 NDR_PULL_ALLOC(ndr, r->out.level_out);
13585                 ZERO_STRUCTP(r->out.level_out);
13586                 NDR_PULL_ALLOC(ndr, r->out.ctr);
13587                 ZERO_STRUCTP(r->out.ctr);
13588         }
13589         if (flags & NDR_OUT) {
13590                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13591                         NDR_PULL_ALLOC(ndr, r->out.level_out);
13592                 }
13593                 _mem_save_level_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
13594                 NDR_PULL_SET_MEM_CTX(ndr, r->out.level_out, LIBNDR_FLAG_REF_ALLOC);
13595                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, r->out.level_out));
13596                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_out_0, LIBNDR_FLAG_REF_ALLOC);
13597                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13598                         NDR_PULL_ALLOC(ndr, r->out.ctr);
13599                 }
13600                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
13601                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
13602                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
13603                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
13604                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
13605                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13606         }
13607         return NDR_ERR_SUCCESS;
13608 }
13609
13610 _PUBLIC_ void ndr_print_drsuapi_DsGetDomainControllerInfo(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsGetDomainControllerInfo *r)
13611 {
13612         ndr_print_struct(ndr, name, "drsuapi_DsGetDomainControllerInfo");
13613         ndr->depth++;
13614         if (flags & NDR_SET_VALUES) {
13615                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13616         }
13617         if (flags & NDR_IN) {
13618                 ndr_print_struct(ndr, "in", "drsuapi_DsGetDomainControllerInfo");
13619                 ndr->depth++;
13620                 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
13621                 ndr->depth++;
13622                 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
13623                 ndr->depth--;
13624                 ndr_print_int32(ndr, "level", r->in.level);
13625                 ndr_print_ptr(ndr, "req", r->in.req);
13626                 ndr->depth++;
13627                 ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
13628                 ndr_print_drsuapi_DsGetDCInfoRequest(ndr, "req", r->in.req);
13629                 ndr->depth--;
13630                 ndr->depth--;
13631         }
13632         if (flags & NDR_OUT) {
13633                 ndr_print_struct(ndr, "out", "drsuapi_DsGetDomainControllerInfo");
13634                 ndr->depth++;
13635                 ndr_print_ptr(ndr, "level_out", r->out.level_out);
13636                 ndr->depth++;
13637                 ndr_print_int32(ndr, "level_out", *r->out.level_out);
13638                 ndr->depth--;
13639                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
13640                 ndr->depth++;
13641                 ndr_print_set_switch_value(ndr, r->out.ctr, *r->out.level_out);
13642                 ndr_print_drsuapi_DsGetDCInfoCtr(ndr, "ctr", r->out.ctr);
13643                 ndr->depth--;
13644                 ndr_print_WERROR(ndr, "result", r->out.result);
13645                 ndr->depth--;
13646         }
13647         ndr->depth--;
13648 }
13649
13650 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsAddEntry(struct ndr_push *ndr, int flags, const struct drsuapi_DsAddEntry *r)
13651 {
13652         if (flags & NDR_IN) {
13653                 if (r->in.bind_handle == NULL) {
13654                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13655                 }
13656                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
13657                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.level));
13658                 if (r->in.req == NULL) {
13659                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13660                 }
13661                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.req, r->in.level));
13662                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
13663         }
13664         if (flags & NDR_OUT) {
13665                 if (r->out.level_out == NULL) {
13666                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13667                 }
13668                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, *r->out.level_out));
13669                 if (r->out.ctr == NULL) {
13670                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13671                 }
13672                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
13673                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
13674                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13675         }
13676         return NDR_ERR_SUCCESS;
13677 }
13678
13679 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsAddEntry(struct ndr_pull *ndr, int flags, struct drsuapi_DsAddEntry *r)
13680 {
13681         TALLOC_CTX *_mem_save_bind_handle_0;
13682         TALLOC_CTX *_mem_save_req_0;
13683         TALLOC_CTX *_mem_save_level_out_0;
13684         TALLOC_CTX *_mem_save_ctr_0;
13685         if (flags & NDR_IN) {
13686                 ZERO_STRUCT(r->out);
13687
13688                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13689                         NDR_PULL_ALLOC(ndr, r->in.bind_handle);
13690                 }
13691                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
13692                 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
13693                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
13694                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
13695                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.level));
13696                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13697                         NDR_PULL_ALLOC(ndr, r->in.req);
13698                 }
13699                 _mem_save_req_0 = NDR_PULL_GET_MEM_CTX(ndr);
13700                 NDR_PULL_SET_MEM_CTX(ndr, r->in.req, LIBNDR_FLAG_REF_ALLOC);
13701                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.req, r->in.level));
13702                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
13703                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_0, LIBNDR_FLAG_REF_ALLOC);
13704                 NDR_PULL_ALLOC(ndr, r->out.level_out);
13705                 ZERO_STRUCTP(r->out.level_out);
13706                 NDR_PULL_ALLOC(ndr, r->out.ctr);
13707                 ZERO_STRUCTP(r->out.ctr);
13708         }
13709         if (flags & NDR_OUT) {
13710                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13711                         NDR_PULL_ALLOC(ndr, r->out.level_out);
13712                 }
13713                 _mem_save_level_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
13714                 NDR_PULL_SET_MEM_CTX(ndr, r->out.level_out, LIBNDR_FLAG_REF_ALLOC);
13715                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, r->out.level_out));
13716                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_out_0, LIBNDR_FLAG_REF_ALLOC);
13717                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13718                         NDR_PULL_ALLOC(ndr, r->out.ctr);
13719                 }
13720                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
13721                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
13722                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
13723                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
13724                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
13725                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13726         }
13727         return NDR_ERR_SUCCESS;
13728 }
13729
13730 _PUBLIC_ void ndr_print_drsuapi_DsAddEntry(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsAddEntry *r)
13731 {
13732         ndr_print_struct(ndr, name, "drsuapi_DsAddEntry");
13733         ndr->depth++;
13734         if (flags & NDR_SET_VALUES) {
13735                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13736         }
13737         if (flags & NDR_IN) {
13738                 ndr_print_struct(ndr, "in", "drsuapi_DsAddEntry");
13739                 ndr->depth++;
13740                 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
13741                 ndr->depth++;
13742                 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
13743                 ndr->depth--;
13744                 ndr_print_int32(ndr, "level", r->in.level);
13745                 ndr_print_ptr(ndr, "req", r->in.req);
13746                 ndr->depth++;
13747                 ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
13748                 ndr_print_drsuapi_DsAddEntryRequest(ndr, "req", r->in.req);
13749                 ndr->depth--;
13750                 ndr->depth--;
13751         }
13752         if (flags & NDR_OUT) {
13753                 ndr_print_struct(ndr, "out", "drsuapi_DsAddEntry");
13754                 ndr->depth++;
13755                 ndr_print_ptr(ndr, "level_out", r->out.level_out);
13756                 ndr->depth++;
13757                 ndr_print_int32(ndr, "level_out", *r->out.level_out);
13758                 ndr->depth--;
13759                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
13760                 ndr->depth++;
13761                 ndr_print_set_switch_value(ndr, r->out.ctr, *r->out.level_out);
13762                 ndr_print_drsuapi_DsAddEntryCtr(ndr, "ctr", r->out.ctr);
13763                 ndr->depth--;
13764                 ndr_print_WERROR(ndr, "result", r->out.result);
13765                 ndr->depth--;
13766         }
13767         ndr->depth--;
13768 }
13769
13770 static enum ndr_err_code ndr_push_DRSUAPI_EXECUTE_KCC(struct ndr_push *ndr, int flags, const struct DRSUAPI_EXECUTE_KCC *r)
13771 {
13772         if (flags & NDR_IN) {
13773         }
13774         if (flags & NDR_OUT) {
13775                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13776         }
13777         return NDR_ERR_SUCCESS;
13778 }
13779
13780 static enum ndr_err_code ndr_pull_DRSUAPI_EXECUTE_KCC(struct ndr_pull *ndr, int flags, struct DRSUAPI_EXECUTE_KCC *r)
13781 {
13782         if (flags & NDR_IN) {
13783         }
13784         if (flags & NDR_OUT) {
13785                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13786         }
13787         return NDR_ERR_SUCCESS;
13788 }
13789
13790 _PUBLIC_ void ndr_print_DRSUAPI_EXECUTE_KCC(struct ndr_print *ndr, const char *name, int flags, const struct DRSUAPI_EXECUTE_KCC *r)
13791 {
13792         ndr_print_struct(ndr, name, "DRSUAPI_EXECUTE_KCC");
13793         ndr->depth++;
13794         if (flags & NDR_SET_VALUES) {
13795                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13796         }
13797         if (flags & NDR_IN) {
13798                 ndr_print_struct(ndr, "in", "DRSUAPI_EXECUTE_KCC");
13799                 ndr->depth++;
13800                 ndr->depth--;
13801         }
13802         if (flags & NDR_OUT) {
13803                 ndr_print_struct(ndr, "out", "DRSUAPI_EXECUTE_KCC");
13804                 ndr->depth++;
13805                 ndr_print_WERROR(ndr, "result", r->out.result);
13806                 ndr->depth--;
13807         }
13808         ndr->depth--;
13809 }
13810
13811 static enum ndr_err_code ndr_push_drsuapi_DsReplicaGetInfo(struct ndr_push *ndr, int flags, const struct drsuapi_DsReplicaGetInfo *r)
13812 {
13813         if (flags & NDR_IN) {
13814                 if (r->in.bind_handle == NULL) {
13815                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13816                 }
13817                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
13818                 NDR_CHECK(ndr_push_drsuapi_DsReplicaGetInfoLevel(ndr, NDR_SCALARS, r->in.level));
13819                 if (r->in.req == NULL) {
13820                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13821                 }
13822                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.req, r->in.level));
13823                 NDR_CHECK(ndr_push_drsuapi_DsReplicaGetInfoRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
13824         }
13825         if (flags & NDR_OUT) {
13826                 if (r->out.info_type == NULL) {
13827                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13828                 }
13829                 NDR_CHECK(ndr_push_drsuapi_DsReplicaInfoType(ndr, NDR_SCALARS, *r->out.info_type));
13830                 if (r->out.info == NULL) {
13831                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13832                 }
13833                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, *r->out.info_type));
13834                 NDR_CHECK(ndr_push_drsuapi_DsReplicaInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
13835                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13836         }
13837         return NDR_ERR_SUCCESS;
13838 }
13839
13840 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaGetInfo(struct ndr_pull *ndr, int flags, struct drsuapi_DsReplicaGetInfo *r)
13841 {
13842         TALLOC_CTX *_mem_save_bind_handle_0;
13843         TALLOC_CTX *_mem_save_req_0;
13844         TALLOC_CTX *_mem_save_info_type_0;
13845         TALLOC_CTX *_mem_save_info_0;
13846         if (flags & NDR_IN) {
13847                 ZERO_STRUCT(r->out);
13848
13849                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13850                         NDR_PULL_ALLOC(ndr, r->in.bind_handle);
13851                 }
13852                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
13853                 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
13854                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
13855                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
13856                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaGetInfoLevel(ndr, NDR_SCALARS, &r->in.level));
13857                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13858                         NDR_PULL_ALLOC(ndr, r->in.req);
13859                 }
13860                 _mem_save_req_0 = NDR_PULL_GET_MEM_CTX(ndr);
13861                 NDR_PULL_SET_MEM_CTX(ndr, r->in.req, LIBNDR_FLAG_REF_ALLOC);
13862                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.req, r->in.level));
13863                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaGetInfoRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
13864                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_0, LIBNDR_FLAG_REF_ALLOC);
13865                 NDR_PULL_ALLOC(ndr, r->out.info_type);
13866                 ZERO_STRUCTP(r->out.info_type);
13867                 NDR_PULL_ALLOC(ndr, r->out.info);
13868                 ZERO_STRUCTP(r->out.info);
13869         }
13870         if (flags & NDR_OUT) {
13871                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13872                         NDR_PULL_ALLOC(ndr, r->out.info_type);
13873                 }
13874                 _mem_save_info_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
13875                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info_type, LIBNDR_FLAG_REF_ALLOC);
13876                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaInfoType(ndr, NDR_SCALARS, r->out.info_type));
13877                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_type_0, LIBNDR_FLAG_REF_ALLOC);
13878                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13879                         NDR_PULL_ALLOC(ndr, r->out.info);
13880                 }
13881                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
13882                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
13883                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, *r->out.info_type));
13884                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
13885                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
13886                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13887         }
13888         return NDR_ERR_SUCCESS;
13889 }
13890
13891 _PUBLIC_ void ndr_print_drsuapi_DsReplicaGetInfo(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsReplicaGetInfo *r)
13892 {
13893         ndr_print_struct(ndr, name, "drsuapi_DsReplicaGetInfo");
13894         ndr->depth++;
13895         if (flags & NDR_SET_VALUES) {
13896                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13897         }
13898         if (flags & NDR_IN) {
13899                 ndr_print_struct(ndr, "in", "drsuapi_DsReplicaGetInfo");
13900                 ndr->depth++;
13901                 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
13902                 ndr->depth++;
13903                 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
13904                 ndr->depth--;
13905                 ndr_print_drsuapi_DsReplicaGetInfoLevel(ndr, "level", r->in.level);
13906                 ndr_print_ptr(ndr, "req", r->in.req);
13907                 ndr->depth++;
13908                 ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
13909                 ndr_print_drsuapi_DsReplicaGetInfoRequest(ndr, "req", r->in.req);
13910                 ndr->depth--;
13911                 ndr->depth--;
13912         }
13913         if (flags & NDR_OUT) {
13914                 ndr_print_struct(ndr, "out", "drsuapi_DsReplicaGetInfo");
13915                 ndr->depth++;
13916                 ndr_print_ptr(ndr, "info_type", r->out.info_type);
13917                 ndr->depth++;
13918                 ndr_print_drsuapi_DsReplicaInfoType(ndr, "info_type", *r->out.info_type);
13919                 ndr->depth--;
13920                 ndr_print_ptr(ndr, "info", r->out.info);
13921                 ndr->depth++;
13922                 ndr_print_set_switch_value(ndr, r->out.info, *r->out.info_type);
13923                 ndr_print_drsuapi_DsReplicaInfo(ndr, "info", r->out.info);
13924                 ndr->depth--;
13925                 ndr_print_WERROR(ndr, "result", r->out.result);
13926                 ndr->depth--;
13927         }
13928         ndr->depth--;
13929 }
13930
13931 static enum ndr_err_code ndr_push_DRSUAPI_ADD_SID_HISTORY(struct ndr_push *ndr, int flags, const struct DRSUAPI_ADD_SID_HISTORY *r)
13932 {
13933         if (flags & NDR_IN) {
13934         }
13935         if (flags & NDR_OUT) {
13936                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13937         }
13938         return NDR_ERR_SUCCESS;
13939 }
13940
13941 static enum ndr_err_code ndr_pull_DRSUAPI_ADD_SID_HISTORY(struct ndr_pull *ndr, int flags, struct DRSUAPI_ADD_SID_HISTORY *r)
13942 {
13943         if (flags & NDR_IN) {
13944         }
13945         if (flags & NDR_OUT) {
13946                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13947         }
13948         return NDR_ERR_SUCCESS;
13949 }
13950
13951 _PUBLIC_ void ndr_print_DRSUAPI_ADD_SID_HISTORY(struct ndr_print *ndr, const char *name, int flags, const struct DRSUAPI_ADD_SID_HISTORY *r)
13952 {
13953         ndr_print_struct(ndr, name, "DRSUAPI_ADD_SID_HISTORY");
13954         ndr->depth++;
13955         if (flags & NDR_SET_VALUES) {
13956                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13957         }
13958         if (flags & NDR_IN) {
13959                 ndr_print_struct(ndr, "in", "DRSUAPI_ADD_SID_HISTORY");
13960                 ndr->depth++;
13961                 ndr->depth--;
13962         }
13963         if (flags & NDR_OUT) {
13964                 ndr_print_struct(ndr, "out", "DRSUAPI_ADD_SID_HISTORY");
13965                 ndr->depth++;
13966                 ndr_print_WERROR(ndr, "result", r->out.result);
13967                 ndr->depth--;
13968         }
13969         ndr->depth--;
13970 }
13971
13972 static enum ndr_err_code ndr_push_drsuapi_DsGetMemberships2(struct ndr_push *ndr, int flags, const struct drsuapi_DsGetMemberships2 *r)
13973 {
13974         if (flags & NDR_IN) {
13975                 if (r->in.bind_handle == NULL) {
13976                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13977                 }
13978                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
13979                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.level));
13980                 if (r->in.req == NULL) {
13981                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13982                 }
13983                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.req, r->in.level));
13984                 NDR_CHECK(ndr_push_drsuapi_DsGetMemberships2Request(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
13985         }
13986         if (flags & NDR_OUT) {
13987                 if (r->out.level_out == NULL) {
13988                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13989                 }
13990                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, *r->out.level_out));
13991                 if (r->out.ctr == NULL) {
13992                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13993                 }
13994                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
13995                 NDR_CHECK(ndr_push_drsuapi_DsGetMemberships2Ctr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
13996                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13997         }
13998         return NDR_ERR_SUCCESS;
13999 }
14000
14001 static enum ndr_err_code ndr_pull_drsuapi_DsGetMemberships2(struct ndr_pull *ndr, int flags, struct drsuapi_DsGetMemberships2 *r)
14002 {
14003         TALLOC_CTX *_mem_save_bind_handle_0;
14004         TALLOC_CTX *_mem_save_req_0;
14005         TALLOC_CTX *_mem_save_level_out_0;
14006         TALLOC_CTX *_mem_save_ctr_0;
14007         if (flags & NDR_IN) {
14008                 ZERO_STRUCT(r->out);
14009
14010                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14011                         NDR_PULL_ALLOC(ndr, r->in.bind_handle);
14012                 }
14013                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
14014                 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
14015                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
14016                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
14017                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.level));
14018                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14019                         NDR_PULL_ALLOC(ndr, r->in.req);
14020                 }
14021                 _mem_save_req_0 = NDR_PULL_GET_MEM_CTX(ndr);
14022                 NDR_PULL_SET_MEM_CTX(ndr, r->in.req, LIBNDR_FLAG_REF_ALLOC);
14023                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.req, r->in.level));
14024                 NDR_CHECK(ndr_pull_drsuapi_DsGetMemberships2Request(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
14025                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_0, LIBNDR_FLAG_REF_ALLOC);
14026                 NDR_PULL_ALLOC(ndr, r->out.level_out);
14027                 ZERO_STRUCTP(r->out.level_out);
14028                 NDR_PULL_ALLOC(ndr, r->out.ctr);
14029                 ZERO_STRUCTP(r->out.ctr);
14030         }
14031         if (flags & NDR_OUT) {
14032                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14033                         NDR_PULL_ALLOC(ndr, r->out.level_out);
14034                 }
14035                 _mem_save_level_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
14036                 NDR_PULL_SET_MEM_CTX(ndr, r->out.level_out, LIBNDR_FLAG_REF_ALLOC);
14037                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, r->out.level_out));
14038                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_out_0, LIBNDR_FLAG_REF_ALLOC);
14039                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14040                         NDR_PULL_ALLOC(ndr, r->out.ctr);
14041                 }
14042                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
14043                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
14044                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
14045                 NDR_CHECK(ndr_pull_drsuapi_DsGetMemberships2Ctr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
14046                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
14047                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14048         }
14049         return NDR_ERR_SUCCESS;
14050 }
14051
14052 _PUBLIC_ void ndr_print_drsuapi_DsGetMemberships2(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsGetMemberships2 *r)
14053 {
14054         ndr_print_struct(ndr, name, "drsuapi_DsGetMemberships2");
14055         ndr->depth++;
14056         if (flags & NDR_SET_VALUES) {
14057                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14058         }
14059         if (flags & NDR_IN) {
14060                 ndr_print_struct(ndr, "in", "drsuapi_DsGetMemberships2");
14061                 ndr->depth++;
14062                 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
14063                 ndr->depth++;
14064                 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
14065                 ndr->depth--;
14066                 ndr_print_int32(ndr, "level", r->in.level);
14067                 ndr_print_ptr(ndr, "req", r->in.req);
14068                 ndr->depth++;
14069                 ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
14070                 ndr_print_drsuapi_DsGetMemberships2Request(ndr, "req", r->in.req);
14071                 ndr->depth--;
14072                 ndr->depth--;
14073         }
14074         if (flags & NDR_OUT) {
14075                 ndr_print_struct(ndr, "out", "drsuapi_DsGetMemberships2");
14076                 ndr->depth++;
14077                 ndr_print_ptr(ndr, "level_out", r->out.level_out);
14078                 ndr->depth++;
14079                 ndr_print_int32(ndr, "level_out", *r->out.level_out);
14080                 ndr->depth--;
14081                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
14082                 ndr->depth++;
14083                 ndr_print_set_switch_value(ndr, r->out.ctr, *r->out.level_out);
14084                 ndr_print_drsuapi_DsGetMemberships2Ctr(ndr, "ctr", r->out.ctr);
14085                 ndr->depth--;
14086                 ndr_print_WERROR(ndr, "result", r->out.result);
14087                 ndr->depth--;
14088         }
14089         ndr->depth--;
14090 }
14091
14092 static enum ndr_err_code ndr_push_DRSUAPI_REPLICA_VERIFY_OBJECTS(struct ndr_push *ndr, int flags, const struct DRSUAPI_REPLICA_VERIFY_OBJECTS *r)
14093 {
14094         if (flags & NDR_IN) {
14095         }
14096         if (flags & NDR_OUT) {
14097                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14098         }
14099         return NDR_ERR_SUCCESS;
14100 }
14101
14102 static enum ndr_err_code ndr_pull_DRSUAPI_REPLICA_VERIFY_OBJECTS(struct ndr_pull *ndr, int flags, struct DRSUAPI_REPLICA_VERIFY_OBJECTS *r)
14103 {
14104         if (flags & NDR_IN) {
14105         }
14106         if (flags & NDR_OUT) {
14107                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14108         }
14109         return NDR_ERR_SUCCESS;
14110 }
14111
14112 _PUBLIC_ void ndr_print_DRSUAPI_REPLICA_VERIFY_OBJECTS(struct ndr_print *ndr, const char *name, int flags, const struct DRSUAPI_REPLICA_VERIFY_OBJECTS *r)
14113 {
14114         ndr_print_struct(ndr, name, "DRSUAPI_REPLICA_VERIFY_OBJECTS");
14115         ndr->depth++;
14116         if (flags & NDR_SET_VALUES) {
14117                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14118         }
14119         if (flags & NDR_IN) {
14120                 ndr_print_struct(ndr, "in", "DRSUAPI_REPLICA_VERIFY_OBJECTS");
14121                 ndr->depth++;
14122                 ndr->depth--;
14123         }
14124         if (flags & NDR_OUT) {
14125                 ndr_print_struct(ndr, "out", "DRSUAPI_REPLICA_VERIFY_OBJECTS");
14126                 ndr->depth++;
14127                 ndr_print_WERROR(ndr, "result", r->out.result);
14128                 ndr->depth--;
14129         }
14130         ndr->depth--;
14131 }
14132
14133 static enum ndr_err_code ndr_push_DRSUAPI_GET_OBJECT_EXISTENCE(struct ndr_push *ndr, int flags, const struct DRSUAPI_GET_OBJECT_EXISTENCE *r)
14134 {
14135         if (flags & NDR_IN) {
14136         }
14137         if (flags & NDR_OUT) {
14138                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14139         }
14140         return NDR_ERR_SUCCESS;
14141 }
14142
14143 static enum ndr_err_code ndr_pull_DRSUAPI_GET_OBJECT_EXISTENCE(struct ndr_pull *ndr, int flags, struct DRSUAPI_GET_OBJECT_EXISTENCE *r)
14144 {
14145         if (flags & NDR_IN) {
14146         }
14147         if (flags & NDR_OUT) {
14148                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14149         }
14150         return NDR_ERR_SUCCESS;
14151 }
14152
14153 _PUBLIC_ void ndr_print_DRSUAPI_GET_OBJECT_EXISTENCE(struct ndr_print *ndr, const char *name, int flags, const struct DRSUAPI_GET_OBJECT_EXISTENCE *r)
14154 {
14155         ndr_print_struct(ndr, name, "DRSUAPI_GET_OBJECT_EXISTENCE");
14156         ndr->depth++;
14157         if (flags & NDR_SET_VALUES) {
14158                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14159         }
14160         if (flags & NDR_IN) {
14161                 ndr_print_struct(ndr, "in", "DRSUAPI_GET_OBJECT_EXISTENCE");
14162                 ndr->depth++;
14163                 ndr->depth--;
14164         }
14165         if (flags & NDR_OUT) {
14166                 ndr_print_struct(ndr, "out", "DRSUAPI_GET_OBJECT_EXISTENCE");
14167                 ndr->depth++;
14168                 ndr_print_WERROR(ndr, "result", r->out.result);
14169                 ndr->depth--;
14170         }
14171         ndr->depth--;
14172 }
14173
14174 static enum ndr_err_code ndr_push_drsuapi_QuerySitesByCost(struct ndr_push *ndr, int flags, const struct drsuapi_QuerySitesByCost *r)
14175 {
14176         if (flags & NDR_IN) {
14177                 if (r->in.bind_handle == NULL) {
14178                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14179                 }
14180                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
14181                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.level));
14182                 if (r->in.req == NULL) {
14183                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14184                 }
14185                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.req, r->in.level));
14186                 NDR_CHECK(ndr_push_drsuapi_QuerySitesByCostRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
14187         }
14188         if (flags & NDR_OUT) {
14189                 if (r->out.level_out == NULL) {
14190                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14191                 }
14192                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, *r->out.level_out));
14193                 if (r->out.ctr == NULL) {
14194                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14195                 }
14196                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
14197                 NDR_CHECK(ndr_push_drsuapi_QuerySitesByCostCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
14198                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14199         }
14200         return NDR_ERR_SUCCESS;
14201 }
14202
14203 static enum ndr_err_code ndr_pull_drsuapi_QuerySitesByCost(struct ndr_pull *ndr, int flags, struct drsuapi_QuerySitesByCost *r)
14204 {
14205         TALLOC_CTX *_mem_save_bind_handle_0;
14206         TALLOC_CTX *_mem_save_req_0;
14207         TALLOC_CTX *_mem_save_level_out_0;
14208         TALLOC_CTX *_mem_save_ctr_0;
14209         if (flags & NDR_IN) {
14210                 ZERO_STRUCT(r->out);
14211
14212                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14213                         NDR_PULL_ALLOC(ndr, r->in.bind_handle);
14214                 }
14215                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
14216                 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
14217                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
14218                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
14219                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.level));
14220                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14221                         NDR_PULL_ALLOC(ndr, r->in.req);
14222                 }
14223                 _mem_save_req_0 = NDR_PULL_GET_MEM_CTX(ndr);
14224                 NDR_PULL_SET_MEM_CTX(ndr, r->in.req, LIBNDR_FLAG_REF_ALLOC);
14225                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.req, r->in.level));
14226                 NDR_CHECK(ndr_pull_drsuapi_QuerySitesByCostRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
14227                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_0, LIBNDR_FLAG_REF_ALLOC);
14228                 NDR_PULL_ALLOC(ndr, r->out.level_out);
14229                 ZERO_STRUCTP(r->out.level_out);
14230                 NDR_PULL_ALLOC(ndr, r->out.ctr);
14231                 ZERO_STRUCTP(r->out.ctr);
14232         }
14233         if (flags & NDR_OUT) {
14234                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14235                         NDR_PULL_ALLOC(ndr, r->out.level_out);
14236                 }
14237                 _mem_save_level_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
14238                 NDR_PULL_SET_MEM_CTX(ndr, r->out.level_out, LIBNDR_FLAG_REF_ALLOC);
14239                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, r->out.level_out));
14240                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_out_0, LIBNDR_FLAG_REF_ALLOC);
14241                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14242                         NDR_PULL_ALLOC(ndr, r->out.ctr);
14243                 }
14244                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
14245                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
14246                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
14247                 NDR_CHECK(ndr_pull_drsuapi_QuerySitesByCostCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
14248                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
14249                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14250         }
14251         return NDR_ERR_SUCCESS;
14252 }
14253
14254 _PUBLIC_ void ndr_print_drsuapi_QuerySitesByCost(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_QuerySitesByCost *r)
14255 {
14256         ndr_print_struct(ndr, name, "drsuapi_QuerySitesByCost");
14257         ndr->depth++;
14258         if (flags & NDR_SET_VALUES) {
14259                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14260         }
14261         if (flags & NDR_IN) {
14262                 ndr_print_struct(ndr, "in", "drsuapi_QuerySitesByCost");
14263                 ndr->depth++;
14264                 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
14265                 ndr->depth++;
14266                 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
14267                 ndr->depth--;
14268                 ndr_print_int32(ndr, "level", r->in.level);
14269                 ndr_print_ptr(ndr, "req", r->in.req);
14270                 ndr->depth++;
14271                 ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
14272                 ndr_print_drsuapi_QuerySitesByCostRequest(ndr, "req", r->in.req);
14273                 ndr->depth--;
14274                 ndr->depth--;
14275         }
14276         if (flags & NDR_OUT) {
14277                 ndr_print_struct(ndr, "out", "drsuapi_QuerySitesByCost");
14278                 ndr->depth++;
14279                 ndr_print_ptr(ndr, "level_out", r->out.level_out);
14280                 ndr->depth++;
14281                 ndr_print_int32(ndr, "level_out", *r->out.level_out);
14282                 ndr->depth--;
14283                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
14284                 ndr->depth++;
14285                 ndr_print_set_switch_value(ndr, r->out.ctr, *r->out.level_out);
14286                 ndr_print_drsuapi_QuerySitesByCostCtr(ndr, "ctr", r->out.ctr);
14287                 ndr->depth--;
14288                 ndr_print_WERROR(ndr, "result", r->out.result);
14289                 ndr->depth--;
14290         }
14291         ndr->depth--;
14292 }
14293
14294 static const struct ndr_interface_call drsuapi_calls[] = {
14295         {
14296                 "drsuapi_DsBind",
14297                 sizeof(struct drsuapi_DsBind),
14298                 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsBind,
14299                 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsBind,
14300                 (ndr_print_function_t) ndr_print_drsuapi_DsBind,
14301                 false,
14302         },
14303         {
14304                 "drsuapi_DsUnbind",
14305                 sizeof(struct drsuapi_DsUnbind),
14306                 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsUnbind,
14307                 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsUnbind,
14308                 (ndr_print_function_t) ndr_print_drsuapi_DsUnbind,
14309                 false,
14310         },
14311         {
14312                 "drsuapi_DsReplicaSync",
14313                 sizeof(struct drsuapi_DsReplicaSync),
14314                 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsReplicaSync,
14315                 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsReplicaSync,
14316                 (ndr_print_function_t) ndr_print_drsuapi_DsReplicaSync,
14317                 false,
14318         },
14319         {
14320                 "drsuapi_DsGetNCChanges",
14321                 sizeof(struct drsuapi_DsGetNCChanges),
14322                 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsGetNCChanges,
14323                 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsGetNCChanges,
14324                 (ndr_print_function_t) ndr_print_drsuapi_DsGetNCChanges,
14325                 false,
14326         },
14327         {
14328                 "drsuapi_DsReplicaUpdateRefs",
14329                 sizeof(struct drsuapi_DsReplicaUpdateRefs),
14330                 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsReplicaUpdateRefs,
14331                 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsReplicaUpdateRefs,
14332                 (ndr_print_function_t) ndr_print_drsuapi_DsReplicaUpdateRefs,
14333                 false,
14334         },
14335         {
14336                 "DRSUAPI_REPLICA_ADD",
14337                 sizeof(struct DRSUAPI_REPLICA_ADD),
14338                 (ndr_push_flags_fn_t) ndr_push_DRSUAPI_REPLICA_ADD,
14339                 (ndr_pull_flags_fn_t) ndr_pull_DRSUAPI_REPLICA_ADD,
14340                 (ndr_print_function_t) ndr_print_DRSUAPI_REPLICA_ADD,
14341                 false,
14342         },
14343         {
14344                 "DRSUAPI_REPLICA_DEL",
14345                 sizeof(struct DRSUAPI_REPLICA_DEL),
14346                 (ndr_push_flags_fn_t) ndr_push_DRSUAPI_REPLICA_DEL,
14347                 (ndr_pull_flags_fn_t) ndr_pull_DRSUAPI_REPLICA_DEL,
14348                 (ndr_print_function_t) ndr_print_DRSUAPI_REPLICA_DEL,
14349                 false,
14350         },
14351         {
14352                 "DRSUAPI_REPLICA_MODIFY",
14353                 sizeof(struct DRSUAPI_REPLICA_MODIFY),
14354                 (ndr_push_flags_fn_t) ndr_push_DRSUAPI_REPLICA_MODIFY,
14355                 (ndr_pull_flags_fn_t) ndr_pull_DRSUAPI_REPLICA_MODIFY,
14356                 (ndr_print_function_t) ndr_print_DRSUAPI_REPLICA_MODIFY,
14357                 false,
14358         },
14359         {
14360                 "DRSUAPI_VERIFY_NAMES",
14361                 sizeof(struct DRSUAPI_VERIFY_NAMES),
14362                 (ndr_push_flags_fn_t) ndr_push_DRSUAPI_VERIFY_NAMES,
14363                 (ndr_pull_flags_fn_t) ndr_pull_DRSUAPI_VERIFY_NAMES,
14364                 (ndr_print_function_t) ndr_print_DRSUAPI_VERIFY_NAMES,
14365                 false,
14366         },
14367         {
14368                 "drsuapi_DsGetMemberships",
14369                 sizeof(struct drsuapi_DsGetMemberships),
14370                 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsGetMemberships,
14371                 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsGetMemberships,
14372                 (ndr_print_function_t) ndr_print_drsuapi_DsGetMemberships,
14373                 false,
14374         },
14375         {
14376                 "DRSUAPI_INTER_DOMAIN_MOVE",
14377                 sizeof(struct DRSUAPI_INTER_DOMAIN_MOVE),
14378                 (ndr_push_flags_fn_t) ndr_push_DRSUAPI_INTER_DOMAIN_MOVE,
14379                 (ndr_pull_flags_fn_t) ndr_pull_DRSUAPI_INTER_DOMAIN_MOVE,
14380                 (ndr_print_function_t) ndr_print_DRSUAPI_INTER_DOMAIN_MOVE,
14381                 false,
14382         },
14383         {
14384                 "drsuapi_DsGetNT4ChangeLog",
14385                 sizeof(struct drsuapi_DsGetNT4ChangeLog),
14386                 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsGetNT4ChangeLog,
14387                 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsGetNT4ChangeLog,
14388                 (ndr_print_function_t) ndr_print_drsuapi_DsGetNT4ChangeLog,
14389                 false,
14390         },
14391         {
14392                 "drsuapi_DsCrackNames",
14393                 sizeof(struct drsuapi_DsCrackNames),
14394                 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsCrackNames,
14395                 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsCrackNames,
14396                 (ndr_print_function_t) ndr_print_drsuapi_DsCrackNames,
14397                 false,
14398         },
14399         {
14400                 "drsuapi_DsWriteAccountSpn",
14401                 sizeof(struct drsuapi_DsWriteAccountSpn),
14402                 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsWriteAccountSpn,
14403                 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsWriteAccountSpn,
14404                 (ndr_print_function_t) ndr_print_drsuapi_DsWriteAccountSpn,
14405                 false,
14406         },
14407         {
14408                 "drsuapi_DsRemoveDSServer",
14409                 sizeof(struct drsuapi_DsRemoveDSServer),
14410                 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsRemoveDSServer,
14411                 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsRemoveDSServer,
14412                 (ndr_print_function_t) ndr_print_drsuapi_DsRemoveDSServer,
14413                 false,
14414         },
14415         {
14416                 "DRSUAPI_REMOVE_DS_DOMAIN",
14417                 sizeof(struct DRSUAPI_REMOVE_DS_DOMAIN),
14418                 (ndr_push_flags_fn_t) ndr_push_DRSUAPI_REMOVE_DS_DOMAIN,
14419                 (ndr_pull_flags_fn_t) ndr_pull_DRSUAPI_REMOVE_DS_DOMAIN,
14420                 (ndr_print_function_t) ndr_print_DRSUAPI_REMOVE_DS_DOMAIN,
14421                 false,
14422         },
14423         {
14424                 "drsuapi_DsGetDomainControllerInfo",
14425                 sizeof(struct drsuapi_DsGetDomainControllerInfo),
14426                 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsGetDomainControllerInfo,
14427                 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsGetDomainControllerInfo,
14428                 (ndr_print_function_t) ndr_print_drsuapi_DsGetDomainControllerInfo,
14429                 false,
14430         },
14431         {
14432                 "drsuapi_DsAddEntry",
14433                 sizeof(struct drsuapi_DsAddEntry),
14434                 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsAddEntry,
14435                 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsAddEntry,
14436                 (ndr_print_function_t) ndr_print_drsuapi_DsAddEntry,
14437                 false,
14438         },
14439         {
14440                 "DRSUAPI_EXECUTE_KCC",
14441                 sizeof(struct DRSUAPI_EXECUTE_KCC),
14442                 (ndr_push_flags_fn_t) ndr_push_DRSUAPI_EXECUTE_KCC,
14443                 (ndr_pull_flags_fn_t) ndr_pull_DRSUAPI_EXECUTE_KCC,
14444                 (ndr_print_function_t) ndr_print_DRSUAPI_EXECUTE_KCC,
14445                 false,
14446         },
14447         {
14448                 "drsuapi_DsReplicaGetInfo",
14449                 sizeof(struct drsuapi_DsReplicaGetInfo),
14450                 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsReplicaGetInfo,
14451                 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsReplicaGetInfo,
14452                 (ndr_print_function_t) ndr_print_drsuapi_DsReplicaGetInfo,
14453                 false,
14454         },
14455         {
14456                 "DRSUAPI_ADD_SID_HISTORY",
14457                 sizeof(struct DRSUAPI_ADD_SID_HISTORY),
14458                 (ndr_push_flags_fn_t) ndr_push_DRSUAPI_ADD_SID_HISTORY,
14459                 (ndr_pull_flags_fn_t) ndr_pull_DRSUAPI_ADD_SID_HISTORY,
14460                 (ndr_print_function_t) ndr_print_DRSUAPI_ADD_SID_HISTORY,
14461                 false,
14462         },
14463         {
14464                 "drsuapi_DsGetMemberships2",
14465                 sizeof(struct drsuapi_DsGetMemberships2),
14466                 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsGetMemberships2,
14467                 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsGetMemberships2,
14468                 (ndr_print_function_t) ndr_print_drsuapi_DsGetMemberships2,
14469                 false,
14470         },
14471         {
14472                 "DRSUAPI_REPLICA_VERIFY_OBJECTS",
14473                 sizeof(struct DRSUAPI_REPLICA_VERIFY_OBJECTS),
14474                 (ndr_push_flags_fn_t) ndr_push_DRSUAPI_REPLICA_VERIFY_OBJECTS,
14475                 (ndr_pull_flags_fn_t) ndr_pull_DRSUAPI_REPLICA_VERIFY_OBJECTS,
14476                 (ndr_print_function_t) ndr_print_DRSUAPI_REPLICA_VERIFY_OBJECTS,
14477                 false,
14478         },
14479         {
14480                 "DRSUAPI_GET_OBJECT_EXISTENCE",
14481                 sizeof(struct DRSUAPI_GET_OBJECT_EXISTENCE),
14482                 (ndr_push_flags_fn_t) ndr_push_DRSUAPI_GET_OBJECT_EXISTENCE,
14483                 (ndr_pull_flags_fn_t) ndr_pull_DRSUAPI_GET_OBJECT_EXISTENCE,
14484                 (ndr_print_function_t) ndr_print_DRSUAPI_GET_OBJECT_EXISTENCE,
14485                 false,
14486         },
14487         {
14488                 "drsuapi_QuerySitesByCost",
14489                 sizeof(struct drsuapi_QuerySitesByCost),
14490                 (ndr_push_flags_fn_t) ndr_push_drsuapi_QuerySitesByCost,
14491                 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_QuerySitesByCost,
14492                 (ndr_print_function_t) ndr_print_drsuapi_QuerySitesByCost,
14493                 false,
14494         },
14495         { NULL, 0, NULL, NULL, NULL, false }
14496 };
14497
14498 static const char * const drsuapi_endpoint_strings[] = {
14499         "ncacn_np:[\\pipe\\lsass]", 
14500         "ncacn_np:[\\pipe\\protected_storage]", 
14501         "ncacn_ip_tcp:", 
14502         "ncalrpc:", 
14503 };
14504
14505 static const struct ndr_interface_string_array drsuapi_endpoints = {
14506         .count  = 4,
14507         .names  = drsuapi_endpoint_strings
14508 };
14509
14510 static const char * const drsuapi_authservice_strings[] = {
14511         "ldap", 
14512 };
14513
14514 static const struct ndr_interface_string_array drsuapi_authservices = {
14515         .count  = 1,
14516         .names  = drsuapi_authservice_strings
14517 };
14518
14519
14520 const struct ndr_interface_table ndr_table_drsuapi = {
14521         .name           = "drsuapi",
14522         .syntax_id      = {
14523                 {0xe3514235,0x4b06,0x11d1,{0xab,0x04},{0x00,0xc0,0x4f,0xc2,0xdc,0xd2}},
14524                 NDR_DRSUAPI_VERSION
14525         },
14526         .helpstring     = NDR_DRSUAPI_HELPSTRING,
14527         .num_calls      = 25,
14528         .calls          = drsuapi_calls,
14529         .endpoints      = &drsuapi_endpoints,
14530         .authservices   = &drsuapi_authservices
14531 };
14532