git add -f bin/default/librpc/gen_ndr/*.[ch] bin/default/source*/librpc/gen_ndr/...
[metze/samba/wip.git] / bin.gen_ndr / default / librpc / gen_ndr / ndr_drsuapi.c
1 /* parser auto-generated by pidl */
2
3 #include "includes.h"
4 #include "bin/default/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_lsa.h"
9 #include "librpc/gen_ndr/ndr_samr.h"
10 #include "librpc/ndr/ndr_compression.h"
11 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DrsOptions(struct ndr_push *ndr, int ndr_flags, uint32_t r)
12 {
13         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
14         return NDR_ERR_SUCCESS;
15 }
16
17 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DrsOptions(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18 {
19         uint32_t v;
20         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
21         *r = v;
22         return NDR_ERR_SUCCESS;
23 }
24
25 _PUBLIC_ void ndr_print_drsuapi_DrsOptions(struct ndr_print *ndr, const char *name, uint32_t r)
26 {
27         ndr_print_uint32(ndr, name, r);
28         ndr->depth++;
29         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_ASYNC_OP", DRSUAPI_DRS_ASYNC_OP, r);
30         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_GETCHG_CHECK", DRSUAPI_DRS_GETCHG_CHECK, r);
31         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_UPDATE_NOTIFICATION", DRSUAPI_DRS_UPDATE_NOTIFICATION, r);
32         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_ADD_REF", DRSUAPI_DRS_ADD_REF, r);
33         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_SYNC_ALL", DRSUAPI_DRS_SYNC_ALL, r);
34         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_DEL_REF", DRSUAPI_DRS_DEL_REF, r);
35         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_WRIT_REP", DRSUAPI_DRS_WRIT_REP, r);
36         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_INIT_SYNC", DRSUAPI_DRS_INIT_SYNC, r);
37         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_PER_SYNC", DRSUAPI_DRS_PER_SYNC, r);
38         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_MAIL_REP", DRSUAPI_DRS_MAIL_REP, r);
39         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_ASYNC_REP", DRSUAPI_DRS_ASYNC_REP, r);
40         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_IGNORE_ERROR", DRSUAPI_DRS_IGNORE_ERROR, r);
41         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_TWOWAY_SYNC", DRSUAPI_DRS_TWOWAY_SYNC, r);
42         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_CRITICAL_ONLY", DRSUAPI_DRS_CRITICAL_ONLY, r);
43         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_GET_ANC", DRSUAPI_DRS_GET_ANC, r);
44         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_GET_NC_SIZE", DRSUAPI_DRS_GET_NC_SIZE, r);
45         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_LOCAL_ONLY", DRSUAPI_DRS_LOCAL_ONLY, r);
46         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_NONGC_RO_REP", DRSUAPI_DRS_NONGC_RO_REP, r);
47         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_SYNC_BYNAME", DRSUAPI_DRS_SYNC_BYNAME, r);
48         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_REF_OK", DRSUAPI_DRS_REF_OK, r);
49         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_FULL_SYNC_NOW", DRSUAPI_DRS_FULL_SYNC_NOW, r);
50         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_NO_SOURCE", DRSUAPI_DRS_NO_SOURCE, r);
51         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_FULL_SYNC_IN_PROGRESS", DRSUAPI_DRS_FULL_SYNC_IN_PROGRESS, r);
52         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_FULL_SYNC_PACKET", DRSUAPI_DRS_FULL_SYNC_PACKET, r);
53         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_SYNC_REQUEUE", DRSUAPI_DRS_SYNC_REQUEUE, r);
54         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_SYNC_URGENT", DRSUAPI_DRS_SYNC_URGENT, r);
55         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_REF_GCSPN", DRSUAPI_DRS_REF_GCSPN, r);
56         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_NO_DISCARD", DRSUAPI_DRS_NO_DISCARD, r);
57         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_NEVER_SYNCED", DRSUAPI_DRS_NEVER_SYNCED, r);
58         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_SPECIAL_SECRET_PROCESSING", DRSUAPI_DRS_SPECIAL_SECRET_PROCESSING, r);
59         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_INIT_SYNC_NOW", DRSUAPI_DRS_INIT_SYNC_NOW, r);
60         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_PREEMPTED", DRSUAPI_DRS_PREEMPTED, r);
61         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_SYNC_FORCED", DRSUAPI_DRS_SYNC_FORCED, r);
62         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_DISABLE_AUTO_SYNC", DRSUAPI_DRS_DISABLE_AUTO_SYNC, r);
63         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_DISABLE_PERIODIC_SYNC", DRSUAPI_DRS_DISABLE_PERIODIC_SYNC, r);
64         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_USE_COMPRESSION", DRSUAPI_DRS_USE_COMPRESSION, r);
65         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_NEVER_NOTIFY", DRSUAPI_DRS_NEVER_NOTIFY, r);
66         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_SYNC_PAS", DRSUAPI_DRS_SYNC_PAS, r);
67         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_GET_ALL_GROUP_MEMBERSHIP", DRSUAPI_DRS_GET_ALL_GROUP_MEMBERSHIP, r);
68         ndr->depth--;
69 }
70
71 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DrsUpdate(struct ndr_push *ndr, int ndr_flags, uint32_t r)
72 {
73         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
74         return NDR_ERR_SUCCESS;
75 }
76
77 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DrsUpdate(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
78 {
79         uint32_t v;
80         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
81         *r = v;
82         return NDR_ERR_SUCCESS;
83 }
84
85 _PUBLIC_ void ndr_print_drsuapi_DrsUpdate(struct ndr_print *ndr, const char *name, uint32_t r)
86 {
87         ndr_print_uint32(ndr, name, r);
88         ndr->depth++;
89         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_UPDATE_FLAGS", DRSUAPI_DRS_UPDATE_FLAGS, r);
90         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_UPDATE_ADDRESS", DRSUAPI_DRS_UPDATE_ADDRESS, r);
91         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DRS_UPDATE_SCHEDULE", DRSUAPI_DRS_UPDATE_SCHEDULE, r);
92         ndr->depth--;
93 }
94
95 static enum ndr_err_code ndr_push_drsuapi_SupportedExtensions(struct ndr_push *ndr, int ndr_flags, uint32_t r)
96 {
97         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
98         return NDR_ERR_SUCCESS;
99 }
100
101 static enum ndr_err_code ndr_pull_drsuapi_SupportedExtensions(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
102 {
103         uint32_t v;
104         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
105         *r = v;
106         return NDR_ERR_SUCCESS;
107 }
108
109 _PUBLIC_ void ndr_print_drsuapi_SupportedExtensions(struct ndr_print *ndr, const char *name, uint32_t r)
110 {
111         ndr_print_uint32(ndr, name, r);
112         ndr->depth++;
113         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_BASE", DRSUAPI_SUPPORTED_EXTENSION_BASE, r);
114         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_ASYNC_REPLICATION", DRSUAPI_SUPPORTED_EXTENSION_ASYNC_REPLICATION, r);
115         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_REMOVEAPI", DRSUAPI_SUPPORTED_EXTENSION_REMOVEAPI, r);
116         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_MOVEREQ_V2", DRSUAPI_SUPPORTED_EXTENSION_MOVEREQ_V2, r);
117         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_GETCHG_COMPRESS", DRSUAPI_SUPPORTED_EXTENSION_GETCHG_COMPRESS, r);
118         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V1", DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V1, r);
119         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_RESTORE_USN_OPTIMIZATION", DRSUAPI_SUPPORTED_EXTENSION_RESTORE_USN_OPTIMIZATION, r);
120         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY", DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY, r);
121         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_KCC_EXECUTE", DRSUAPI_SUPPORTED_EXTENSION_KCC_EXECUTE, r);
122         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_V2", DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_V2, r);
123         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_LINKED_VALUE_REPLICATION", DRSUAPI_SUPPORTED_EXTENSION_LINKED_VALUE_REPLICATION, r);
124         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V2", DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V2, r);
125         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);
126         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_CRYPTO_BIND", DRSUAPI_SUPPORTED_EXTENSION_CRYPTO_BIND, r);
127         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_GET_REPL_INFO", DRSUAPI_SUPPORTED_EXTENSION_GET_REPL_INFO, r);
128         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_STRONG_ENCRYPTION", DRSUAPI_SUPPORTED_EXTENSION_STRONG_ENCRYPTION, r);
129         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V01", DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V01, r);
130         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_TRANSITIVE_MEMBERSHIP", DRSUAPI_SUPPORTED_EXTENSION_TRANSITIVE_MEMBERSHIP, r);
131         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_ADD_SID_HISTORY", DRSUAPI_SUPPORTED_EXTENSION_ADD_SID_HISTORY, r);
132         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_POST_BETA3", DRSUAPI_SUPPORTED_EXTENSION_POST_BETA3, r);
133         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V5", DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V5, r);
134         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_GET_MEMBERSHIPS2", DRSUAPI_SUPPORTED_EXTENSION_GET_MEMBERSHIPS2, r);
135         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V6", DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V6, r);
136         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_NONDOMAIN_NCS", DRSUAPI_SUPPORTED_EXTENSION_NONDOMAIN_NCS, r);
137         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V8", DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V8, r);
138         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V5", DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V5, r);
139         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V6", DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V6, r);
140         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_ADDENTRYREPLY_V3", DRSUAPI_SUPPORTED_EXTENSION_ADDENTRYREPLY_V3, r);
141         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V7", DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V7, r);
142         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_VERIFY_OBJECT", DRSUAPI_SUPPORTED_EXTENSION_VERIFY_OBJECT, r);
143         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_XPRESS_COMPRESS", DRSUAPI_SUPPORTED_EXTENSION_XPRESS_COMPRESS, r);
144         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V10", DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V10, r);
145         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART2", DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART2, r);
146         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART3", DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART3, r);
147         ndr->depth--;
148 }
149
150 static enum ndr_err_code ndr_push_drsuapi_SupportedExtensionsExt(struct ndr_push *ndr, int ndr_flags, uint32_t r)
151 {
152         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
153         return NDR_ERR_SUCCESS;
154 }
155
156 static enum ndr_err_code ndr_pull_drsuapi_SupportedExtensionsExt(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
157 {
158         uint32_t v;
159         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
160         *r = v;
161         return NDR_ERR_SUCCESS;
162 }
163
164 _PUBLIC_ void ndr_print_drsuapi_SupportedExtensionsExt(struct ndr_print *ndr, const char *name, uint32_t r)
165 {
166         ndr_print_uint32(ndr, name, r);
167         ndr->depth++;
168         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_ADAM", DRSUAPI_SUPPORTED_EXTENSION_ADAM, r);
169         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_LH_BETA2", DRSUAPI_SUPPORTED_EXTENSION_LH_BETA2, r);
170         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_RECYCLE_BIN", DRSUAPI_SUPPORTED_EXTENSION_RECYCLE_BIN, r);
171         ndr->depth--;
172 }
173
174 static enum ndr_err_code ndr_push_drsuapi_DsBindInfo24(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsBindInfo24 *r)
175 {
176         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
177         if (ndr_flags & NDR_SCALARS) {
178                 NDR_CHECK(ndr_push_align(ndr, 4));
179                 NDR_CHECK(ndr_push_drsuapi_SupportedExtensions(ndr, NDR_SCALARS, r->supported_extensions));
180                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->site_guid));
181                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pid));
182                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
183         }
184         if (ndr_flags & NDR_BUFFERS) {
185         }
186         return NDR_ERR_SUCCESS;
187 }
188
189 static enum ndr_err_code ndr_pull_drsuapi_DsBindInfo24(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsBindInfo24 *r)
190 {
191         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
192         if (ndr_flags & NDR_SCALARS) {
193                 NDR_CHECK(ndr_pull_align(ndr, 4));
194                 NDR_CHECK(ndr_pull_drsuapi_SupportedExtensions(ndr, NDR_SCALARS, &r->supported_extensions));
195                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->site_guid));
196                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pid));
197                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
198         }
199         if (ndr_flags & NDR_BUFFERS) {
200         }
201         return NDR_ERR_SUCCESS;
202 }
203
204 _PUBLIC_ void ndr_print_drsuapi_DsBindInfo24(struct ndr_print *ndr, const char *name, const struct drsuapi_DsBindInfo24 *r)
205 {
206         ndr_print_struct(ndr, name, "drsuapi_DsBindInfo24");
207         if (r == NULL) { ndr_print_null(ndr); return; }
208         ndr->depth++;
209         ndr_print_drsuapi_SupportedExtensions(ndr, "supported_extensions", r->supported_extensions);
210         ndr_print_GUID(ndr, "site_guid", &r->site_guid);
211         ndr_print_uint32(ndr, "pid", r->pid);
212         ndr->depth--;
213 }
214
215 static enum ndr_err_code ndr_push_drsuapi_DsBindInfo28(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsBindInfo28 *r)
216 {
217         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
218         if (ndr_flags & NDR_SCALARS) {
219                 NDR_CHECK(ndr_push_align(ndr, 4));
220                 NDR_CHECK(ndr_push_drsuapi_SupportedExtensions(ndr, NDR_SCALARS, r->supported_extensions));
221                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->site_guid));
222                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pid));
223                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->repl_epoch));
224                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
225         }
226         if (ndr_flags & NDR_BUFFERS) {
227         }
228         return NDR_ERR_SUCCESS;
229 }
230
231 static enum ndr_err_code ndr_pull_drsuapi_DsBindInfo28(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsBindInfo28 *r)
232 {
233         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
234         if (ndr_flags & NDR_SCALARS) {
235                 NDR_CHECK(ndr_pull_align(ndr, 4));
236                 NDR_CHECK(ndr_pull_drsuapi_SupportedExtensions(ndr, NDR_SCALARS, &r->supported_extensions));
237                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->site_guid));
238                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pid));
239                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->repl_epoch));
240                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
241         }
242         if (ndr_flags & NDR_BUFFERS) {
243         }
244         return NDR_ERR_SUCCESS;
245 }
246
247 _PUBLIC_ void ndr_print_drsuapi_DsBindInfo28(struct ndr_print *ndr, const char *name, const struct drsuapi_DsBindInfo28 *r)
248 {
249         ndr_print_struct(ndr, name, "drsuapi_DsBindInfo28");
250         if (r == NULL) { ndr_print_null(ndr); return; }
251         ndr->depth++;
252         ndr_print_drsuapi_SupportedExtensions(ndr, "supported_extensions", r->supported_extensions);
253         ndr_print_GUID(ndr, "site_guid", &r->site_guid);
254         ndr_print_uint32(ndr, "pid", r->pid);
255         ndr_print_uint32(ndr, "repl_epoch", r->repl_epoch);
256         ndr->depth--;
257 }
258
259 static enum ndr_err_code ndr_push_drsuapi_DsBindInfo48(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsBindInfo48 *r)
260 {
261         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
262         if (ndr_flags & NDR_SCALARS) {
263                 NDR_CHECK(ndr_push_align(ndr, 4));
264                 NDR_CHECK(ndr_push_drsuapi_SupportedExtensions(ndr, NDR_SCALARS, r->supported_extensions));
265                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->site_guid));
266                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pid));
267                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->repl_epoch));
268                 NDR_CHECK(ndr_push_drsuapi_SupportedExtensionsExt(ndr, NDR_SCALARS, r->supported_extensions_ext));
269                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->config_dn_guid));
270                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
271         }
272         if (ndr_flags & NDR_BUFFERS) {
273         }
274         return NDR_ERR_SUCCESS;
275 }
276
277 static enum ndr_err_code ndr_pull_drsuapi_DsBindInfo48(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsBindInfo48 *r)
278 {
279         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
280         if (ndr_flags & NDR_SCALARS) {
281                 NDR_CHECK(ndr_pull_align(ndr, 4));
282                 NDR_CHECK(ndr_pull_drsuapi_SupportedExtensions(ndr, NDR_SCALARS, &r->supported_extensions));
283                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->site_guid));
284                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pid));
285                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->repl_epoch));
286                 NDR_CHECK(ndr_pull_drsuapi_SupportedExtensionsExt(ndr, NDR_SCALARS, &r->supported_extensions_ext));
287                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->config_dn_guid));
288                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
289         }
290         if (ndr_flags & NDR_BUFFERS) {
291         }
292         return NDR_ERR_SUCCESS;
293 }
294
295 _PUBLIC_ void ndr_print_drsuapi_DsBindInfo48(struct ndr_print *ndr, const char *name, const struct drsuapi_DsBindInfo48 *r)
296 {
297         ndr_print_struct(ndr, name, "drsuapi_DsBindInfo48");
298         if (r == NULL) { ndr_print_null(ndr); return; }
299         ndr->depth++;
300         ndr_print_drsuapi_SupportedExtensions(ndr, "supported_extensions", r->supported_extensions);
301         ndr_print_GUID(ndr, "site_guid", &r->site_guid);
302         ndr_print_uint32(ndr, "pid", r->pid);
303         ndr_print_uint32(ndr, "repl_epoch", r->repl_epoch);
304         ndr_print_drsuapi_SupportedExtensionsExt(ndr, "supported_extensions_ext", r->supported_extensions_ext);
305         ndr_print_GUID(ndr, "config_dn_guid", &r->config_dn_guid);
306         ndr->depth--;
307 }
308
309 static enum ndr_err_code ndr_push_drsuapi_DsBindInfoFallBack(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsBindInfoFallBack *r)
310 {
311         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
312         if (ndr_flags & NDR_SCALARS) {
313                 NDR_CHECK(ndr_push_align(ndr, 4));
314                 {
315                         uint32_t _flags_save_DATA_BLOB = ndr->flags;
316                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
317                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->info));
318                         ndr->flags = _flags_save_DATA_BLOB;
319                 }
320                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
321         }
322         if (ndr_flags & NDR_BUFFERS) {
323         }
324         return NDR_ERR_SUCCESS;
325 }
326
327 static enum ndr_err_code ndr_pull_drsuapi_DsBindInfoFallBack(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsBindInfoFallBack *r)
328 {
329         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
330         if (ndr_flags & NDR_SCALARS) {
331                 NDR_CHECK(ndr_pull_align(ndr, 4));
332                 {
333                         uint32_t _flags_save_DATA_BLOB = ndr->flags;
334                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
335                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->info));
336                         ndr->flags = _flags_save_DATA_BLOB;
337                 }
338                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
339         }
340         if (ndr_flags & NDR_BUFFERS) {
341         }
342         return NDR_ERR_SUCCESS;
343 }
344
345 _PUBLIC_ void ndr_print_drsuapi_DsBindInfoFallBack(struct ndr_print *ndr, const char *name, const struct drsuapi_DsBindInfoFallBack *r)
346 {
347         ndr_print_struct(ndr, name, "drsuapi_DsBindInfoFallBack");
348         if (r == NULL) { ndr_print_null(ndr); return; }
349         ndr->depth++;
350         ndr_print_DATA_BLOB(ndr, "info", r->info);
351         ndr->depth--;
352 }
353
354 static enum ndr_err_code ndr_push_drsuapi_DsBindInfo(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsBindInfo *r)
355 {
356         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
357         if (ndr_flags & NDR_SCALARS) {
358                 uint32_t level = ndr_push_get_switch_value(ndr, r);
359                 NDR_CHECK(ndr_push_union_align(ndr, 1));
360                 switch (level) {
361                         case 24: {
362                                 {
363                                         struct ndr_push *_ndr_info24;
364                                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info24, 4, -1));
365                                         NDR_CHECK(ndr_push_drsuapi_DsBindInfo24(_ndr_info24, NDR_SCALARS, &r->info24));
366                                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info24, 4, -1));
367                                 }
368                         break; }
369
370                         case 28: {
371                                 {
372                                         struct ndr_push *_ndr_info28;
373                                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info28, 4, -1));
374                                         NDR_CHECK(ndr_push_drsuapi_DsBindInfo28(_ndr_info28, NDR_SCALARS, &r->info28));
375                                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info28, 4, -1));
376                                 }
377                         break; }
378
379                         case 48: {
380                                 {
381                                         struct ndr_push *_ndr_info48;
382                                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info48, 4, -1));
383                                         NDR_CHECK(ndr_push_drsuapi_DsBindInfo48(_ndr_info48, NDR_SCALARS, &r->info48));
384                                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info48, 4, -1));
385                                 }
386                         break; }
387
388                         default: {
389                                 {
390                                         struct ndr_push *_ndr_FallBack;
391                                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_FallBack, 4, -1));
392                                         NDR_CHECK(ndr_push_drsuapi_DsBindInfoFallBack(_ndr_FallBack, NDR_SCALARS, &r->FallBack));
393                                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_FallBack, 4, -1));
394                                 }
395                         break; }
396
397                 }
398         }
399         if (ndr_flags & NDR_BUFFERS) {
400                 uint32_t level = ndr_push_get_switch_value(ndr, r);
401                 switch (level) {
402                         case 24:
403                         break;
404
405                         case 28:
406                         break;
407
408                         case 48:
409                         break;
410
411                         default:
412                         break;
413
414                 }
415         }
416         return NDR_ERR_SUCCESS;
417 }
418
419 static enum ndr_err_code ndr_pull_drsuapi_DsBindInfo(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsBindInfo *r)
420 {
421         uint32_t level;
422         level = ndr_pull_get_switch_value(ndr, r);
423         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
424         if (ndr_flags & NDR_SCALARS) {
425                 NDR_CHECK(ndr_pull_union_align(ndr, 1));
426                 switch (level) {
427                         case 24: {
428                                 {
429                                         struct ndr_pull *_ndr_info24;
430                                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info24, 4, -1));
431                                         NDR_CHECK(ndr_pull_drsuapi_DsBindInfo24(_ndr_info24, NDR_SCALARS, &r->info24));
432                                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info24, 4, -1));
433                                 }
434                         break; }
435
436                         case 28: {
437                                 {
438                                         struct ndr_pull *_ndr_info28;
439                                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info28, 4, -1));
440                                         NDR_CHECK(ndr_pull_drsuapi_DsBindInfo28(_ndr_info28, NDR_SCALARS, &r->info28));
441                                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info28, 4, -1));
442                                 }
443                         break; }
444
445                         case 48: {
446                                 {
447                                         struct ndr_pull *_ndr_info48;
448                                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info48, 4, -1));
449                                         NDR_CHECK(ndr_pull_drsuapi_DsBindInfo48(_ndr_info48, NDR_SCALARS, &r->info48));
450                                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info48, 4, -1));
451                                 }
452                         break; }
453
454                         default: {
455                                 {
456                                         struct ndr_pull *_ndr_FallBack;
457                                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_FallBack, 4, -1));
458                                         NDR_CHECK(ndr_pull_drsuapi_DsBindInfoFallBack(_ndr_FallBack, NDR_SCALARS, &r->FallBack));
459                                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_FallBack, 4, -1));
460                                 }
461                         break; }
462
463                 }
464         }
465         if (ndr_flags & NDR_BUFFERS) {
466                 switch (level) {
467                         case 24:
468                         break;
469
470                         case 28:
471                         break;
472
473                         case 48:
474                         break;
475
476                         default:
477                         break;
478
479                 }
480         }
481         return NDR_ERR_SUCCESS;
482 }
483
484 _PUBLIC_ void ndr_print_drsuapi_DsBindInfo(struct ndr_print *ndr, const char *name, const union drsuapi_DsBindInfo *r)
485 {
486         uint32_t level;
487         level = ndr_print_get_switch_value(ndr, r);
488         ndr_print_union(ndr, name, level, "drsuapi_DsBindInfo");
489         switch (level) {
490                 case 24:
491                         ndr_print_drsuapi_DsBindInfo24(ndr, "info24", &r->info24);
492                 break;
493
494                 case 28:
495                         ndr_print_drsuapi_DsBindInfo28(ndr, "info28", &r->info28);
496                 break;
497
498                 case 48:
499                         ndr_print_drsuapi_DsBindInfo48(ndr, "info48", &r->info48);
500                 break;
501
502                 default:
503                         ndr_print_drsuapi_DsBindInfoFallBack(ndr, "FallBack", &r->FallBack);
504                 break;
505
506         }
507 }
508
509 static enum ndr_err_code ndr_push_drsuapi_DsBindInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsBindInfoCtr *r)
510 {
511         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
512         if (ndr_flags & NDR_SCALARS) {
513                 NDR_CHECK(ndr_push_align(ndr, 4));
514                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
515                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->length));
516                 NDR_CHECK(ndr_push_drsuapi_DsBindInfo(ndr, NDR_SCALARS, &r->info));
517                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
518         }
519         if (ndr_flags & NDR_BUFFERS) {
520         }
521         return NDR_ERR_SUCCESS;
522 }
523
524 static enum ndr_err_code ndr_pull_drsuapi_DsBindInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsBindInfoCtr *r)
525 {
526         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
527         if (ndr_flags & NDR_SCALARS) {
528                 NDR_CHECK(ndr_pull_align(ndr, 4));
529                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
530                 if (r->length < 1 || r->length > 10000) {
531                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
532                 }
533                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->length));
534                 NDR_CHECK(ndr_pull_drsuapi_DsBindInfo(ndr, NDR_SCALARS, &r->info));
535                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
536         }
537         if (ndr_flags & NDR_BUFFERS) {
538         }
539         return NDR_ERR_SUCCESS;
540 }
541
542 _PUBLIC_ void ndr_print_drsuapi_DsBindInfoCtr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsBindInfoCtr *r)
543 {
544         ndr_print_struct(ndr, name, "drsuapi_DsBindInfoCtr");
545         if (r == NULL) { ndr_print_null(ndr); return; }
546         ndr->depth++;
547         ndr_print_uint32(ndr, "length", r->length);
548         ndr_print_set_switch_value(ndr, &r->info, r->length);
549         ndr_print_drsuapi_DsBindInfo(ndr, "info", &r->info);
550         ndr->depth--;
551 }
552
553 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaObjectIdentifier(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaObjectIdentifier *r)
554 {
555         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
556         if (ndr_flags & NDR_SCALARS) {
557                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, strlen_m(r->dn) + 1));
558                 NDR_CHECK(ndr_push_align(ndr, 4));
559                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_drsuapi_DsReplicaObjectIdentifier(r, ndr->flags) - 4));
560                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_dom_sid28(&r->sid, ndr->flags)));
561                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
562                 NDR_CHECK(ndr_push_dom_sid28(ndr, NDR_SCALARS, &r->sid));
563                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, strlen_m(r->dn)));
564                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dn, strlen_m(r->dn) + 1, sizeof(uint16_t), CH_UTF16));
565                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
566         }
567         if (ndr_flags & NDR_BUFFERS) {
568                 NDR_CHECK(ndr_push_dom_sid28(ndr, NDR_BUFFERS, &r->sid));
569         }
570         return NDR_ERR_SUCCESS;
571 }
572
573 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaObjectIdentifier(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaObjectIdentifier *r)
574 {
575         uint32_t size_dn_0 = 0;
576         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
577         if (ndr_flags & NDR_SCALARS) {
578                 NDR_CHECK(ndr_pull_array_size(ndr, &r->dn));
579                 NDR_CHECK(ndr_pull_align(ndr, 4));
580                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size));
581                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size_sid));
582                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
583                 NDR_CHECK(ndr_pull_dom_sid28(ndr, NDR_SCALARS, &r->sid));
584                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size_dn));
585                 size_dn_0 = ndr_get_array_size(ndr, &r->dn);
586                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dn, size_dn_0, sizeof(uint16_t), CH_UTF16));
587                 if (r->dn) {
588                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->dn, r->__ndr_size_dn + 1));
589                 }
590                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
591         }
592         if (ndr_flags & NDR_BUFFERS) {
593                 NDR_CHECK(ndr_pull_dom_sid28(ndr, NDR_BUFFERS, &r->sid));
594         }
595         return NDR_ERR_SUCCESS;
596 }
597
598 _PUBLIC_ void ndr_print_drsuapi_DsReplicaObjectIdentifier(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaObjectIdentifier *r)
599 {
600         ndr_print_struct(ndr, name, "drsuapi_DsReplicaObjectIdentifier");
601         if (r == NULL) { ndr_print_null(ndr); return; }
602         ndr->depth++;
603         ndr_print_uint32(ndr, "__ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_drsuapi_DsReplicaObjectIdentifier(r, ndr->flags) - 4:r->__ndr_size);
604         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);
605         ndr_print_GUID(ndr, "guid", &r->guid);
606         ndr_print_dom_sid28(ndr, "sid", &r->sid);
607         ndr_print_uint32(ndr, "__ndr_size_dn", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?strlen_m(r->dn):r->__ndr_size_dn);
608         ndr_print_string(ndr, "dn", r->dn);
609         ndr->depth--;
610 }
611
612 _PUBLIC_ size_t ndr_size_drsuapi_DsReplicaObjectIdentifier(const struct drsuapi_DsReplicaObjectIdentifier *r, int flags)
613 {
614         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_drsuapi_DsReplicaObjectIdentifier);
615 }
616
617 static enum ndr_err_code ndr_push_drsuapi_DsReplicaSyncRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaSyncRequest1 *r)
618 {
619         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
620         if (ndr_flags & NDR_SCALARS) {
621                 NDR_CHECK(ndr_push_align(ndr, 5));
622                 if (r->naming_context == NULL) {
623                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
624                 }
625                 NDR_CHECK(ndr_push_ref_ptr(ndr));
626                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_guid));
627                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->source_dsa_dns));
628                 NDR_CHECK(ndr_push_drsuapi_DrsOptions(ndr, NDR_SCALARS, r->options));
629                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
630         }
631         if (ndr_flags & NDR_BUFFERS) {
632                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
633                 if (r->source_dsa_dns) {
634                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->source_dsa_dns, CH_DOS)));
635                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
636                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->source_dsa_dns, CH_DOS)));
637                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->source_dsa_dns, ndr_charset_length(r->source_dsa_dns, CH_DOS), sizeof(uint8_t), CH_DOS));
638                 }
639         }
640         return NDR_ERR_SUCCESS;
641 }
642
643 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaSyncRequest1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaSyncRequest1 *r)
644 {
645         uint32_t _ptr_naming_context;
646         TALLOC_CTX *_mem_save_naming_context_0;
647         uint32_t _ptr_source_dsa_dns;
648         uint32_t size_source_dsa_dns_1 = 0;
649         uint32_t length_source_dsa_dns_1 = 0;
650         TALLOC_CTX *_mem_save_source_dsa_dns_0;
651         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
652         if (ndr_flags & NDR_SCALARS) {
653                 NDR_CHECK(ndr_pull_align(ndr, 5));
654                 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_naming_context));
655                 if (_ptr_naming_context) {
656                         NDR_PULL_ALLOC(ndr, r->naming_context);
657                 } else {
658                         r->naming_context = NULL;
659                 }
660                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_guid));
661                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_source_dsa_dns));
662                 if (_ptr_source_dsa_dns) {
663                         NDR_PULL_ALLOC(ndr, r->source_dsa_dns);
664                 } else {
665                         r->source_dsa_dns = NULL;
666                 }
667                 NDR_CHECK(ndr_pull_drsuapi_DrsOptions(ndr, NDR_SCALARS, &r->options));
668                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
669         }
670         if (ndr_flags & NDR_BUFFERS) {
671                 _mem_save_naming_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
672                 NDR_PULL_SET_MEM_CTX(ndr, r->naming_context, 0);
673                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
674                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_naming_context_0, 0);
675                 if (r->source_dsa_dns) {
676                         _mem_save_source_dsa_dns_0 = NDR_PULL_GET_MEM_CTX(ndr);
677                         NDR_PULL_SET_MEM_CTX(ndr, r->source_dsa_dns, 0);
678                         NDR_CHECK(ndr_pull_array_size(ndr, &r->source_dsa_dns));
679                         NDR_CHECK(ndr_pull_array_length(ndr, &r->source_dsa_dns));
680                         size_source_dsa_dns_1 = ndr_get_array_size(ndr, &r->source_dsa_dns);
681                         length_source_dsa_dns_1 = ndr_get_array_length(ndr, &r->source_dsa_dns);
682                         if (length_source_dsa_dns_1 > size_source_dsa_dns_1) {
683                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_source_dsa_dns_1, length_source_dsa_dns_1);
684                         }
685                         NDR_CHECK(ndr_check_string_terminator(ndr, length_source_dsa_dns_1, sizeof(uint8_t)));
686                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->source_dsa_dns, length_source_dsa_dns_1, sizeof(uint8_t), CH_DOS));
687                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_source_dsa_dns_0, 0);
688                 }
689         }
690         return NDR_ERR_SUCCESS;
691 }
692
693 _PUBLIC_ void ndr_print_drsuapi_DsReplicaSyncRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaSyncRequest1 *r)
694 {
695         ndr_print_struct(ndr, name, "drsuapi_DsReplicaSyncRequest1");
696         if (r == NULL) { ndr_print_null(ndr); return; }
697         ndr->depth++;
698         ndr_print_ptr(ndr, "naming_context", r->naming_context);
699         ndr->depth++;
700         ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "naming_context", r->naming_context);
701         ndr->depth--;
702         ndr_print_GUID(ndr, "source_dsa_guid", &r->source_dsa_guid);
703         ndr_print_ptr(ndr, "source_dsa_dns", r->source_dsa_dns);
704         ndr->depth++;
705         if (r->source_dsa_dns) {
706                 ndr_print_string(ndr, "source_dsa_dns", r->source_dsa_dns);
707         }
708         ndr->depth--;
709         ndr_print_drsuapi_DrsOptions(ndr, "options", r->options);
710         ndr->depth--;
711 }
712
713 static enum ndr_err_code ndr_push_drsuapi_DsReplicaSyncRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsReplicaSyncRequest *r)
714 {
715         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
716         if (ndr_flags & NDR_SCALARS) {
717                 uint32_t level = ndr_push_get_switch_value(ndr, r);
718                 NDR_CHECK(ndr_push_union_align(ndr, 5));
719                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
720                 NDR_CHECK(ndr_push_union_align(ndr, 5));
721                 switch (level) {
722                         case 1: {
723                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaSyncRequest1(ndr, NDR_SCALARS, &r->req1));
724                         break; }
725
726                         default:
727                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
728                 }
729         }
730         if (ndr_flags & NDR_BUFFERS) {
731                 uint32_t level = ndr_push_get_switch_value(ndr, r);
732                 switch (level) {
733                         case 1:
734                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaSyncRequest1(ndr, NDR_BUFFERS, &r->req1));
735                         break;
736
737                         default:
738                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
739                 }
740         }
741         return NDR_ERR_SUCCESS;
742 }
743
744 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaSyncRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsReplicaSyncRequest *r)
745 {
746         uint32_t level;
747         uint32_t _level;
748         level = ndr_pull_get_switch_value(ndr, r);
749         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
750         if (ndr_flags & NDR_SCALARS) {
751                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
752                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
753                 if (_level != level) {
754                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
755                 }
756                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
757                 switch (level) {
758                         case 1: {
759                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaSyncRequest1(ndr, NDR_SCALARS, &r->req1));
760                         break; }
761
762                         default:
763                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
764                 }
765         }
766         if (ndr_flags & NDR_BUFFERS) {
767                 switch (level) {
768                         case 1:
769                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaSyncRequest1(ndr, NDR_BUFFERS, &r->req1));
770                         break;
771
772                         default:
773                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
774                 }
775         }
776         return NDR_ERR_SUCCESS;
777 }
778
779 _PUBLIC_ void ndr_print_drsuapi_DsReplicaSyncRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsReplicaSyncRequest *r)
780 {
781         uint32_t level;
782         level = ndr_print_get_switch_value(ndr, r);
783         ndr_print_union(ndr, name, level, "drsuapi_DsReplicaSyncRequest");
784         switch (level) {
785                 case 1:
786                         ndr_print_drsuapi_DsReplicaSyncRequest1(ndr, "req1", &r->req1);
787                 break;
788
789                 default:
790                         ndr_print_bad_level(ndr, name, level);
791         }
792 }
793
794 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaHighWaterMark(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaHighWaterMark *r)
795 {
796         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
797         if (ndr_flags & NDR_SCALARS) {
798                 NDR_CHECK(ndr_push_align(ndr, 8));
799                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->tmp_highest_usn));
800                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->reserved_usn));
801                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->highest_usn));
802                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
803         }
804         if (ndr_flags & NDR_BUFFERS) {
805         }
806         return NDR_ERR_SUCCESS;
807 }
808
809 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaHighWaterMark(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaHighWaterMark *r)
810 {
811         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
812         if (ndr_flags & NDR_SCALARS) {
813                 NDR_CHECK(ndr_pull_align(ndr, 8));
814                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->tmp_highest_usn));
815                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->reserved_usn));
816                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->highest_usn));
817                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
818         }
819         if (ndr_flags & NDR_BUFFERS) {
820         }
821         return NDR_ERR_SUCCESS;
822 }
823
824 _PUBLIC_ void ndr_print_drsuapi_DsReplicaHighWaterMark(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaHighWaterMark *r)
825 {
826         ndr_print_struct(ndr, name, "drsuapi_DsReplicaHighWaterMark");
827         if (r == NULL) { ndr_print_null(ndr); return; }
828         ndr->depth++;
829         ndr_print_hyper(ndr, "tmp_highest_usn", r->tmp_highest_usn);
830         ndr_print_hyper(ndr, "reserved_usn", r->reserved_usn);
831         ndr_print_hyper(ndr, "highest_usn", r->highest_usn);
832         ndr->depth--;
833 }
834
835 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaCursor(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaCursor *r)
836 {
837         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
838         if (ndr_flags & NDR_SCALARS) {
839                 NDR_CHECK(ndr_push_align(ndr, 8));
840                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
841                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->highest_usn));
842                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
843         }
844         if (ndr_flags & NDR_BUFFERS) {
845         }
846         return NDR_ERR_SUCCESS;
847 }
848
849 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaCursor(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaCursor *r)
850 {
851         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
852         if (ndr_flags & NDR_SCALARS) {
853                 NDR_CHECK(ndr_pull_align(ndr, 8));
854                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
855                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->highest_usn));
856                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
857         }
858         if (ndr_flags & NDR_BUFFERS) {
859         }
860         return NDR_ERR_SUCCESS;
861 }
862
863 _PUBLIC_ void ndr_print_drsuapi_DsReplicaCursor(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaCursor *r)
864 {
865         ndr_print_struct(ndr, name, "drsuapi_DsReplicaCursor");
866         if (r == NULL) { ndr_print_null(ndr); return; }
867         ndr->depth++;
868         ndr_print_GUID(ndr, "source_dsa_invocation_id", &r->source_dsa_invocation_id);
869         ndr_print_hyper(ndr, "highest_usn", r->highest_usn);
870         ndr->depth--;
871 }
872
873 static enum ndr_err_code ndr_push_drsuapi_DsReplicaCursorCtrEx(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaCursorCtrEx *r)
874 {
875         uint32_t cntr_cursors_0;
876         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
877         if (ndr_flags & NDR_SCALARS) {
878                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
879                 NDR_CHECK(ndr_push_align(ndr, 8));
880                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 1));
881                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
882                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
883                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
884                 for (cntr_cursors_0 = 0; cntr_cursors_0 < r->count; cntr_cursors_0++) {
885                         NDR_CHECK(ndr_push_drsuapi_DsReplicaCursor(ndr, NDR_SCALARS, &r->cursors[cntr_cursors_0]));
886                 }
887                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
888         }
889         if (ndr_flags & NDR_BUFFERS) {
890         }
891         return NDR_ERR_SUCCESS;
892 }
893
894 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaCursorCtrEx(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaCursorCtrEx *r)
895 {
896         uint32_t size_cursors_0 = 0;
897         uint32_t cntr_cursors_0;
898         TALLOC_CTX *_mem_save_cursors_0;
899         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
900         if (ndr_flags & NDR_SCALARS) {
901                 NDR_CHECK(ndr_pull_array_size(ndr, &r->cursors));
902                 NDR_CHECK(ndr_pull_align(ndr, 8));
903                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
904                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved1));
905                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
906                 if (r->count > 0x100000) {
907                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
908                 }
909                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
910                 size_cursors_0 = ndr_get_array_size(ndr, &r->cursors);
911                 NDR_PULL_ALLOC_N(ndr, r->cursors, size_cursors_0);
912                 _mem_save_cursors_0 = NDR_PULL_GET_MEM_CTX(ndr);
913                 NDR_PULL_SET_MEM_CTX(ndr, r->cursors, 0);
914                 for (cntr_cursors_0 = 0; cntr_cursors_0 < size_cursors_0; cntr_cursors_0++) {
915                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursor(ndr, NDR_SCALARS, &r->cursors[cntr_cursors_0]));
916                 }
917                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_cursors_0, 0);
918                 if (r->cursors) {
919                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->cursors, r->count));
920                 }
921                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
922         }
923         if (ndr_flags & NDR_BUFFERS) {
924         }
925         return NDR_ERR_SUCCESS;
926 }
927
928 _PUBLIC_ void ndr_print_drsuapi_DsReplicaCursorCtrEx(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaCursorCtrEx *r)
929 {
930         uint32_t cntr_cursors_0;
931         ndr_print_struct(ndr, name, "drsuapi_DsReplicaCursorCtrEx");
932         if (r == NULL) { ndr_print_null(ndr); return; }
933         ndr->depth++;
934         ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?1:r->version);
935         ndr_print_uint32(ndr, "reserved1", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->reserved1);
936         ndr_print_uint32(ndr, "count", r->count);
937         ndr_print_uint32(ndr, "reserved2", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->reserved2);
938         ndr->print(ndr, "%s: ARRAY(%d)", "cursors", (int)r->count);
939         ndr->depth++;
940         for (cntr_cursors_0=0;cntr_cursors_0<r->count;cntr_cursors_0++) {
941                 ndr_print_drsuapi_DsReplicaCursor(ndr, "cursors", &r->cursors[cntr_cursors_0]);
942         }
943         ndr->depth--;
944         ndr->depth--;
945 }
946
947 static enum ndr_err_code ndr_push_drsuapi_DsExtendedOperation(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsExtendedOperation r)
948 {
949         {
950                 uint32_t _flags_save_ENUM = ndr->flags;
951                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
952                 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
953                 ndr->flags = _flags_save_ENUM;
954         }
955         return NDR_ERR_SUCCESS;
956 }
957
958 static enum ndr_err_code ndr_pull_drsuapi_DsExtendedOperation(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsExtendedOperation *r)
959 {
960         uint32_t v;
961         {
962                 uint32_t _flags_save_ENUM = ndr->flags;
963                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
964                 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
965                 *r = v;
966                 ndr->flags = _flags_save_ENUM;
967         }
968         return NDR_ERR_SUCCESS;
969 }
970
971 _PUBLIC_ void ndr_print_drsuapi_DsExtendedOperation(struct ndr_print *ndr, const char *name, enum drsuapi_DsExtendedOperation r)
972 {
973         const char *val = NULL;
974
975         {
976                 uint32_t _flags_save_ENUM = ndr->flags;
977                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
978                 switch (r) {
979                         case DRSUAPI_EXOP_NONE: val = "DRSUAPI_EXOP_NONE"; break;
980                         case DRSUAPI_EXOP_FSMO_REQ_ROLE: val = "DRSUAPI_EXOP_FSMO_REQ_ROLE"; break;
981                         case DRSUAPI_EXOP_FSMO_RID_ALLOC: val = "DRSUAPI_EXOP_FSMO_RID_ALLOC"; break;
982                         case DRSUAPI_EXOP_FSMO_RID_REQ_ROLE: val = "DRSUAPI_EXOP_FSMO_RID_REQ_ROLE"; break;
983                         case DRSUAPI_EXOP_FSMO_REQ_PDC: val = "DRSUAPI_EXOP_FSMO_REQ_PDC"; break;
984                         case DRSUAPI_EXOP_FSMO_ABANDON_ROLE: val = "DRSUAPI_EXOP_FSMO_ABANDON_ROLE"; break;
985                         case DRSUAPI_EXOP_REPL_OBJ: val = "DRSUAPI_EXOP_REPL_OBJ"; break;
986                         case DRSUAPI_EXOP_REPL_SECRET: val = "DRSUAPI_EXOP_REPL_SECRET"; 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_DsExtendedError(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsExtendedError r)
994 {
995         {
996                 uint32_t _flags_save_ENUM = ndr->flags;
997                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
998                 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
999                 ndr->flags = _flags_save_ENUM;
1000         }
1001         return NDR_ERR_SUCCESS;
1002 }
1003
1004 static enum ndr_err_code ndr_pull_drsuapi_DsExtendedError(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsExtendedError *r)
1005 {
1006         uint32_t v;
1007         {
1008                 uint32_t _flags_save_ENUM = ndr->flags;
1009                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1010                 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
1011                 *r = v;
1012                 ndr->flags = _flags_save_ENUM;
1013         }
1014         return NDR_ERR_SUCCESS;
1015 }
1016
1017 _PUBLIC_ void ndr_print_drsuapi_DsExtendedError(struct ndr_print *ndr, const char *name, enum drsuapi_DsExtendedError r)
1018 {
1019         const char *val = NULL;
1020
1021         {
1022                 uint32_t _flags_save_ENUM = ndr->flags;
1023                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1024                 switch (r) {
1025                         case DRSUAPI_EXOP_ERR_NONE: val = "DRSUAPI_EXOP_ERR_NONE"; break;
1026                         case DRSUAPI_EXOP_ERR_SUCCESS: val = "DRSUAPI_EXOP_ERR_SUCCESS"; break;
1027                         case DRSUAPI_EXOP_ERR_UNKNOWN_OP: val = "DRSUAPI_EXOP_ERR_UNKNOWN_OP"; break;
1028                         case DRSUAPI_EXOP_ERR_FSMO_NOT_OWNER: val = "DRSUAPI_EXOP_ERR_FSMO_NOT_OWNER"; break;
1029                         case DRSUAPI_EXOP_ERR_UPDATE_ERR: val = "DRSUAPI_EXOP_ERR_UPDATE_ERR"; break;
1030                         case DRSUAPI_EXOP_ERR_EXCEPTION: val = "DRSUAPI_EXOP_ERR_EXCEPTION"; break;
1031                         case DRSUAPI_EXOP_ERR_UNKNOWN_CALLER: val = "DRSUAPI_EXOP_ERR_UNKNOWN_CALLER"; break;
1032                         case DRSUAPI_EXOP_ERR_RID_ALLOC: val = "DRSUAPI_EXOP_ERR_RID_ALLOC"; break;
1033                         case DRSUAPI_EXOP_ERR_FSMO_OWNER_DELETED: val = "DRSUAPI_EXOP_ERR_FSMO_OWNER_DELETED"; break;
1034                         case DRSUAPI_EXOP_ERR_FMSO_PENDING_OP: val = "DRSUAPI_EXOP_ERR_FMSO_PENDING_OP"; break;
1035                         case DRSUAPI_EXOP_ERR_MISMATCH: val = "DRSUAPI_EXOP_ERR_MISMATCH"; break;
1036                         case DRSUAPI_EXOP_ERR_COULDNT_CONTACT: val = "DRSUAPI_EXOP_ERR_COULDNT_CONTACT"; break;
1037                         case DRSUAPI_EXOP_ERR_FSMO_REFUSING_ROLES: val = "DRSUAPI_EXOP_ERR_FSMO_REFUSING_ROLES"; break;
1038                         case DRSUAPI_EXOP_ERR_DIR_ERROR: val = "DRSUAPI_EXOP_ERR_DIR_ERROR"; break;
1039                         case DRSUAPI_EXOP_ERR_FSMO_MISSING_SETTINGS: val = "DRSUAPI_EXOP_ERR_FSMO_MISSING_SETTINGS"; break;
1040                         case DRSUAPI_EXOP_ERR_ACCESS_DENIED: val = "DRSUAPI_EXOP_ERR_ACCESS_DENIED"; break;
1041                         case DRSUAPI_EXOP_ERR_PARAM_ERROR: val = "DRSUAPI_EXOP_ERR_PARAM_ERROR"; break;
1042                 }
1043                 ndr_print_enum(ndr, name, "ENUM", val, r);
1044                 ndr->flags = _flags_save_ENUM;
1045         }
1046 }
1047
1048 static enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesRequest5(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetNCChangesRequest5 *r)
1049 {
1050         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
1051         if (ndr_flags & NDR_SCALARS) {
1052                 NDR_CHECK(ndr_push_align(ndr, 8));
1053                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->destination_dsa_guid));
1054                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
1055                 if (r->naming_context == NULL) {
1056                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1057                 }
1058                 NDR_CHECK(ndr_push_ref_ptr(ndr));
1059                 NDR_CHECK(ndr_push_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->highwatermark));
1060                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->uptodateness_vector));
1061                 NDR_CHECK(ndr_push_drsuapi_DrsOptions(ndr, NDR_SCALARS, r->replica_flags));
1062                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_object_count));
1063                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_ndr_size));
1064                 NDR_CHECK(ndr_push_drsuapi_DsExtendedOperation(ndr, NDR_SCALARS, r->extended_op));
1065                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->fsmo_info));
1066                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
1067         }
1068         if (ndr_flags & NDR_BUFFERS) {
1069                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
1070                 if (r->uptodateness_vector) {
1071                         NDR_CHECK(ndr_push_drsuapi_DsReplicaCursorCtrEx(ndr, NDR_SCALARS, r->uptodateness_vector));
1072                 }
1073         }
1074         return NDR_ERR_SUCCESS;
1075 }
1076
1077 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesRequest5(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNCChangesRequest5 *r)
1078 {
1079         uint32_t _ptr_naming_context;
1080         TALLOC_CTX *_mem_save_naming_context_0;
1081         uint32_t _ptr_uptodateness_vector;
1082         TALLOC_CTX *_mem_save_uptodateness_vector_0;
1083         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
1084         if (ndr_flags & NDR_SCALARS) {
1085                 NDR_CHECK(ndr_pull_align(ndr, 8));
1086                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->destination_dsa_guid));
1087                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
1088                 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_naming_context));
1089                 if (_ptr_naming_context) {
1090                         NDR_PULL_ALLOC(ndr, r->naming_context);
1091                 } else {
1092                         r->naming_context = NULL;
1093                 }
1094                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->highwatermark));
1095                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_uptodateness_vector));
1096                 if (_ptr_uptodateness_vector) {
1097                         NDR_PULL_ALLOC(ndr, r->uptodateness_vector);
1098                 } else {
1099                         r->uptodateness_vector = NULL;
1100                 }
1101                 NDR_CHECK(ndr_pull_drsuapi_DrsOptions(ndr, NDR_SCALARS, &r->replica_flags));
1102                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_object_count));
1103                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_ndr_size));
1104                 NDR_CHECK(ndr_pull_drsuapi_DsExtendedOperation(ndr, NDR_SCALARS, &r->extended_op));
1105                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->fsmo_info));
1106                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
1107         }
1108         if (ndr_flags & NDR_BUFFERS) {
1109                 _mem_save_naming_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
1110                 NDR_PULL_SET_MEM_CTX(ndr, r->naming_context, 0);
1111                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
1112                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_naming_context_0, 0);
1113                 if (r->uptodateness_vector) {
1114                         _mem_save_uptodateness_vector_0 = NDR_PULL_GET_MEM_CTX(ndr);
1115                         NDR_PULL_SET_MEM_CTX(ndr, r->uptodateness_vector, 0);
1116                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursorCtrEx(ndr, NDR_SCALARS, r->uptodateness_vector));
1117                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_uptodateness_vector_0, 0);
1118                 }
1119         }
1120         return NDR_ERR_SUCCESS;
1121 }
1122
1123 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesRequest5(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesRequest5 *r)
1124 {
1125         ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesRequest5");
1126         if (r == NULL) { ndr_print_null(ndr); return; }
1127         ndr->depth++;
1128         ndr_print_GUID(ndr, "destination_dsa_guid", &r->destination_dsa_guid);
1129         ndr_print_GUID(ndr, "source_dsa_invocation_id", &r->source_dsa_invocation_id);
1130         ndr_print_ptr(ndr, "naming_context", r->naming_context);
1131         ndr->depth++;
1132         ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "naming_context", r->naming_context);
1133         ndr->depth--;
1134         ndr_print_drsuapi_DsReplicaHighWaterMark(ndr, "highwatermark", &r->highwatermark);
1135         ndr_print_ptr(ndr, "uptodateness_vector", r->uptodateness_vector);
1136         ndr->depth++;
1137         if (r->uptodateness_vector) {
1138                 ndr_print_drsuapi_DsReplicaCursorCtrEx(ndr, "uptodateness_vector", r->uptodateness_vector);
1139         }
1140         ndr->depth--;
1141         ndr_print_drsuapi_DrsOptions(ndr, "replica_flags", r->replica_flags);
1142         ndr_print_uint32(ndr, "max_object_count", r->max_object_count);
1143         ndr_print_uint32(ndr, "max_ndr_size", r->max_ndr_size);
1144         ndr_print_drsuapi_DsExtendedOperation(ndr, "extended_op", r->extended_op);
1145         ndr_print_hyper(ndr, "fsmo_info", r->fsmo_info);
1146         ndr->depth--;
1147 }
1148
1149 static enum ndr_err_code ndr_push_drsuapi_DsReplicaOID(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaOID *r)
1150 {
1151         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
1152         if (ndr_flags & NDR_SCALARS) {
1153                 NDR_CHECK(ndr_push_align(ndr, 5));
1154                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
1155                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->binary_oid));
1156                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1157         }
1158         if (ndr_flags & NDR_BUFFERS) {
1159                 if (r->binary_oid) {
1160                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->length));
1161                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->binary_oid, r->length));
1162                 }
1163         }
1164         return NDR_ERR_SUCCESS;
1165 }
1166
1167 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaOID(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaOID *r)
1168 {
1169         uint32_t _ptr_binary_oid;
1170         uint32_t size_binary_oid_1 = 0;
1171         TALLOC_CTX *_mem_save_binary_oid_0;
1172         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
1173         if (ndr_flags & NDR_SCALARS) {
1174                 NDR_CHECK(ndr_pull_align(ndr, 5));
1175                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
1176                 if (r->length > 10000) {
1177                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
1178                 }
1179                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_binary_oid));
1180                 if (_ptr_binary_oid) {
1181                         NDR_PULL_ALLOC(ndr, r->binary_oid);
1182                 } else {
1183                         r->binary_oid = NULL;
1184                 }
1185                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1186         }
1187         if (ndr_flags & NDR_BUFFERS) {
1188                 if (r->binary_oid) {
1189                         _mem_save_binary_oid_0 = NDR_PULL_GET_MEM_CTX(ndr);
1190                         NDR_PULL_SET_MEM_CTX(ndr, r->binary_oid, 0);
1191                         NDR_CHECK(ndr_pull_array_size(ndr, &r->binary_oid));
1192                         size_binary_oid_1 = ndr_get_array_size(ndr, &r->binary_oid);
1193                         NDR_PULL_ALLOC_N(ndr, r->binary_oid, size_binary_oid_1);
1194                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->binary_oid, size_binary_oid_1));
1195                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_binary_oid_0, 0);
1196                 }
1197                 if (r->binary_oid) {
1198                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->binary_oid, r->length));
1199                 }
1200         }
1201         return NDR_ERR_SUCCESS;
1202 }
1203
1204 static enum ndr_err_code ndr_push_drsuapi_DsReplicaOIDMapping(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaOIDMapping *r)
1205 {
1206         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
1207         if (ndr_flags & NDR_SCALARS) {
1208                 NDR_CHECK(ndr_push_align(ndr, 5));
1209                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->id_prefix));
1210                 NDR_CHECK(ndr_push_drsuapi_DsReplicaOID(ndr, NDR_SCALARS, &r->oid));
1211                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1212         }
1213         if (ndr_flags & NDR_BUFFERS) {
1214                 NDR_CHECK(ndr_push_drsuapi_DsReplicaOID(ndr, NDR_BUFFERS, &r->oid));
1215         }
1216         return NDR_ERR_SUCCESS;
1217 }
1218
1219 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaOIDMapping(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaOIDMapping *r)
1220 {
1221         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
1222         if (ndr_flags & NDR_SCALARS) {
1223                 NDR_CHECK(ndr_pull_align(ndr, 5));
1224                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->id_prefix));
1225                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOID(ndr, NDR_SCALARS, &r->oid));
1226                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1227         }
1228         if (ndr_flags & NDR_BUFFERS) {
1229                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOID(ndr, NDR_BUFFERS, &r->oid));
1230         }
1231         return NDR_ERR_SUCCESS;
1232 }
1233
1234 _PUBLIC_ void ndr_print_drsuapi_DsReplicaOIDMapping(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaOIDMapping *r)
1235 {
1236         ndr_print_struct(ndr, name, "drsuapi_DsReplicaOIDMapping");
1237         if (r == NULL) { ndr_print_null(ndr); return; }
1238         ndr->depth++;
1239         ndr_print_uint32(ndr, "id_prefix", r->id_prefix);
1240         ndr_print_drsuapi_DsReplicaOID(ndr, "oid", &r->oid);
1241         ndr->depth--;
1242 }
1243
1244 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaOIDMapping_Ctr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaOIDMapping_Ctr *r)
1245 {
1246         uint32_t cntr_mappings_1;
1247         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
1248         if (ndr_flags & NDR_SCALARS) {
1249                 NDR_CHECK(ndr_push_align(ndr, 5));
1250                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_mappings));
1251                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->mappings));
1252                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1253         }
1254         if (ndr_flags & NDR_BUFFERS) {
1255                 if (r->mappings) {
1256                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->num_mappings));
1257                         for (cntr_mappings_1 = 0; cntr_mappings_1 < r->num_mappings; cntr_mappings_1++) {
1258                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaOIDMapping(ndr, NDR_SCALARS, &r->mappings[cntr_mappings_1]));
1259                         }
1260                         for (cntr_mappings_1 = 0; cntr_mappings_1 < r->num_mappings; cntr_mappings_1++) {
1261                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaOIDMapping(ndr, NDR_BUFFERS, &r->mappings[cntr_mappings_1]));
1262                         }
1263                 }
1264         }
1265         return NDR_ERR_SUCCESS;
1266 }
1267
1268 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaOIDMapping_Ctr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaOIDMapping_Ctr *r)
1269 {
1270         uint32_t _ptr_mappings;
1271         uint32_t size_mappings_1 = 0;
1272         uint32_t cntr_mappings_1;
1273         TALLOC_CTX *_mem_save_mappings_0;
1274         TALLOC_CTX *_mem_save_mappings_1;
1275         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
1276         if (ndr_flags & NDR_SCALARS) {
1277                 NDR_CHECK(ndr_pull_align(ndr, 5));
1278                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_mappings));
1279                 if (r->num_mappings > 0x100000) {
1280                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
1281                 }
1282                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mappings));
1283                 if (_ptr_mappings) {
1284                         NDR_PULL_ALLOC(ndr, r->mappings);
1285                 } else {
1286                         r->mappings = NULL;
1287                 }
1288                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1289         }
1290         if (ndr_flags & NDR_BUFFERS) {
1291                 if (r->mappings) {
1292                         _mem_save_mappings_0 = NDR_PULL_GET_MEM_CTX(ndr);
1293                         NDR_PULL_SET_MEM_CTX(ndr, r->mappings, 0);
1294                         NDR_CHECK(ndr_pull_array_size(ndr, &r->mappings));
1295                         size_mappings_1 = ndr_get_array_size(ndr, &r->mappings);
1296                         NDR_PULL_ALLOC_N(ndr, r->mappings, size_mappings_1);
1297                         _mem_save_mappings_1 = NDR_PULL_GET_MEM_CTX(ndr);
1298                         NDR_PULL_SET_MEM_CTX(ndr, r->mappings, 0);
1299                         for (cntr_mappings_1 = 0; cntr_mappings_1 < size_mappings_1; cntr_mappings_1++) {
1300                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOIDMapping(ndr, NDR_SCALARS, &r->mappings[cntr_mappings_1]));
1301                         }
1302                         for (cntr_mappings_1 = 0; cntr_mappings_1 < size_mappings_1; cntr_mappings_1++) {
1303                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOIDMapping(ndr, NDR_BUFFERS, &r->mappings[cntr_mappings_1]));
1304                         }
1305                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mappings_1, 0);
1306                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mappings_0, 0);
1307                 }
1308                 if (r->mappings) {
1309                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->mappings, r->num_mappings));
1310                 }
1311         }
1312         return NDR_ERR_SUCCESS;
1313 }
1314
1315 _PUBLIC_ void ndr_print_drsuapi_DsReplicaOIDMapping_Ctr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaOIDMapping_Ctr *r)
1316 {
1317         uint32_t cntr_mappings_1;
1318         ndr_print_struct(ndr, name, "drsuapi_DsReplicaOIDMapping_Ctr");
1319         if (r == NULL) { ndr_print_null(ndr); return; }
1320         ndr->depth++;
1321         ndr_print_uint32(ndr, "num_mappings", r->num_mappings);
1322         ndr_print_ptr(ndr, "mappings", r->mappings);
1323         ndr->depth++;
1324         if (r->mappings) {
1325                 ndr->print(ndr, "%s: ARRAY(%d)", "mappings", (int)r->num_mappings);
1326                 ndr->depth++;
1327                 for (cntr_mappings_1=0;cntr_mappings_1<r->num_mappings;cntr_mappings_1++) {
1328                         ndr_print_drsuapi_DsReplicaOIDMapping(ndr, "mappings", &r->mappings[cntr_mappings_1]);
1329                 }
1330                 ndr->depth--;
1331         }
1332         ndr->depth--;
1333         ndr->depth--;
1334 }
1335
1336 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsAttributeId(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsAttributeId r)
1337 {
1338         {
1339                 uint32_t _flags_save_ENUM = ndr->flags;
1340                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1341                 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
1342                 ndr->flags = _flags_save_ENUM;
1343         }
1344         return NDR_ERR_SUCCESS;
1345 }
1346
1347 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsAttributeId(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsAttributeId *r)
1348 {
1349         uint32_t v;
1350         {
1351                 uint32_t _flags_save_ENUM = ndr->flags;
1352                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1353                 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
1354                 *r = v;
1355                 ndr->flags = _flags_save_ENUM;
1356         }
1357         return NDR_ERR_SUCCESS;
1358 }
1359
1360 _PUBLIC_ void ndr_print_drsuapi_DsAttributeId(struct ndr_print *ndr, const char *name, enum drsuapi_DsAttributeId r)
1361 {
1362         const char *val = NULL;
1363
1364         {
1365                 uint32_t _flags_save_ENUM = ndr->flags;
1366                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1367                 switch (r) {
1368                         case DRSUAPI_ATTID_objectClass: val = "DRSUAPI_ATTID_objectClass"; break;
1369                         case DRSUAPI_ATTID_cn: val = "DRSUAPI_ATTID_cn"; break;
1370                         case DRSUAPI_ATTID_ou: val = "DRSUAPI_ATTID_ou"; break;
1371                         case DRSUAPI_ATTID_description: val = "DRSUAPI_ATTID_description"; break;
1372                         case DRSUAPI_ATTID_member: val = "DRSUAPI_ATTID_member"; break;
1373                         case DRSUAPI_ATTID_instanceType: val = "DRSUAPI_ATTID_instanceType"; break;
1374                         case DRSUAPI_ATTID_whenCreated: val = "DRSUAPI_ATTID_whenCreated"; break;
1375                         case DRSUAPI_ATTID_possSuperiors: val = "DRSUAPI_ATTID_possSuperiors"; break;
1376                         case DRSUAPI_ATTID_displayName: val = "DRSUAPI_ATTID_displayName"; break;
1377                         case DRSUAPI_ATTID_hasMasterNCs: val = "DRSUAPI_ATTID_hasMasterNCs"; break;
1378                         case DRSUAPI_ATTID_nCName: val = "DRSUAPI_ATTID_nCName"; break;
1379                         case DRSUAPI_ATTID_subClassOf: val = "DRSUAPI_ATTID_subClassOf"; break;
1380                         case DRSUAPI_ATTID_governsID: val = "DRSUAPI_ATTID_governsID"; break;
1381                         case DRSUAPI_ATTID_mustContain: val = "DRSUAPI_ATTID_mustContain"; break;
1382                         case DRSUAPI_ATTID_mayContain: val = "DRSUAPI_ATTID_mayContain"; break;
1383                         case DRSUAPI_ATTID_rDNAttId: val = "DRSUAPI_ATTID_rDNAttId"; break;
1384                         case DRSUAPI_ATTID_attributeID: val = "DRSUAPI_ATTID_attributeID"; break;
1385                         case DRSUAPI_ATTID_attributeSyntax: val = "DRSUAPI_ATTID_attributeSyntax"; break;
1386                         case DRSUAPI_ATTID_isSingleValued: val = "DRSUAPI_ATTID_isSingleValued"; break;
1387                         case DRSUAPI_ATTID_rangeLower: val = "DRSUAPI_ATTID_rangeLower"; break;
1388                         case DRSUAPI_ATTID_rangeUpper: val = "DRSUAPI_ATTID_rangeUpper"; break;
1389                         case DRSUAPI_ATTID_dMDLocation: val = "DRSUAPI_ATTID_dMDLocation"; break;
1390                         case DRSUAPI_ATTID_isDeleted: val = "DRSUAPI_ATTID_isDeleted"; break;
1391                         case DRSUAPI_ATTID_objectVersion: val = "DRSUAPI_ATTID_objectVersion"; break;
1392                         case DRSUAPI_ATTID_invocationId: val = "DRSUAPI_ATTID_invocationId"; break;
1393                         case DRSUAPI_ATTID_showInAdvancedViewOnly: val = "DRSUAPI_ATTID_showInAdvancedViewOnly"; break;
1394                         case DRSUAPI_ATTID_adminDisplayName: val = "DRSUAPI_ATTID_adminDisplayName"; break;
1395                         case DRSUAPI_ATTID_adminDescription: val = "DRSUAPI_ATTID_adminDescription"; break;
1396                         case DRSUAPI_ATTID_oMSyntax: val = "DRSUAPI_ATTID_oMSyntax"; break;
1397                         case DRSUAPI_ATTID_ntSecurityDescriptor: val = "DRSUAPI_ATTID_ntSecurityDescriptor"; break;
1398                         case DRSUAPI_ATTID_searchFlags: val = "DRSUAPI_ATTID_searchFlags"; break;
1399                         case DRSUAPI_ATTID_auxiliaryClass: val = "DRSUAPI_ATTID_auxiliaryClass"; break;
1400                         case DRSUAPI_ATTID_lDAPDisplayName: val = "DRSUAPI_ATTID_lDAPDisplayName"; break;
1401                         case DRSUAPI_ATTID_name: val = "DRSUAPI_ATTID_name"; break;
1402                         case DRSUAPI_ATTID_userAccountControl: val = "DRSUAPI_ATTID_userAccountControl"; break;
1403                         case DRSUAPI_ATTID_badPwdCount: val = "DRSUAPI_ATTID_badPwdCount"; break;
1404                         case DRSUAPI_ATTID_codePage: val = "DRSUAPI_ATTID_codePage"; break;
1405                         case DRSUAPI_ATTID_countryCode: val = "DRSUAPI_ATTID_countryCode"; break;
1406                         case DRSUAPI_ATTID_currentValue: val = "DRSUAPI_ATTID_currentValue"; break;
1407                         case DRSUAPI_ATTID_homeDirectory: val = "DRSUAPI_ATTID_homeDirectory"; break;
1408                         case DRSUAPI_ATTID_homeDrive: val = "DRSUAPI_ATTID_homeDrive"; break;
1409                         case DRSUAPI_ATTID_lastLogoff: val = "DRSUAPI_ATTID_lastLogoff"; break;
1410                         case DRSUAPI_ATTID_lastLogon: val = "DRSUAPI_ATTID_lastLogon"; break;
1411                         case DRSUAPI_ATTID_dBCSPwd: val = "DRSUAPI_ATTID_dBCSPwd"; break;
1412                         case DRSUAPI_ATTID_scriptPath: val = "DRSUAPI_ATTID_scriptPath"; break;
1413                         case DRSUAPI_ATTID_logonHours: val = "DRSUAPI_ATTID_logonHours"; break;
1414                         case DRSUAPI_ATTID_userWorkstations: val = "DRSUAPI_ATTID_userWorkstations"; break;
1415                         case DRSUAPI_ATTID_unicodePwd: val = "DRSUAPI_ATTID_unicodePwd"; break;
1416                         case DRSUAPI_ATTID_ntPwdHistory: val = "DRSUAPI_ATTID_ntPwdHistory"; break;
1417                         case DRSUAPI_ATTID_pwdLastSet: val = "DRSUAPI_ATTID_pwdLastSet"; break;
1418                         case DRSUAPI_ATTID_primaryGroupID: val = "DRSUAPI_ATTID_primaryGroupID"; break;
1419                         case DRSUAPI_ATTID_priorValue: val = "DRSUAPI_ATTID_priorValue"; break;
1420                         case DRSUAPI_ATTID_supplementalCredentials: val = "DRSUAPI_ATTID_supplementalCredentials"; break;
1421                         case DRSUAPI_ATTID_trustAuthIncoming: val = "DRSUAPI_ATTID_trustAuthIncoming"; break;
1422                         case DRSUAPI_ATTID_trustAuthOutgoing: val = "DRSUAPI_ATTID_trustAuthOutgoing"; break;
1423                         case DRSUAPI_ATTID_userParameters: val = "DRSUAPI_ATTID_userParameters"; break;
1424                         case DRSUAPI_ATTID_profilePath: val = "DRSUAPI_ATTID_profilePath"; break;
1425                         case DRSUAPI_ATTID_objectSid: val = "DRSUAPI_ATTID_objectSid"; break;
1426                         case DRSUAPI_ATTID_schemaIDGUID: val = "DRSUAPI_ATTID_schemaIDGUID"; break;
1427                         case DRSUAPI_ATTID_comment: val = "DRSUAPI_ATTID_comment"; break;
1428                         case DRSUAPI_ATTID_accountExpires: val = "DRSUAPI_ATTID_accountExpires"; break;
1429                         case DRSUAPI_ATTID_lmPwdHistory: val = "DRSUAPI_ATTID_lmPwdHistory"; break;
1430                         case DRSUAPI_ATTID_logonCount: val = "DRSUAPI_ATTID_logonCount"; break;
1431                         case DRSUAPI_ATTID_systemPossSuperiors: val = "DRSUAPI_ATTID_systemPossSuperiors"; break;
1432                         case DRSUAPI_ATTID_systemMayContain: val = "DRSUAPI_ATTID_systemMayContain"; break;
1433                         case DRSUAPI_ATTID_systemMustContain: val = "DRSUAPI_ATTID_systemMustContain"; break;
1434                         case DRSUAPI_ATTID_systemAuxiliaryClass: val = "DRSUAPI_ATTID_systemAuxiliaryClass"; break;
1435                         case DRSUAPI_ATTID_sAMAccountName: val = "DRSUAPI_ATTID_sAMAccountName"; break;
1436                         case DRSUAPI_ATTID_sAMAccountType: val = "DRSUAPI_ATTID_sAMAccountType"; break;
1437                         case DRSUAPI_ATTID_options: val = "DRSUAPI_ATTID_options"; break;
1438                         case DRSUAPI_ATTID_fSMORoleOwner: val = "DRSUAPI_ATTID_fSMORoleOwner"; break;
1439                         case DRSUAPI_ATTID_systemFlags: val = "DRSUAPI_ATTID_systemFlags"; break;
1440                         case DRSUAPI_ATTID_serverReference: val = "DRSUAPI_ATTID_serverReference"; break;
1441                         case DRSUAPI_ATTID_serverReferenceBL: val = "DRSUAPI_ATTID_serverReferenceBL"; break;
1442                         case DRSUAPI_ATTID_initialAuthIncoming: val = "DRSUAPI_ATTID_initialAuthIncoming"; break;
1443                         case DRSUAPI_ATTID_initialAuthOutgoing: val = "DRSUAPI_ATTID_initialAuthOutgoing"; break;
1444                         case DRSUAPI_ATTID_wellKnownObjects: val = "DRSUAPI_ATTID_wellKnownObjects"; break;
1445                         case DRSUAPI_ATTID_dNSHostName: val = "DRSUAPI_ATTID_dNSHostName"; break;
1446                         case DRSUAPI_ATTID_isMemberOfPartialAttributeSet: val = "DRSUAPI_ATTID_isMemberOfPartialAttributeSet"; break;
1447                         case DRSUAPI_ATTID_userPrincipalName: val = "DRSUAPI_ATTID_userPrincipalName"; break;
1448                         case DRSUAPI_ATTID_groupType: val = "DRSUAPI_ATTID_groupType"; break;
1449                         case DRSUAPI_ATTID_servicePrincipalName: val = "DRSUAPI_ATTID_servicePrincipalName"; break;
1450                         case DRSUAPI_ATTID_lastKnownParent: val = "DRSUAPI_ATTID_lastKnownParent"; break;
1451                         case DRSUAPI_ATTID_objectCategory: val = "DRSUAPI_ATTID_objectCategory"; break;
1452                         case DRSUAPI_ATTID_gPLink: val = "DRSUAPI_ATTID_gPLink"; break;
1453                         case DRSUAPI_ATTID_transportAddressAttribute: val = "DRSUAPI_ATTID_transportAddressAttribute"; break;
1454                         case DRSUAPI_ATTID_msDS_Behavior_Version: val = "DRSUAPI_ATTID_msDS_Behavior_Version"; break;
1455                         case DRSUAPI_ATTID_msDS_KeyVersionNumber: val = "DRSUAPI_ATTID_msDS_KeyVersionNumber"; break;
1456                         case DRSUAPI_ATTID_msDS_HasDomainNCs: val = "DRSUAPI_ATTID_msDS_HasDomainNCs"; break;
1457                         case DRSUAPI_ATTID_msDS_hasMasterNCs: val = "DRSUAPI_ATTID_msDS_hasMasterNCs"; break;
1458                         case DRSUAPI_ATTID_isRecycled: val = "DRSUAPI_ATTID_isRecycled"; break;
1459                         case DRSUAPI_ATTID_INVALID: val = "DRSUAPI_ATTID_INVALID"; break;
1460                 }
1461                 ndr_print_enum(ndr, name, "ENUM", val, r);
1462                 ndr->flags = _flags_save_ENUM;
1463         }
1464 }
1465
1466 static enum ndr_err_code ndr_push_drsuapi_DsPartialAttributeSet(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsPartialAttributeSet *r)
1467 {
1468         uint32_t cntr_attids_0;
1469         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
1470         if (ndr_flags & NDR_SCALARS) {
1471                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->num_attids));
1472                 NDR_CHECK(ndr_push_align(ndr, 4));
1473                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 1));
1474                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
1475                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_attids));
1476                 for (cntr_attids_0 = 0; cntr_attids_0 < r->num_attids; cntr_attids_0++) {
1477                         NDR_CHECK(ndr_push_drsuapi_DsAttributeId(ndr, NDR_SCALARS, r->attids[cntr_attids_0]));
1478                 }
1479                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
1480         }
1481         if (ndr_flags & NDR_BUFFERS) {
1482         }
1483         return NDR_ERR_SUCCESS;
1484 }
1485
1486 static enum ndr_err_code ndr_pull_drsuapi_DsPartialAttributeSet(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsPartialAttributeSet *r)
1487 {
1488         uint32_t size_attids_0 = 0;
1489         uint32_t cntr_attids_0;
1490         TALLOC_CTX *_mem_save_attids_0;
1491         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
1492         if (ndr_flags & NDR_SCALARS) {
1493                 NDR_CHECK(ndr_pull_array_size(ndr, &r->attids));
1494                 NDR_CHECK(ndr_pull_align(ndr, 4));
1495                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
1496                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved1));
1497                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_attids));
1498                 if (r->num_attids < 1 || r->num_attids > 0x100000) {
1499                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
1500                 }
1501                 size_attids_0 = ndr_get_array_size(ndr, &r->attids);
1502                 NDR_PULL_ALLOC_N(ndr, r->attids, size_attids_0);
1503                 _mem_save_attids_0 = NDR_PULL_GET_MEM_CTX(ndr);
1504                 NDR_PULL_SET_MEM_CTX(ndr, r->attids, 0);
1505                 for (cntr_attids_0 = 0; cntr_attids_0 < size_attids_0; cntr_attids_0++) {
1506                         NDR_CHECK(ndr_pull_drsuapi_DsAttributeId(ndr, NDR_SCALARS, &r->attids[cntr_attids_0]));
1507                 }
1508                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attids_0, 0);
1509                 if (r->attids) {
1510                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->attids, r->num_attids));
1511                 }
1512                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
1513         }
1514         if (ndr_flags & NDR_BUFFERS) {
1515         }
1516         return NDR_ERR_SUCCESS;
1517 }
1518
1519 _PUBLIC_ void ndr_print_drsuapi_DsPartialAttributeSet(struct ndr_print *ndr, const char *name, const struct drsuapi_DsPartialAttributeSet *r)
1520 {
1521         uint32_t cntr_attids_0;
1522         ndr_print_struct(ndr, name, "drsuapi_DsPartialAttributeSet");
1523         if (r == NULL) { ndr_print_null(ndr); return; }
1524         ndr->depth++;
1525         ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?1:r->version);
1526         ndr_print_uint32(ndr, "reserved1", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->reserved1);
1527         ndr_print_uint32(ndr, "num_attids", r->num_attids);
1528         ndr->print(ndr, "%s: ARRAY(%d)", "attids", (int)r->num_attids);
1529         ndr->depth++;
1530         for (cntr_attids_0=0;cntr_attids_0<r->num_attids;cntr_attids_0++) {
1531                 ndr_print_drsuapi_DsAttributeId(ndr, "attids", r->attids[cntr_attids_0]);
1532         }
1533         ndr->depth--;
1534         ndr->depth--;
1535 }
1536
1537 static enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesRequest8(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetNCChangesRequest8 *r)
1538 {
1539         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
1540         if (ndr_flags & NDR_SCALARS) {
1541                 NDR_CHECK(ndr_push_align(ndr, 8));
1542                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->destination_dsa_guid));
1543                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
1544                 if (r->naming_context == NULL) {
1545                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1546                 }
1547                 NDR_CHECK(ndr_push_ref_ptr(ndr));
1548                 NDR_CHECK(ndr_push_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->highwatermark));
1549                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->uptodateness_vector));
1550                 NDR_CHECK(ndr_push_drsuapi_DrsOptions(ndr, NDR_SCALARS, r->replica_flags));
1551                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_object_count));
1552                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_ndr_size));
1553                 NDR_CHECK(ndr_push_drsuapi_DsExtendedOperation(ndr, NDR_SCALARS, r->extended_op));
1554                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->fsmo_info));
1555                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->partial_attribute_set));
1556                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->partial_attribute_set_ex));
1557                 NDR_CHECK(ndr_push_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_SCALARS, &r->mapping_ctr));
1558                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
1559         }
1560         if (ndr_flags & NDR_BUFFERS) {
1561                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
1562                 if (r->uptodateness_vector) {
1563                         NDR_CHECK(ndr_push_drsuapi_DsReplicaCursorCtrEx(ndr, NDR_SCALARS, r->uptodateness_vector));
1564                 }
1565                 if (r->partial_attribute_set) {
1566                         NDR_CHECK(ndr_push_drsuapi_DsPartialAttributeSet(ndr, NDR_SCALARS, r->partial_attribute_set));
1567                 }
1568                 if (r->partial_attribute_set_ex) {
1569                         NDR_CHECK(ndr_push_drsuapi_DsPartialAttributeSet(ndr, NDR_SCALARS, r->partial_attribute_set_ex));
1570                 }
1571                 NDR_CHECK(ndr_push_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_BUFFERS, &r->mapping_ctr));
1572         }
1573         return NDR_ERR_SUCCESS;
1574 }
1575
1576 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesRequest8(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNCChangesRequest8 *r)
1577 {
1578         uint32_t _ptr_naming_context;
1579         TALLOC_CTX *_mem_save_naming_context_0;
1580         uint32_t _ptr_uptodateness_vector;
1581         TALLOC_CTX *_mem_save_uptodateness_vector_0;
1582         uint32_t _ptr_partial_attribute_set;
1583         TALLOC_CTX *_mem_save_partial_attribute_set_0;
1584         uint32_t _ptr_partial_attribute_set_ex;
1585         TALLOC_CTX *_mem_save_partial_attribute_set_ex_0;
1586         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
1587         if (ndr_flags & NDR_SCALARS) {
1588                 NDR_CHECK(ndr_pull_align(ndr, 8));
1589                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->destination_dsa_guid));
1590                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
1591                 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_naming_context));
1592                 if (_ptr_naming_context) {
1593                         NDR_PULL_ALLOC(ndr, r->naming_context);
1594                 } else {
1595                         r->naming_context = NULL;
1596                 }
1597                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->highwatermark));
1598                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_uptodateness_vector));
1599                 if (_ptr_uptodateness_vector) {
1600                         NDR_PULL_ALLOC(ndr, r->uptodateness_vector);
1601                 } else {
1602                         r->uptodateness_vector = NULL;
1603                 }
1604                 NDR_CHECK(ndr_pull_drsuapi_DrsOptions(ndr, NDR_SCALARS, &r->replica_flags));
1605                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_object_count));
1606                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_ndr_size));
1607                 NDR_CHECK(ndr_pull_drsuapi_DsExtendedOperation(ndr, NDR_SCALARS, &r->extended_op));
1608                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->fsmo_info));
1609                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_partial_attribute_set));
1610                 if (_ptr_partial_attribute_set) {
1611                         NDR_PULL_ALLOC(ndr, r->partial_attribute_set);
1612                 } else {
1613                         r->partial_attribute_set = NULL;
1614                 }
1615                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_partial_attribute_set_ex));
1616                 if (_ptr_partial_attribute_set_ex) {
1617                         NDR_PULL_ALLOC(ndr, r->partial_attribute_set_ex);
1618                 } else {
1619                         r->partial_attribute_set_ex = NULL;
1620                 }
1621                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_SCALARS, &r->mapping_ctr));
1622                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
1623         }
1624         if (ndr_flags & NDR_BUFFERS) {
1625                 _mem_save_naming_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
1626                 NDR_PULL_SET_MEM_CTX(ndr, r->naming_context, 0);
1627                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
1628                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_naming_context_0, 0);
1629                 if (r->uptodateness_vector) {
1630                         _mem_save_uptodateness_vector_0 = NDR_PULL_GET_MEM_CTX(ndr);
1631                         NDR_PULL_SET_MEM_CTX(ndr, r->uptodateness_vector, 0);
1632                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursorCtrEx(ndr, NDR_SCALARS, r->uptodateness_vector));
1633                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_uptodateness_vector_0, 0);
1634                 }
1635                 if (r->partial_attribute_set) {
1636                         _mem_save_partial_attribute_set_0 = NDR_PULL_GET_MEM_CTX(ndr);
1637                         NDR_PULL_SET_MEM_CTX(ndr, r->partial_attribute_set, 0);
1638                         NDR_CHECK(ndr_pull_drsuapi_DsPartialAttributeSet(ndr, NDR_SCALARS, r->partial_attribute_set));
1639                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_partial_attribute_set_0, 0);
1640                 }
1641                 if (r->partial_attribute_set_ex) {
1642                         _mem_save_partial_attribute_set_ex_0 = NDR_PULL_GET_MEM_CTX(ndr);
1643                         NDR_PULL_SET_MEM_CTX(ndr, r->partial_attribute_set_ex, 0);
1644                         NDR_CHECK(ndr_pull_drsuapi_DsPartialAttributeSet(ndr, NDR_SCALARS, r->partial_attribute_set_ex));
1645                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_partial_attribute_set_ex_0, 0);
1646                 }
1647                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_BUFFERS, &r->mapping_ctr));
1648         }
1649         return NDR_ERR_SUCCESS;
1650 }
1651
1652 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesRequest8(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesRequest8 *r)
1653 {
1654         ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesRequest8");
1655         if (r == NULL) { ndr_print_null(ndr); return; }
1656         ndr->depth++;
1657         ndr_print_GUID(ndr, "destination_dsa_guid", &r->destination_dsa_guid);
1658         ndr_print_GUID(ndr, "source_dsa_invocation_id", &r->source_dsa_invocation_id);
1659         ndr_print_ptr(ndr, "naming_context", r->naming_context);
1660         ndr->depth++;
1661         ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "naming_context", r->naming_context);
1662         ndr->depth--;
1663         ndr_print_drsuapi_DsReplicaHighWaterMark(ndr, "highwatermark", &r->highwatermark);
1664         ndr_print_ptr(ndr, "uptodateness_vector", r->uptodateness_vector);
1665         ndr->depth++;
1666         if (r->uptodateness_vector) {
1667                 ndr_print_drsuapi_DsReplicaCursorCtrEx(ndr, "uptodateness_vector", r->uptodateness_vector);
1668         }
1669         ndr->depth--;
1670         ndr_print_drsuapi_DrsOptions(ndr, "replica_flags", r->replica_flags);
1671         ndr_print_uint32(ndr, "max_object_count", r->max_object_count);
1672         ndr_print_uint32(ndr, "max_ndr_size", r->max_ndr_size);
1673         ndr_print_drsuapi_DsExtendedOperation(ndr, "extended_op", r->extended_op);
1674         ndr_print_hyper(ndr, "fsmo_info", r->fsmo_info);
1675         ndr_print_ptr(ndr, "partial_attribute_set", r->partial_attribute_set);
1676         ndr->depth++;
1677         if (r->partial_attribute_set) {
1678                 ndr_print_drsuapi_DsPartialAttributeSet(ndr, "partial_attribute_set", r->partial_attribute_set);
1679         }
1680         ndr->depth--;
1681         ndr_print_ptr(ndr, "partial_attribute_set_ex", r->partial_attribute_set_ex);
1682         ndr->depth++;
1683         if (r->partial_attribute_set_ex) {
1684                 ndr_print_drsuapi_DsPartialAttributeSet(ndr, "partial_attribute_set_ex", r->partial_attribute_set_ex);
1685         }
1686         ndr->depth--;
1687         ndr_print_drsuapi_DsReplicaOIDMapping_Ctr(ndr, "mapping_ctr", &r->mapping_ctr);
1688         ndr->depth--;
1689 }
1690
1691 static enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesRequest10(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetNCChangesRequest10 *r)
1692 {
1693         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
1694         if (ndr_flags & NDR_SCALARS) {
1695                 NDR_CHECK(ndr_push_align(ndr, 8));
1696                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->destination_dsa_guid));
1697                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
1698                 if (r->naming_context == NULL) {
1699                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1700                 }
1701                 NDR_CHECK(ndr_push_ref_ptr(ndr));
1702                 NDR_CHECK(ndr_push_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->highwatermark));
1703                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->uptodateness_vector));
1704                 NDR_CHECK(ndr_push_drsuapi_DrsOptions(ndr, NDR_SCALARS, r->replica_flags));
1705                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_object_count));
1706                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_ndr_size));
1707                 NDR_CHECK(ndr_push_drsuapi_DsExtendedOperation(ndr, NDR_SCALARS, r->extended_op));
1708                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->fsmo_info));
1709                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->partial_attribute_set));
1710                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->partial_attribute_set_ex));
1711                 NDR_CHECK(ndr_push_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_SCALARS, &r->mapping_ctr));
1712                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->more_flags));
1713                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
1714         }
1715         if (ndr_flags & NDR_BUFFERS) {
1716                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
1717                 if (r->uptodateness_vector) {
1718                         NDR_CHECK(ndr_push_drsuapi_DsReplicaCursorCtrEx(ndr, NDR_SCALARS, r->uptodateness_vector));
1719                 }
1720                 if (r->partial_attribute_set) {
1721                         NDR_CHECK(ndr_push_drsuapi_DsPartialAttributeSet(ndr, NDR_SCALARS, r->partial_attribute_set));
1722                 }
1723                 if (r->partial_attribute_set_ex) {
1724                         NDR_CHECK(ndr_push_drsuapi_DsPartialAttributeSet(ndr, NDR_SCALARS, r->partial_attribute_set_ex));
1725                 }
1726                 NDR_CHECK(ndr_push_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_BUFFERS, &r->mapping_ctr));
1727         }
1728         return NDR_ERR_SUCCESS;
1729 }
1730
1731 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesRequest10(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNCChangesRequest10 *r)
1732 {
1733         uint32_t _ptr_naming_context;
1734         TALLOC_CTX *_mem_save_naming_context_0;
1735         uint32_t _ptr_uptodateness_vector;
1736         TALLOC_CTX *_mem_save_uptodateness_vector_0;
1737         uint32_t _ptr_partial_attribute_set;
1738         TALLOC_CTX *_mem_save_partial_attribute_set_0;
1739         uint32_t _ptr_partial_attribute_set_ex;
1740         TALLOC_CTX *_mem_save_partial_attribute_set_ex_0;
1741         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
1742         if (ndr_flags & NDR_SCALARS) {
1743                 NDR_CHECK(ndr_pull_align(ndr, 8));
1744                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->destination_dsa_guid));
1745                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
1746                 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_naming_context));
1747                 if (_ptr_naming_context) {
1748                         NDR_PULL_ALLOC(ndr, r->naming_context);
1749                 } else {
1750                         r->naming_context = NULL;
1751                 }
1752                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->highwatermark));
1753                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_uptodateness_vector));
1754                 if (_ptr_uptodateness_vector) {
1755                         NDR_PULL_ALLOC(ndr, r->uptodateness_vector);
1756                 } else {
1757                         r->uptodateness_vector = NULL;
1758                 }
1759                 NDR_CHECK(ndr_pull_drsuapi_DrsOptions(ndr, NDR_SCALARS, &r->replica_flags));
1760                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_object_count));
1761                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_ndr_size));
1762                 NDR_CHECK(ndr_pull_drsuapi_DsExtendedOperation(ndr, NDR_SCALARS, &r->extended_op));
1763                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->fsmo_info));
1764                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_partial_attribute_set));
1765                 if (_ptr_partial_attribute_set) {
1766                         NDR_PULL_ALLOC(ndr, r->partial_attribute_set);
1767                 } else {
1768                         r->partial_attribute_set = NULL;
1769                 }
1770                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_partial_attribute_set_ex));
1771                 if (_ptr_partial_attribute_set_ex) {
1772                         NDR_PULL_ALLOC(ndr, r->partial_attribute_set_ex);
1773                 } else {
1774                         r->partial_attribute_set_ex = NULL;
1775                 }
1776                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_SCALARS, &r->mapping_ctr));
1777                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->more_flags));
1778                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
1779         }
1780         if (ndr_flags & NDR_BUFFERS) {
1781                 _mem_save_naming_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
1782                 NDR_PULL_SET_MEM_CTX(ndr, r->naming_context, 0);
1783                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
1784                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_naming_context_0, 0);
1785                 if (r->uptodateness_vector) {
1786                         _mem_save_uptodateness_vector_0 = NDR_PULL_GET_MEM_CTX(ndr);
1787                         NDR_PULL_SET_MEM_CTX(ndr, r->uptodateness_vector, 0);
1788                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursorCtrEx(ndr, NDR_SCALARS, r->uptodateness_vector));
1789                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_uptodateness_vector_0, 0);
1790                 }
1791                 if (r->partial_attribute_set) {
1792                         _mem_save_partial_attribute_set_0 = NDR_PULL_GET_MEM_CTX(ndr);
1793                         NDR_PULL_SET_MEM_CTX(ndr, r->partial_attribute_set, 0);
1794                         NDR_CHECK(ndr_pull_drsuapi_DsPartialAttributeSet(ndr, NDR_SCALARS, r->partial_attribute_set));
1795                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_partial_attribute_set_0, 0);
1796                 }
1797                 if (r->partial_attribute_set_ex) {
1798                         _mem_save_partial_attribute_set_ex_0 = NDR_PULL_GET_MEM_CTX(ndr);
1799                         NDR_PULL_SET_MEM_CTX(ndr, r->partial_attribute_set_ex, 0);
1800                         NDR_CHECK(ndr_pull_drsuapi_DsPartialAttributeSet(ndr, NDR_SCALARS, r->partial_attribute_set_ex));
1801                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_partial_attribute_set_ex_0, 0);
1802                 }
1803                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_BUFFERS, &r->mapping_ctr));
1804         }
1805         return NDR_ERR_SUCCESS;
1806 }
1807
1808 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesRequest10(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesRequest10 *r)
1809 {
1810         ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesRequest10");
1811         if (r == NULL) { ndr_print_null(ndr); return; }
1812         ndr->depth++;
1813         ndr_print_GUID(ndr, "destination_dsa_guid", &r->destination_dsa_guid);
1814         ndr_print_GUID(ndr, "source_dsa_invocation_id", &r->source_dsa_invocation_id);
1815         ndr_print_ptr(ndr, "naming_context", r->naming_context);
1816         ndr->depth++;
1817         ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "naming_context", r->naming_context);
1818         ndr->depth--;
1819         ndr_print_drsuapi_DsReplicaHighWaterMark(ndr, "highwatermark", &r->highwatermark);
1820         ndr_print_ptr(ndr, "uptodateness_vector", r->uptodateness_vector);
1821         ndr->depth++;
1822         if (r->uptodateness_vector) {
1823                 ndr_print_drsuapi_DsReplicaCursorCtrEx(ndr, "uptodateness_vector", r->uptodateness_vector);
1824         }
1825         ndr->depth--;
1826         ndr_print_drsuapi_DrsOptions(ndr, "replica_flags", r->replica_flags);
1827         ndr_print_uint32(ndr, "max_object_count", r->max_object_count);
1828         ndr_print_uint32(ndr, "max_ndr_size", r->max_ndr_size);
1829         ndr_print_drsuapi_DsExtendedOperation(ndr, "extended_op", r->extended_op);
1830         ndr_print_hyper(ndr, "fsmo_info", r->fsmo_info);
1831         ndr_print_ptr(ndr, "partial_attribute_set", r->partial_attribute_set);
1832         ndr->depth++;
1833         if (r->partial_attribute_set) {
1834                 ndr_print_drsuapi_DsPartialAttributeSet(ndr, "partial_attribute_set", r->partial_attribute_set);
1835         }
1836         ndr->depth--;
1837         ndr_print_ptr(ndr, "partial_attribute_set_ex", r->partial_attribute_set_ex);
1838         ndr->depth++;
1839         if (r->partial_attribute_set_ex) {
1840                 ndr_print_drsuapi_DsPartialAttributeSet(ndr, "partial_attribute_set_ex", r->partial_attribute_set_ex);
1841         }
1842         ndr->depth--;
1843         ndr_print_drsuapi_DsReplicaOIDMapping_Ctr(ndr, "mapping_ctr", &r->mapping_ctr);
1844         ndr_print_uint32(ndr, "more_flags", r->more_flags);
1845         ndr->depth--;
1846 }
1847
1848 static enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsGetNCChangesRequest *r)
1849 {
1850         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
1851         if (ndr_flags & NDR_SCALARS) {
1852                 uint32_t level = ndr_push_get_switch_value(ndr, r);
1853                 NDR_CHECK(ndr_push_union_align(ndr, 8));
1854                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
1855                 NDR_CHECK(ndr_push_union_align(ndr, 8));
1856                 switch (level) {
1857                         case 5: {
1858                                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesRequest5(ndr, NDR_SCALARS, &r->req5));
1859                         break; }
1860
1861                         case 8: {
1862                                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesRequest8(ndr, NDR_SCALARS, &r->req8));
1863                         break; }
1864
1865                         case 10: {
1866                                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesRequest10(ndr, NDR_SCALARS, &r->req10));
1867                         break; }
1868
1869                         default:
1870                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1871                 }
1872         }
1873         if (ndr_flags & NDR_BUFFERS) {
1874                 uint32_t level = ndr_push_get_switch_value(ndr, r);
1875                 switch (level) {
1876                         case 5:
1877                                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesRequest5(ndr, NDR_BUFFERS, &r->req5));
1878                         break;
1879
1880                         case 8:
1881                                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesRequest8(ndr, NDR_BUFFERS, &r->req8));
1882                         break;
1883
1884                         case 10:
1885                                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesRequest10(ndr, NDR_BUFFERS, &r->req10));
1886                         break;
1887
1888                         default:
1889                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1890                 }
1891         }
1892         return NDR_ERR_SUCCESS;
1893 }
1894
1895 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsGetNCChangesRequest *r)
1896 {
1897         uint32_t level;
1898         uint32_t _level;
1899         level = ndr_pull_get_switch_value(ndr, r);
1900         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
1901         if (ndr_flags & NDR_SCALARS) {
1902                 NDR_CHECK(ndr_pull_union_align(ndr, 8));
1903                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
1904                 if (_level != level) {
1905                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
1906                 }
1907                 NDR_CHECK(ndr_pull_union_align(ndr, 8));
1908                 switch (level) {
1909                         case 5: {
1910                                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesRequest5(ndr, NDR_SCALARS, &r->req5));
1911                         break; }
1912
1913                         case 8: {
1914                                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesRequest8(ndr, NDR_SCALARS, &r->req8));
1915                         break; }
1916
1917                         case 10: {
1918                                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesRequest10(ndr, NDR_SCALARS, &r->req10));
1919                         break; }
1920
1921                         default:
1922                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1923                 }
1924         }
1925         if (ndr_flags & NDR_BUFFERS) {
1926                 switch (level) {
1927                         case 5:
1928                                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesRequest5(ndr, NDR_BUFFERS, &r->req5));
1929                         break;
1930
1931                         case 8:
1932                                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesRequest8(ndr, NDR_BUFFERS, &r->req8));
1933                         break;
1934
1935                         case 10:
1936                                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesRequest10(ndr, NDR_BUFFERS, &r->req10));
1937                         break;
1938
1939                         default:
1940                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1941                 }
1942         }
1943         return NDR_ERR_SUCCESS;
1944 }
1945
1946 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsGetNCChangesRequest *r)
1947 {
1948         uint32_t level;
1949         level = ndr_print_get_switch_value(ndr, r);
1950         ndr_print_union(ndr, name, level, "drsuapi_DsGetNCChangesRequest");
1951         switch (level) {
1952                 case 5:
1953                         ndr_print_drsuapi_DsGetNCChangesRequest5(ndr, "req5", &r->req5);
1954                 break;
1955
1956                 case 8:
1957                         ndr_print_drsuapi_DsGetNCChangesRequest8(ndr, "req8", &r->req8);
1958                 break;
1959
1960                 case 10:
1961                         ndr_print_drsuapi_DsGetNCChangesRequest10(ndr, "req10", &r->req10);
1962                 break;
1963
1964                 default:
1965                         ndr_print_bad_level(ndr, name, level);
1966         }
1967 }
1968
1969 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaCursor2(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaCursor2 *r)
1970 {
1971         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
1972         if (ndr_flags & NDR_SCALARS) {
1973                 NDR_CHECK(ndr_push_align(ndr, 8));
1974                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
1975                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->highest_usn));
1976                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_sync_success));
1977                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
1978         }
1979         if (ndr_flags & NDR_BUFFERS) {
1980         }
1981         return NDR_ERR_SUCCESS;
1982 }
1983
1984 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaCursor2(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaCursor2 *r)
1985 {
1986         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
1987         if (ndr_flags & NDR_SCALARS) {
1988                 NDR_CHECK(ndr_pull_align(ndr, 8));
1989                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
1990                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->highest_usn));
1991                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_sync_success));
1992                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
1993         }
1994         if (ndr_flags & NDR_BUFFERS) {
1995         }
1996         return NDR_ERR_SUCCESS;
1997 }
1998
1999 _PUBLIC_ void ndr_print_drsuapi_DsReplicaCursor2(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaCursor2 *r)
2000 {
2001         ndr_print_struct(ndr, name, "drsuapi_DsReplicaCursor2");
2002         if (r == NULL) { ndr_print_null(ndr); return; }
2003         ndr->depth++;
2004         ndr_print_GUID(ndr, "source_dsa_invocation_id", &r->source_dsa_invocation_id);
2005         ndr_print_hyper(ndr, "highest_usn", r->highest_usn);
2006         ndr_print_NTTIME(ndr, "last_sync_success", r->last_sync_success);
2007         ndr->depth--;
2008 }
2009
2010 static enum ndr_err_code ndr_push_drsuapi_DsReplicaCursor2CtrEx(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaCursor2CtrEx *r)
2011 {
2012         uint32_t cntr_cursors_0;
2013         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
2014         if (ndr_flags & NDR_SCALARS) {
2015                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
2016                 NDR_CHECK(ndr_push_align(ndr, 8));
2017                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
2018                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
2019                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
2020                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
2021                 for (cntr_cursors_0 = 0; cntr_cursors_0 < r->count; cntr_cursors_0++) {
2022                         NDR_CHECK(ndr_push_drsuapi_DsReplicaCursor2(ndr, NDR_SCALARS, &r->cursors[cntr_cursors_0]));
2023                 }
2024                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
2025         }
2026         if (ndr_flags & NDR_BUFFERS) {
2027         }
2028         return NDR_ERR_SUCCESS;
2029 }
2030
2031 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaCursor2CtrEx(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaCursor2CtrEx *r)
2032 {
2033         uint32_t size_cursors_0 = 0;
2034         uint32_t cntr_cursors_0;
2035         TALLOC_CTX *_mem_save_cursors_0;
2036         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
2037         if (ndr_flags & NDR_SCALARS) {
2038                 NDR_CHECK(ndr_pull_array_size(ndr, &r->cursors));
2039                 NDR_CHECK(ndr_pull_align(ndr, 8));
2040                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
2041                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved1));
2042                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
2043                 if (r->count > 0x100000) {
2044                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
2045                 }
2046                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
2047                 size_cursors_0 = ndr_get_array_size(ndr, &r->cursors);
2048                 NDR_PULL_ALLOC_N(ndr, r->cursors, size_cursors_0);
2049                 _mem_save_cursors_0 = NDR_PULL_GET_MEM_CTX(ndr);
2050                 NDR_PULL_SET_MEM_CTX(ndr, r->cursors, 0);
2051                 for (cntr_cursors_0 = 0; cntr_cursors_0 < size_cursors_0; cntr_cursors_0++) {
2052                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursor2(ndr, NDR_SCALARS, &r->cursors[cntr_cursors_0]));
2053                 }
2054                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_cursors_0, 0);
2055                 if (r->cursors) {
2056                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->cursors, r->count));
2057                 }
2058                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
2059         }
2060         if (ndr_flags & NDR_BUFFERS) {
2061         }
2062         return NDR_ERR_SUCCESS;
2063 }
2064
2065 _PUBLIC_ void ndr_print_drsuapi_DsReplicaCursor2CtrEx(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaCursor2CtrEx *r)
2066 {
2067         uint32_t cntr_cursors_0;
2068         ndr_print_struct(ndr, name, "drsuapi_DsReplicaCursor2CtrEx");
2069         if (r == NULL) { ndr_print_null(ndr); return; }
2070         ndr->depth++;
2071         ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
2072         ndr_print_uint32(ndr, "reserved1", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->reserved1);
2073         ndr_print_uint32(ndr, "count", r->count);
2074         ndr_print_uint32(ndr, "reserved2", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->reserved2);
2075         ndr->print(ndr, "%s: ARRAY(%d)", "cursors", (int)r->count);
2076         ndr->depth++;
2077         for (cntr_cursors_0=0;cntr_cursors_0<r->count;cntr_cursors_0++) {
2078                 ndr_print_drsuapi_DsReplicaCursor2(ndr, "cursors", &r->cursors[cntr_cursors_0]);
2079         }
2080         ndr->depth--;
2081         ndr->depth--;
2082 }
2083
2084 static enum ndr_err_code ndr_push_drsuapi_DsAttributeValue(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAttributeValue *r)
2085 {
2086         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
2087         if (ndr_flags & NDR_SCALARS) {
2088                 NDR_CHECK(ndr_push_align(ndr, 5));
2089                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_DATA_BLOB(0, r->blob, 0)));
2090                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->blob));
2091                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2092         }
2093         if (ndr_flags & NDR_BUFFERS) {
2094                 if (r->blob) {
2095                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->blob));
2096                 }
2097         }
2098         return NDR_ERR_SUCCESS;
2099 }
2100
2101 static enum ndr_err_code ndr_pull_drsuapi_DsAttributeValue(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAttributeValue *r)
2102 {
2103         uint32_t _ptr_blob;
2104         TALLOC_CTX *_mem_save_blob_0;
2105         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
2106         if (ndr_flags & NDR_SCALARS) {
2107                 NDR_CHECK(ndr_pull_align(ndr, 5));
2108                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size));
2109                 if (r->__ndr_size > 26214400) {
2110                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
2111                 }
2112                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_blob));
2113                 if (_ptr_blob) {
2114                         NDR_PULL_ALLOC(ndr, r->blob);
2115                 } else {
2116                         r->blob = NULL;
2117                 }
2118                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2119         }
2120         if (ndr_flags & NDR_BUFFERS) {
2121                 if (r->blob) {
2122                         _mem_save_blob_0 = NDR_PULL_GET_MEM_CTX(ndr);
2123                         NDR_PULL_SET_MEM_CTX(ndr, r->blob, 0);
2124                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->blob));
2125                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_blob_0, 0);
2126                 }
2127         }
2128         return NDR_ERR_SUCCESS;
2129 }
2130
2131 _PUBLIC_ void ndr_print_drsuapi_DsAttributeValue(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAttributeValue *r)
2132 {
2133         ndr_print_struct(ndr, name, "drsuapi_DsAttributeValue");
2134         if (r == NULL) { ndr_print_null(ndr); return; }
2135         ndr->depth++;
2136         ndr_print_uint32(ndr, "__ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_DATA_BLOB(0, r->blob, 0):r->__ndr_size);
2137         ndr_print_ptr(ndr, "blob", r->blob);
2138         ndr->depth++;
2139         if (r->blob) {
2140                 ndr_print_DATA_BLOB(ndr, "blob", *r->blob);
2141         }
2142         ndr->depth--;
2143         ndr->depth--;
2144 }
2145
2146 static enum ndr_err_code ndr_push_drsuapi_DsAttributeValueCtr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAttributeValueCtr *r)
2147 {
2148         uint32_t cntr_values_1;
2149         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
2150         if (ndr_flags & NDR_SCALARS) {
2151                 NDR_CHECK(ndr_push_align(ndr, 5));
2152                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_values));
2153                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->values));
2154                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2155         }
2156         if (ndr_flags & NDR_BUFFERS) {
2157                 if (r->values) {
2158                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->num_values));
2159                         for (cntr_values_1 = 0; cntr_values_1 < r->num_values; cntr_values_1++) {
2160                                 NDR_CHECK(ndr_push_drsuapi_DsAttributeValue(ndr, NDR_SCALARS, &r->values[cntr_values_1]));
2161                         }
2162                         for (cntr_values_1 = 0; cntr_values_1 < r->num_values; cntr_values_1++) {
2163                                 NDR_CHECK(ndr_push_drsuapi_DsAttributeValue(ndr, NDR_BUFFERS, &r->values[cntr_values_1]));
2164                         }
2165                 }
2166         }
2167         return NDR_ERR_SUCCESS;
2168 }
2169
2170 static enum ndr_err_code ndr_pull_drsuapi_DsAttributeValueCtr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAttributeValueCtr *r)
2171 {
2172         uint32_t _ptr_values;
2173         uint32_t size_values_1 = 0;
2174         uint32_t cntr_values_1;
2175         TALLOC_CTX *_mem_save_values_0;
2176         TALLOC_CTX *_mem_save_values_1;
2177         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
2178         if (ndr_flags & NDR_SCALARS) {
2179                 NDR_CHECK(ndr_pull_align(ndr, 5));
2180                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_values));
2181                 if (r->num_values > 10485760) {
2182                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
2183                 }
2184                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_values));
2185                 if (_ptr_values) {
2186                         NDR_PULL_ALLOC(ndr, r->values);
2187                 } else {
2188                         r->values = NULL;
2189                 }
2190                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2191         }
2192         if (ndr_flags & NDR_BUFFERS) {
2193                 if (r->values) {
2194                         _mem_save_values_0 = NDR_PULL_GET_MEM_CTX(ndr);
2195                         NDR_PULL_SET_MEM_CTX(ndr, r->values, 0);
2196                         NDR_CHECK(ndr_pull_array_size(ndr, &r->values));
2197                         size_values_1 = ndr_get_array_size(ndr, &r->values);
2198                         NDR_PULL_ALLOC_N(ndr, r->values, size_values_1);
2199                         _mem_save_values_1 = NDR_PULL_GET_MEM_CTX(ndr);
2200                         NDR_PULL_SET_MEM_CTX(ndr, r->values, 0);
2201                         for (cntr_values_1 = 0; cntr_values_1 < size_values_1; cntr_values_1++) {
2202                                 NDR_CHECK(ndr_pull_drsuapi_DsAttributeValue(ndr, NDR_SCALARS, &r->values[cntr_values_1]));
2203                         }
2204                         for (cntr_values_1 = 0; cntr_values_1 < size_values_1; cntr_values_1++) {
2205                                 NDR_CHECK(ndr_pull_drsuapi_DsAttributeValue(ndr, NDR_BUFFERS, &r->values[cntr_values_1]));
2206                         }
2207                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_values_1, 0);
2208                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_values_0, 0);
2209                 }
2210                 if (r->values) {
2211                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->values, r->num_values));
2212                 }
2213         }
2214         return NDR_ERR_SUCCESS;
2215 }
2216
2217 _PUBLIC_ void ndr_print_drsuapi_DsAttributeValueCtr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAttributeValueCtr *r)
2218 {
2219         uint32_t cntr_values_1;
2220         ndr_print_struct(ndr, name, "drsuapi_DsAttributeValueCtr");
2221         if (r == NULL) { ndr_print_null(ndr); return; }
2222         ndr->depth++;
2223         ndr_print_uint32(ndr, "num_values", r->num_values);
2224         ndr_print_ptr(ndr, "values", r->values);
2225         ndr->depth++;
2226         if (r->values) {
2227                 ndr->print(ndr, "%s: ARRAY(%d)", "values", (int)r->num_values);
2228                 ndr->depth++;
2229                 for (cntr_values_1=0;cntr_values_1<r->num_values;cntr_values_1++) {
2230                         ndr_print_drsuapi_DsAttributeValue(ndr, "values", &r->values[cntr_values_1]);
2231                 }
2232                 ndr->depth--;
2233         }
2234         ndr->depth--;
2235         ndr->depth--;
2236 }
2237
2238 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaObjectIdentifier3(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaObjectIdentifier3 *r)
2239 {
2240         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
2241         if (ndr_flags & NDR_SCALARS) {
2242                 NDR_CHECK(ndr_push_align(ndr, 4));
2243                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_drsuapi_DsReplicaObjectIdentifier3(r, ndr->flags)));
2244                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_dom_sid28(&r->sid, ndr->flags)));
2245                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
2246                 NDR_CHECK(ndr_push_dom_sid28(ndr, NDR_SCALARS, &r->sid));
2247                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, strlen_m(r->dn)));
2248                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dn, strlen_m(r->dn) + 1, sizeof(uint16_t), CH_UTF16));
2249                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
2250         }
2251         if (ndr_flags & NDR_BUFFERS) {
2252                 NDR_CHECK(ndr_push_dom_sid28(ndr, NDR_BUFFERS, &r->sid));
2253         }
2254         return NDR_ERR_SUCCESS;
2255 }
2256
2257 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaObjectIdentifier3(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaObjectIdentifier3 *r)
2258 {
2259         uint32_t size_dn_0 = 0;
2260         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
2261         if (ndr_flags & NDR_SCALARS) {
2262                 NDR_CHECK(ndr_pull_align(ndr, 4));
2263                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size));
2264                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size_sid));
2265                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
2266                 NDR_CHECK(ndr_pull_dom_sid28(ndr, NDR_SCALARS, &r->sid));
2267                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size_dn));
2268                 size_dn_0 = r->__ndr_size_dn + 1;
2269                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dn, size_dn_0, sizeof(uint16_t), CH_UTF16));
2270                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
2271         }
2272         if (ndr_flags & NDR_BUFFERS) {
2273                 NDR_CHECK(ndr_pull_dom_sid28(ndr, NDR_BUFFERS, &r->sid));
2274         }
2275         return NDR_ERR_SUCCESS;
2276 }
2277
2278 _PUBLIC_ void ndr_print_drsuapi_DsReplicaObjectIdentifier3(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaObjectIdentifier3 *r)
2279 {
2280         ndr_print_struct(ndr, name, "drsuapi_DsReplicaObjectIdentifier3");
2281         if (r == NULL) { ndr_print_null(ndr); return; }
2282         ndr->depth++;
2283         ndr_print_uint32(ndr, "__ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_drsuapi_DsReplicaObjectIdentifier3(r, ndr->flags):r->__ndr_size);
2284         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);
2285         ndr_print_GUID(ndr, "guid", &r->guid);
2286         ndr_print_dom_sid28(ndr, "sid", &r->sid);
2287         ndr_print_uint32(ndr, "__ndr_size_dn", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?strlen_m(r->dn):r->__ndr_size_dn);
2288         ndr_print_string(ndr, "dn", r->dn);
2289         ndr->depth--;
2290 }
2291
2292 _PUBLIC_ size_t ndr_size_drsuapi_DsReplicaObjectIdentifier3(const struct drsuapi_DsReplicaObjectIdentifier3 *r, int flags)
2293 {
2294         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_drsuapi_DsReplicaObjectIdentifier3);
2295 }
2296
2297 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaObjectIdentifier3Binary(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaObjectIdentifier3Binary *r)
2298 {
2299         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
2300         if (ndr_flags & NDR_SCALARS) {
2301                 NDR_CHECK(ndr_push_align(ndr, 4));
2302                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_drsuapi_DsReplicaObjectIdentifier3Binary_without_Binary(r, ndr->flags)));
2303                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_dom_sid28(&r->sid, ndr->flags)));
2304                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
2305                 NDR_CHECK(ndr_push_dom_sid28(ndr, NDR_SCALARS, &r->sid));
2306                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, strlen_m(r->dn)));
2307                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dn, strlen_m(r->dn) + 1, sizeof(uint16_t), CH_UTF16));
2308                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->binary.length + 4));
2309                 {
2310                         uint32_t _flags_save_DATA_BLOB = ndr->flags;
2311                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
2312                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->binary));
2313                         ndr->flags = _flags_save_DATA_BLOB;
2314                 }
2315                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
2316         }
2317         if (ndr_flags & NDR_BUFFERS) {
2318                 NDR_CHECK(ndr_push_dom_sid28(ndr, NDR_BUFFERS, &r->sid));
2319         }
2320         return NDR_ERR_SUCCESS;
2321 }
2322
2323 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaObjectIdentifier3Binary(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaObjectIdentifier3Binary *r)
2324 {
2325         uint32_t size_dn_0 = 0;
2326         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
2327         if (ndr_flags & NDR_SCALARS) {
2328                 NDR_CHECK(ndr_pull_align(ndr, 4));
2329                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size));
2330                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size_sid));
2331                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
2332                 NDR_CHECK(ndr_pull_dom_sid28(ndr, NDR_SCALARS, &r->sid));
2333                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size_dn));
2334                 size_dn_0 = r->__ndr_size_dn + 1;
2335                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dn, size_dn_0, sizeof(uint16_t), CH_UTF16));
2336                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size_binary));
2337                 {
2338                         uint32_t _flags_save_DATA_BLOB = ndr->flags;
2339                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
2340                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->binary));
2341                         ndr->flags = _flags_save_DATA_BLOB;
2342                 }
2343                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
2344         }
2345         if (ndr_flags & NDR_BUFFERS) {
2346                 NDR_CHECK(ndr_pull_dom_sid28(ndr, NDR_BUFFERS, &r->sid));
2347         }
2348         return NDR_ERR_SUCCESS;
2349 }
2350
2351 _PUBLIC_ void ndr_print_drsuapi_DsReplicaObjectIdentifier3Binary(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaObjectIdentifier3Binary *r)
2352 {
2353         ndr_print_struct(ndr, name, "drsuapi_DsReplicaObjectIdentifier3Binary");
2354         if (r == NULL) { ndr_print_null(ndr); return; }
2355         ndr->depth++;
2356         ndr_print_uint32(ndr, "__ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_drsuapi_DsReplicaObjectIdentifier3Binary_without_Binary(r, ndr->flags):r->__ndr_size);
2357         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);
2358         ndr_print_GUID(ndr, "guid", &r->guid);
2359         ndr_print_dom_sid28(ndr, "sid", &r->sid);
2360         ndr_print_uint32(ndr, "__ndr_size_dn", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?strlen_m(r->dn):r->__ndr_size_dn);
2361         ndr_print_string(ndr, "dn", r->dn);
2362         ndr_print_uint32(ndr, "__ndr_size_binary", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->binary.length + 4:r->__ndr_size_binary);
2363         ndr_print_DATA_BLOB(ndr, "binary", r->binary);
2364         ndr->depth--;
2365 }
2366
2367 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaAttribute(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaAttribute *r)
2368 {
2369         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
2370         if (ndr_flags & NDR_SCALARS) {
2371                 NDR_CHECK(ndr_push_align(ndr, 5));
2372                 NDR_CHECK(ndr_push_drsuapi_DsAttributeId(ndr, NDR_SCALARS, r->attid));
2373                 NDR_CHECK(ndr_push_drsuapi_DsAttributeValueCtr(ndr, NDR_SCALARS, &r->value_ctr));
2374                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2375         }
2376         if (ndr_flags & NDR_BUFFERS) {
2377                 NDR_CHECK(ndr_push_drsuapi_DsAttributeValueCtr(ndr, NDR_BUFFERS, &r->value_ctr));
2378         }
2379         return NDR_ERR_SUCCESS;
2380 }
2381
2382 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaAttribute(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaAttribute *r)
2383 {
2384         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
2385         if (ndr_flags & NDR_SCALARS) {
2386                 NDR_CHECK(ndr_pull_align(ndr, 5));
2387                 NDR_CHECK(ndr_pull_drsuapi_DsAttributeId(ndr, NDR_SCALARS, &r->attid));
2388                 NDR_CHECK(ndr_pull_drsuapi_DsAttributeValueCtr(ndr, NDR_SCALARS, &r->value_ctr));
2389                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2390         }
2391         if (ndr_flags & NDR_BUFFERS) {
2392                 NDR_CHECK(ndr_pull_drsuapi_DsAttributeValueCtr(ndr, NDR_BUFFERS, &r->value_ctr));
2393         }
2394         return NDR_ERR_SUCCESS;
2395 }
2396
2397 static enum ndr_err_code ndr_push_drsuapi_DsReplicaAttributeCtr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaAttributeCtr *r)
2398 {
2399         uint32_t cntr_attributes_1;
2400         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
2401         if (ndr_flags & NDR_SCALARS) {
2402                 NDR_CHECK(ndr_push_align(ndr, 5));
2403                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_attributes));
2404                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->attributes));
2405                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2406         }
2407         if (ndr_flags & NDR_BUFFERS) {
2408                 if (r->attributes) {
2409                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->num_attributes));
2410                         for (cntr_attributes_1 = 0; cntr_attributes_1 < r->num_attributes; cntr_attributes_1++) {
2411                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaAttribute(ndr, NDR_SCALARS, &r->attributes[cntr_attributes_1]));
2412                         }
2413                         for (cntr_attributes_1 = 0; cntr_attributes_1 < r->num_attributes; cntr_attributes_1++) {
2414                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaAttribute(ndr, NDR_BUFFERS, &r->attributes[cntr_attributes_1]));
2415                         }
2416                 }
2417         }
2418         return NDR_ERR_SUCCESS;
2419 }
2420
2421 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaAttributeCtr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaAttributeCtr *r)
2422 {
2423         uint32_t _ptr_attributes;
2424         uint32_t size_attributes_1 = 0;
2425         uint32_t cntr_attributes_1;
2426         TALLOC_CTX *_mem_save_attributes_0;
2427         TALLOC_CTX *_mem_save_attributes_1;
2428         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
2429         if (ndr_flags & NDR_SCALARS) {
2430                 NDR_CHECK(ndr_pull_align(ndr, 5));
2431                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_attributes));
2432                 if (r->num_attributes > 1048576) {
2433                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
2434                 }
2435                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_attributes));
2436                 if (_ptr_attributes) {
2437                         NDR_PULL_ALLOC(ndr, r->attributes);
2438                 } else {
2439                         r->attributes = NULL;
2440                 }
2441                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2442         }
2443         if (ndr_flags & NDR_BUFFERS) {
2444                 if (r->attributes) {
2445                         _mem_save_attributes_0 = NDR_PULL_GET_MEM_CTX(ndr);
2446                         NDR_PULL_SET_MEM_CTX(ndr, r->attributes, 0);
2447                         NDR_CHECK(ndr_pull_array_size(ndr, &r->attributes));
2448                         size_attributes_1 = ndr_get_array_size(ndr, &r->attributes);
2449                         NDR_PULL_ALLOC_N(ndr, r->attributes, size_attributes_1);
2450                         _mem_save_attributes_1 = NDR_PULL_GET_MEM_CTX(ndr);
2451                         NDR_PULL_SET_MEM_CTX(ndr, r->attributes, 0);
2452                         for (cntr_attributes_1 = 0; cntr_attributes_1 < size_attributes_1; cntr_attributes_1++) {
2453                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAttribute(ndr, NDR_SCALARS, &r->attributes[cntr_attributes_1]));
2454                         }
2455                         for (cntr_attributes_1 = 0; cntr_attributes_1 < size_attributes_1; cntr_attributes_1++) {
2456                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAttribute(ndr, NDR_BUFFERS, &r->attributes[cntr_attributes_1]));
2457                         }
2458                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attributes_1, 0);
2459                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attributes_0, 0);
2460                 }
2461                 if (r->attributes) {
2462                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->attributes, r->num_attributes));
2463                 }
2464         }
2465         return NDR_ERR_SUCCESS;
2466 }
2467
2468 _PUBLIC_ void ndr_print_drsuapi_DsReplicaAttributeCtr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaAttributeCtr *r)
2469 {
2470         uint32_t cntr_attributes_1;
2471         ndr_print_struct(ndr, name, "drsuapi_DsReplicaAttributeCtr");
2472         if (r == NULL) { ndr_print_null(ndr); return; }
2473         ndr->depth++;
2474         ndr_print_uint32(ndr, "num_attributes", r->num_attributes);
2475         ndr_print_ptr(ndr, "attributes", r->attributes);
2476         ndr->depth++;
2477         if (r->attributes) {
2478                 ndr->print(ndr, "%s: ARRAY(%d)", "attributes", (int)r->num_attributes);
2479                 ndr->depth++;
2480                 for (cntr_attributes_1=0;cntr_attributes_1<r->num_attributes;cntr_attributes_1++) {
2481                         ndr_print_drsuapi_DsReplicaAttribute(ndr, "attributes", &r->attributes[cntr_attributes_1]);
2482                 }
2483                 ndr->depth--;
2484         }
2485         ndr->depth--;
2486         ndr->depth--;
2487 }
2488
2489 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaObjectFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
2490 {
2491         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
2492         return NDR_ERR_SUCCESS;
2493 }
2494
2495 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaObjectFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
2496 {
2497         uint32_t v;
2498         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
2499         *r = v;
2500         return NDR_ERR_SUCCESS;
2501 }
2502
2503 _PUBLIC_ void ndr_print_drsuapi_DsReplicaObjectFlags(struct ndr_print *ndr, const char *name, uint32_t r)
2504 {
2505         ndr_print_uint32(ndr, name, r);
2506         ndr->depth++;
2507         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_OBJECT_FROM_MASTER", DRSUAPI_DS_REPLICA_OBJECT_FROM_MASTER, r);
2508         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_OBJECT_DYNAMIC", DRSUAPI_DS_REPLICA_OBJECT_DYNAMIC, r);
2509         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_OBJECT_REMOTE_MODIFY", DRSUAPI_DS_REPLICA_OBJECT_REMOTE_MODIFY, r);
2510         ndr->depth--;
2511 }
2512
2513 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaObject(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaObject *r)
2514 {
2515         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
2516         if (ndr_flags & NDR_SCALARS) {
2517                 NDR_CHECK(ndr_push_align(ndr, 5));
2518                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->identifier));
2519                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectFlags(ndr, NDR_SCALARS, r->flags));
2520                 NDR_CHECK(ndr_push_drsuapi_DsReplicaAttributeCtr(ndr, NDR_SCALARS, &r->attribute_ctr));
2521                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2522         }
2523         if (ndr_flags & NDR_BUFFERS) {
2524                 if (r->identifier) {
2525                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->identifier));
2526                 }
2527                 NDR_CHECK(ndr_push_drsuapi_DsReplicaAttributeCtr(ndr, NDR_BUFFERS, &r->attribute_ctr));
2528         }
2529         return NDR_ERR_SUCCESS;
2530 }
2531
2532 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaObject(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaObject *r)
2533 {
2534         uint32_t _ptr_identifier;
2535         TALLOC_CTX *_mem_save_identifier_0;
2536         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
2537         if (ndr_flags & NDR_SCALARS) {
2538                 NDR_CHECK(ndr_pull_align(ndr, 5));
2539                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_identifier));
2540                 if (_ptr_identifier) {
2541                         NDR_PULL_ALLOC(ndr, r->identifier);
2542                 } else {
2543                         r->identifier = NULL;
2544                 }
2545                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectFlags(ndr, NDR_SCALARS, &r->flags));
2546                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAttributeCtr(ndr, NDR_SCALARS, &r->attribute_ctr));
2547                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2548         }
2549         if (ndr_flags & NDR_BUFFERS) {
2550                 if (r->identifier) {
2551                         _mem_save_identifier_0 = NDR_PULL_GET_MEM_CTX(ndr);
2552                         NDR_PULL_SET_MEM_CTX(ndr, r->identifier, 0);
2553                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->identifier));
2554                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_identifier_0, 0);
2555                 }
2556                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAttributeCtr(ndr, NDR_BUFFERS, &r->attribute_ctr));
2557         }
2558         return NDR_ERR_SUCCESS;
2559 }
2560
2561 _PUBLIC_ void ndr_print_drsuapi_DsReplicaObject(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaObject *r)
2562 {
2563         ndr_print_struct(ndr, name, "drsuapi_DsReplicaObject");
2564         if (r == NULL) { ndr_print_null(ndr); return; }
2565         ndr->depth++;
2566         ndr_print_ptr(ndr, "identifier", r->identifier);
2567         ndr->depth++;
2568         if (r->identifier) {
2569                 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "identifier", r->identifier);
2570         }
2571         ndr->depth--;
2572         ndr_print_drsuapi_DsReplicaObjectFlags(ndr, "flags", r->flags);
2573         ndr_print_drsuapi_DsReplicaAttributeCtr(ndr, "attribute_ctr", &r->attribute_ctr);
2574         ndr->depth--;
2575 }
2576
2577 static enum ndr_err_code ndr_push_drsuapi_DsReplicaMetaData(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaMetaData *r)
2578 {
2579         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
2580         if (ndr_flags & NDR_SCALARS) {
2581                 NDR_CHECK(ndr_push_align(ndr, 8));
2582                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
2583                 NDR_CHECK(ndr_push_NTTIME_1sec(ndr, NDR_SCALARS, r->originating_change_time));
2584                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->originating_invocation_id));
2585                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->originating_usn));
2586                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
2587         }
2588         if (ndr_flags & NDR_BUFFERS) {
2589         }
2590         return NDR_ERR_SUCCESS;
2591 }
2592
2593 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaMetaData(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaMetaData *r)
2594 {
2595         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
2596         if (ndr_flags & NDR_SCALARS) {
2597                 NDR_CHECK(ndr_pull_align(ndr, 8));
2598                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
2599                 NDR_CHECK(ndr_pull_NTTIME_1sec(ndr, NDR_SCALARS, &r->originating_change_time));
2600                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->originating_invocation_id));
2601                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->originating_usn));
2602                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
2603         }
2604         if (ndr_flags & NDR_BUFFERS) {
2605         }
2606         return NDR_ERR_SUCCESS;
2607 }
2608
2609 _PUBLIC_ void ndr_print_drsuapi_DsReplicaMetaData(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaMetaData *r)
2610 {
2611         ndr_print_struct(ndr, name, "drsuapi_DsReplicaMetaData");
2612         if (r == NULL) { ndr_print_null(ndr); return; }
2613         ndr->depth++;
2614         ndr_print_uint32(ndr, "version", r->version);
2615         ndr_print_NTTIME_1sec(ndr, "originating_change_time", r->originating_change_time);
2616         ndr_print_GUID(ndr, "originating_invocation_id", &r->originating_invocation_id);
2617         ndr_print_hyper(ndr, "originating_usn", r->originating_usn);
2618         ndr->depth--;
2619 }
2620
2621 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaMetaDataCtr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaMetaDataCtr *r)
2622 {
2623         uint32_t cntr_meta_data_0;
2624         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
2625         if (ndr_flags & NDR_SCALARS) {
2626                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
2627                 NDR_CHECK(ndr_push_align(ndr, 8));
2628                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
2629                 for (cntr_meta_data_0 = 0; cntr_meta_data_0 < r->count; cntr_meta_data_0++) {
2630                         NDR_CHECK(ndr_push_drsuapi_DsReplicaMetaData(ndr, NDR_SCALARS, &r->meta_data[cntr_meta_data_0]));
2631                 }
2632                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
2633         }
2634         if (ndr_flags & NDR_BUFFERS) {
2635         }
2636         return NDR_ERR_SUCCESS;
2637 }
2638
2639 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaMetaDataCtr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaMetaDataCtr *r)
2640 {
2641         uint32_t size_meta_data_0 = 0;
2642         uint32_t cntr_meta_data_0;
2643         TALLOC_CTX *_mem_save_meta_data_0;
2644         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
2645         if (ndr_flags & NDR_SCALARS) {
2646                 NDR_CHECK(ndr_pull_array_size(ndr, &r->meta_data));
2647                 NDR_CHECK(ndr_pull_align(ndr, 8));
2648                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
2649                 if (r->count > 1048576) {
2650                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
2651                 }
2652                 size_meta_data_0 = ndr_get_array_size(ndr, &r->meta_data);
2653                 NDR_PULL_ALLOC_N(ndr, r->meta_data, size_meta_data_0);
2654                 _mem_save_meta_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
2655                 NDR_PULL_SET_MEM_CTX(ndr, r->meta_data, 0);
2656                 for (cntr_meta_data_0 = 0; cntr_meta_data_0 < size_meta_data_0; cntr_meta_data_0++) {
2657                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaMetaData(ndr, NDR_SCALARS, &r->meta_data[cntr_meta_data_0]));
2658                 }
2659                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_meta_data_0, 0);
2660                 if (r->meta_data) {
2661                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->meta_data, r->count));
2662                 }
2663                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
2664         }
2665         if (ndr_flags & NDR_BUFFERS) {
2666         }
2667         return NDR_ERR_SUCCESS;
2668 }
2669
2670 _PUBLIC_ void ndr_print_drsuapi_DsReplicaMetaDataCtr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaMetaDataCtr *r)
2671 {
2672         uint32_t cntr_meta_data_0;
2673         ndr_print_struct(ndr, name, "drsuapi_DsReplicaMetaDataCtr");
2674         if (r == NULL) { ndr_print_null(ndr); return; }
2675         ndr->depth++;
2676         ndr_print_uint32(ndr, "count", r->count);
2677         ndr->print(ndr, "%s: ARRAY(%d)", "meta_data", (int)r->count);
2678         ndr->depth++;
2679         for (cntr_meta_data_0=0;cntr_meta_data_0<r->count;cntr_meta_data_0++) {
2680                 ndr_print_drsuapi_DsReplicaMetaData(ndr, "meta_data", &r->meta_data[cntr_meta_data_0]);
2681         }
2682         ndr->depth--;
2683         ndr->depth--;
2684 }
2685
2686 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaObjectListItemEx(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaObjectListItemEx *r)
2687 {
2688         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
2689         if (ndr_flags & NDR_SCALARS) {
2690                 NDR_CHECK(ndr_push_align(ndr, 5));
2691                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->next_object));
2692                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObject(ndr, NDR_SCALARS, &r->object));
2693                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_nc_prefix));
2694                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parent_object_guid));
2695                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->meta_data_ctr));
2696                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2697         }
2698         if (ndr_flags & NDR_BUFFERS) {
2699                 if (r->next_object) {
2700                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectListItemEx(ndr, NDR_SCALARS|NDR_BUFFERS, r->next_object));
2701                 }
2702                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObject(ndr, NDR_BUFFERS, &r->object));
2703                 if (r->parent_object_guid) {
2704                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->parent_object_guid));
2705                 }
2706                 if (r->meta_data_ctr) {
2707                         NDR_CHECK(ndr_push_drsuapi_DsReplicaMetaDataCtr(ndr, NDR_SCALARS, r->meta_data_ctr));
2708                 }
2709         }
2710         return NDR_ERR_SUCCESS;
2711 }
2712
2713 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaObjectListItemEx(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaObjectListItemEx *r)
2714 {
2715         uint32_t _ptr_next_object;
2716         TALLOC_CTX *_mem_save_next_object_0;
2717         uint32_t _ptr_parent_object_guid;
2718         TALLOC_CTX *_mem_save_parent_object_guid_0;
2719         uint32_t _ptr_meta_data_ctr;
2720         TALLOC_CTX *_mem_save_meta_data_ctr_0;
2721         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
2722         if (ndr_flags & NDR_SCALARS) {
2723                 NDR_CHECK(ndr_pull_align(ndr, 5));
2724                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_next_object));
2725                 if (_ptr_next_object) {
2726                         NDR_PULL_ALLOC(ndr, r->next_object);
2727                 } else {
2728                         r->next_object = NULL;
2729                 }
2730                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObject(ndr, NDR_SCALARS, &r->object));
2731                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_nc_prefix));
2732                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parent_object_guid));
2733                 if (_ptr_parent_object_guid) {
2734                         NDR_PULL_ALLOC(ndr, r->parent_object_guid);
2735                 } else {
2736                         r->parent_object_guid = NULL;
2737                 }
2738                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_meta_data_ctr));
2739                 if (_ptr_meta_data_ctr) {
2740                         NDR_PULL_ALLOC(ndr, r->meta_data_ctr);
2741                 } else {
2742                         r->meta_data_ctr = NULL;
2743                 }
2744                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2745         }
2746         if (ndr_flags & NDR_BUFFERS) {
2747                 if (r->next_object) {
2748                         _mem_save_next_object_0 = NDR_PULL_GET_MEM_CTX(ndr);
2749                         NDR_PULL_SET_MEM_CTX(ndr, r->next_object, 0);
2750                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectListItemEx(ndr, NDR_SCALARS|NDR_BUFFERS, r->next_object));
2751                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_next_object_0, 0);
2752                 }
2753                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObject(ndr, NDR_BUFFERS, &r->object));
2754                 if (r->parent_object_guid) {
2755                         _mem_save_parent_object_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
2756                         NDR_PULL_SET_MEM_CTX(ndr, r->parent_object_guid, 0);
2757                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->parent_object_guid));
2758                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parent_object_guid_0, 0);
2759                 }
2760                 if (r->meta_data_ctr) {
2761                         _mem_save_meta_data_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
2762                         NDR_PULL_SET_MEM_CTX(ndr, r->meta_data_ctr, 0);
2763                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaMetaDataCtr(ndr, NDR_SCALARS, r->meta_data_ctr));
2764                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_meta_data_ctr_0, 0);
2765                 }
2766         }
2767         return NDR_ERR_SUCCESS;
2768 }
2769
2770 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesCtr1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetNCChangesCtr1 *r)
2771 {
2772         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
2773         if (ndr_flags & NDR_SCALARS) {
2774                 NDR_CHECK(ndr_push_align(ndr, 8));
2775                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_guid));
2776                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
2777                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->naming_context));
2778                 NDR_CHECK(ndr_push_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->old_highwatermark));
2779                 NDR_CHECK(ndr_push_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->new_highwatermark));
2780                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->uptodateness_vector));
2781                 NDR_CHECK(ndr_push_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_SCALARS, &r->mapping_ctr));
2782                 NDR_CHECK(ndr_push_drsuapi_DsExtendedError(ndr, NDR_SCALARS, r->extended_ret));
2783                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->object_count));
2784                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_drsuapi_DsGetNCChangesCtr1(r, ndr->flags) + 55));
2785                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->first_object));
2786                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->more_data));
2787                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
2788         }
2789         if (ndr_flags & NDR_BUFFERS) {
2790                 if (r->naming_context) {
2791                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
2792                 }
2793                 if (r->uptodateness_vector) {
2794                         NDR_CHECK(ndr_push_drsuapi_DsReplicaCursorCtrEx(ndr, NDR_SCALARS, r->uptodateness_vector));
2795                 }
2796                 NDR_CHECK(ndr_push_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_BUFFERS, &r->mapping_ctr));
2797                 if (r->first_object) {
2798                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectListItemEx(ndr, NDR_SCALARS|NDR_BUFFERS, r->first_object));
2799                 }
2800         }
2801         return NDR_ERR_SUCCESS;
2802 }
2803
2804 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesCtr1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNCChangesCtr1 *r)
2805 {
2806         uint32_t _ptr_naming_context;
2807         TALLOC_CTX *_mem_save_naming_context_0;
2808         uint32_t _ptr_uptodateness_vector;
2809         TALLOC_CTX *_mem_save_uptodateness_vector_0;
2810         uint32_t _ptr_first_object;
2811         TALLOC_CTX *_mem_save_first_object_0;
2812         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
2813         if (ndr_flags & NDR_SCALARS) {
2814                 NDR_CHECK(ndr_pull_align(ndr, 8));
2815                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_guid));
2816                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
2817                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_naming_context));
2818                 if (_ptr_naming_context) {
2819                         NDR_PULL_ALLOC(ndr, r->naming_context);
2820                 } else {
2821                         r->naming_context = NULL;
2822                 }
2823                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->old_highwatermark));
2824                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->new_highwatermark));
2825                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_uptodateness_vector));
2826                 if (_ptr_uptodateness_vector) {
2827                         NDR_PULL_ALLOC(ndr, r->uptodateness_vector);
2828                 } else {
2829                         r->uptodateness_vector = NULL;
2830                 }
2831                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_SCALARS, &r->mapping_ctr));
2832                 NDR_CHECK(ndr_pull_drsuapi_DsExtendedError(ndr, NDR_SCALARS, &r->extended_ret));
2833                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->object_count));
2834                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size));
2835                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_first_object));
2836                 if (_ptr_first_object) {
2837                         NDR_PULL_ALLOC(ndr, r->first_object);
2838                 } else {
2839                         r->first_object = NULL;
2840                 }
2841                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->more_data));
2842                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
2843         }
2844         if (ndr_flags & NDR_BUFFERS) {
2845                 if (r->naming_context) {
2846                         _mem_save_naming_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
2847                         NDR_PULL_SET_MEM_CTX(ndr, r->naming_context, 0);
2848                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
2849                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_naming_context_0, 0);
2850                 }
2851                 if (r->uptodateness_vector) {
2852                         _mem_save_uptodateness_vector_0 = NDR_PULL_GET_MEM_CTX(ndr);
2853                         NDR_PULL_SET_MEM_CTX(ndr, r->uptodateness_vector, 0);
2854                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursorCtrEx(ndr, NDR_SCALARS, r->uptodateness_vector));
2855                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_uptodateness_vector_0, 0);
2856                 }
2857                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_BUFFERS, &r->mapping_ctr));
2858                 if (r->first_object) {
2859                         _mem_save_first_object_0 = NDR_PULL_GET_MEM_CTX(ndr);
2860                         NDR_PULL_SET_MEM_CTX(ndr, r->first_object, 0);
2861                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectListItemEx(ndr, NDR_SCALARS|NDR_BUFFERS, r->first_object));
2862                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_first_object_0, 0);
2863                 }
2864         }
2865         return NDR_ERR_SUCCESS;
2866 }
2867
2868 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesCtr1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesCtr1 *r)
2869 {
2870         ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesCtr1");
2871         if (r == NULL) { ndr_print_null(ndr); return; }
2872         ndr->depth++;
2873         ndr_print_GUID(ndr, "source_dsa_guid", &r->source_dsa_guid);
2874         ndr_print_GUID(ndr, "source_dsa_invocation_id", &r->source_dsa_invocation_id);
2875         ndr_print_ptr(ndr, "naming_context", r->naming_context);
2876         ndr->depth++;
2877         if (r->naming_context) {
2878                 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "naming_context", r->naming_context);
2879         }
2880         ndr->depth--;
2881         ndr_print_drsuapi_DsReplicaHighWaterMark(ndr, "old_highwatermark", &r->old_highwatermark);
2882         ndr_print_drsuapi_DsReplicaHighWaterMark(ndr, "new_highwatermark", &r->new_highwatermark);
2883         ndr_print_ptr(ndr, "uptodateness_vector", r->uptodateness_vector);
2884         ndr->depth++;
2885         if (r->uptodateness_vector) {
2886                 ndr_print_drsuapi_DsReplicaCursorCtrEx(ndr, "uptodateness_vector", r->uptodateness_vector);
2887         }
2888         ndr->depth--;
2889         ndr_print_drsuapi_DsReplicaOIDMapping_Ctr(ndr, "mapping_ctr", &r->mapping_ctr);
2890         ndr_print_drsuapi_DsExtendedError(ndr, "extended_ret", r->extended_ret);
2891         ndr_print_uint32(ndr, "object_count", r->object_count);
2892         ndr_print_uint32(ndr, "__ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_drsuapi_DsGetNCChangesCtr1(r, ndr->flags) + 55:r->__ndr_size);
2893         ndr_print_ptr(ndr, "first_object", r->first_object);
2894         ndr->depth++;
2895         if (r->first_object) {
2896                 ndr_print_drsuapi_DsReplicaObjectListItemEx(ndr, "first_object", r->first_object);
2897         }
2898         ndr->depth--;
2899         ndr_print_uint32(ndr, "more_data", r->more_data);
2900         ndr->depth--;
2901 }
2902
2903 _PUBLIC_ size_t ndr_size_drsuapi_DsGetNCChangesCtr1(const struct drsuapi_DsGetNCChangesCtr1 *r, int flags)
2904 {
2905         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_drsuapi_DsGetNCChangesCtr1);
2906 }
2907
2908 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsLinkedAttributeFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
2909 {
2910         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
2911         return NDR_ERR_SUCCESS;
2912 }
2913
2914 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsLinkedAttributeFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
2915 {
2916         uint32_t v;
2917         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
2918         *r = v;
2919         return NDR_ERR_SUCCESS;
2920 }
2921
2922 _PUBLIC_ void ndr_print_drsuapi_DsLinkedAttributeFlags(struct ndr_print *ndr, const char *name, uint32_t r)
2923 {
2924         ndr_print_uint32(ndr, name, r);
2925         ndr->depth++;
2926         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_LINKED_ATTRIBUTE_FLAG_ACTIVE", DRSUAPI_DS_LINKED_ATTRIBUTE_FLAG_ACTIVE, r);
2927         ndr->depth--;
2928 }
2929
2930 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaLinkedAttribute(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaLinkedAttribute *r)
2931 {
2932         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
2933         if (ndr_flags & NDR_SCALARS) {
2934                 NDR_CHECK(ndr_push_align(ndr, 8));
2935                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->identifier));
2936                 NDR_CHECK(ndr_push_drsuapi_DsAttributeId(ndr, NDR_SCALARS, r->attid));
2937                 NDR_CHECK(ndr_push_drsuapi_DsAttributeValue(ndr, NDR_SCALARS, &r->value));
2938                 NDR_CHECK(ndr_push_drsuapi_DsLinkedAttributeFlags(ndr, NDR_SCALARS, r->flags));
2939                 NDR_CHECK(ndr_push_NTTIME_1sec(ndr, NDR_SCALARS, r->originating_add_time));
2940                 NDR_CHECK(ndr_push_drsuapi_DsReplicaMetaData(ndr, NDR_SCALARS, &r->meta_data));
2941                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
2942         }
2943         if (ndr_flags & NDR_BUFFERS) {
2944                 if (r->identifier) {
2945                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->identifier));
2946                 }
2947                 NDR_CHECK(ndr_push_drsuapi_DsAttributeValue(ndr, NDR_BUFFERS, &r->value));
2948         }
2949         return NDR_ERR_SUCCESS;
2950 }
2951
2952 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaLinkedAttribute(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaLinkedAttribute *r)
2953 {
2954         uint32_t _ptr_identifier;
2955         TALLOC_CTX *_mem_save_identifier_0;
2956         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
2957         if (ndr_flags & NDR_SCALARS) {
2958                 NDR_CHECK(ndr_pull_align(ndr, 8));
2959                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_identifier));
2960                 if (_ptr_identifier) {
2961                         NDR_PULL_ALLOC(ndr, r->identifier);
2962                 } else {
2963                         r->identifier = NULL;
2964                 }
2965                 NDR_CHECK(ndr_pull_drsuapi_DsAttributeId(ndr, NDR_SCALARS, &r->attid));
2966                 NDR_CHECK(ndr_pull_drsuapi_DsAttributeValue(ndr, NDR_SCALARS, &r->value));
2967                 NDR_CHECK(ndr_pull_drsuapi_DsLinkedAttributeFlags(ndr, NDR_SCALARS, &r->flags));
2968                 NDR_CHECK(ndr_pull_NTTIME_1sec(ndr, NDR_SCALARS, &r->originating_add_time));
2969                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaMetaData(ndr, NDR_SCALARS, &r->meta_data));
2970                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
2971         }
2972         if (ndr_flags & NDR_BUFFERS) {
2973                 if (r->identifier) {
2974                         _mem_save_identifier_0 = NDR_PULL_GET_MEM_CTX(ndr);
2975                         NDR_PULL_SET_MEM_CTX(ndr, r->identifier, 0);
2976                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->identifier));
2977                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_identifier_0, 0);
2978                 }
2979                 NDR_CHECK(ndr_pull_drsuapi_DsAttributeValue(ndr, NDR_BUFFERS, &r->value));
2980         }
2981         return NDR_ERR_SUCCESS;
2982 }
2983
2984 _PUBLIC_ void ndr_print_drsuapi_DsReplicaLinkedAttribute(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaLinkedAttribute *r)
2985 {
2986         ndr_print_struct(ndr, name, "drsuapi_DsReplicaLinkedAttribute");
2987         if (r == NULL) { ndr_print_null(ndr); return; }
2988         ndr->depth++;
2989         ndr_print_ptr(ndr, "identifier", r->identifier);
2990         ndr->depth++;
2991         if (r->identifier) {
2992                 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "identifier", r->identifier);
2993         }
2994         ndr->depth--;
2995         ndr_print_drsuapi_DsAttributeId(ndr, "attid", r->attid);
2996         ndr_print_drsuapi_DsAttributeValue(ndr, "value", &r->value);
2997         ndr_print_drsuapi_DsLinkedAttributeFlags(ndr, "flags", r->flags);
2998         ndr_print_NTTIME_1sec(ndr, "originating_add_time", r->originating_add_time);
2999         ndr_print_drsuapi_DsReplicaMetaData(ndr, "meta_data", &r->meta_data);
3000         ndr->depth--;
3001 }
3002
3003 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesCtr6(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetNCChangesCtr6 *r)
3004 {
3005         uint32_t cntr_linked_attributes_1;
3006         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
3007         if (ndr_flags & NDR_SCALARS) {
3008                 NDR_CHECK(ndr_push_align(ndr, 8));
3009                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_guid));
3010                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
3011                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->naming_context));
3012                 NDR_CHECK(ndr_push_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->old_highwatermark));
3013                 NDR_CHECK(ndr_push_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->new_highwatermark));
3014                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->uptodateness_vector));
3015                 NDR_CHECK(ndr_push_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_SCALARS, &r->mapping_ctr));
3016                 NDR_CHECK(ndr_push_drsuapi_DsExtendedError(ndr, NDR_SCALARS, r->extended_ret));
3017                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->object_count));
3018                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_drsuapi_DsGetNCChangesCtr6(r, ndr->flags) + 55));
3019                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->first_object));
3020                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->more_data));
3021                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nc_object_count));
3022                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nc_linked_attributes_count));
3023                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->linked_attributes_count));
3024                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->linked_attributes));
3025                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->drs_error));
3026                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
3027         }
3028         if (ndr_flags & NDR_BUFFERS) {
3029                 if (r->naming_context) {
3030                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
3031                 }
3032                 if (r->uptodateness_vector) {
3033                         NDR_CHECK(ndr_push_drsuapi_DsReplicaCursor2CtrEx(ndr, NDR_SCALARS, r->uptodateness_vector));
3034                 }
3035                 NDR_CHECK(ndr_push_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_BUFFERS, &r->mapping_ctr));
3036                 if (r->first_object) {
3037                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectListItemEx(ndr, NDR_SCALARS|NDR_BUFFERS, r->first_object));
3038                 }
3039                 if (r->linked_attributes) {
3040                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->linked_attributes_count));
3041                         for (cntr_linked_attributes_1 = 0; cntr_linked_attributes_1 < r->linked_attributes_count; cntr_linked_attributes_1++) {
3042                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaLinkedAttribute(ndr, NDR_SCALARS, &r->linked_attributes[cntr_linked_attributes_1]));
3043                         }
3044                         for (cntr_linked_attributes_1 = 0; cntr_linked_attributes_1 < r->linked_attributes_count; cntr_linked_attributes_1++) {
3045                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaLinkedAttribute(ndr, NDR_BUFFERS, &r->linked_attributes[cntr_linked_attributes_1]));
3046                         }
3047                 }
3048         }
3049         return NDR_ERR_SUCCESS;
3050 }
3051
3052 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesCtr6(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNCChangesCtr6 *r)
3053 {
3054         uint32_t _ptr_naming_context;
3055         TALLOC_CTX *_mem_save_naming_context_0;
3056         uint32_t _ptr_uptodateness_vector;
3057         TALLOC_CTX *_mem_save_uptodateness_vector_0;
3058         uint32_t _ptr_first_object;
3059         TALLOC_CTX *_mem_save_first_object_0;
3060         uint32_t _ptr_linked_attributes;
3061         uint32_t size_linked_attributes_1 = 0;
3062         uint32_t cntr_linked_attributes_1;
3063         TALLOC_CTX *_mem_save_linked_attributes_0;
3064         TALLOC_CTX *_mem_save_linked_attributes_1;
3065         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
3066         if (ndr_flags & NDR_SCALARS) {
3067                 NDR_CHECK(ndr_pull_align(ndr, 8));
3068                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_guid));
3069                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
3070                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_naming_context));
3071                 if (_ptr_naming_context) {
3072                         NDR_PULL_ALLOC(ndr, r->naming_context);
3073                 } else {
3074                         r->naming_context = NULL;
3075                 }
3076                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->old_highwatermark));
3077                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->new_highwatermark));
3078                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_uptodateness_vector));
3079                 if (_ptr_uptodateness_vector) {
3080                         NDR_PULL_ALLOC(ndr, r->uptodateness_vector);
3081                 } else {
3082                         r->uptodateness_vector = NULL;
3083                 }
3084                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_SCALARS, &r->mapping_ctr));
3085                 NDR_CHECK(ndr_pull_drsuapi_DsExtendedError(ndr, NDR_SCALARS, &r->extended_ret));
3086                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->object_count));
3087                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size));
3088                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_first_object));
3089                 if (_ptr_first_object) {
3090                         NDR_PULL_ALLOC(ndr, r->first_object);
3091                 } else {
3092                         r->first_object = NULL;
3093                 }
3094                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->more_data));
3095                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nc_object_count));
3096                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nc_linked_attributes_count));
3097                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->linked_attributes_count));
3098                 if (r->linked_attributes_count > 1048576) {
3099                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
3100                 }
3101                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_linked_attributes));
3102                 if (_ptr_linked_attributes) {
3103                         NDR_PULL_ALLOC(ndr, r->linked_attributes);
3104                 } else {
3105                         r->linked_attributes = NULL;
3106                 }
3107                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->drs_error));
3108                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
3109         }
3110         if (ndr_flags & NDR_BUFFERS) {
3111                 if (r->naming_context) {
3112                         _mem_save_naming_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
3113                         NDR_PULL_SET_MEM_CTX(ndr, r->naming_context, 0);
3114                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
3115                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_naming_context_0, 0);
3116                 }
3117                 if (r->uptodateness_vector) {
3118                         _mem_save_uptodateness_vector_0 = NDR_PULL_GET_MEM_CTX(ndr);
3119                         NDR_PULL_SET_MEM_CTX(ndr, r->uptodateness_vector, 0);
3120                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursor2CtrEx(ndr, NDR_SCALARS, r->uptodateness_vector));
3121                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_uptodateness_vector_0, 0);
3122                 }
3123                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_BUFFERS, &r->mapping_ctr));
3124                 if (r->first_object) {
3125                         _mem_save_first_object_0 = NDR_PULL_GET_MEM_CTX(ndr);
3126                         NDR_PULL_SET_MEM_CTX(ndr, r->first_object, 0);
3127                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectListItemEx(ndr, NDR_SCALARS|NDR_BUFFERS, r->first_object));
3128                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_first_object_0, 0);
3129                 }
3130                 if (r->linked_attributes) {
3131                         _mem_save_linked_attributes_0 = NDR_PULL_GET_MEM_CTX(ndr);
3132                         NDR_PULL_SET_MEM_CTX(ndr, r->linked_attributes, 0);
3133                         NDR_CHECK(ndr_pull_array_size(ndr, &r->linked_attributes));
3134                         size_linked_attributes_1 = ndr_get_array_size(ndr, &r->linked_attributes);
3135                         NDR_PULL_ALLOC_N(ndr, r->linked_attributes, size_linked_attributes_1);
3136                         _mem_save_linked_attributes_1 = NDR_PULL_GET_MEM_CTX(ndr);
3137                         NDR_PULL_SET_MEM_CTX(ndr, r->linked_attributes, 0);
3138                         for (cntr_linked_attributes_1 = 0; cntr_linked_attributes_1 < size_linked_attributes_1; cntr_linked_attributes_1++) {
3139                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaLinkedAttribute(ndr, NDR_SCALARS, &r->linked_attributes[cntr_linked_attributes_1]));
3140                         }
3141                         for (cntr_linked_attributes_1 = 0; cntr_linked_attributes_1 < size_linked_attributes_1; cntr_linked_attributes_1++) {
3142                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaLinkedAttribute(ndr, NDR_BUFFERS, &r->linked_attributes[cntr_linked_attributes_1]));
3143                         }
3144                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_linked_attributes_1, 0);
3145                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_linked_attributes_0, 0);
3146                 }
3147                 if (r->linked_attributes) {
3148                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->linked_attributes, r->linked_attributes_count));
3149                 }
3150         }
3151         return NDR_ERR_SUCCESS;
3152 }
3153
3154 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesCtr6(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesCtr6 *r)
3155 {
3156         uint32_t cntr_linked_attributes_1;
3157         ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesCtr6");
3158         if (r == NULL) { ndr_print_null(ndr); return; }
3159         ndr->depth++;
3160         ndr_print_GUID(ndr, "source_dsa_guid", &r->source_dsa_guid);
3161         ndr_print_GUID(ndr, "source_dsa_invocation_id", &r->source_dsa_invocation_id);
3162         ndr_print_ptr(ndr, "naming_context", r->naming_context);
3163         ndr->depth++;
3164         if (r->naming_context) {
3165                 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "naming_context", r->naming_context);
3166         }
3167         ndr->depth--;
3168         ndr_print_drsuapi_DsReplicaHighWaterMark(ndr, "old_highwatermark", &r->old_highwatermark);
3169         ndr_print_drsuapi_DsReplicaHighWaterMark(ndr, "new_highwatermark", &r->new_highwatermark);
3170         ndr_print_ptr(ndr, "uptodateness_vector", r->uptodateness_vector);
3171         ndr->depth++;
3172         if (r->uptodateness_vector) {
3173                 ndr_print_drsuapi_DsReplicaCursor2CtrEx(ndr, "uptodateness_vector", r->uptodateness_vector);
3174         }
3175         ndr->depth--;
3176         ndr_print_drsuapi_DsReplicaOIDMapping_Ctr(ndr, "mapping_ctr", &r->mapping_ctr);
3177         ndr_print_drsuapi_DsExtendedError(ndr, "extended_ret", r->extended_ret);
3178         ndr_print_uint32(ndr, "object_count", r->object_count);
3179         ndr_print_uint32(ndr, "__ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_drsuapi_DsGetNCChangesCtr6(r, ndr->flags) + 55:r->__ndr_size);
3180         ndr_print_ptr(ndr, "first_object", r->first_object);
3181         ndr->depth++;
3182         if (r->first_object) {
3183                 ndr_print_drsuapi_DsReplicaObjectListItemEx(ndr, "first_object", r->first_object);
3184         }
3185         ndr->depth--;
3186         ndr_print_uint32(ndr, "more_data", r->more_data);
3187         ndr_print_uint32(ndr, "nc_object_count", r->nc_object_count);
3188         ndr_print_uint32(ndr, "nc_linked_attributes_count", r->nc_linked_attributes_count);
3189         ndr_print_uint32(ndr, "linked_attributes_count", r->linked_attributes_count);
3190         ndr_print_ptr(ndr, "linked_attributes", r->linked_attributes);
3191         ndr->depth++;
3192         if (r->linked_attributes) {
3193                 ndr->print(ndr, "%s: ARRAY(%d)", "linked_attributes", (int)r->linked_attributes_count);
3194                 ndr->depth++;
3195                 for (cntr_linked_attributes_1=0;cntr_linked_attributes_1<r->linked_attributes_count;cntr_linked_attributes_1++) {
3196                         ndr_print_drsuapi_DsReplicaLinkedAttribute(ndr, "linked_attributes", &r->linked_attributes[cntr_linked_attributes_1]);
3197                 }
3198                 ndr->depth--;
3199         }
3200         ndr->depth--;
3201         ndr_print_WERROR(ndr, "drs_error", r->drs_error);
3202         ndr->depth--;
3203 }
3204
3205 _PUBLIC_ size_t ndr_size_drsuapi_DsGetNCChangesCtr6(const struct drsuapi_DsGetNCChangesCtr6 *r, int flags)
3206 {
3207         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_drsuapi_DsGetNCChangesCtr6);
3208 }
3209
3210 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesCtr1TS(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetNCChangesCtr1TS *r)
3211 {
3212         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
3213         if (ndr_flags & NDR_SCALARS) {
3214                 NDR_CHECK(ndr_push_align(ndr, 1));
3215                 {
3216                         struct ndr_push *_ndr_ctr1;
3217                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_ctr1, 0xFFFFFC01, -1));
3218                         NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr1(_ndr_ctr1, NDR_SCALARS|NDR_BUFFERS, &r->ctr1));
3219                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_ctr1, 0xFFFFFC01, -1));
3220                 }
3221                 NDR_CHECK(ndr_push_trailer_align(ndr, 1));
3222         }
3223         if (ndr_flags & NDR_BUFFERS) {
3224         }
3225         return NDR_ERR_SUCCESS;
3226 }
3227
3228 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesCtr1TS(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNCChangesCtr1TS *r)
3229 {
3230         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
3231         if (ndr_flags & NDR_SCALARS) {
3232                 NDR_CHECK(ndr_pull_align(ndr, 1));
3233                 {
3234                         struct ndr_pull *_ndr_ctr1;
3235                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_ctr1, 0xFFFFFC01, -1));
3236                         NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr1(_ndr_ctr1, NDR_SCALARS|NDR_BUFFERS, &r->ctr1));
3237                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_ctr1, 0xFFFFFC01, -1));
3238                 }
3239                 NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
3240         }
3241         if (ndr_flags & NDR_BUFFERS) {
3242         }
3243         return NDR_ERR_SUCCESS;
3244 }
3245
3246 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesCtr1TS(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesCtr1TS *r)
3247 {
3248         ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesCtr1TS");
3249         if (r == NULL) { ndr_print_null(ndr); return; }
3250         ndr->depth++;
3251         ndr_print_drsuapi_DsGetNCChangesCtr1(ndr, "ctr1", &r->ctr1);
3252         ndr->depth--;
3253 }
3254
3255 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesCtr6TS(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetNCChangesCtr6TS *r)
3256 {
3257         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
3258         if (ndr_flags & NDR_SCALARS) {
3259                 NDR_CHECK(ndr_push_align(ndr, 1));
3260                 {
3261                         struct ndr_push *_ndr_ctr6;
3262                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_ctr6, 0xFFFFFC01, -1));
3263                         NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr6(_ndr_ctr6, NDR_SCALARS|NDR_BUFFERS, &r->ctr6));
3264                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_ctr6, 0xFFFFFC01, -1));
3265                 }
3266                 NDR_CHECK(ndr_push_trailer_align(ndr, 1));
3267         }
3268         if (ndr_flags & NDR_BUFFERS) {
3269         }
3270         return NDR_ERR_SUCCESS;
3271 }
3272
3273 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesCtr6TS(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNCChangesCtr6TS *r)
3274 {
3275         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
3276         if (ndr_flags & NDR_SCALARS) {
3277                 NDR_CHECK(ndr_pull_align(ndr, 1));
3278                 {
3279                         struct ndr_pull *_ndr_ctr6;
3280                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_ctr6, 0xFFFFFC01, -1));
3281                         NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr6(_ndr_ctr6, NDR_SCALARS|NDR_BUFFERS, &r->ctr6));
3282                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_ctr6, 0xFFFFFC01, -1));
3283                 }
3284                 NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
3285         }
3286         if (ndr_flags & NDR_BUFFERS) {
3287         }
3288         return NDR_ERR_SUCCESS;
3289 }
3290
3291 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesCtr6TS(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesCtr6TS *r)
3292 {
3293         ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesCtr6TS");
3294         if (r == NULL) { ndr_print_null(ndr); return; }
3295         ndr->depth++;
3296         ndr_print_drsuapi_DsGetNCChangesCtr6(ndr, "ctr6", &r->ctr6);
3297         ndr->depth--;
3298 }
3299
3300 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesMSZIPCtr1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNCChangesMSZIPCtr1 *r)
3301 {
3302         uint32_t _ptr_ts;
3303         TALLOC_CTX *_mem_save_ts_0;
3304         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
3305         if (ndr_flags & NDR_SCALARS) {
3306                 NDR_CHECK(ndr_pull_align(ndr, 5));
3307                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->decompressed_length));
3308                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->compressed_length));
3309                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ts));
3310                 if (_ptr_ts) {
3311                         NDR_PULL_ALLOC(ndr, r->ts);
3312                 } else {
3313                         r->ts = NULL;
3314                 }
3315                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3316         }
3317         if (ndr_flags & NDR_BUFFERS) {
3318                 if (r->ts) {
3319                         _mem_save_ts_0 = NDR_PULL_GET_MEM_CTX(ndr);
3320                         NDR_PULL_SET_MEM_CTX(ndr, r->ts, 0);
3321                         {
3322                                 struct ndr_pull *_ndr_ts;
3323                                 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_ts, 4, r->compressed_length));
3324                                 {
3325                                         struct ndr_pull *_ndr_ts_compressed;
3326                                         NDR_CHECK(ndr_pull_compression_start(_ndr_ts, &_ndr_ts_compressed, NDR_COMPRESSION_MSZIP, r->decompressed_length));
3327                                         NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr1TS(_ndr_ts_compressed, NDR_SCALARS|NDR_BUFFERS, r->ts));
3328                                         NDR_CHECK(ndr_pull_compression_end(_ndr_ts, _ndr_ts_compressed, NDR_COMPRESSION_MSZIP, r->decompressed_length));
3329                                 }
3330                                 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_ts, 4, r->compressed_length));
3331                         }
3332                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ts_0, 0);
3333                 }
3334         }
3335         return NDR_ERR_SUCCESS;
3336 }
3337
3338 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesMSZIPCtr1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesMSZIPCtr1 *r)
3339 {
3340         ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesMSZIPCtr1");
3341         if (r == NULL) { ndr_print_null(ndr); return; }
3342         ndr->depth++;
3343         ndr_print_uint32(ndr, "decompressed_length", r->decompressed_length);
3344         ndr_print_uint32(ndr, "compressed_length", r->compressed_length);
3345         ndr_print_ptr(ndr, "ts", r->ts);
3346         ndr->depth++;
3347         if (r->ts) {
3348                 ndr_print_drsuapi_DsGetNCChangesCtr1TS(ndr, "ts", r->ts);
3349         }
3350         ndr->depth--;
3351         ndr->depth--;
3352 }
3353
3354 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesMSZIPCtr6(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNCChangesMSZIPCtr6 *r)
3355 {
3356         uint32_t _ptr_ts;
3357         TALLOC_CTX *_mem_save_ts_0;
3358         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
3359         if (ndr_flags & NDR_SCALARS) {
3360                 NDR_CHECK(ndr_pull_align(ndr, 5));
3361                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->decompressed_length));
3362                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->compressed_length));
3363                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ts));
3364                 if (_ptr_ts) {
3365                         NDR_PULL_ALLOC(ndr, r->ts);
3366                 } else {
3367                         r->ts = NULL;
3368                 }
3369                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3370         }
3371         if (ndr_flags & NDR_BUFFERS) {
3372                 if (r->ts) {
3373                         _mem_save_ts_0 = NDR_PULL_GET_MEM_CTX(ndr);
3374                         NDR_PULL_SET_MEM_CTX(ndr, r->ts, 0);
3375                         {
3376                                 struct ndr_pull *_ndr_ts;
3377                                 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_ts, 4, r->compressed_length));
3378                                 {
3379                                         struct ndr_pull *_ndr_ts_compressed;
3380                                         NDR_CHECK(ndr_pull_compression_start(_ndr_ts, &_ndr_ts_compressed, NDR_COMPRESSION_MSZIP, r->decompressed_length));
3381                                         NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr6TS(_ndr_ts_compressed, NDR_SCALARS|NDR_BUFFERS, r->ts));
3382                                         NDR_CHECK(ndr_pull_compression_end(_ndr_ts, _ndr_ts_compressed, NDR_COMPRESSION_MSZIP, r->decompressed_length));
3383                                 }
3384                                 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_ts, 4, r->compressed_length));
3385                         }
3386                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ts_0, 0);
3387                 }
3388         }
3389         return NDR_ERR_SUCCESS;
3390 }
3391
3392 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesMSZIPCtr6(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesMSZIPCtr6 *r)
3393 {
3394         ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesMSZIPCtr6");
3395         if (r == NULL) { ndr_print_null(ndr); return; }
3396         ndr->depth++;
3397         ndr_print_uint32(ndr, "decompressed_length", r->decompressed_length);
3398         ndr_print_uint32(ndr, "compressed_length", r->compressed_length);
3399         ndr_print_ptr(ndr, "ts", r->ts);
3400         ndr->depth++;
3401         if (r->ts) {
3402                 ndr_print_drsuapi_DsGetNCChangesCtr6TS(ndr, "ts", r->ts);
3403         }
3404         ndr->depth--;
3405         ndr->depth--;
3406 }
3407
3408 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesXPRESSCtr1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNCChangesXPRESSCtr1 *r)
3409 {
3410         uint32_t _ptr_ts;
3411         TALLOC_CTX *_mem_save_ts_0;
3412         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
3413         if (ndr_flags & NDR_SCALARS) {
3414                 NDR_CHECK(ndr_pull_align(ndr, 5));
3415                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->decompressed_length));
3416                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->compressed_length));
3417                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ts));
3418                 if (_ptr_ts) {
3419                         NDR_PULL_ALLOC(ndr, r->ts);
3420                 } else {
3421                         r->ts = NULL;
3422                 }
3423                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3424         }
3425         if (ndr_flags & NDR_BUFFERS) {
3426                 if (r->ts) {
3427                         _mem_save_ts_0 = NDR_PULL_GET_MEM_CTX(ndr);
3428                         NDR_PULL_SET_MEM_CTX(ndr, r->ts, 0);
3429                         {
3430                                 struct ndr_pull *_ndr_ts;
3431                                 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_ts, 4, r->compressed_length));
3432                                 {
3433                                         struct ndr_pull *_ndr_ts_compressed;
3434                                         NDR_CHECK(ndr_pull_compression_start(_ndr_ts, &_ndr_ts_compressed, NDR_COMPRESSION_XPRESS, r->decompressed_length));
3435                                         NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr1TS(_ndr_ts_compressed, NDR_SCALARS|NDR_BUFFERS, r->ts));
3436                                         NDR_CHECK(ndr_pull_compression_end(_ndr_ts, _ndr_ts_compressed, NDR_COMPRESSION_XPRESS, r->decompressed_length));
3437                                 }
3438                                 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_ts, 4, r->compressed_length));
3439                         }
3440                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ts_0, 0);
3441                 }
3442         }
3443         return NDR_ERR_SUCCESS;
3444 }
3445
3446 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesXPRESSCtr1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesXPRESSCtr1 *r)
3447 {
3448         ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesXPRESSCtr1");
3449         if (r == NULL) { ndr_print_null(ndr); return; }
3450         ndr->depth++;
3451         ndr_print_uint32(ndr, "decompressed_length", r->decompressed_length);
3452         ndr_print_uint32(ndr, "compressed_length", r->compressed_length);
3453         ndr_print_ptr(ndr, "ts", r->ts);
3454         ndr->depth++;
3455         if (r->ts) {
3456                 ndr_print_drsuapi_DsGetNCChangesCtr1TS(ndr, "ts", r->ts);
3457         }
3458         ndr->depth--;
3459         ndr->depth--;
3460 }
3461
3462 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesXPRESSCtr6(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNCChangesXPRESSCtr6 *r)
3463 {
3464         uint32_t _ptr_ts;
3465         TALLOC_CTX *_mem_save_ts_0;
3466         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
3467         if (ndr_flags & NDR_SCALARS) {
3468                 NDR_CHECK(ndr_pull_align(ndr, 5));
3469                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->decompressed_length));
3470                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->compressed_length));
3471                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ts));
3472                 if (_ptr_ts) {
3473                         NDR_PULL_ALLOC(ndr, r->ts);
3474                 } else {
3475                         r->ts = NULL;
3476                 }
3477                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3478         }
3479         if (ndr_flags & NDR_BUFFERS) {
3480                 if (r->ts) {
3481                         _mem_save_ts_0 = NDR_PULL_GET_MEM_CTX(ndr);
3482                         NDR_PULL_SET_MEM_CTX(ndr, r->ts, 0);
3483                         {
3484                                 struct ndr_pull *_ndr_ts;
3485                                 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_ts, 4, r->compressed_length));
3486                                 {
3487                                         struct ndr_pull *_ndr_ts_compressed;
3488                                         NDR_CHECK(ndr_pull_compression_start(_ndr_ts, &_ndr_ts_compressed, NDR_COMPRESSION_XPRESS, r->decompressed_length));
3489                                         NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr6TS(_ndr_ts_compressed, NDR_SCALARS|NDR_BUFFERS, r->ts));
3490                                         NDR_CHECK(ndr_pull_compression_end(_ndr_ts, _ndr_ts_compressed, NDR_COMPRESSION_XPRESS, r->decompressed_length));
3491                                 }
3492                                 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_ts, 4, r->compressed_length));
3493                         }
3494                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ts_0, 0);
3495                 }
3496         }
3497         return NDR_ERR_SUCCESS;
3498 }
3499
3500 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesXPRESSCtr6(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesXPRESSCtr6 *r)
3501 {
3502         ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesXPRESSCtr6");
3503         if (r == NULL) { ndr_print_null(ndr); return; }
3504         ndr->depth++;
3505         ndr_print_uint32(ndr, "decompressed_length", r->decompressed_length);
3506         ndr_print_uint32(ndr, "compressed_length", r->compressed_length);
3507         ndr_print_ptr(ndr, "ts", r->ts);
3508         ndr->depth++;
3509         if (r->ts) {
3510                 ndr_print_drsuapi_DsGetNCChangesCtr6TS(ndr, "ts", r->ts);
3511         }
3512         ndr->depth--;
3513         ndr->depth--;
3514 }
3515
3516 static enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesCompressionType(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsGetNCChangesCompressionType r)
3517 {
3518         NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
3519         return NDR_ERR_SUCCESS;
3520 }
3521
3522 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesCompressionType(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsGetNCChangesCompressionType *r)
3523 {
3524         uint16_t v;
3525         NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
3526         *r = v;
3527         return NDR_ERR_SUCCESS;
3528 }
3529
3530 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesCompressionType(struct ndr_print *ndr, const char *name, enum drsuapi_DsGetNCChangesCompressionType r)
3531 {
3532         const char *val = NULL;
3533
3534         switch (r) {
3535                 case DRSUAPI_COMPRESSION_TYPE_MSZIP: val = "DRSUAPI_COMPRESSION_TYPE_MSZIP"; break;
3536                 case DRSUAPI_COMPRESSION_TYPE_XPRESS: val = "DRSUAPI_COMPRESSION_TYPE_XPRESS"; break;
3537         }
3538         ndr_print_enum(ndr, name, "ENUM", val, r);
3539 }
3540
3541 static enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesCompressedCtr(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsGetNCChangesCompressedCtr *r)
3542 {
3543         {
3544                 uint32_t _flags_save_UNION = ndr->flags;
3545                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
3546                 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
3547                 if (ndr_flags & NDR_SCALARS) {
3548                         uint32_t level = ndr_push_get_switch_value(ndr, r);
3549                         NDR_CHECK(ndr_push_union_align(ndr, 5));
3550                         switch (level) {
3551                                 case 1|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16): {
3552                                         NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesMSZIPCtr1(ndr, NDR_SCALARS, &r->mszip1));
3553                                 break; }
3554
3555                                 case 6|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16): {
3556                                         NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesMSZIPCtr6(ndr, NDR_SCALARS, &r->mszip6));
3557                                 break; }
3558
3559                                 case 1|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16): {
3560                                         NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesXPRESSCtr1(ndr, NDR_SCALARS, &r->xpress1));
3561                                 break; }
3562
3563                                 case 6|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16): {
3564                                         NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesXPRESSCtr6(ndr, NDR_SCALARS, &r->xpress6));
3565                                 break; }
3566
3567                                 default:
3568                                         return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
3569                         }
3570                 }
3571                 if (ndr_flags & NDR_BUFFERS) {
3572                         uint32_t level = ndr_push_get_switch_value(ndr, r);
3573                         switch (level) {
3574                                 case 1|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16):
3575                                         NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesMSZIPCtr1(ndr, NDR_BUFFERS, &r->mszip1));
3576                                 break;
3577
3578                                 case 6|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16):
3579                                         NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesMSZIPCtr6(ndr, NDR_BUFFERS, &r->mszip6));
3580                                 break;
3581
3582                                 case 1|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16):
3583                                         NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesXPRESSCtr1(ndr, NDR_BUFFERS, &r->xpress1));
3584                                 break;
3585
3586                                 case 6|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16):
3587                                         NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesXPRESSCtr6(ndr, NDR_BUFFERS, &r->xpress6));
3588                                 break;
3589
3590                                 default:
3591                                         return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
3592                         }
3593                 }
3594                 ndr->flags = _flags_save_UNION;
3595         }
3596         return NDR_ERR_SUCCESS;
3597 }
3598
3599 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesCompressedCtr(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsGetNCChangesCompressedCtr *r)
3600 {
3601         uint32_t level;
3602         {
3603                 uint32_t _flags_save_UNION = ndr->flags;
3604                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
3605                 level = ndr_pull_get_switch_value(ndr, r);
3606                 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
3607                 if (ndr_flags & NDR_SCALARS) {
3608                         NDR_CHECK(ndr_pull_union_align(ndr, 5));
3609                         switch (level) {
3610                                 case 1|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16): {
3611                                         NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesMSZIPCtr1(ndr, NDR_SCALARS, &r->mszip1));
3612                                 break; }
3613
3614                                 case 6|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16): {
3615                                         NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesMSZIPCtr6(ndr, NDR_SCALARS, &r->mszip6));
3616                                 break; }
3617
3618                                 case 1|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16): {
3619                                         NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesXPRESSCtr1(ndr, NDR_SCALARS, &r->xpress1));
3620                                 break; }
3621
3622                                 case 6|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16): {
3623                                         NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesXPRESSCtr6(ndr, NDR_SCALARS, &r->xpress6));
3624                                 break; }
3625
3626                                 default:
3627                                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
3628                         }
3629                 }
3630                 if (ndr_flags & NDR_BUFFERS) {
3631                         switch (level) {
3632                                 case 1|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16):
3633                                         NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesMSZIPCtr1(ndr, NDR_BUFFERS, &r->mszip1));
3634                                 break;
3635
3636                                 case 6|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16):
3637                                         NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesMSZIPCtr6(ndr, NDR_BUFFERS, &r->mszip6));
3638                                 break;
3639
3640                                 case 1|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16):
3641                                         NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesXPRESSCtr1(ndr, NDR_BUFFERS, &r->xpress1));
3642                                 break;
3643
3644                                 case 6|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16):
3645                                         NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesXPRESSCtr6(ndr, NDR_BUFFERS, &r->xpress6));
3646                                 break;
3647
3648                                 default:
3649                                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
3650                         }
3651                 }
3652                 ndr->flags = _flags_save_UNION;
3653         }
3654         return NDR_ERR_SUCCESS;
3655 }
3656
3657 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesCompressedCtr(struct ndr_print *ndr, const char *name, const union drsuapi_DsGetNCChangesCompressedCtr *r)
3658 {
3659         uint32_t level;
3660         {
3661                 uint32_t _flags_save_UNION = ndr->flags;
3662                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
3663                 level = ndr_print_get_switch_value(ndr, r);
3664                 ndr_print_union(ndr, name, level, "drsuapi_DsGetNCChangesCompressedCtr");
3665                 switch (level) {
3666                         case 1|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16):
3667                                 ndr_print_drsuapi_DsGetNCChangesMSZIPCtr1(ndr, "mszip1", &r->mszip1);
3668                         break;
3669
3670                         case 6|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16):
3671                                 ndr_print_drsuapi_DsGetNCChangesMSZIPCtr6(ndr, "mszip6", &r->mszip6);
3672                         break;
3673
3674                         case 1|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16):
3675                                 ndr_print_drsuapi_DsGetNCChangesXPRESSCtr1(ndr, "xpress1", &r->xpress1);
3676                         break;
3677
3678                         case 6|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16):
3679                                 ndr_print_drsuapi_DsGetNCChangesXPRESSCtr6(ndr, "xpress6", &r->xpress6);
3680                         break;
3681
3682                         default:
3683                                 ndr_print_bad_level(ndr, name, level);
3684                 }
3685                 ndr->flags = _flags_save_UNION;
3686         }
3687 }
3688
3689 static enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesCtr2(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetNCChangesCtr2 *r)
3690 {
3691         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
3692         if (ndr_flags & NDR_SCALARS) {
3693                 NDR_CHECK(ndr_push_align(ndr, 5));
3694                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesMSZIPCtr1(ndr, NDR_SCALARS, &r->mszip1));
3695                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
3696         }
3697         if (ndr_flags & NDR_BUFFERS) {
3698                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesMSZIPCtr1(ndr, NDR_BUFFERS, &r->mszip1));
3699         }
3700         return NDR_ERR_SUCCESS;
3701 }
3702
3703 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesCtr2(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNCChangesCtr2 *r)
3704 {
3705         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
3706         if (ndr_flags & NDR_SCALARS) {
3707                 NDR_CHECK(ndr_pull_align(ndr, 5));
3708                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesMSZIPCtr1(ndr, NDR_SCALARS, &r->mszip1));
3709                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3710         }
3711         if (ndr_flags & NDR_BUFFERS) {
3712                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesMSZIPCtr1(ndr, NDR_BUFFERS, &r->mszip1));
3713         }
3714         return NDR_ERR_SUCCESS;
3715 }
3716
3717 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesCtr2(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesCtr2 *r)
3718 {
3719         ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesCtr2");
3720         if (r == NULL) { ndr_print_null(ndr); return; }
3721         ndr->depth++;
3722         ndr_print_drsuapi_DsGetNCChangesMSZIPCtr1(ndr, "mszip1", &r->mszip1);
3723         ndr->depth--;
3724 }
3725
3726 static enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesCtr7(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetNCChangesCtr7 *r)
3727 {
3728         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
3729         if (ndr_flags & NDR_SCALARS) {
3730                 NDR_CHECK(ndr_push_align(ndr, 5));
3731                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
3732                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCompressionType(ndr, NDR_SCALARS, r->type));
3733                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->ctr, r->level | (r->type << 16)));
3734                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCompressedCtr(ndr, NDR_SCALARS, &r->ctr));
3735                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
3736         }
3737         if (ndr_flags & NDR_BUFFERS) {
3738                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCompressedCtr(ndr, NDR_BUFFERS, &r->ctr));
3739         }
3740         return NDR_ERR_SUCCESS;
3741 }
3742
3743 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesCtr7(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNCChangesCtr7 *r)
3744 {
3745         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
3746         if (ndr_flags & NDR_SCALARS) {
3747                 NDR_CHECK(ndr_pull_align(ndr, 5));
3748                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
3749                 if (r->level > 6) {
3750                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
3751                 }
3752                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCompressionType(ndr, NDR_SCALARS, &r->type));
3753                 if (r->type < 2 || r->type > 3) {
3754                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
3755                 }
3756                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->ctr, r->level | (r->type << 16)));
3757                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCompressedCtr(ndr, NDR_SCALARS, &r->ctr));
3758                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3759         }
3760         if (ndr_flags & NDR_BUFFERS) {
3761                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCompressedCtr(ndr, NDR_BUFFERS, &r->ctr));
3762         }
3763         return NDR_ERR_SUCCESS;
3764 }
3765
3766 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesCtr7(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesCtr7 *r)
3767 {
3768         ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesCtr7");
3769         if (r == NULL) { ndr_print_null(ndr); return; }
3770         ndr->depth++;
3771         ndr_print_uint32(ndr, "level", r->level);
3772         ndr_print_drsuapi_DsGetNCChangesCompressionType(ndr, "type", r->type);
3773         ndr_print_set_switch_value(ndr, &r->ctr, r->level | (r->type << 16));
3774         ndr_print_drsuapi_DsGetNCChangesCompressedCtr(ndr, "ctr", &r->ctr);
3775         ndr->depth--;
3776 }
3777
3778 static enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesCtr(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsGetNCChangesCtr *r)
3779 {
3780         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
3781         if (ndr_flags & NDR_SCALARS) {
3782                 uint32_t level = ndr_push_get_switch_value(ndr, r);
3783                 NDR_CHECK(ndr_push_union_align(ndr, 8));
3784                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
3785                 NDR_CHECK(ndr_push_union_align(ndr, 8));
3786                 switch (level) {
3787                         case 1: {
3788                                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr1(ndr, NDR_SCALARS, &r->ctr1));
3789                         break; }
3790
3791                         case 2: {
3792                                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr2(ndr, NDR_SCALARS, &r->ctr2));
3793                         break; }
3794
3795                         case 6: {
3796                                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr6(ndr, NDR_SCALARS, &r->ctr6));
3797                         break; }
3798
3799                         case 7: {
3800                                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr7(ndr, NDR_SCALARS, &r->ctr7));
3801                         break; }
3802
3803                         default:
3804                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
3805                 }
3806         }
3807         if (ndr_flags & NDR_BUFFERS) {
3808                 uint32_t level = ndr_push_get_switch_value(ndr, r);
3809                 switch (level) {
3810                         case 1:
3811                                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr1(ndr, NDR_BUFFERS, &r->ctr1));
3812                         break;
3813
3814                         case 2:
3815                                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr2(ndr, NDR_BUFFERS, &r->ctr2));
3816                         break;
3817
3818                         case 6:
3819                                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr6(ndr, NDR_BUFFERS, &r->ctr6));
3820                         break;
3821
3822                         case 7:
3823                                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr7(ndr, NDR_BUFFERS, &r->ctr7));
3824                         break;
3825
3826                         default:
3827                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
3828                 }
3829         }
3830         return NDR_ERR_SUCCESS;
3831 }
3832
3833 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesCtr(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsGetNCChangesCtr *r)
3834 {
3835         uint32_t level;
3836         uint32_t _level;
3837         level = ndr_pull_get_switch_value(ndr, r);
3838         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
3839         if (ndr_flags & NDR_SCALARS) {
3840                 NDR_CHECK(ndr_pull_union_align(ndr, 8));
3841                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
3842                 if (_level != level) {
3843                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
3844                 }
3845                 NDR_CHECK(ndr_pull_union_align(ndr, 8));
3846                 switch (level) {
3847                         case 1: {
3848                                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr1(ndr, NDR_SCALARS, &r->ctr1));
3849                         break; }
3850
3851                         case 2: {
3852                                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr2(ndr, NDR_SCALARS, &r->ctr2));
3853                         break; }
3854
3855                         case 6: {
3856                                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr6(ndr, NDR_SCALARS, &r->ctr6));
3857                         break; }
3858
3859                         case 7: {
3860                                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr7(ndr, NDR_SCALARS, &r->ctr7));
3861                         break; }
3862
3863                         default:
3864                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
3865                 }
3866         }
3867         if (ndr_flags & NDR_BUFFERS) {
3868                 switch (level) {
3869                         case 1:
3870                                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr1(ndr, NDR_BUFFERS, &r->ctr1));
3871                         break;
3872
3873                         case 2:
3874                                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr2(ndr, NDR_BUFFERS, &r->ctr2));
3875                         break;
3876
3877                         case 6:
3878                                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr6(ndr, NDR_BUFFERS, &r->ctr6));
3879                         break;
3880
3881                         case 7:
3882                                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr7(ndr, NDR_BUFFERS, &r->ctr7));
3883                         break;
3884
3885                         default:
3886                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
3887                 }
3888         }
3889         return NDR_ERR_SUCCESS;
3890 }
3891
3892 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesCtr(struct ndr_print *ndr, const char *name, const union drsuapi_DsGetNCChangesCtr *r)
3893 {
3894         uint32_t level;
3895         level = ndr_print_get_switch_value(ndr, r);
3896         ndr_print_union(ndr, name, level, "drsuapi_DsGetNCChangesCtr");
3897         switch (level) {
3898                 case 1:
3899                         ndr_print_drsuapi_DsGetNCChangesCtr1(ndr, "ctr1", &r->ctr1);
3900                 break;
3901
3902                 case 2:
3903                         ndr_print_drsuapi_DsGetNCChangesCtr2(ndr, "ctr2", &r->ctr2);
3904                 break;
3905
3906                 case 6:
3907                         ndr_print_drsuapi_DsGetNCChangesCtr6(ndr, "ctr6", &r->ctr6);
3908                 break;
3909
3910                 case 7:
3911                         ndr_print_drsuapi_DsGetNCChangesCtr7(ndr, "ctr7", &r->ctr7);
3912                 break;
3913
3914                 default:
3915                         ndr_print_bad_level(ndr, name, level);
3916         }
3917 }
3918
3919 static enum ndr_err_code ndr_push_drsuapi_DsReplicaUpdateRefsRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaUpdateRefsRequest1 *r)
3920 {
3921         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
3922         if (ndr_flags & NDR_SCALARS) {
3923                 NDR_CHECK(ndr_push_align(ndr, 5));
3924                 if (r->naming_context == NULL) {
3925                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3926                 }
3927                 NDR_CHECK(ndr_push_ref_ptr(ndr));
3928                 if (r->dest_dsa_dns_name == NULL) {
3929                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3930                 }
3931                 NDR_CHECK(ndr_push_ref_ptr(ndr));
3932                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->dest_dsa_guid));
3933                 NDR_CHECK(ndr_push_drsuapi_DrsOptions(ndr, NDR_SCALARS, r->options));
3934                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
3935         }
3936         if (ndr_flags & NDR_BUFFERS) {
3937                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
3938                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dest_dsa_dns_name, CH_DOS)));
3939                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
3940                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dest_dsa_dns_name, CH_DOS)));
3941                 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));
3942         }
3943         return NDR_ERR_SUCCESS;
3944 }
3945
3946 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaUpdateRefsRequest1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaUpdateRefsRequest1 *r)
3947 {
3948         uint32_t _ptr_naming_context;
3949         TALLOC_CTX *_mem_save_naming_context_0;
3950         uint32_t _ptr_dest_dsa_dns_name;
3951         uint32_t size_dest_dsa_dns_name_1 = 0;
3952         uint32_t length_dest_dsa_dns_name_1 = 0;
3953         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
3954         if (ndr_flags & NDR_SCALARS) {
3955                 NDR_CHECK(ndr_pull_align(ndr, 5));
3956                 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_naming_context));
3957                 if (_ptr_naming_context) {
3958                         NDR_PULL_ALLOC(ndr, r->naming_context);
3959                 } else {
3960                         r->naming_context = NULL;
3961                 }
3962                 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_dest_dsa_dns_name));
3963                 if (_ptr_dest_dsa_dns_name) {
3964                         NDR_PULL_ALLOC(ndr, r->dest_dsa_dns_name);
3965                 } else {
3966                         r->dest_dsa_dns_name = NULL;
3967                 }
3968                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->dest_dsa_guid));
3969                 NDR_CHECK(ndr_pull_drsuapi_DrsOptions(ndr, NDR_SCALARS, &r->options));
3970                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3971         }
3972         if (ndr_flags & NDR_BUFFERS) {
3973                 _mem_save_naming_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
3974                 NDR_PULL_SET_MEM_CTX(ndr, r->naming_context, 0);
3975                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
3976                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_naming_context_0, 0);
3977                 NDR_CHECK(ndr_pull_array_size(ndr, &r->dest_dsa_dns_name));
3978                 NDR_CHECK(ndr_pull_array_length(ndr, &r->dest_dsa_dns_name));
3979                 size_dest_dsa_dns_name_1 = ndr_get_array_size(ndr, &r->dest_dsa_dns_name);
3980                 length_dest_dsa_dns_name_1 = ndr_get_array_length(ndr, &r->dest_dsa_dns_name);
3981                 if (length_dest_dsa_dns_name_1 > size_dest_dsa_dns_name_1) {
3982                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_dest_dsa_dns_name_1, length_dest_dsa_dns_name_1);
3983                 }
3984                 NDR_CHECK(ndr_check_string_terminator(ndr, length_dest_dsa_dns_name_1, sizeof(uint8_t)));
3985                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dest_dsa_dns_name, length_dest_dsa_dns_name_1, sizeof(uint8_t), CH_DOS));
3986         }
3987         return NDR_ERR_SUCCESS;
3988 }
3989
3990 _PUBLIC_ void ndr_print_drsuapi_DsReplicaUpdateRefsRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaUpdateRefsRequest1 *r)
3991 {
3992         ndr_print_struct(ndr, name, "drsuapi_DsReplicaUpdateRefsRequest1");
3993         if (r == NULL) { ndr_print_null(ndr); return; }
3994         ndr->depth++;
3995         ndr_print_ptr(ndr, "naming_context", r->naming_context);
3996         ndr->depth++;
3997         ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "naming_context", r->naming_context);
3998         ndr->depth--;
3999         ndr_print_ptr(ndr, "dest_dsa_dns_name", r->dest_dsa_dns_name);
4000         ndr->depth++;
4001         ndr_print_string(ndr, "dest_dsa_dns_name", r->dest_dsa_dns_name);
4002         ndr->depth--;
4003         ndr_print_GUID(ndr, "dest_dsa_guid", &r->dest_dsa_guid);
4004         ndr_print_drsuapi_DrsOptions(ndr, "options", r->options);
4005         ndr->depth--;
4006 }
4007
4008 static enum ndr_err_code ndr_push_drsuapi_DsReplicaUpdateRefsRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsReplicaUpdateRefsRequest *r)
4009 {
4010         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
4011         if (ndr_flags & NDR_SCALARS) {
4012                 uint32_t level = ndr_push_get_switch_value(ndr, r);
4013                 NDR_CHECK(ndr_push_union_align(ndr, 5));
4014                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
4015                 NDR_CHECK(ndr_push_union_align(ndr, 5));
4016                 switch (level) {
4017                         case 1: {
4018                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaUpdateRefsRequest1(ndr, NDR_SCALARS, &r->req1));
4019                         break; }
4020
4021                         default:
4022                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4023                 }
4024         }
4025         if (ndr_flags & NDR_BUFFERS) {
4026                 uint32_t level = ndr_push_get_switch_value(ndr, r);
4027                 switch (level) {
4028                         case 1:
4029                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaUpdateRefsRequest1(ndr, NDR_BUFFERS, &r->req1));
4030                         break;
4031
4032                         default:
4033                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4034                 }
4035         }
4036         return NDR_ERR_SUCCESS;
4037 }
4038
4039 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaUpdateRefsRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsReplicaUpdateRefsRequest *r)
4040 {
4041         uint32_t level;
4042         uint32_t _level;
4043         level = ndr_pull_get_switch_value(ndr, r);
4044         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
4045         if (ndr_flags & NDR_SCALARS) {
4046                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
4047                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
4048                 if (_level != level) {
4049                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
4050                 }
4051                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
4052                 switch (level) {
4053                         case 1: {
4054                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaUpdateRefsRequest1(ndr, NDR_SCALARS, &r->req1));
4055                         break; }
4056
4057                         default:
4058                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4059                 }
4060         }
4061         if (ndr_flags & NDR_BUFFERS) {
4062                 switch (level) {
4063                         case 1:
4064                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaUpdateRefsRequest1(ndr, NDR_BUFFERS, &r->req1));
4065                         break;
4066
4067                         default:
4068                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4069                 }
4070         }
4071         return NDR_ERR_SUCCESS;
4072 }
4073
4074 _PUBLIC_ void ndr_print_drsuapi_DsReplicaUpdateRefsRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsReplicaUpdateRefsRequest *r)
4075 {
4076         uint32_t level;
4077         level = ndr_print_get_switch_value(ndr, r);
4078         ndr_print_union(ndr, name, level, "drsuapi_DsReplicaUpdateRefsRequest");
4079         switch (level) {
4080                 case 1:
4081                         ndr_print_drsuapi_DsReplicaUpdateRefsRequest1(ndr, "req1", &r->req1);
4082                 break;
4083
4084                 default:
4085                         ndr_print_bad_level(ndr, name, level);
4086         }
4087 }
4088
4089 static enum ndr_err_code ndr_push_drsuapi_DsReplicaAddRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaAddRequest1 *r)
4090 {
4091         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
4092         if (ndr_flags & NDR_SCALARS) {
4093                 NDR_CHECK(ndr_push_align(ndr, 5));
4094                 if (r->naming_context == NULL) {
4095                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
4096                 }
4097                 NDR_CHECK(ndr_push_ref_ptr(ndr));
4098                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->source_dsa_address));
4099                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->schedule, 84));
4100                 NDR_CHECK(ndr_push_drsuapi_DrsOptions(ndr, NDR_SCALARS, r->options));
4101                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
4102         }
4103         if (ndr_flags & NDR_BUFFERS) {
4104                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
4105                 if (r->source_dsa_address) {
4106                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->source_dsa_address, CH_UTF16)));
4107                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
4108                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->source_dsa_address, CH_UTF16)));
4109                         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));
4110                 }
4111         }
4112         return NDR_ERR_SUCCESS;
4113 }
4114
4115 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaAddRequest1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaAddRequest1 *r)
4116 {
4117         uint32_t _ptr_naming_context;
4118         TALLOC_CTX *_mem_save_naming_context_0;
4119         uint32_t _ptr_source_dsa_address;
4120         uint32_t size_source_dsa_address_1 = 0;
4121         uint32_t length_source_dsa_address_1 = 0;
4122         TALLOC_CTX *_mem_save_source_dsa_address_0;
4123         uint32_t size_schedule_0 = 0;
4124         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
4125         if (ndr_flags & NDR_SCALARS) {
4126                 NDR_CHECK(ndr_pull_align(ndr, 5));
4127                 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_naming_context));
4128                 if (_ptr_naming_context) {
4129                         NDR_PULL_ALLOC(ndr, r->naming_context);
4130                 } else {
4131                         r->naming_context = NULL;
4132                 }
4133                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_source_dsa_address));
4134                 if (_ptr_source_dsa_address) {
4135                         NDR_PULL_ALLOC(ndr, r->source_dsa_address);
4136                 } else {
4137                         r->source_dsa_address = NULL;
4138                 }
4139                 size_schedule_0 = 84;
4140                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->schedule, size_schedule_0));
4141                 NDR_CHECK(ndr_pull_drsuapi_DrsOptions(ndr, NDR_SCALARS, &r->options));
4142                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
4143         }
4144         if (ndr_flags & NDR_BUFFERS) {
4145                 _mem_save_naming_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
4146                 NDR_PULL_SET_MEM_CTX(ndr, r->naming_context, 0);
4147                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
4148                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_naming_context_0, 0);
4149                 if (r->source_dsa_address) {
4150                         _mem_save_source_dsa_address_0 = NDR_PULL_GET_MEM_CTX(ndr);
4151                         NDR_PULL_SET_MEM_CTX(ndr, r->source_dsa_address, 0);
4152                         NDR_CHECK(ndr_pull_array_size(ndr, &r->source_dsa_address));
4153                         NDR_CHECK(ndr_pull_array_length(ndr, &r->source_dsa_address));
4154                         size_source_dsa_address_1 = ndr_get_array_size(ndr, &r->source_dsa_address);
4155                         length_source_dsa_address_1 = ndr_get_array_length(ndr, &r->source_dsa_address);
4156                         if (length_source_dsa_address_1 > size_source_dsa_address_1) {
4157                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_source_dsa_address_1, length_source_dsa_address_1);
4158                         }
4159                         NDR_CHECK(ndr_check_string_terminator(ndr, length_source_dsa_address_1, sizeof(uint16_t)));
4160                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->source_dsa_address, length_source_dsa_address_1, sizeof(uint16_t), CH_UTF16));
4161                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_source_dsa_address_0, 0);
4162                 }
4163         }
4164         return NDR_ERR_SUCCESS;
4165 }
4166
4167 _PUBLIC_ void ndr_print_drsuapi_DsReplicaAddRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaAddRequest1 *r)
4168 {
4169         ndr_print_struct(ndr, name, "drsuapi_DsReplicaAddRequest1");
4170         if (r == NULL) { ndr_print_null(ndr); return; }
4171         ndr->depth++;
4172         ndr_print_ptr(ndr, "naming_context", r->naming_context);
4173         ndr->depth++;
4174         ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "naming_context", r->naming_context);
4175         ndr->depth--;
4176         ndr_print_ptr(ndr, "source_dsa_address", r->source_dsa_address);
4177         ndr->depth++;
4178         if (r->source_dsa_address) {
4179                 ndr_print_string(ndr, "source_dsa_address", r->source_dsa_address);
4180         }
4181         ndr->depth--;
4182         ndr_print_array_uint8(ndr, "schedule", r->schedule, 84);
4183         ndr_print_drsuapi_DrsOptions(ndr, "options", r->options);
4184         ndr->depth--;
4185 }
4186
4187 static enum ndr_err_code ndr_push_drsuapi_DsReplicaAddRequest2(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaAddRequest2 *r)
4188 {
4189         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
4190         if (ndr_flags & NDR_SCALARS) {
4191                 NDR_CHECK(ndr_push_align(ndr, 5));
4192                 if (r->naming_context == NULL) {
4193                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
4194                 }
4195                 NDR_CHECK(ndr_push_ref_ptr(ndr));
4196                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->source_dsa_dn));
4197                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->transport_dn));
4198                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->source_dsa_address));
4199                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->schedule, 84));
4200                 NDR_CHECK(ndr_push_drsuapi_DrsOptions(ndr, NDR_SCALARS, r->options));
4201                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
4202         }
4203         if (ndr_flags & NDR_BUFFERS) {
4204                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
4205                 if (r->source_dsa_dn) {
4206                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->source_dsa_dn));
4207                 }
4208                 if (r->transport_dn) {
4209                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->transport_dn));
4210                 }
4211                 if (r->source_dsa_address) {
4212                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->source_dsa_address, CH_UTF16)));
4213                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
4214                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->source_dsa_address, CH_UTF16)));
4215                         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));
4216                 }
4217         }
4218         return NDR_ERR_SUCCESS;
4219 }
4220
4221 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaAddRequest2(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaAddRequest2 *r)
4222 {
4223         uint32_t _ptr_naming_context;
4224         TALLOC_CTX *_mem_save_naming_context_0;
4225         uint32_t _ptr_source_dsa_dn;
4226         TALLOC_CTX *_mem_save_source_dsa_dn_0;
4227         uint32_t _ptr_transport_dn;
4228         TALLOC_CTX *_mem_save_transport_dn_0;
4229         uint32_t _ptr_source_dsa_address;
4230         uint32_t size_source_dsa_address_1 = 0;
4231         uint32_t length_source_dsa_address_1 = 0;
4232         TALLOC_CTX *_mem_save_source_dsa_address_0;
4233         uint32_t size_schedule_0 = 0;
4234         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
4235         if (ndr_flags & NDR_SCALARS) {
4236                 NDR_CHECK(ndr_pull_align(ndr, 5));
4237                 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_naming_context));
4238                 if (_ptr_naming_context) {
4239                         NDR_PULL_ALLOC(ndr, r->naming_context);
4240                 } else {
4241                         r->naming_context = NULL;
4242                 }
4243                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_source_dsa_dn));
4244                 if (_ptr_source_dsa_dn) {
4245                         NDR_PULL_ALLOC(ndr, r->source_dsa_dn);
4246                 } else {
4247                         r->source_dsa_dn = NULL;
4248                 }
4249                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_transport_dn));
4250                 if (_ptr_transport_dn) {
4251                         NDR_PULL_ALLOC(ndr, r->transport_dn);
4252                 } else {
4253                         r->transport_dn = NULL;
4254                 }
4255                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_source_dsa_address));
4256                 if (_ptr_source_dsa_address) {
4257                         NDR_PULL_ALLOC(ndr, r->source_dsa_address);
4258                 } else {
4259                         r->source_dsa_address = NULL;
4260                 }
4261                 size_schedule_0 = 84;
4262                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->schedule, size_schedule_0));
4263                 NDR_CHECK(ndr_pull_drsuapi_DrsOptions(ndr, NDR_SCALARS, &r->options));
4264                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
4265         }
4266         if (ndr_flags & NDR_BUFFERS) {
4267                 _mem_save_naming_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
4268                 NDR_PULL_SET_MEM_CTX(ndr, r->naming_context, 0);
4269                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
4270                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_naming_context_0, 0);
4271                 if (r->source_dsa_dn) {
4272                         _mem_save_source_dsa_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
4273                         NDR_PULL_SET_MEM_CTX(ndr, r->source_dsa_dn, 0);
4274                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->source_dsa_dn));
4275                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_source_dsa_dn_0, 0);
4276                 }
4277                 if (r->transport_dn) {
4278                         _mem_save_transport_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
4279                         NDR_PULL_SET_MEM_CTX(ndr, r->transport_dn, 0);
4280                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->transport_dn));
4281                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_transport_dn_0, 0);
4282                 }
4283                 if (r->source_dsa_address) {
4284                         _mem_save_source_dsa_address_0 = NDR_PULL_GET_MEM_CTX(ndr);
4285                         NDR_PULL_SET_MEM_CTX(ndr, r->source_dsa_address, 0);
4286                         NDR_CHECK(ndr_pull_array_size(ndr, &r->source_dsa_address));
4287                         NDR_CHECK(ndr_pull_array_length(ndr, &r->source_dsa_address));
4288                         size_source_dsa_address_1 = ndr_get_array_size(ndr, &r->source_dsa_address);
4289                         length_source_dsa_address_1 = ndr_get_array_length(ndr, &r->source_dsa_address);
4290                         if (length_source_dsa_address_1 > size_source_dsa_address_1) {
4291                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_source_dsa_address_1, length_source_dsa_address_1);
4292                         }
4293                         NDR_CHECK(ndr_check_string_terminator(ndr, length_source_dsa_address_1, sizeof(uint16_t)));
4294                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->source_dsa_address, length_source_dsa_address_1, sizeof(uint16_t), CH_UTF16));
4295                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_source_dsa_address_0, 0);
4296                 }
4297         }
4298         return NDR_ERR_SUCCESS;
4299 }
4300
4301 _PUBLIC_ void ndr_print_drsuapi_DsReplicaAddRequest2(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaAddRequest2 *r)
4302 {
4303         ndr_print_struct(ndr, name, "drsuapi_DsReplicaAddRequest2");
4304         if (r == NULL) { ndr_print_null(ndr); return; }
4305         ndr->depth++;
4306         ndr_print_ptr(ndr, "naming_context", r->naming_context);
4307         ndr->depth++;
4308         ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "naming_context", r->naming_context);
4309         ndr->depth--;
4310         ndr_print_ptr(ndr, "source_dsa_dn", r->source_dsa_dn);
4311         ndr->depth++;
4312         if (r->source_dsa_dn) {
4313                 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "source_dsa_dn", r->source_dsa_dn);
4314         }
4315         ndr->depth--;
4316         ndr_print_ptr(ndr, "transport_dn", r->transport_dn);
4317         ndr->depth++;
4318         if (r->transport_dn) {
4319                 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "transport_dn", r->transport_dn);
4320         }
4321         ndr->depth--;
4322         ndr_print_ptr(ndr, "source_dsa_address", r->source_dsa_address);
4323         ndr->depth++;
4324         if (r->source_dsa_address) {
4325                 ndr_print_string(ndr, "source_dsa_address", r->source_dsa_address);
4326         }
4327         ndr->depth--;
4328         ndr_print_array_uint8(ndr, "schedule", r->schedule, 84);
4329         ndr_print_drsuapi_DrsOptions(ndr, "options", r->options);
4330         ndr->depth--;
4331 }
4332
4333 static enum ndr_err_code ndr_push_drsuapi_DsReplicaAddRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsReplicaAddRequest *r)
4334 {
4335         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
4336         if (ndr_flags & NDR_SCALARS) {
4337                 uint32_t level = ndr_push_get_switch_value(ndr, r);
4338                 NDR_CHECK(ndr_push_union_align(ndr, 5));
4339                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
4340                 NDR_CHECK(ndr_push_union_align(ndr, 5));
4341                 switch (level) {
4342                         case 1: {
4343                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaAddRequest1(ndr, NDR_SCALARS, &r->req1));
4344                         break; }
4345
4346                         case 2: {
4347                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaAddRequest2(ndr, NDR_SCALARS, &r->req2));
4348                         break; }
4349
4350                         default:
4351                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4352                 }
4353         }
4354         if (ndr_flags & NDR_BUFFERS) {
4355                 uint32_t level = ndr_push_get_switch_value(ndr, r);
4356                 switch (level) {
4357                         case 1:
4358                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaAddRequest1(ndr, NDR_BUFFERS, &r->req1));
4359                         break;
4360
4361                         case 2:
4362                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaAddRequest2(ndr, NDR_BUFFERS, &r->req2));
4363                         break;
4364
4365                         default:
4366                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4367                 }
4368         }
4369         return NDR_ERR_SUCCESS;
4370 }
4371
4372 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaAddRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsReplicaAddRequest *r)
4373 {
4374         uint32_t level;
4375         uint32_t _level;
4376         level = ndr_pull_get_switch_value(ndr, r);
4377         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
4378         if (ndr_flags & NDR_SCALARS) {
4379                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
4380                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
4381                 if (_level != level) {
4382                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
4383                 }
4384                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
4385                 switch (level) {
4386                         case 1: {
4387                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAddRequest1(ndr, NDR_SCALARS, &r->req1));
4388                         break; }
4389
4390                         case 2: {
4391                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAddRequest2(ndr, NDR_SCALARS, &r->req2));
4392                         break; }
4393
4394                         default:
4395                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4396                 }
4397         }
4398         if (ndr_flags & NDR_BUFFERS) {
4399                 switch (level) {
4400                         case 1:
4401                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAddRequest1(ndr, NDR_BUFFERS, &r->req1));
4402                         break;
4403
4404                         case 2:
4405                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAddRequest2(ndr, NDR_BUFFERS, &r->req2));
4406                         break;
4407
4408                         default:
4409                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4410                 }
4411         }
4412         return NDR_ERR_SUCCESS;
4413 }
4414
4415 _PUBLIC_ void ndr_print_drsuapi_DsReplicaAddRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsReplicaAddRequest *r)
4416 {
4417         uint32_t level;
4418         level = ndr_print_get_switch_value(ndr, r);
4419         ndr_print_union(ndr, name, level, "drsuapi_DsReplicaAddRequest");
4420         switch (level) {
4421                 case 1:
4422                         ndr_print_drsuapi_DsReplicaAddRequest1(ndr, "req1", &r->req1);
4423                 break;
4424
4425                 case 2:
4426                         ndr_print_drsuapi_DsReplicaAddRequest2(ndr, "req2", &r->req2);
4427                 break;
4428
4429                 default:
4430                         ndr_print_bad_level(ndr, name, level);
4431         }
4432 }
4433
4434 static enum ndr_err_code ndr_push_drsuapi_DsReplicaDelRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaDelRequest1 *r)
4435 {
4436         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
4437         if (ndr_flags & NDR_SCALARS) {
4438                 NDR_CHECK(ndr_push_align(ndr, 5));
4439                 if (r->naming_context == NULL) {
4440                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
4441                 }
4442                 NDR_CHECK(ndr_push_ref_ptr(ndr));
4443                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->source_dsa_address));
4444                 NDR_CHECK(ndr_push_drsuapi_DrsOptions(ndr, NDR_SCALARS, r->options));
4445                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
4446         }
4447         if (ndr_flags & NDR_BUFFERS) {
4448                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
4449                 if (r->source_dsa_address) {
4450                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->source_dsa_address, CH_UTF8)));
4451                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
4452                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->source_dsa_address, CH_UTF8)));
4453                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->source_dsa_address, ndr_charset_length(r->source_dsa_address, CH_UTF8), sizeof(uint8_t), CH_UTF8));
4454                 }
4455         }
4456         return NDR_ERR_SUCCESS;
4457 }
4458
4459 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaDelRequest1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaDelRequest1 *r)
4460 {
4461         uint32_t _ptr_naming_context;
4462         TALLOC_CTX *_mem_save_naming_context_0;
4463         uint32_t _ptr_source_dsa_address;
4464         uint32_t size_source_dsa_address_1 = 0;
4465         uint32_t length_source_dsa_address_1 = 0;
4466         TALLOC_CTX *_mem_save_source_dsa_address_0;
4467         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
4468         if (ndr_flags & NDR_SCALARS) {
4469                 NDR_CHECK(ndr_pull_align(ndr, 5));
4470                 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_naming_context));
4471                 if (_ptr_naming_context) {
4472                         NDR_PULL_ALLOC(ndr, r->naming_context);
4473                 } else {
4474                         r->naming_context = NULL;
4475                 }
4476                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_source_dsa_address));
4477                 if (_ptr_source_dsa_address) {
4478                         NDR_PULL_ALLOC(ndr, r->source_dsa_address);
4479                 } else {
4480                         r->source_dsa_address = NULL;
4481                 }
4482                 NDR_CHECK(ndr_pull_drsuapi_DrsOptions(ndr, NDR_SCALARS, &r->options));
4483                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
4484         }
4485         if (ndr_flags & NDR_BUFFERS) {
4486                 _mem_save_naming_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
4487                 NDR_PULL_SET_MEM_CTX(ndr, r->naming_context, 0);
4488                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
4489                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_naming_context_0, 0);
4490                 if (r->source_dsa_address) {
4491                         _mem_save_source_dsa_address_0 = NDR_PULL_GET_MEM_CTX(ndr);
4492                         NDR_PULL_SET_MEM_CTX(ndr, r->source_dsa_address, 0);
4493                         NDR_CHECK(ndr_pull_array_size(ndr, &r->source_dsa_address));
4494                         NDR_CHECK(ndr_pull_array_length(ndr, &r->source_dsa_address));
4495                         size_source_dsa_address_1 = ndr_get_array_size(ndr, &r->source_dsa_address);
4496                         length_source_dsa_address_1 = ndr_get_array_length(ndr, &r->source_dsa_address);
4497                         if (length_source_dsa_address_1 > size_source_dsa_address_1) {
4498                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_source_dsa_address_1, length_source_dsa_address_1);
4499                         }
4500                         NDR_CHECK(ndr_check_string_terminator(ndr, length_source_dsa_address_1, sizeof(uint8_t)));
4501                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->source_dsa_address, length_source_dsa_address_1, sizeof(uint8_t), CH_UTF8));
4502                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_source_dsa_address_0, 0);
4503                 }
4504         }
4505         return NDR_ERR_SUCCESS;
4506 }
4507
4508 _PUBLIC_ void ndr_print_drsuapi_DsReplicaDelRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaDelRequest1 *r)
4509 {
4510         ndr_print_struct(ndr, name, "drsuapi_DsReplicaDelRequest1");
4511         if (r == NULL) { ndr_print_null(ndr); return; }
4512         ndr->depth++;
4513         ndr_print_ptr(ndr, "naming_context", r->naming_context);
4514         ndr->depth++;
4515         ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "naming_context", r->naming_context);
4516         ndr->depth--;
4517         ndr_print_ptr(ndr, "source_dsa_address", r->source_dsa_address);
4518         ndr->depth++;
4519         if (r->source_dsa_address) {
4520                 ndr_print_string(ndr, "source_dsa_address", r->source_dsa_address);
4521         }
4522         ndr->depth--;
4523         ndr_print_drsuapi_DrsOptions(ndr, "options", r->options);
4524         ndr->depth--;
4525 }
4526
4527 static enum ndr_err_code ndr_push_drsuapi_DsReplicaDelRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsReplicaDelRequest *r)
4528 {
4529         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
4530         if (ndr_flags & NDR_SCALARS) {
4531                 uint32_t level = ndr_push_get_switch_value(ndr, r);
4532                 NDR_CHECK(ndr_push_union_align(ndr, 5));
4533                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
4534                 NDR_CHECK(ndr_push_union_align(ndr, 5));
4535                 switch (level) {
4536                         case 1: {
4537                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaDelRequest1(ndr, NDR_SCALARS, &r->req1));
4538                         break; }
4539
4540                         default:
4541                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4542                 }
4543         }
4544         if (ndr_flags & NDR_BUFFERS) {
4545                 uint32_t level = ndr_push_get_switch_value(ndr, r);
4546                 switch (level) {
4547                         case 1:
4548                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaDelRequest1(ndr, NDR_BUFFERS, &r->req1));
4549                         break;
4550
4551                         default:
4552                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4553                 }
4554         }
4555         return NDR_ERR_SUCCESS;
4556 }
4557
4558 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaDelRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsReplicaDelRequest *r)
4559 {
4560         uint32_t level;
4561         uint32_t _level;
4562         level = ndr_pull_get_switch_value(ndr, r);
4563         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
4564         if (ndr_flags & NDR_SCALARS) {
4565                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
4566                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
4567                 if (_level != level) {
4568                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
4569                 }
4570                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
4571                 switch (level) {
4572                         case 1: {
4573                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaDelRequest1(ndr, NDR_SCALARS, &r->req1));
4574                         break; }
4575
4576                         default:
4577                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4578                 }
4579         }
4580         if (ndr_flags & NDR_BUFFERS) {
4581                 switch (level) {
4582                         case 1:
4583                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaDelRequest1(ndr, NDR_BUFFERS, &r->req1));
4584                         break;
4585
4586                         default:
4587                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4588                 }
4589         }
4590         return NDR_ERR_SUCCESS;
4591 }
4592
4593 _PUBLIC_ void ndr_print_drsuapi_DsReplicaDelRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsReplicaDelRequest *r)
4594 {
4595         uint32_t level;
4596         level = ndr_print_get_switch_value(ndr, r);
4597         ndr_print_union(ndr, name, level, "drsuapi_DsReplicaDelRequest");
4598         switch (level) {
4599                 case 1:
4600                         ndr_print_drsuapi_DsReplicaDelRequest1(ndr, "req1", &r->req1);
4601                 break;
4602
4603                 default:
4604                         ndr_print_bad_level(ndr, name, level);
4605         }
4606 }
4607
4608 static enum ndr_err_code ndr_push_drsuapi_DsReplicaModRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaModRequest1 *r)
4609 {
4610         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
4611         if (ndr_flags & NDR_SCALARS) {
4612                 NDR_CHECK(ndr_push_align(ndr, 5));
4613                 if (r->naming_context == NULL) {
4614                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
4615                 }
4616                 NDR_CHECK(ndr_push_ref_ptr(ndr));
4617                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dra));
4618                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->source_dra_address));
4619                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->schedule, 84));
4620                 NDR_CHECK(ndr_push_drsuapi_DrsOptions(ndr, NDR_SCALARS, r->replica_flags));
4621                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->modify_fields));
4622                 NDR_CHECK(ndr_push_drsuapi_DrsOptions(ndr, NDR_SCALARS, r->options));
4623                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
4624         }
4625         if (ndr_flags & NDR_BUFFERS) {
4626                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
4627                 if (r->source_dra_address) {
4628                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->source_dra_address, CH_UTF16)));
4629                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
4630                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->source_dra_address, CH_UTF16)));
4631                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->source_dra_address, ndr_charset_length(r->source_dra_address, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4632                 }
4633         }
4634         return NDR_ERR_SUCCESS;
4635 }
4636
4637 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaModRequest1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaModRequest1 *r)
4638 {
4639         uint32_t _ptr_naming_context;
4640         TALLOC_CTX *_mem_save_naming_context_0;
4641         uint32_t _ptr_source_dra_address;
4642         uint32_t size_source_dra_address_1 = 0;
4643         uint32_t length_source_dra_address_1 = 0;
4644         TALLOC_CTX *_mem_save_source_dra_address_0;
4645         uint32_t size_schedule_0 = 0;
4646         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
4647         if (ndr_flags & NDR_SCALARS) {
4648                 NDR_CHECK(ndr_pull_align(ndr, 5));
4649                 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_naming_context));
4650                 if (_ptr_naming_context) {
4651                         NDR_PULL_ALLOC(ndr, r->naming_context);
4652                 } else {
4653                         r->naming_context = NULL;
4654                 }
4655                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dra));
4656                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_source_dra_address));
4657                 if (_ptr_source_dra_address) {
4658                         NDR_PULL_ALLOC(ndr, r->source_dra_address);
4659                 } else {
4660                         r->source_dra_address = NULL;
4661                 }
4662                 size_schedule_0 = 84;
4663                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->schedule, size_schedule_0));
4664                 NDR_CHECK(ndr_pull_drsuapi_DrsOptions(ndr, NDR_SCALARS, &r->replica_flags));
4665                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->modify_fields));
4666                 NDR_CHECK(ndr_pull_drsuapi_DrsOptions(ndr, NDR_SCALARS, &r->options));
4667                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
4668         }
4669         if (ndr_flags & NDR_BUFFERS) {
4670                 _mem_save_naming_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
4671                 NDR_PULL_SET_MEM_CTX(ndr, r->naming_context, 0);
4672                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
4673                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_naming_context_0, 0);
4674                 if (r->source_dra_address) {
4675                         _mem_save_source_dra_address_0 = NDR_PULL_GET_MEM_CTX(ndr);
4676                         NDR_PULL_SET_MEM_CTX(ndr, r->source_dra_address, 0);
4677                         NDR_CHECK(ndr_pull_array_size(ndr, &r->source_dra_address));
4678                         NDR_CHECK(ndr_pull_array_length(ndr, &r->source_dra_address));
4679                         size_source_dra_address_1 = ndr_get_array_size(ndr, &r->source_dra_address);
4680                         length_source_dra_address_1 = ndr_get_array_length(ndr, &r->source_dra_address);
4681                         if (length_source_dra_address_1 > size_source_dra_address_1) {
4682                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_source_dra_address_1, length_source_dra_address_1);
4683                         }
4684                         NDR_CHECK(ndr_check_string_terminator(ndr, length_source_dra_address_1, sizeof(uint16_t)));
4685                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->source_dra_address, length_source_dra_address_1, sizeof(uint16_t), CH_UTF16));
4686                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_source_dra_address_0, 0);
4687                 }
4688         }
4689         return NDR_ERR_SUCCESS;
4690 }
4691
4692 _PUBLIC_ void ndr_print_drsuapi_DsReplicaModRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaModRequest1 *r)
4693 {
4694         ndr_print_struct(ndr, name, "drsuapi_DsReplicaModRequest1");
4695         if (r == NULL) { ndr_print_null(ndr); return; }
4696         ndr->depth++;
4697         ndr_print_ptr(ndr, "naming_context", r->naming_context);
4698         ndr->depth++;
4699         ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "naming_context", r->naming_context);
4700         ndr->depth--;
4701         ndr_print_GUID(ndr, "source_dra", &r->source_dra);
4702         ndr_print_ptr(ndr, "source_dra_address", r->source_dra_address);
4703         ndr->depth++;
4704         if (r->source_dra_address) {
4705                 ndr_print_string(ndr, "source_dra_address", r->source_dra_address);
4706         }
4707         ndr->depth--;
4708         ndr_print_array_uint8(ndr, "schedule", r->schedule, 84);
4709         ndr_print_drsuapi_DrsOptions(ndr, "replica_flags", r->replica_flags);
4710         ndr_print_uint32(ndr, "modify_fields", r->modify_fields);
4711         ndr_print_drsuapi_DrsOptions(ndr, "options", r->options);
4712         ndr->depth--;
4713 }
4714
4715 static enum ndr_err_code ndr_push_drsuapi_DsReplicaModRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsReplicaModRequest *r)
4716 {
4717         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
4718         if (ndr_flags & NDR_SCALARS) {
4719                 uint32_t level = ndr_push_get_switch_value(ndr, r);
4720                 NDR_CHECK(ndr_push_union_align(ndr, 5));
4721                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
4722                 NDR_CHECK(ndr_push_union_align(ndr, 5));
4723                 switch (level) {
4724                         case 1: {
4725                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaModRequest1(ndr, NDR_SCALARS, &r->req1));
4726                         break; }
4727
4728                         default:
4729                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4730                 }
4731         }
4732         if (ndr_flags & NDR_BUFFERS) {
4733                 uint32_t level = ndr_push_get_switch_value(ndr, r);
4734                 switch (level) {
4735                         case 1:
4736                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaModRequest1(ndr, NDR_BUFFERS, &r->req1));
4737                         break;
4738
4739                         default:
4740                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4741                 }
4742         }
4743         return NDR_ERR_SUCCESS;
4744 }
4745
4746 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaModRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsReplicaModRequest *r)
4747 {
4748         uint32_t level;
4749         uint32_t _level;
4750         level = ndr_pull_get_switch_value(ndr, r);
4751         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
4752         if (ndr_flags & NDR_SCALARS) {
4753                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
4754                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
4755                 if (_level != level) {
4756                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
4757                 }
4758                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
4759                 switch (level) {
4760                         case 1: {
4761                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaModRequest1(ndr, NDR_SCALARS, &r->req1));
4762                         break; }
4763
4764                         default:
4765                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4766                 }
4767         }
4768         if (ndr_flags & NDR_BUFFERS) {
4769                 switch (level) {
4770                         case 1:
4771                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaModRequest1(ndr, NDR_BUFFERS, &r->req1));
4772                         break;
4773
4774                         default:
4775                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4776                 }
4777         }
4778         return NDR_ERR_SUCCESS;
4779 }
4780
4781 _PUBLIC_ void ndr_print_drsuapi_DsReplicaModRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsReplicaModRequest *r)
4782 {
4783         uint32_t level;
4784         level = ndr_print_get_switch_value(ndr, r);
4785         ndr_print_union(ndr, name, level, "drsuapi_DsReplicaModRequest");
4786         switch (level) {
4787                 case 1:
4788                         ndr_print_drsuapi_DsReplicaModRequest1(ndr, "req1", &r->req1);
4789                 break;
4790
4791                 default:
4792                         ndr_print_bad_level(ndr, name, level);
4793         }
4794 }
4795
4796 static enum ndr_err_code ndr_push_drsuapi_DsMembershipType(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsMembershipType r)
4797 {
4798         NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
4799         return NDR_ERR_SUCCESS;
4800 }
4801
4802 static enum ndr_err_code ndr_pull_drsuapi_DsMembershipType(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsMembershipType *r)
4803 {
4804         uint32_t v;
4805         NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
4806         *r = v;
4807         return NDR_ERR_SUCCESS;
4808 }
4809
4810 _PUBLIC_ void ndr_print_drsuapi_DsMembershipType(struct ndr_print *ndr, const char *name, enum drsuapi_DsMembershipType r)
4811 {
4812         const char *val = NULL;
4813
4814         switch (r) {
4815                 case DRSUAPI_DS_MEMBERSHIP_TYPE_UNIVERSAL_AND_DOMAIN_GROUPS: val = "DRSUAPI_DS_MEMBERSHIP_TYPE_UNIVERSAL_AND_DOMAIN_GROUPS"; break;
4816                 case DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_LOCAL_GROUPS: val = "DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_LOCAL_GROUPS"; break;
4817                 case DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_GROUPS: val = "DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_GROUPS"; break;
4818                 case DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_LOCAL_GROUPS2: val = "DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_LOCAL_GROUPS2"; break;
4819                 case DRSUAPI_DS_MEMBERSHIP_TYPE_UNIVERSAL_GROUPS: val = "DRSUAPI_DS_MEMBERSHIP_TYPE_UNIVERSAL_GROUPS"; break;
4820                 case DRSUAPI_DS_MEMBERSHIP_TYPE_GROUPMEMBERS: val = "DRSUAPI_DS_MEMBERSHIP_TYPE_GROUPMEMBERS"; break;
4821                 case DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_GROUPS2: val = "DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_GROUPS2"; break;
4822         }
4823         ndr_print_enum(ndr, name, "ENUM", val, r);
4824 }
4825
4826 static enum ndr_err_code ndr_push_drsuapi_DsGetMembershipsCtr1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetMembershipsCtr1 *r)
4827 {
4828         uint32_t cntr_info_array_1;
4829         uint32_t cntr_group_attrs_1;
4830         uint32_t cntr_sids_1;
4831         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
4832         if (ndr_flags & NDR_SCALARS) {
4833                 NDR_CHECK(ndr_push_align(ndr, 5));
4834                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->status));
4835                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_memberships));
4836                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_sids));
4837                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info_array));
4838                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->group_attrs));
4839                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sids));
4840                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
4841         }
4842         if (ndr_flags & NDR_BUFFERS) {
4843                 if (r->info_array) {
4844                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->num_memberships));
4845                         for (cntr_info_array_1 = 0; cntr_info_array_1 < r->num_memberships; cntr_info_array_1++) {
4846                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info_array[cntr_info_array_1]));
4847                         }
4848                         for (cntr_info_array_1 = 0; cntr_info_array_1 < r->num_memberships; cntr_info_array_1++) {
4849                                 if (r->info_array[cntr_info_array_1]) {
4850                                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->info_array[cntr_info_array_1]));
4851                                 }
4852                         }
4853                 }
4854                 if (r->group_attrs) {
4855                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->num_memberships));
4856                         for (cntr_group_attrs_1 = 0; cntr_group_attrs_1 < r->num_memberships; cntr_group_attrs_1++) {
4857                                 NDR_CHECK(ndr_push_samr_GroupAttrs(ndr, NDR_SCALARS, r->group_attrs[cntr_group_attrs_1]));
4858                         }
4859                 }
4860                 if (r->sids) {
4861                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->num_sids));
4862                         for (cntr_sids_1 = 0; cntr_sids_1 < r->num_sids; cntr_sids_1++) {
4863                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sids[cntr_sids_1]));
4864                         }
4865                         for (cntr_sids_1 = 0; cntr_sids_1 < r->num_sids; cntr_sids_1++) {
4866                                 if (r->sids[cntr_sids_1]) {
4867                                         NDR_CHECK(ndr_push_dom_sid28(ndr, NDR_SCALARS|NDR_BUFFERS, r->sids[cntr_sids_1]));
4868                                 }
4869                         }
4870                 }
4871         }
4872         return NDR_ERR_SUCCESS;
4873 }
4874
4875 static enum ndr_err_code ndr_pull_drsuapi_DsGetMembershipsCtr1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetMembershipsCtr1 *r)
4876 {
4877         uint32_t _ptr_info_array;
4878         uint32_t size_info_array_1 = 0;
4879         uint32_t cntr_info_array_1;
4880         TALLOC_CTX *_mem_save_info_array_0;
4881         TALLOC_CTX *_mem_save_info_array_1;
4882         TALLOC_CTX *_mem_save_info_array_2;
4883         uint32_t _ptr_group_attrs;
4884         uint32_t size_group_attrs_1 = 0;
4885         uint32_t cntr_group_attrs_1;
4886         TALLOC_CTX *_mem_save_group_attrs_0;
4887         TALLOC_CTX *_mem_save_group_attrs_1;
4888         uint32_t _ptr_sids;
4889         uint32_t size_sids_1 = 0;
4890         uint32_t cntr_sids_1;
4891         TALLOC_CTX *_mem_save_sids_0;
4892         TALLOC_CTX *_mem_save_sids_1;
4893         TALLOC_CTX *_mem_save_sids_2;
4894         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
4895         if (ndr_flags & NDR_SCALARS) {
4896                 NDR_CHECK(ndr_pull_align(ndr, 5));
4897                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->status));
4898                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_memberships));
4899                 if (r->num_memberships > 10000) {
4900                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
4901                 }
4902                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_sids));
4903                 if (r->num_sids > 10000) {
4904                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
4905                 }
4906                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info_array));
4907                 if (_ptr_info_array) {
4908                         NDR_PULL_ALLOC(ndr, r->info_array);
4909                 } else {
4910                         r->info_array = NULL;
4911                 }
4912                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_group_attrs));
4913                 if (_ptr_group_attrs) {
4914                         NDR_PULL_ALLOC(ndr, r->group_attrs);
4915                 } else {
4916                         r->group_attrs = NULL;
4917                 }
4918                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sids));
4919                 if (_ptr_sids) {
4920                         NDR_PULL_ALLOC(ndr, r->sids);
4921                 } else {
4922                         r->sids = NULL;
4923                 }
4924                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
4925         }
4926         if (ndr_flags & NDR_BUFFERS) {
4927                 if (r->info_array) {
4928                         _mem_save_info_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
4929                         NDR_PULL_SET_MEM_CTX(ndr, r->info_array, 0);
4930                         NDR_CHECK(ndr_pull_array_size(ndr, &r->info_array));
4931                         size_info_array_1 = ndr_get_array_size(ndr, &r->info_array);
4932                         NDR_PULL_ALLOC_N(ndr, r->info_array, size_info_array_1);
4933                         _mem_save_info_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
4934                         NDR_PULL_SET_MEM_CTX(ndr, r->info_array, 0);
4935                         for (cntr_info_array_1 = 0; cntr_info_array_1 < size_info_array_1; cntr_info_array_1++) {
4936                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info_array));
4937                                 if (_ptr_info_array) {
4938                                         NDR_PULL_ALLOC(ndr, r->info_array[cntr_info_array_1]);
4939                                 } else {
4940                                         r->info_array[cntr_info_array_1] = NULL;
4941                                 }
4942                         }
4943                         for (cntr_info_array_1 = 0; cntr_info_array_1 < size_info_array_1; cntr_info_array_1++) {
4944                                 if (r->info_array[cntr_info_array_1]) {
4945                                         _mem_save_info_array_2 = NDR_PULL_GET_MEM_CTX(ndr);
4946                                         NDR_PULL_SET_MEM_CTX(ndr, r->info_array[cntr_info_array_1], 0);
4947                                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->info_array[cntr_info_array_1]));
4948                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_array_2, 0);
4949                                 }
4950                         }
4951                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_array_1, 0);
4952                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_array_0, 0);
4953                 }
4954                 if (r->group_attrs) {
4955                         _mem_save_group_attrs_0 = NDR_PULL_GET_MEM_CTX(ndr);
4956                         NDR_PULL_SET_MEM_CTX(ndr, r->group_attrs, 0);
4957                         NDR_CHECK(ndr_pull_array_size(ndr, &r->group_attrs));
4958                         size_group_attrs_1 = ndr_get_array_size(ndr, &r->group_attrs);
4959                         NDR_PULL_ALLOC_N(ndr, r->group_attrs, size_group_attrs_1);
4960                         _mem_save_group_attrs_1 = NDR_PULL_GET_MEM_CTX(ndr);
4961                         NDR_PULL_SET_MEM_CTX(ndr, r->group_attrs, 0);
4962                         for (cntr_group_attrs_1 = 0; cntr_group_attrs_1 < size_group_attrs_1; cntr_group_attrs_1++) {
4963                                 NDR_CHECK(ndr_pull_samr_GroupAttrs(ndr, NDR_SCALARS, &r->group_attrs[cntr_group_attrs_1]));
4964                         }
4965                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_attrs_1, 0);
4966                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_attrs_0, 0);
4967                 }
4968                 if (r->sids) {
4969                         _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
4970                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
4971                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sids));
4972                         size_sids_1 = ndr_get_array_size(ndr, &r->sids);
4973                         NDR_PULL_ALLOC_N(ndr, r->sids, size_sids_1);
4974                         _mem_save_sids_1 = NDR_PULL_GET_MEM_CTX(ndr);
4975                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
4976                         for (cntr_sids_1 = 0; cntr_sids_1 < size_sids_1; cntr_sids_1++) {
4977                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sids));
4978                                 if (_ptr_sids) {
4979                                         NDR_PULL_ALLOC(ndr, r->sids[cntr_sids_1]);
4980                                 } else {
4981                                         r->sids[cntr_sids_1] = NULL;
4982                                 }
4983                         }
4984                         for (cntr_sids_1 = 0; cntr_sids_1 < size_sids_1; cntr_sids_1++) {
4985                                 if (r->sids[cntr_sids_1]) {
4986                                         _mem_save_sids_2 = NDR_PULL_GET_MEM_CTX(ndr);
4987                                         NDR_PULL_SET_MEM_CTX(ndr, r->sids[cntr_sids_1], 0);
4988                                         NDR_CHECK(ndr_pull_dom_sid28(ndr, NDR_SCALARS|NDR_BUFFERS, r->sids[cntr_sids_1]));
4989                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_2, 0);
4990                                 }
4991                         }
4992                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_1, 0);
4993                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, 0);
4994                 }
4995                 if (r->info_array) {
4996                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->info_array, r->num_memberships));
4997                 }
4998                 if (r->group_attrs) {
4999                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->group_attrs, r->num_memberships));
5000                 }
5001                 if (r->sids) {
5002                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sids, r->num_sids));
5003                 }
5004         }
5005         return NDR_ERR_SUCCESS;
5006 }
5007
5008 _PUBLIC_ void ndr_print_drsuapi_DsGetMembershipsCtr1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetMembershipsCtr1 *r)
5009 {
5010         uint32_t cntr_info_array_1;
5011         uint32_t cntr_group_attrs_1;
5012         uint32_t cntr_sids_1;
5013         ndr_print_struct(ndr, name, "drsuapi_DsGetMembershipsCtr1");
5014         if (r == NULL) { ndr_print_null(ndr); return; }
5015         ndr->depth++;
5016         ndr_print_NTSTATUS(ndr, "status", r->status);
5017         ndr_print_uint32(ndr, "num_memberships", r->num_memberships);
5018         ndr_print_uint32(ndr, "num_sids", r->num_sids);
5019         ndr_print_ptr(ndr, "info_array", r->info_array);
5020         ndr->depth++;
5021         if (r->info_array) {
5022                 ndr->print(ndr, "%s: ARRAY(%d)", "info_array", (int)r->num_memberships);
5023                 ndr->depth++;
5024                 for (cntr_info_array_1=0;cntr_info_array_1<r->num_memberships;cntr_info_array_1++) {
5025                         ndr_print_ptr(ndr, "info_array", r->info_array[cntr_info_array_1]);
5026                         ndr->depth++;
5027                         if (r->info_array[cntr_info_array_1]) {
5028                                 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "info_array", r->info_array[cntr_info_array_1]);
5029                         }
5030                         ndr->depth--;
5031                 }
5032                 ndr->depth--;
5033         }
5034         ndr->depth--;
5035         ndr_print_ptr(ndr, "group_attrs", r->group_attrs);
5036         ndr->depth++;
5037         if (r->group_attrs) {
5038                 ndr->print(ndr, "%s: ARRAY(%d)", "group_attrs", (int)r->num_memberships);
5039                 ndr->depth++;
5040                 for (cntr_group_attrs_1=0;cntr_group_attrs_1<r->num_memberships;cntr_group_attrs_1++) {
5041                         ndr_print_samr_GroupAttrs(ndr, "group_attrs", r->group_attrs[cntr_group_attrs_1]);
5042                 }
5043                 ndr->depth--;
5044         }
5045         ndr->depth--;
5046         ndr_print_ptr(ndr, "sids", r->sids);
5047         ndr->depth++;
5048         if (r->sids) {
5049                 ndr->print(ndr, "%s: ARRAY(%d)", "sids", (int)r->num_sids);
5050                 ndr->depth++;
5051                 for (cntr_sids_1=0;cntr_sids_1<r->num_sids;cntr_sids_1++) {
5052                         ndr_print_ptr(ndr, "sids", r->sids[cntr_sids_1]);
5053                         ndr->depth++;
5054                         if (r->sids[cntr_sids_1]) {
5055                                 ndr_print_dom_sid28(ndr, "sids", r->sids[cntr_sids_1]);
5056                         }
5057                         ndr->depth--;
5058                 }
5059                 ndr->depth--;
5060         }
5061         ndr->depth--;
5062         ndr->depth--;
5063 }
5064
5065 static enum ndr_err_code ndr_push_drsuapi_DsGetMembershipsCtr(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsGetMembershipsCtr *r)
5066 {
5067         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
5068         if (ndr_flags & NDR_SCALARS) {
5069                 uint32_t level = ndr_push_get_switch_value(ndr, r);
5070                 NDR_CHECK(ndr_push_union_align(ndr, 5));
5071                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
5072                 NDR_CHECK(ndr_push_union_align(ndr, 5));
5073                 switch (level) {
5074                         case 1: {
5075                                 NDR_CHECK(ndr_push_drsuapi_DsGetMembershipsCtr1(ndr, NDR_SCALARS, &r->ctr1));
5076                         break; }
5077
5078                         default:
5079                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5080                 }
5081         }
5082         if (ndr_flags & NDR_BUFFERS) {
5083                 uint32_t level = ndr_push_get_switch_value(ndr, r);
5084                 switch (level) {
5085                         case 1:
5086                                 NDR_CHECK(ndr_push_drsuapi_DsGetMembershipsCtr1(ndr, NDR_BUFFERS, &r->ctr1));
5087                         break;
5088
5089                         default:
5090                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5091                 }
5092         }
5093         return NDR_ERR_SUCCESS;
5094 }
5095
5096 static enum ndr_err_code ndr_pull_drsuapi_DsGetMembershipsCtr(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsGetMembershipsCtr *r)
5097 {
5098         uint32_t level;
5099         uint32_t _level;
5100         level = ndr_pull_get_switch_value(ndr, r);
5101         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
5102         if (ndr_flags & NDR_SCALARS) {
5103                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
5104                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
5105                 if (_level != level) {
5106                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
5107                 }
5108                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
5109                 switch (level) {
5110                         case 1: {
5111                                 NDR_CHECK(ndr_pull_drsuapi_DsGetMembershipsCtr1(ndr, NDR_SCALARS, &r->ctr1));
5112                         break; }
5113
5114                         default:
5115                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5116                 }
5117         }
5118         if (ndr_flags & NDR_BUFFERS) {
5119                 switch (level) {
5120                         case 1:
5121                                 NDR_CHECK(ndr_pull_drsuapi_DsGetMembershipsCtr1(ndr, NDR_BUFFERS, &r->ctr1));
5122                         break;
5123
5124                         default:
5125                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5126                 }
5127         }
5128         return NDR_ERR_SUCCESS;
5129 }
5130
5131 _PUBLIC_ void ndr_print_drsuapi_DsGetMembershipsCtr(struct ndr_print *ndr, const char *name, const union drsuapi_DsGetMembershipsCtr *r)
5132 {
5133         uint32_t level;
5134         level = ndr_print_get_switch_value(ndr, r);
5135         ndr_print_union(ndr, name, level, "drsuapi_DsGetMembershipsCtr");
5136         switch (level) {
5137                 case 1:
5138                         ndr_print_drsuapi_DsGetMembershipsCtr1(ndr, "ctr1", &r->ctr1);
5139                 break;
5140
5141                 default:
5142                         ndr_print_bad_level(ndr, name, level);
5143         }
5144 }
5145
5146 static enum ndr_err_code ndr_push_drsuapi_DsGetMembershipsRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetMembershipsRequest1 *r)
5147 {
5148         uint32_t cntr_info_array_1;
5149         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
5150         if (ndr_flags & NDR_SCALARS) {
5151                 NDR_CHECK(ndr_push_align(ndr, 5));
5152                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
5153                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info_array));
5154                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
5155                 NDR_CHECK(ndr_push_drsuapi_DsMembershipType(ndr, NDR_SCALARS, r->type));
5156                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
5157                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
5158         }
5159         if (ndr_flags & NDR_BUFFERS) {
5160                 if (r->info_array) {
5161                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
5162                         for (cntr_info_array_1 = 0; cntr_info_array_1 < r->count; cntr_info_array_1++) {
5163                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info_array[cntr_info_array_1]));
5164                         }
5165                         for (cntr_info_array_1 = 0; cntr_info_array_1 < r->count; cntr_info_array_1++) {
5166                                 if (r->info_array[cntr_info_array_1]) {
5167                                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->info_array[cntr_info_array_1]));
5168                                 }
5169                         }
5170                 }
5171                 if (r->domain) {
5172                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain));
5173                 }
5174         }
5175         return NDR_ERR_SUCCESS;
5176 }
5177
5178 static enum ndr_err_code ndr_pull_drsuapi_DsGetMembershipsRequest1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetMembershipsRequest1 *r)
5179 {
5180         uint32_t _ptr_info_array;
5181         uint32_t size_info_array_1 = 0;
5182         uint32_t cntr_info_array_1;
5183         TALLOC_CTX *_mem_save_info_array_0;
5184         TALLOC_CTX *_mem_save_info_array_1;
5185         TALLOC_CTX *_mem_save_info_array_2;
5186         uint32_t _ptr_domain;
5187         TALLOC_CTX *_mem_save_domain_0;
5188         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
5189         if (ndr_flags & NDR_SCALARS) {
5190                 NDR_CHECK(ndr_pull_align(ndr, 5));
5191                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
5192                 if (r->count < 1 || r->count > 10000) {
5193                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
5194                 }
5195                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info_array));
5196                 if (_ptr_info_array) {
5197                         NDR_PULL_ALLOC(ndr, r->info_array);
5198                 } else {
5199                         r->info_array = NULL;
5200                 }
5201                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
5202                 NDR_CHECK(ndr_pull_drsuapi_DsMembershipType(ndr, NDR_SCALARS, &r->type));
5203                 if (r->type < 1 || r->type > 7) {
5204                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
5205                 }
5206                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
5207                 if (_ptr_domain) {
5208                         NDR_PULL_ALLOC(ndr, r->domain);
5209                 } else {
5210                         r->domain = NULL;
5211                 }
5212                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
5213         }
5214         if (ndr_flags & NDR_BUFFERS) {
5215                 if (r->info_array) {
5216                         _mem_save_info_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
5217                         NDR_PULL_SET_MEM_CTX(ndr, r->info_array, 0);
5218                         NDR_CHECK(ndr_pull_array_size(ndr, &r->info_array));
5219                         size_info_array_1 = ndr_get_array_size(ndr, &r->info_array);
5220                         NDR_PULL_ALLOC_N(ndr, r->info_array, size_info_array_1);
5221                         _mem_save_info_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
5222                         NDR_PULL_SET_MEM_CTX(ndr, r->info_array, 0);
5223                         for (cntr_info_array_1 = 0; cntr_info_array_1 < size_info_array_1; cntr_info_array_1++) {
5224                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info_array));
5225                                 if (_ptr_info_array) {
5226                                         NDR_PULL_ALLOC(ndr, r->info_array[cntr_info_array_1]);
5227                                 } else {
5228                                         r->info_array[cntr_info_array_1] = NULL;
5229                                 }
5230                         }
5231                         for (cntr_info_array_1 = 0; cntr_info_array_1 < size_info_array_1; cntr_info_array_1++) {
5232                                 if (r->info_array[cntr_info_array_1]) {
5233                                         _mem_save_info_array_2 = NDR_PULL_GET_MEM_CTX(ndr);
5234                                         NDR_PULL_SET_MEM_CTX(ndr, r->info_array[cntr_info_array_1], 0);
5235                                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->info_array[cntr_info_array_1]));
5236                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_array_2, 0);
5237                                 }
5238                         }
5239                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_array_1, 0);
5240                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_array_0, 0);
5241                 }
5242                 if (r->domain) {
5243                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
5244                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
5245                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain));
5246                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
5247                 }
5248                 if (r->info_array) {
5249                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->info_array, r->count));
5250                 }
5251         }
5252         return NDR_ERR_SUCCESS;
5253 }
5254
5255 _PUBLIC_ void ndr_print_drsuapi_DsGetMembershipsRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetMembershipsRequest1 *r)
5256 {
5257         uint32_t cntr_info_array_1;
5258         ndr_print_struct(ndr, name, "drsuapi_DsGetMembershipsRequest1");
5259         if (r == NULL) { ndr_print_null(ndr); return; }
5260         ndr->depth++;
5261         ndr_print_uint32(ndr, "count", r->count);
5262         ndr_print_ptr(ndr, "info_array", r->info_array);
5263         ndr->depth++;
5264         if (r->info_array) {
5265                 ndr->print(ndr, "%s: ARRAY(%d)", "info_array", (int)r->count);
5266                 ndr->depth++;
5267                 for (cntr_info_array_1=0;cntr_info_array_1<r->count;cntr_info_array_1++) {
5268                         ndr_print_ptr(ndr, "info_array", r->info_array[cntr_info_array_1]);
5269                         ndr->depth++;
5270                         if (r->info_array[cntr_info_array_1]) {
5271                                 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "info_array", r->info_array[cntr_info_array_1]);
5272                         }
5273                         ndr->depth--;
5274                 }
5275                 ndr->depth--;
5276         }
5277         ndr->depth--;
5278         ndr_print_uint32(ndr, "flags", r->flags);
5279         ndr_print_drsuapi_DsMembershipType(ndr, "type", r->type);
5280         ndr_print_ptr(ndr, "domain", r->domain);
5281         ndr->depth++;
5282         if (r->domain) {
5283                 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "domain", r->domain);
5284         }
5285         ndr->depth--;
5286         ndr->depth--;
5287 }
5288
5289 static enum ndr_err_code ndr_push_drsuapi_DsGetMembershipsRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsGetMembershipsRequest *r)
5290 {
5291         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
5292         if (ndr_flags & NDR_SCALARS) {
5293                 uint32_t level = ndr_push_get_switch_value(ndr, r);
5294                 NDR_CHECK(ndr_push_union_align(ndr, 5));
5295                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
5296                 NDR_CHECK(ndr_push_union_align(ndr, 5));
5297                 switch (level) {
5298                         case 1: {
5299                                 NDR_CHECK(ndr_push_drsuapi_DsGetMembershipsRequest1(ndr, NDR_SCALARS, &r->req1));
5300                         break; }
5301
5302                         default:
5303                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5304                 }
5305         }
5306         if (ndr_flags & NDR_BUFFERS) {
5307                 uint32_t level = ndr_push_get_switch_value(ndr, r);
5308                 switch (level) {
5309                         case 1:
5310                                 NDR_CHECK(ndr_push_drsuapi_DsGetMembershipsRequest1(ndr, NDR_BUFFERS, &r->req1));
5311                         break;
5312
5313                         default:
5314                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5315                 }
5316         }
5317         return NDR_ERR_SUCCESS;
5318 }
5319
5320 static enum ndr_err_code ndr_pull_drsuapi_DsGetMembershipsRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsGetMembershipsRequest *r)
5321 {
5322         uint32_t level;
5323         uint32_t _level;
5324         level = ndr_pull_get_switch_value(ndr, r);
5325         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
5326         if (ndr_flags & NDR_SCALARS) {
5327                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
5328                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
5329                 if (_level != level) {
5330                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
5331                 }
5332                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
5333                 switch (level) {
5334                         case 1: {
5335                                 NDR_CHECK(ndr_pull_drsuapi_DsGetMembershipsRequest1(ndr, NDR_SCALARS, &r->req1));
5336                         break; }
5337
5338                         default:
5339                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5340                 }
5341         }
5342         if (ndr_flags & NDR_BUFFERS) {
5343                 switch (level) {
5344                         case 1:
5345                                 NDR_CHECK(ndr_pull_drsuapi_DsGetMembershipsRequest1(ndr, NDR_BUFFERS, &r->req1));
5346                         break;
5347
5348                         default:
5349                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5350                 }
5351         }
5352         return NDR_ERR_SUCCESS;
5353 }
5354
5355 _PUBLIC_ void ndr_print_drsuapi_DsGetMembershipsRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsGetMembershipsRequest *r)
5356 {
5357         uint32_t level;
5358         level = ndr_print_get_switch_value(ndr, r);
5359         ndr_print_union(ndr, name, level, "drsuapi_DsGetMembershipsRequest");
5360         switch (level) {
5361                 case 1:
5362                         ndr_print_drsuapi_DsGetMembershipsRequest1(ndr, "req1", &r->req1);
5363                 break;
5364
5365                 default:
5366                         ndr_print_bad_level(ndr, name, level);
5367         }
5368 }
5369
5370 static enum ndr_err_code ndr_push_drsuapi_DsGetNT4ChangeLogFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
5371 {
5372         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
5373         return NDR_ERR_SUCCESS;
5374 }
5375
5376 static enum ndr_err_code ndr_pull_drsuapi_DsGetNT4ChangeLogFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
5377 {
5378         uint32_t v;
5379         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
5380         *r = v;
5381         return NDR_ERR_SUCCESS;
5382 }
5383
5384 _PUBLIC_ void ndr_print_drsuapi_DsGetNT4ChangeLogFlags(struct ndr_print *ndr, const char *name, uint32_t r)
5385 {
5386         ndr_print_uint32(ndr, name, r);
5387         ndr->depth++;
5388         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_NT4_CHANGELOG_GET_CHANGELOG", DRSUAPI_NT4_CHANGELOG_GET_CHANGELOG, r);
5389         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_NT4_CHANGELOG_GET_SERIAL_NUMBERS", DRSUAPI_NT4_CHANGELOG_GET_SERIAL_NUMBERS, r);
5390         ndr->depth--;
5391 }
5392
5393 static enum ndr_err_code ndr_push_drsuapi_DsGetNT4ChangeLogRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetNT4ChangeLogRequest1 *r)
5394 {
5395         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
5396         if (ndr_flags & NDR_SCALARS) {
5397                 NDR_CHECK(ndr_push_align(ndr, 5));
5398                 NDR_CHECK(ndr_push_drsuapi_DsGetNT4ChangeLogFlags(ndr, NDR_SCALARS, r->flags));
5399                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->preferred_maximum_length));
5400                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->restart_length));
5401                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->restart_data));
5402                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
5403         }
5404         if (ndr_flags & NDR_BUFFERS) {
5405                 if (r->restart_data) {
5406                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->restart_length));
5407                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->restart_data, r->restart_length));
5408                 }
5409         }
5410         return NDR_ERR_SUCCESS;
5411 }
5412
5413 static enum ndr_err_code ndr_pull_drsuapi_DsGetNT4ChangeLogRequest1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNT4ChangeLogRequest1 *r)
5414 {
5415         uint32_t _ptr_restart_data;
5416         uint32_t size_restart_data_1 = 0;
5417         TALLOC_CTX *_mem_save_restart_data_0;
5418         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
5419         if (ndr_flags & NDR_SCALARS) {
5420                 NDR_CHECK(ndr_pull_align(ndr, 5));
5421                 NDR_CHECK(ndr_pull_drsuapi_DsGetNT4ChangeLogFlags(ndr, NDR_SCALARS, &r->flags));
5422                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->preferred_maximum_length));
5423                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->restart_length));
5424                 if (r->restart_length > 0x00A00000) {
5425                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
5426                 }
5427                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_restart_data));
5428                 if (_ptr_restart_data) {
5429                         NDR_PULL_ALLOC(ndr, r->restart_data);
5430                 } else {
5431                         r->restart_data = NULL;
5432                 }
5433                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
5434         }
5435         if (ndr_flags & NDR_BUFFERS) {
5436                 if (r->restart_data) {
5437                         _mem_save_restart_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
5438                         NDR_PULL_SET_MEM_CTX(ndr, r->restart_data, 0);
5439                         NDR_CHECK(ndr_pull_array_size(ndr, &r->restart_data));
5440                         size_restart_data_1 = ndr_get_array_size(ndr, &r->restart_data);
5441                         NDR_PULL_ALLOC_N(ndr, r->restart_data, size_restart_data_1);
5442                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->restart_data, size_restart_data_1));
5443                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_restart_data_0, 0);
5444                 }
5445                 if (r->restart_data) {
5446                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->restart_data, r->restart_length));
5447                 }
5448         }
5449         return NDR_ERR_SUCCESS;
5450 }
5451
5452 _PUBLIC_ void ndr_print_drsuapi_DsGetNT4ChangeLogRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNT4ChangeLogRequest1 *r)
5453 {
5454         ndr_print_struct(ndr, name, "drsuapi_DsGetNT4ChangeLogRequest1");
5455         if (r == NULL) { ndr_print_null(ndr); return; }
5456         ndr->depth++;
5457         ndr_print_drsuapi_DsGetNT4ChangeLogFlags(ndr, "flags", r->flags);
5458         ndr_print_uint32(ndr, "preferred_maximum_length", r->preferred_maximum_length);
5459         ndr_print_uint32(ndr, "restart_length", r->restart_length);
5460         ndr_print_ptr(ndr, "restart_data", r->restart_data);
5461         ndr->depth++;
5462         if (r->restart_data) {
5463                 ndr_print_array_uint8(ndr, "restart_data", r->restart_data, r->restart_length);
5464         }
5465         ndr->depth--;
5466         ndr->depth--;
5467 }
5468
5469 static enum ndr_err_code ndr_push_drsuapi_DsGetNT4ChangeLogRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsGetNT4ChangeLogRequest *r)
5470 {
5471         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
5472         if (ndr_flags & NDR_SCALARS) {
5473                 uint32_t level = ndr_push_get_switch_value(ndr, r);
5474                 NDR_CHECK(ndr_push_union_align(ndr, 5));
5475                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
5476                 NDR_CHECK(ndr_push_union_align(ndr, 5));
5477                 switch (level) {
5478                         case 1: {
5479                                 NDR_CHECK(ndr_push_drsuapi_DsGetNT4ChangeLogRequest1(ndr, NDR_SCALARS, &r->req1));
5480                         break; }
5481
5482                         default:
5483                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5484                 }
5485         }
5486         if (ndr_flags & NDR_BUFFERS) {
5487                 uint32_t level = ndr_push_get_switch_value(ndr, r);
5488                 switch (level) {
5489                         case 1:
5490                                 NDR_CHECK(ndr_push_drsuapi_DsGetNT4ChangeLogRequest1(ndr, NDR_BUFFERS, &r->req1));
5491                         break;
5492
5493                         default:
5494                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5495                 }
5496         }
5497         return NDR_ERR_SUCCESS;
5498 }
5499
5500 static enum ndr_err_code ndr_pull_drsuapi_DsGetNT4ChangeLogRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsGetNT4ChangeLogRequest *r)
5501 {
5502         uint32_t level;
5503         uint32_t _level;
5504         level = ndr_pull_get_switch_value(ndr, r);
5505         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
5506         if (ndr_flags & NDR_SCALARS) {
5507                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
5508                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
5509                 if (_level != level) {
5510                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
5511                 }
5512                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
5513                 switch (level) {
5514                         case 1: {
5515                                 NDR_CHECK(ndr_pull_drsuapi_DsGetNT4ChangeLogRequest1(ndr, NDR_SCALARS, &r->req1));
5516                         break; }
5517
5518                         default:
5519                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5520                 }
5521         }
5522         if (ndr_flags & NDR_BUFFERS) {
5523                 switch (level) {
5524                         case 1:
5525                                 NDR_CHECK(ndr_pull_drsuapi_DsGetNT4ChangeLogRequest1(ndr, NDR_BUFFERS, &r->req1));
5526                         break;
5527
5528                         default:
5529                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5530                 }
5531         }
5532         return NDR_ERR_SUCCESS;
5533 }
5534
5535 _PUBLIC_ void ndr_print_drsuapi_DsGetNT4ChangeLogRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsGetNT4ChangeLogRequest *r)
5536 {
5537         uint32_t level;
5538         level = ndr_print_get_switch_value(ndr, r);
5539         ndr_print_union(ndr, name, level, "drsuapi_DsGetNT4ChangeLogRequest");
5540         switch (level) {
5541                 case 1:
5542                         ndr_print_drsuapi_DsGetNT4ChangeLogRequest1(ndr, "req1", &r->req1);
5543                 break;
5544
5545                 default:
5546                         ndr_print_bad_level(ndr, name, level);
5547         }
5548 }
5549
5550 static enum ndr_err_code ndr_push_drsuapi_DsGetNT4ChangeLogInfo1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetNT4ChangeLogInfo1 *r)
5551 {
5552         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
5553         if (ndr_flags & NDR_SCALARS) {
5554                 NDR_CHECK(ndr_push_align(ndr, 8));
5555                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->restart_length));
5556                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->log_length));
5557                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->sam_serial_number));
5558                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->sam_creation_time));
5559                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->builtin_serial_number));
5560                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->builtin_creation_time));
5561                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->lsa_serial_number));
5562                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->lsa_creation_time));
5563                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->status));
5564                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->restart_data));
5565                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->log_data));
5566                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
5567         }
5568         if (ndr_flags & NDR_BUFFERS) {
5569                 if (r->restart_data) {
5570                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->restart_length));
5571                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->restart_data, r->restart_length));
5572                 }
5573                 if (r->log_data) {
5574                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->log_length));
5575                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->log_data, r->log_length));
5576                 }
5577         }
5578         return NDR_ERR_SUCCESS;
5579 }
5580
5581 static enum ndr_err_code ndr_pull_drsuapi_DsGetNT4ChangeLogInfo1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNT4ChangeLogInfo1 *r)
5582 {
5583         uint32_t _ptr_restart_data;
5584         uint32_t size_restart_data_1 = 0;
5585         TALLOC_CTX *_mem_save_restart_data_0;
5586         uint32_t _ptr_log_data;
5587         uint32_t size_log_data_1 = 0;
5588         TALLOC_CTX *_mem_save_log_data_0;
5589         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
5590         if (ndr_flags & NDR_SCALARS) {
5591                 NDR_CHECK(ndr_pull_align(ndr, 8));
5592                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->restart_length));
5593                 if (r->restart_length > 0x00A00000) {
5594                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
5595                 }
5596                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->log_length));
5597                 if (r->log_length > 0x00A00000) {
5598                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
5599                 }
5600                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->sam_serial_number));
5601                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->sam_creation_time));
5602                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->builtin_serial_number));
5603                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->builtin_creation_time));
5604                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->lsa_serial_number));
5605                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->lsa_creation_time));
5606                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->status));
5607                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_restart_data));
5608                 if (_ptr_restart_data) {
5609                         NDR_PULL_ALLOC(ndr, r->restart_data);
5610                 } else {
5611                         r->restart_data = NULL;
5612                 }
5613                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_log_data));
5614                 if (_ptr_log_data) {
5615                         NDR_PULL_ALLOC(ndr, r->log_data);
5616                 } else {
5617                         r->log_data = NULL;
5618                 }
5619                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
5620         }
5621         if (ndr_flags & NDR_BUFFERS) {
5622                 if (r->restart_data) {
5623                         _mem_save_restart_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
5624                         NDR_PULL_SET_MEM_CTX(ndr, r->restart_data, 0);
5625                         NDR_CHECK(ndr_pull_array_size(ndr, &r->restart_data));
5626                         size_restart_data_1 = ndr_get_array_size(ndr, &r->restart_data);
5627                         NDR_PULL_ALLOC_N(ndr, r->restart_data, size_restart_data_1);
5628                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->restart_data, size_restart_data_1));
5629                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_restart_data_0, 0);
5630                 }
5631                 if (r->log_data) {
5632                         _mem_save_log_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
5633                         NDR_PULL_SET_MEM_CTX(ndr, r->log_data, 0);
5634                         NDR_CHECK(ndr_pull_array_size(ndr, &r->log_data));
5635                         size_log_data_1 = ndr_get_array_size(ndr, &r->log_data);
5636                         NDR_PULL_ALLOC_N(ndr, r->log_data, size_log_data_1);
5637                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->log_data, size_log_data_1));
5638                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_log_data_0, 0);
5639                 }
5640                 if (r->restart_data) {
5641                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->restart_data, r->restart_length));
5642                 }
5643                 if (r->log_data) {
5644                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->log_data, r->log_length));
5645                 }
5646         }
5647         return NDR_ERR_SUCCESS;
5648 }
5649
5650 _PUBLIC_ void ndr_print_drsuapi_DsGetNT4ChangeLogInfo1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNT4ChangeLogInfo1 *r)
5651 {
5652         ndr_print_struct(ndr, name, "drsuapi_DsGetNT4ChangeLogInfo1");
5653         if (r == NULL) { ndr_print_null(ndr); return; }
5654         ndr->depth++;
5655         ndr_print_uint32(ndr, "restart_length", r->restart_length);
5656         ndr_print_uint32(ndr, "log_length", r->log_length);
5657         ndr_print_hyper(ndr, "sam_serial_number", r->sam_serial_number);
5658         ndr_print_NTTIME(ndr, "sam_creation_time", r->sam_creation_time);
5659         ndr_print_hyper(ndr, "builtin_serial_number", r->builtin_serial_number);
5660         ndr_print_NTTIME(ndr, "builtin_creation_time", r->builtin_creation_time);
5661         ndr_print_hyper(ndr, "lsa_serial_number", r->lsa_serial_number);
5662         ndr_print_NTTIME(ndr, "lsa_creation_time", r->lsa_creation_time);
5663         ndr_print_NTSTATUS(ndr, "status", r->status);
5664         ndr_print_ptr(ndr, "restart_data", r->restart_data);
5665         ndr->depth++;
5666         if (r->restart_data) {
5667                 ndr_print_array_uint8(ndr, "restart_data", r->restart_data, r->restart_length);
5668         }
5669         ndr->depth--;
5670         ndr_print_ptr(ndr, "log_data", r->log_data);
5671         ndr->depth++;
5672         if (r->log_data) {
5673                 ndr_print_array_uint8(ndr, "log_data", r->log_data, r->log_length);
5674         }
5675         ndr->depth--;
5676         ndr->depth--;
5677 }
5678
5679 static enum ndr_err_code ndr_push_drsuapi_DsGetNT4ChangeLogInfo(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsGetNT4ChangeLogInfo *r)
5680 {
5681         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
5682         if (ndr_flags & NDR_SCALARS) {
5683                 uint32_t level = ndr_push_get_switch_value(ndr, r);
5684                 NDR_CHECK(ndr_push_union_align(ndr, 8));
5685                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
5686                 NDR_CHECK(ndr_push_union_align(ndr, 8));
5687                 switch (level) {
5688                         case 1: {
5689                                 NDR_CHECK(ndr_push_drsuapi_DsGetNT4ChangeLogInfo1(ndr, NDR_SCALARS, &r->info1));
5690                         break; }
5691
5692                         default:
5693                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5694                 }
5695         }
5696         if (ndr_flags & NDR_BUFFERS) {
5697                 uint32_t level = ndr_push_get_switch_value(ndr, r);
5698                 switch (level) {
5699                         case 1:
5700                                 NDR_CHECK(ndr_push_drsuapi_DsGetNT4ChangeLogInfo1(ndr, NDR_BUFFERS, &r->info1));
5701                         break;
5702
5703                         default:
5704                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5705                 }
5706         }
5707         return NDR_ERR_SUCCESS;
5708 }
5709
5710 static enum ndr_err_code ndr_pull_drsuapi_DsGetNT4ChangeLogInfo(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsGetNT4ChangeLogInfo *r)
5711 {
5712         uint32_t level;
5713         uint32_t _level;
5714         level = ndr_pull_get_switch_value(ndr, r);
5715         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
5716         if (ndr_flags & NDR_SCALARS) {
5717                 NDR_CHECK(ndr_pull_union_align(ndr, 8));
5718                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
5719                 if (_level != level) {
5720                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
5721                 }
5722                 NDR_CHECK(ndr_pull_union_align(ndr, 8));
5723                 switch (level) {
5724                         case 1: {
5725                                 NDR_CHECK(ndr_pull_drsuapi_DsGetNT4ChangeLogInfo1(ndr, NDR_SCALARS, &r->info1));
5726                         break; }
5727
5728                         default:
5729                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5730                 }
5731         }
5732         if (ndr_flags & NDR_BUFFERS) {
5733                 switch (level) {
5734                         case 1:
5735                                 NDR_CHECK(ndr_pull_drsuapi_DsGetNT4ChangeLogInfo1(ndr, NDR_BUFFERS, &r->info1));
5736                         break;
5737
5738                         default:
5739                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5740                 }
5741         }
5742         return NDR_ERR_SUCCESS;
5743 }
5744
5745 _PUBLIC_ void ndr_print_drsuapi_DsGetNT4ChangeLogInfo(struct ndr_print *ndr, const char *name, const union drsuapi_DsGetNT4ChangeLogInfo *r)
5746 {
5747         uint32_t level;
5748         level = ndr_print_get_switch_value(ndr, r);
5749         ndr_print_union(ndr, name, level, "drsuapi_DsGetNT4ChangeLogInfo");
5750         switch (level) {
5751                 case 1:
5752                         ndr_print_drsuapi_DsGetNT4ChangeLogInfo1(ndr, "info1", &r->info1);
5753                 break;
5754
5755                 default:
5756                         ndr_print_bad_level(ndr, name, level);
5757         }
5758 }
5759
5760 static enum ndr_err_code ndr_push_drsuapi_DsNameStatus(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsNameStatus r)
5761 {
5762         NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
5763         return NDR_ERR_SUCCESS;
5764 }
5765
5766 static enum ndr_err_code ndr_pull_drsuapi_DsNameStatus(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsNameStatus *r)
5767 {
5768         uint32_t v;
5769         NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
5770         *r = v;
5771         return NDR_ERR_SUCCESS;
5772 }
5773
5774 _PUBLIC_ void ndr_print_drsuapi_DsNameStatus(struct ndr_print *ndr, const char *name, enum drsuapi_DsNameStatus r)
5775 {
5776         const char *val = NULL;
5777
5778         switch (r) {
5779                 case DRSUAPI_DS_NAME_STATUS_OK: val = "DRSUAPI_DS_NAME_STATUS_OK"; break;
5780                 case DRSUAPI_DS_NAME_STATUS_RESOLVE_ERROR: val = "DRSUAPI_DS_NAME_STATUS_RESOLVE_ERROR"; break;
5781                 case DRSUAPI_DS_NAME_STATUS_NOT_FOUND: val = "DRSUAPI_DS_NAME_STATUS_NOT_FOUND"; break;
5782                 case DRSUAPI_DS_NAME_STATUS_NOT_UNIQUE: val = "DRSUAPI_DS_NAME_STATUS_NOT_UNIQUE"; break;
5783                 case DRSUAPI_DS_NAME_STATUS_NO_MAPPING: val = "DRSUAPI_DS_NAME_STATUS_NO_MAPPING"; break;
5784                 case DRSUAPI_DS_NAME_STATUS_DOMAIN_ONLY: val = "DRSUAPI_DS_NAME_STATUS_DOMAIN_ONLY"; break;
5785                 case DRSUAPI_DS_NAME_STATUS_NO_SYNTACTICAL_MAPPING: val = "DRSUAPI_DS_NAME_STATUS_NO_SYNTACTICAL_MAPPING"; break;
5786                 case DRSUAPI_DS_NAME_STATUS_TRUST_REFERRAL: val = "DRSUAPI_DS_NAME_STATUS_TRUST_REFERRAL"; break;
5787         }
5788         ndr_print_enum(ndr, name, "ENUM", val, r);
5789 }
5790
5791 static enum ndr_err_code ndr_push_drsuapi_DsNameFlags(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsNameFlags r)
5792 {
5793         NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
5794         return NDR_ERR_SUCCESS;
5795 }
5796
5797 static enum ndr_err_code ndr_pull_drsuapi_DsNameFlags(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsNameFlags *r)
5798 {
5799         uint32_t v;
5800         NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
5801         *r = v;
5802         return NDR_ERR_SUCCESS;
5803 }
5804
5805 _PUBLIC_ void ndr_print_drsuapi_DsNameFlags(struct ndr_print *ndr, const char *name, enum drsuapi_DsNameFlags r)
5806 {
5807         const char *val = NULL;
5808
5809         switch (r) {
5810                 case DRSUAPI_DS_NAME_FLAG_NO_FLAGS: val = "DRSUAPI_DS_NAME_FLAG_NO_FLAGS"; break;
5811                 case DRSUAPI_DS_NAME_FLAG_SYNTACTICAL_ONLY: val = "DRSUAPI_DS_NAME_FLAG_SYNTACTICAL_ONLY"; break;
5812                 case DRSUAPI_DS_NAME_FLAG_EVAL_AT_DC: val = "DRSUAPI_DS_NAME_FLAG_EVAL_AT_DC"; break;
5813                 case DRSUAPI_DS_NAME_FLAG_GCVERIFY: val = "DRSUAPI_DS_NAME_FLAG_GCVERIFY"; break;
5814                 case DRSUAPI_DS_NAME_FLAG_TRUST_REFERRAL: val = "DRSUAPI_DS_NAME_FLAG_TRUST_REFERRAL"; break;
5815         }
5816         ndr_print_enum(ndr, name, "ENUM", val, r);
5817 }
5818
5819 static enum ndr_err_code ndr_push_drsuapi_DsNameFormat(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsNameFormat r)
5820 {
5821         NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
5822         return NDR_ERR_SUCCESS;
5823 }
5824
5825 static enum ndr_err_code ndr_pull_drsuapi_DsNameFormat(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsNameFormat *r)
5826 {
5827         uint32_t v;
5828         NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
5829         *r = v;
5830         return NDR_ERR_SUCCESS;
5831 }
5832
5833 _PUBLIC_ void ndr_print_drsuapi_DsNameFormat(struct ndr_print *ndr, const char *name, enum drsuapi_DsNameFormat r)
5834 {
5835         const char *val = NULL;
5836
5837         switch (r) {
5838                 case DRSUAPI_DS_NAME_FORMAT_UNKNOWN: val = "DRSUAPI_DS_NAME_FORMAT_UNKNOWN"; break;
5839                 case DRSUAPI_DS_NAME_FORMAT_FQDN_1779: val = "DRSUAPI_DS_NAME_FORMAT_FQDN_1779"; break;
5840                 case DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT: val = "DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT"; break;
5841                 case DRSUAPI_DS_NAME_FORMAT_DISPLAY: val = "DRSUAPI_DS_NAME_FORMAT_DISPLAY"; break;
5842                 case DRSUAPI_DS_NAME_FORMAT_GUID: val = "DRSUAPI_DS_NAME_FORMAT_GUID"; break;
5843                 case DRSUAPI_DS_NAME_FORMAT_CANONICAL: val = "DRSUAPI_DS_NAME_FORMAT_CANONICAL"; break;
5844                 case DRSUAPI_DS_NAME_FORMAT_USER_PRINCIPAL: val = "DRSUAPI_DS_NAME_FORMAT_USER_PRINCIPAL"; break;
5845                 case DRSUAPI_DS_NAME_FORMAT_CANONICAL_EX: val = "DRSUAPI_DS_NAME_FORMAT_CANONICAL_EX"; break;
5846                 case DRSUAPI_DS_NAME_FORMAT_SERVICE_PRINCIPAL: val = "DRSUAPI_DS_NAME_FORMAT_SERVICE_PRINCIPAL"; break;
5847                 case DRSUAPI_DS_NAME_FORMAT_SID_OR_SID_HISTORY: val = "DRSUAPI_DS_NAME_FORMAT_SID_OR_SID_HISTORY"; break;
5848                 case DRSUAPI_DS_NAME_FORMAT_DNS_DOMAIN: val = "DRSUAPI_DS_NAME_FORMAT_DNS_DOMAIN"; break;
5849                 case DRSUAPI_DS_NAME_FORMAT_UPN_AND_ALTSECID: val = "DRSUAPI_DS_NAME_FORMAT_UPN_AND_ALTSECID"; break;
5850                 case DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT_NAME_SANS_DOMAIN_EX: val = "DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT_NAME_SANS_DOMAIN_EX"; break;
5851                 case DRSUAPI_DS_NAME_FORMAT_LIST_GLOBAL_CATALOG_SERVERS: val = "DRSUAPI_DS_NAME_FORMAT_LIST_GLOBAL_CATALOG_SERVERS"; break;
5852                 case DRSUAPI_DS_NAME_FORMAT_UPN_FOR_LOGON: val = "DRSUAPI_DS_NAME_FORMAT_UPN_FOR_LOGON"; break;
5853                 case DRSUAPI_DS_NAME_FORMAT_LIST_SERVERS_WITH_DCS_IN_SITE: val = "DRSUAPI_DS_NAME_FORMAT_LIST_SERVERS_WITH_DCS_IN_SITE"; break;
5854                 case DRSUAPI_DS_NAME_FORMAT_STRING_SID_NAME: val = "DRSUAPI_DS_NAME_FORMAT_STRING_SID_NAME"; break;
5855                 case DRSUAPI_DS_NAME_FORMAT_ALT_SECURITY_IDENTITIES_NAME: val = "DRSUAPI_DS_NAME_FORMAT_ALT_SECURITY_IDENTITIES_NAME"; break;
5856                 case DRSUAPI_DS_NAME_FORMAT_LIST_NCS: val = "DRSUAPI_DS_NAME_FORMAT_LIST_NCS"; break;
5857                 case DRSUAPI_DS_NAME_FORMAT_LIST_DOMAINS: val = "DRSUAPI_DS_NAME_FORMAT_LIST_DOMAINS"; break;
5858                 case DRSUAPI_DS_NAME_FORMAT_MAP_SCHEMA_GUID: val = "DRSUAPI_DS_NAME_FORMAT_MAP_SCHEMA_GUID"; break;
5859                 case DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT_NAME_SANS_DOMAIN: val = "DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT_NAME_SANS_DOMAIN"; break;
5860                 case DRSUAPI_DS_NAME_FORMAT_LIST_ROLES: val = "DRSUAPI_DS_NAME_FORMAT_LIST_ROLES"; break;
5861                 case DRSUAPI_DS_NAME_FORMAT_LIST_INFO_FOR_SERVER: val = "DRSUAPI_DS_NAME_FORMAT_LIST_INFO_FOR_SERVER"; break;
5862                 case DRSUAPI_DS_NAME_FORMAT_LIST_SERVERS_FOR_DOMAIN_IN_SITE: val = "DRSUAPI_DS_NAME_FORMAT_LIST_SERVERS_FOR_DOMAIN_IN_SITE"; break;
5863                 case DRSUAPI_DS_NAME_FORMAT_LIST_DOMAINS_IN_SITE: val = "DRSUAPI_DS_NAME_FORMAT_LIST_DOMAINS_IN_SITE"; break;
5864                 case DRSUAPI_DS_NAME_FORMAT_LIST_SERVERS_IN_SITE: val = "DRSUAPI_DS_NAME_FORMAT_LIST_SERVERS_IN_SITE"; break;
5865                 case DRSUAPI_DS_NAME_FORMAT_LIST_SITES: val = "DRSUAPI_DS_NAME_FORMAT_LIST_SITES"; break;
5866         }
5867         ndr_print_enum(ndr, name, "ENUM", val, r);
5868 }
5869
5870 static enum ndr_err_code ndr_push_drsuapi_DsNameString(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsNameString *r)
5871 {
5872         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
5873         if (ndr_flags & NDR_SCALARS) {
5874                 NDR_CHECK(ndr_push_align(ndr, 5));
5875                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->str));
5876                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
5877         }
5878         if (ndr_flags & NDR_BUFFERS) {
5879                 if (r->str) {
5880                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->str, CH_UTF16)));
5881                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5882                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->str, CH_UTF16)));
5883                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->str, ndr_charset_length(r->str, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5884                 }
5885         }
5886         return NDR_ERR_SUCCESS;
5887 }
5888
5889 static enum ndr_err_code ndr_pull_drsuapi_DsNameString(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsNameString *r)
5890 {
5891         uint32_t _ptr_str;
5892         uint32_t size_str_1 = 0;
5893         uint32_t length_str_1 = 0;
5894         TALLOC_CTX *_mem_save_str_0;
5895         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
5896         if (ndr_flags & NDR_SCALARS) {
5897                 NDR_CHECK(ndr_pull_align(ndr, 5));
5898                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_str));
5899                 if (_ptr_str) {
5900                         NDR_PULL_ALLOC(ndr, r->str);
5901                 } else {
5902                         r->str = NULL;
5903                 }
5904                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
5905         }
5906         if (ndr_flags & NDR_BUFFERS) {
5907                 if (r->str) {
5908                         _mem_save_str_0 = NDR_PULL_GET_MEM_CTX(ndr);
5909                         NDR_PULL_SET_MEM_CTX(ndr, r->str, 0);
5910                         NDR_CHECK(ndr_pull_array_size(ndr, &r->str));
5911                         NDR_CHECK(ndr_pull_array_length(ndr, &r->str));
5912                         size_str_1 = ndr_get_array_size(ndr, &r->str);
5913                         length_str_1 = ndr_get_array_length(ndr, &r->str);
5914                         if (length_str_1 > size_str_1) {
5915                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_str_1, length_str_1);
5916                         }
5917                         NDR_CHECK(ndr_check_string_terminator(ndr, length_str_1, sizeof(uint16_t)));
5918                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->str, length_str_1, sizeof(uint16_t), CH_UTF16));
5919                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_str_0, 0);
5920                 }
5921         }
5922         return NDR_ERR_SUCCESS;
5923 }
5924
5925 _PUBLIC_ void ndr_print_drsuapi_DsNameString(struct ndr_print *ndr, const char *name, const struct drsuapi_DsNameString *r)
5926 {
5927         ndr_print_struct(ndr, name, "drsuapi_DsNameString");
5928         if (r == NULL) { ndr_print_null(ndr); return; }
5929         ndr->depth++;
5930         ndr_print_ptr(ndr, "str", r->str);
5931         ndr->depth++;
5932         if (r->str) {
5933                 ndr_print_string(ndr, "str", r->str);
5934         }
5935         ndr->depth--;
5936         ndr->depth--;
5937 }
5938
5939 static enum ndr_err_code ndr_push_drsuapi_DsNameRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsNameRequest1 *r)
5940 {
5941         uint32_t cntr_names_1;
5942         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
5943         if (ndr_flags & NDR_SCALARS) {
5944                 NDR_CHECK(ndr_push_align(ndr, 5));
5945                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->codepage));
5946                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->language));
5947                 NDR_CHECK(ndr_push_drsuapi_DsNameFlags(ndr, NDR_SCALARS, r->format_flags));
5948                 NDR_CHECK(ndr_push_drsuapi_DsNameFormat(ndr, NDR_SCALARS, r->format_offered));
5949                 NDR_CHECK(ndr_push_drsuapi_DsNameFormat(ndr, NDR_SCALARS, r->format_desired));
5950                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
5951                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->names));
5952                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
5953         }
5954         if (ndr_flags & NDR_BUFFERS) {
5955                 if (r->names) {
5956                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
5957                         for (cntr_names_1 = 0; cntr_names_1 < r->count; cntr_names_1++) {
5958                                 NDR_CHECK(ndr_push_drsuapi_DsNameString(ndr, NDR_SCALARS, &r->names[cntr_names_1]));
5959                         }
5960                         for (cntr_names_1 = 0; cntr_names_1 < r->count; cntr_names_1++) {
5961                                 NDR_CHECK(ndr_push_drsuapi_DsNameString(ndr, NDR_BUFFERS, &r->names[cntr_names_1]));
5962                         }
5963                 }
5964         }
5965         return NDR_ERR_SUCCESS;
5966 }
5967
5968 static enum ndr_err_code ndr_pull_drsuapi_DsNameRequest1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsNameRequest1 *r)
5969 {
5970         uint32_t _ptr_names;
5971         uint32_t size_names_1 = 0;
5972         uint32_t cntr_names_1;
5973         TALLOC_CTX *_mem_save_names_0;
5974         TALLOC_CTX *_mem_save_names_1;
5975         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
5976         if (ndr_flags & NDR_SCALARS) {
5977                 NDR_CHECK(ndr_pull_align(ndr, 5));
5978                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->codepage));
5979                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->language));
5980                 NDR_CHECK(ndr_pull_drsuapi_DsNameFlags(ndr, NDR_SCALARS, &r->format_flags));
5981                 NDR_CHECK(ndr_pull_drsuapi_DsNameFormat(ndr, NDR_SCALARS, &r->format_offered));
5982                 NDR_CHECK(ndr_pull_drsuapi_DsNameFormat(ndr, NDR_SCALARS, &r->format_desired));
5983                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
5984                 if (r->count < 1 || r->count > 10000) {
5985                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
5986                 }
5987                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_names));
5988                 if (_ptr_names) {
5989                         NDR_PULL_ALLOC(ndr, r->names);
5990                 } else {
5991                         r->names = NULL;
5992                 }
5993                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
5994         }
5995         if (ndr_flags & NDR_BUFFERS) {
5996                 if (r->names) {
5997                         _mem_save_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
5998                         NDR_PULL_SET_MEM_CTX(ndr, r->names, 0);
5999                         NDR_CHECK(ndr_pull_array_size(ndr, &r->names));
6000                         size_names_1 = ndr_get_array_size(ndr, &r->names);
6001                         NDR_PULL_ALLOC_N(ndr, r->names, size_names_1);
6002                         _mem_save_names_1 = NDR_PULL_GET_MEM_CTX(ndr);
6003                         NDR_PULL_SET_MEM_CTX(ndr, r->names, 0);
6004                         for (cntr_names_1 = 0; cntr_names_1 < size_names_1; cntr_names_1++) {
6005                                 NDR_CHECK(ndr_pull_drsuapi_DsNameString(ndr, NDR_SCALARS, &r->names[cntr_names_1]));
6006                         }
6007                         for (cntr_names_1 = 0; cntr_names_1 < size_names_1; cntr_names_1++) {
6008                                 NDR_CHECK(ndr_pull_drsuapi_DsNameString(ndr, NDR_BUFFERS, &r->names[cntr_names_1]));
6009                         }
6010                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_names_1, 0);
6011                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_names_0, 0);
6012                 }
6013                 if (r->names) {
6014                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->names, r->count));
6015                 }
6016         }
6017         return NDR_ERR_SUCCESS;
6018 }
6019
6020 _PUBLIC_ void ndr_print_drsuapi_DsNameRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsNameRequest1 *r)
6021 {
6022         uint32_t cntr_names_1;
6023         ndr_print_struct(ndr, name, "drsuapi_DsNameRequest1");
6024         if (r == NULL) { ndr_print_null(ndr); return; }
6025         ndr->depth++;
6026         ndr_print_uint32(ndr, "codepage", r->codepage);
6027         ndr_print_uint32(ndr, "language", r->language);
6028         ndr_print_drsuapi_DsNameFlags(ndr, "format_flags", r->format_flags);
6029         ndr_print_drsuapi_DsNameFormat(ndr, "format_offered", r->format_offered);
6030         ndr_print_drsuapi_DsNameFormat(ndr, "format_desired", r->format_desired);
6031         ndr_print_uint32(ndr, "count", r->count);
6032         ndr_print_ptr(ndr, "names", r->names);
6033         ndr->depth++;
6034         if (r->names) {
6035                 ndr->print(ndr, "%s: ARRAY(%d)", "names", (int)r->count);
6036                 ndr->depth++;
6037                 for (cntr_names_1=0;cntr_names_1<r->count;cntr_names_1++) {
6038                         ndr_print_drsuapi_DsNameString(ndr, "names", &r->names[cntr_names_1]);
6039                 }
6040                 ndr->depth--;
6041         }
6042         ndr->depth--;
6043         ndr->depth--;
6044 }
6045
6046 static enum ndr_err_code ndr_push_drsuapi_DsNameRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsNameRequest *r)
6047 {
6048         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
6049         if (ndr_flags & NDR_SCALARS) {
6050                 uint32_t level = ndr_push_get_switch_value(ndr, r);
6051                 NDR_CHECK(ndr_push_union_align(ndr, 5));
6052                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
6053                 NDR_CHECK(ndr_push_union_align(ndr, 5));
6054                 switch (level) {
6055                         case 1: {
6056                                 NDR_CHECK(ndr_push_drsuapi_DsNameRequest1(ndr, NDR_SCALARS, &r->req1));
6057                         break; }
6058
6059                         default:
6060                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6061                 }
6062         }
6063         if (ndr_flags & NDR_BUFFERS) {
6064                 uint32_t level = ndr_push_get_switch_value(ndr, r);
6065                 switch (level) {
6066                         case 1:
6067                                 NDR_CHECK(ndr_push_drsuapi_DsNameRequest1(ndr, NDR_BUFFERS, &r->req1));
6068                         break;
6069
6070                         default:
6071                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6072                 }
6073         }
6074         return NDR_ERR_SUCCESS;
6075 }
6076
6077 static enum ndr_err_code ndr_pull_drsuapi_DsNameRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsNameRequest *r)
6078 {
6079         uint32_t level;
6080         uint32_t _level;
6081         level = ndr_pull_get_switch_value(ndr, r);
6082         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
6083         if (ndr_flags & NDR_SCALARS) {
6084                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
6085                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
6086                 if (_level != level) {
6087                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
6088                 }
6089                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
6090                 switch (level) {
6091                         case 1: {
6092                                 NDR_CHECK(ndr_pull_drsuapi_DsNameRequest1(ndr, NDR_SCALARS, &r->req1));
6093                         break; }
6094
6095                         default:
6096                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6097                 }
6098         }
6099         if (ndr_flags & NDR_BUFFERS) {
6100                 switch (level) {
6101                         case 1:
6102                                 NDR_CHECK(ndr_pull_drsuapi_DsNameRequest1(ndr, NDR_BUFFERS, &r->req1));
6103                         break;
6104
6105                         default:
6106                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6107                 }
6108         }
6109         return NDR_ERR_SUCCESS;
6110 }
6111
6112 _PUBLIC_ void ndr_print_drsuapi_DsNameRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsNameRequest *r)
6113 {
6114         uint32_t level;
6115         level = ndr_print_get_switch_value(ndr, r);
6116         ndr_print_union(ndr, name, level, "drsuapi_DsNameRequest");
6117         switch (level) {
6118                 case 1:
6119                         ndr_print_drsuapi_DsNameRequest1(ndr, "req1", &r->req1);
6120                 break;
6121
6122                 default:
6123                         ndr_print_bad_level(ndr, name, level);
6124         }
6125 }
6126
6127 static enum ndr_err_code ndr_push_drsuapi_DsNameInfo1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsNameInfo1 *r)
6128 {
6129         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
6130         if (ndr_flags & NDR_SCALARS) {
6131                 NDR_CHECK(ndr_push_align(ndr, 5));
6132                 NDR_CHECK(ndr_push_drsuapi_DsNameStatus(ndr, NDR_SCALARS, r->status));
6133                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dns_domain_name));
6134                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->result_name));
6135                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6136         }
6137         if (ndr_flags & NDR_BUFFERS) {
6138                 if (r->dns_domain_name) {
6139                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dns_domain_name, CH_UTF16)));
6140                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6141                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dns_domain_name, CH_UTF16)));
6142                         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));
6143                 }
6144                 if (r->result_name) {
6145                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->result_name, CH_UTF16)));
6146                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6147                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->result_name, CH_UTF16)));
6148                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->result_name, ndr_charset_length(r->result_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6149                 }
6150         }
6151         return NDR_ERR_SUCCESS;
6152 }
6153
6154 static enum ndr_err_code ndr_pull_drsuapi_DsNameInfo1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsNameInfo1 *r)
6155 {
6156         uint32_t _ptr_dns_domain_name;
6157         uint32_t size_dns_domain_name_1 = 0;
6158         uint32_t length_dns_domain_name_1 = 0;
6159         TALLOC_CTX *_mem_save_dns_domain_name_0;
6160         uint32_t _ptr_result_name;
6161         uint32_t size_result_name_1 = 0;
6162         uint32_t length_result_name_1 = 0;
6163         TALLOC_CTX *_mem_save_result_name_0;
6164         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
6165         if (ndr_flags & NDR_SCALARS) {
6166                 NDR_CHECK(ndr_pull_align(ndr, 5));
6167                 NDR_CHECK(ndr_pull_drsuapi_DsNameStatus(ndr, NDR_SCALARS, &r->status));
6168                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dns_domain_name));
6169                 if (_ptr_dns_domain_name) {
6170                         NDR_PULL_ALLOC(ndr, r->dns_domain_name);
6171                 } else {
6172                         r->dns_domain_name = NULL;
6173                 }
6174                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_result_name));
6175                 if (_ptr_result_name) {
6176                         NDR_PULL_ALLOC(ndr, r->result_name);
6177                 } else {
6178                         r->result_name = NULL;
6179                 }
6180                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
6181         }
6182         if (ndr_flags & NDR_BUFFERS) {
6183                 if (r->dns_domain_name) {
6184                         _mem_save_dns_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6185                         NDR_PULL_SET_MEM_CTX(ndr, r->dns_domain_name, 0);
6186                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dns_domain_name));
6187                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dns_domain_name));
6188                         size_dns_domain_name_1 = ndr_get_array_size(ndr, &r->dns_domain_name);
6189                         length_dns_domain_name_1 = ndr_get_array_length(ndr, &r->dns_domain_name);
6190                         if (length_dns_domain_name_1 > size_dns_domain_name_1) {
6191                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_dns_domain_name_1, length_dns_domain_name_1);
6192                         }
6193                         NDR_CHECK(ndr_check_string_terminator(ndr, length_dns_domain_name_1, sizeof(uint16_t)));
6194                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dns_domain_name, length_dns_domain_name_1, sizeof(uint16_t), CH_UTF16));
6195                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dns_domain_name_0, 0);
6196                 }
6197                 if (r->result_name) {
6198                         _mem_save_result_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6199                         NDR_PULL_SET_MEM_CTX(ndr, r->result_name, 0);
6200                         NDR_CHECK(ndr_pull_array_size(ndr, &r->result_name));
6201                         NDR_CHECK(ndr_pull_array_length(ndr, &r->result_name));
6202                         size_result_name_1 = ndr_get_array_size(ndr, &r->result_name);
6203                         length_result_name_1 = ndr_get_array_length(ndr, &r->result_name);
6204                         if (length_result_name_1 > size_result_name_1) {
6205                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_result_name_1, length_result_name_1);
6206                         }
6207                         NDR_CHECK(ndr_check_string_terminator(ndr, length_result_name_1, sizeof(uint16_t)));
6208                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->result_name, length_result_name_1, sizeof(uint16_t), CH_UTF16));
6209                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_result_name_0, 0);
6210                 }
6211         }
6212         return NDR_ERR_SUCCESS;
6213 }
6214
6215 _PUBLIC_ void ndr_print_drsuapi_DsNameInfo1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsNameInfo1 *r)
6216 {
6217         ndr_print_struct(ndr, name, "drsuapi_DsNameInfo1");
6218         if (r == NULL) { ndr_print_null(ndr); return; }
6219         ndr->depth++;
6220         ndr_print_drsuapi_DsNameStatus(ndr, "status", r->status);
6221         ndr_print_ptr(ndr, "dns_domain_name", r->dns_domain_name);
6222         ndr->depth++;
6223         if (r->dns_domain_name) {
6224                 ndr_print_string(ndr, "dns_domain_name", r->dns_domain_name);
6225         }
6226         ndr->depth--;
6227         ndr_print_ptr(ndr, "result_name", r->result_name);
6228         ndr->depth++;
6229         if (r->result_name) {
6230                 ndr_print_string(ndr, "result_name", r->result_name);
6231         }
6232         ndr->depth--;
6233         ndr->depth--;
6234 }
6235
6236 static enum ndr_err_code ndr_push_drsuapi_DsNameCtr1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsNameCtr1 *r)
6237 {
6238         uint32_t cntr_array_1;
6239         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
6240         if (ndr_flags & NDR_SCALARS) {
6241                 NDR_CHECK(ndr_push_align(ndr, 5));
6242                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
6243                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->array));
6244                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6245         }
6246         if (ndr_flags & NDR_BUFFERS) {
6247                 if (r->array) {
6248                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
6249                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
6250                                 NDR_CHECK(ndr_push_drsuapi_DsNameInfo1(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
6251                         }
6252                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
6253                                 NDR_CHECK(ndr_push_drsuapi_DsNameInfo1(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
6254                         }
6255                 }
6256         }
6257         return NDR_ERR_SUCCESS;
6258 }
6259
6260 static enum ndr_err_code ndr_pull_drsuapi_DsNameCtr1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsNameCtr1 *r)
6261 {
6262         uint32_t _ptr_array;
6263         uint32_t size_array_1 = 0;
6264         uint32_t cntr_array_1;
6265         TALLOC_CTX *_mem_save_array_0;
6266         TALLOC_CTX *_mem_save_array_1;
6267         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
6268         if (ndr_flags & NDR_SCALARS) {
6269                 NDR_CHECK(ndr_pull_align(ndr, 5));
6270                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
6271                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_array));
6272                 if (_ptr_array) {
6273                         NDR_PULL_ALLOC(ndr, r->array);
6274                 } else {
6275                         r->array = NULL;
6276                 }
6277                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
6278         }
6279         if (ndr_flags & NDR_BUFFERS) {
6280                 if (r->array) {
6281                         _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
6282                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
6283                         NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
6284                         size_array_1 = ndr_get_array_size(ndr, &r->array);
6285                         NDR_PULL_ALLOC_N(ndr, r->array, size_array_1);
6286                         _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
6287                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
6288                         for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) {
6289                                 NDR_CHECK(ndr_pull_drsuapi_DsNameInfo1(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
6290                         }
6291                         for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) {
6292                                 NDR_CHECK(ndr_pull_drsuapi_DsNameInfo1(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
6293                         }
6294                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0);
6295                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
6296                 }
6297                 if (r->array) {
6298                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
6299                 }
6300         }
6301         return NDR_ERR_SUCCESS;
6302 }
6303
6304 _PUBLIC_ void ndr_print_drsuapi_DsNameCtr1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsNameCtr1 *r)
6305 {
6306         uint32_t cntr_array_1;
6307         ndr_print_struct(ndr, name, "drsuapi_DsNameCtr1");
6308         if (r == NULL) { ndr_print_null(ndr); return; }
6309         ndr->depth++;
6310         ndr_print_uint32(ndr, "count", r->count);
6311         ndr_print_ptr(ndr, "array", r->array);
6312         ndr->depth++;
6313         if (r->array) {
6314                 ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
6315                 ndr->depth++;
6316                 for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
6317                         ndr_print_drsuapi_DsNameInfo1(ndr, "array", &r->array[cntr_array_1]);
6318                 }
6319                 ndr->depth--;
6320         }
6321         ndr->depth--;
6322         ndr->depth--;
6323 }
6324
6325 static enum ndr_err_code ndr_push_drsuapi_DsNameCtr(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsNameCtr *r)
6326 {
6327         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
6328         if (ndr_flags & NDR_SCALARS) {
6329                 uint32_t level = ndr_push_get_switch_value(ndr, r);
6330                 NDR_CHECK(ndr_push_union_align(ndr, 5));
6331                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
6332                 NDR_CHECK(ndr_push_union_align(ndr, 5));
6333                 switch (level) {
6334                         case 1: {
6335                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->ctr1));
6336                         break; }
6337
6338                         default:
6339                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6340                 }
6341         }
6342         if (ndr_flags & NDR_BUFFERS) {
6343                 uint32_t level = ndr_push_get_switch_value(ndr, r);
6344                 switch (level) {
6345                         case 1:
6346                                 if (r->ctr1) {
6347                                         NDR_CHECK(ndr_push_drsuapi_DsNameCtr1(ndr, NDR_SCALARS|NDR_BUFFERS, r->ctr1));
6348                                 }
6349                         break;
6350
6351                         default:
6352                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6353                 }
6354         }
6355         return NDR_ERR_SUCCESS;
6356 }
6357
6358 static enum ndr_err_code ndr_pull_drsuapi_DsNameCtr(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsNameCtr *r)
6359 {
6360         uint32_t level;
6361         uint32_t _level;
6362         TALLOC_CTX *_mem_save_ctr1_0;
6363         uint32_t _ptr_ctr1;
6364         level = ndr_pull_get_switch_value(ndr, r);
6365         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
6366         if (ndr_flags & NDR_SCALARS) {
6367                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
6368                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
6369                 if (_level != level) {
6370                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
6371                 }
6372                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
6373                 switch (level) {
6374                         case 1: {
6375                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr1));
6376                                 if (_ptr_ctr1) {
6377                                         NDR_PULL_ALLOC(ndr, r->ctr1);
6378                                 } else {
6379                                         r->ctr1 = NULL;
6380                                 }
6381                         break; }
6382
6383                         default:
6384                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6385                 }
6386         }
6387         if (ndr_flags & NDR_BUFFERS) {
6388                 switch (level) {
6389                         case 1:
6390                                 if (r->ctr1) {
6391                                         _mem_save_ctr1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6392                                         NDR_PULL_SET_MEM_CTX(ndr, r->ctr1, 0);
6393                                         NDR_CHECK(ndr_pull_drsuapi_DsNameCtr1(ndr, NDR_SCALARS|NDR_BUFFERS, r->ctr1));
6394                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr1_0, 0);
6395                                 }
6396                         break;
6397
6398                         default:
6399                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6400                 }
6401         }
6402         return NDR_ERR_SUCCESS;
6403 }
6404
6405 _PUBLIC_ void ndr_print_drsuapi_DsNameCtr(struct ndr_print *ndr, const char *name, const union drsuapi_DsNameCtr *r)
6406 {
6407         uint32_t level;
6408         level = ndr_print_get_switch_value(ndr, r);
6409         ndr_print_union(ndr, name, level, "drsuapi_DsNameCtr");
6410         switch (level) {
6411                 case 1:
6412                         ndr_print_ptr(ndr, "ctr1", r->ctr1);
6413                         ndr->depth++;
6414                         if (r->ctr1) {
6415                                 ndr_print_drsuapi_DsNameCtr1(ndr, "ctr1", r->ctr1);
6416                         }
6417                         ndr->depth--;
6418                 break;
6419
6420                 default:
6421                         ndr_print_bad_level(ndr, name, level);
6422         }
6423 }
6424
6425 static enum ndr_err_code ndr_push_drsuapi_DsSpnOperation(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsSpnOperation r)
6426 {
6427         NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
6428         return NDR_ERR_SUCCESS;
6429 }
6430
6431 static enum ndr_err_code ndr_pull_drsuapi_DsSpnOperation(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsSpnOperation *r)
6432 {
6433         uint32_t v;
6434         NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
6435         *r = v;
6436         return NDR_ERR_SUCCESS;
6437 }
6438
6439 _PUBLIC_ void ndr_print_drsuapi_DsSpnOperation(struct ndr_print *ndr, const char *name, enum drsuapi_DsSpnOperation r)
6440 {
6441         const char *val = NULL;
6442
6443         switch (r) {
6444                 case DRSUAPI_DS_SPN_OPERATION_ADD: val = "DRSUAPI_DS_SPN_OPERATION_ADD"; break;
6445                 case DRSUAPI_DS_SPN_OPERATION_REPLACE: val = "DRSUAPI_DS_SPN_OPERATION_REPLACE"; break;
6446                 case DRSUAPI_DS_SPN_OPERATION_DELETE: val = "DRSUAPI_DS_SPN_OPERATION_DELETE"; break;
6447         }
6448         ndr_print_enum(ndr, name, "ENUM", val, r);
6449 }
6450
6451 static enum ndr_err_code ndr_push_drsuapi_DsWriteAccountSpnRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsWriteAccountSpnRequest1 *r)
6452 {
6453         uint32_t cntr_spn_names_1;
6454         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
6455         if (ndr_flags & NDR_SCALARS) {
6456                 NDR_CHECK(ndr_push_align(ndr, 5));
6457                 NDR_CHECK(ndr_push_drsuapi_DsSpnOperation(ndr, NDR_SCALARS, r->operation));
6458                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
6459                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->object_dn));
6460                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
6461                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->spn_names));
6462                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6463         }
6464         if (ndr_flags & NDR_BUFFERS) {
6465                 if (r->object_dn) {
6466                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->object_dn, CH_UTF16)));
6467                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6468                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->object_dn, CH_UTF16)));
6469                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->object_dn, ndr_charset_length(r->object_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6470                 }
6471                 if (r->spn_names) {
6472                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
6473                         for (cntr_spn_names_1 = 0; cntr_spn_names_1 < r->count; cntr_spn_names_1++) {
6474                                 NDR_CHECK(ndr_push_drsuapi_DsNameString(ndr, NDR_SCALARS, &r->spn_names[cntr_spn_names_1]));
6475                         }
6476                         for (cntr_spn_names_1 = 0; cntr_spn_names_1 < r->count; cntr_spn_names_1++) {
6477                                 NDR_CHECK(ndr_push_drsuapi_DsNameString(ndr, NDR_BUFFERS, &r->spn_names[cntr_spn_names_1]));
6478                         }
6479                 }
6480         }
6481         return NDR_ERR_SUCCESS;
6482 }
6483
6484 static enum ndr_err_code ndr_pull_drsuapi_DsWriteAccountSpnRequest1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsWriteAccountSpnRequest1 *r)
6485 {
6486         uint32_t _ptr_object_dn;
6487         uint32_t size_object_dn_1 = 0;
6488         uint32_t length_object_dn_1 = 0;
6489         TALLOC_CTX *_mem_save_object_dn_0;
6490         uint32_t _ptr_spn_names;
6491         uint32_t size_spn_names_1 = 0;
6492         uint32_t cntr_spn_names_1;
6493         TALLOC_CTX *_mem_save_spn_names_0;
6494         TALLOC_CTX *_mem_save_spn_names_1;
6495         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
6496         if (ndr_flags & NDR_SCALARS) {
6497                 NDR_CHECK(ndr_pull_align(ndr, 5));
6498                 NDR_CHECK(ndr_pull_drsuapi_DsSpnOperation(ndr, NDR_SCALARS, &r->operation));
6499                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
6500                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_object_dn));
6501                 if (_ptr_object_dn) {
6502                         NDR_PULL_ALLOC(ndr, r->object_dn);
6503                 } else {
6504                         r->object_dn = NULL;
6505                 }
6506                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
6507                 if (r->count > 10000) {
6508                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
6509                 }
6510                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_spn_names));
6511                 if (_ptr_spn_names) {
6512                         NDR_PULL_ALLOC(ndr, r->spn_names);
6513                 } else {
6514                         r->spn_names = NULL;
6515                 }
6516                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
6517         }
6518         if (ndr_flags & NDR_BUFFERS) {
6519                 if (r->object_dn) {
6520                         _mem_save_object_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
6521                         NDR_PULL_SET_MEM_CTX(ndr, r->object_dn, 0);
6522                         NDR_CHECK(ndr_pull_array_size(ndr, &r->object_dn));
6523                         NDR_CHECK(ndr_pull_array_length(ndr, &r->object_dn));
6524                         size_object_dn_1 = ndr_get_array_size(ndr, &r->object_dn);
6525                         length_object_dn_1 = ndr_get_array_length(ndr, &r->object_dn);
6526                         if (length_object_dn_1 > size_object_dn_1) {
6527                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_object_dn_1, length_object_dn_1);
6528                         }
6529                         NDR_CHECK(ndr_check_string_terminator(ndr, length_object_dn_1, sizeof(uint16_t)));
6530                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->object_dn, length_object_dn_1, sizeof(uint16_t), CH_UTF16));
6531                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_object_dn_0, 0);
6532                 }
6533                 if (r->spn_names) {
6534                         _mem_save_spn_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
6535                         NDR_PULL_SET_MEM_CTX(ndr, r->spn_names, 0);
6536                         NDR_CHECK(ndr_pull_array_size(ndr, &r->spn_names));
6537                         size_spn_names_1 = ndr_get_array_size(ndr, &r->spn_names);
6538                         NDR_PULL_ALLOC_N(ndr, r->spn_names, size_spn_names_1);
6539                         _mem_save_spn_names_1 = NDR_PULL_GET_MEM_CTX(ndr);
6540                         NDR_PULL_SET_MEM_CTX(ndr, r->spn_names, 0);
6541                         for (cntr_spn_names_1 = 0; cntr_spn_names_1 < size_spn_names_1; cntr_spn_names_1++) {
6542                                 NDR_CHECK(ndr_pull_drsuapi_DsNameString(ndr, NDR_SCALARS, &r->spn_names[cntr_spn_names_1]));
6543                         }
6544                         for (cntr_spn_names_1 = 0; cntr_spn_names_1 < size_spn_names_1; cntr_spn_names_1++) {
6545                                 NDR_CHECK(ndr_pull_drsuapi_DsNameString(ndr, NDR_BUFFERS, &r->spn_names[cntr_spn_names_1]));
6546                         }
6547                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_spn_names_1, 0);
6548                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_spn_names_0, 0);
6549                 }
6550                 if (r->spn_names) {
6551                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->spn_names, r->count));
6552                 }
6553         }
6554         return NDR_ERR_SUCCESS;
6555 }
6556
6557 _PUBLIC_ void ndr_print_drsuapi_DsWriteAccountSpnRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsWriteAccountSpnRequest1 *r)
6558 {
6559         uint32_t cntr_spn_names_1;
6560         ndr_print_struct(ndr, name, "drsuapi_DsWriteAccountSpnRequest1");
6561         if (r == NULL) { ndr_print_null(ndr); return; }
6562         ndr->depth++;
6563         ndr_print_drsuapi_DsSpnOperation(ndr, "operation", r->operation);
6564         ndr_print_uint32(ndr, "unknown1", r->unknown1);
6565         ndr_print_ptr(ndr, "object_dn", r->object_dn);
6566         ndr->depth++;
6567         if (r->object_dn) {
6568                 ndr_print_string(ndr, "object_dn", r->object_dn);
6569         }
6570         ndr->depth--;
6571         ndr_print_uint32(ndr, "count", r->count);
6572         ndr_print_ptr(ndr, "spn_names", r->spn_names);
6573         ndr->depth++;
6574         if (r->spn_names) {
6575                 ndr->print(ndr, "%s: ARRAY(%d)", "spn_names", (int)r->count);
6576                 ndr->depth++;
6577                 for (cntr_spn_names_1=0;cntr_spn_names_1<r->count;cntr_spn_names_1++) {
6578                         ndr_print_drsuapi_DsNameString(ndr, "spn_names", &r->spn_names[cntr_spn_names_1]);
6579                 }
6580                 ndr->depth--;
6581         }
6582         ndr->depth--;
6583         ndr->depth--;
6584 }
6585
6586 static enum ndr_err_code ndr_push_drsuapi_DsWriteAccountSpnRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsWriteAccountSpnRequest *r)
6587 {
6588         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
6589         if (ndr_flags & NDR_SCALARS) {
6590                 uint32_t level = ndr_push_get_switch_value(ndr, r);
6591                 NDR_CHECK(ndr_push_union_align(ndr, 5));
6592                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
6593                 NDR_CHECK(ndr_push_union_align(ndr, 5));
6594                 switch (level) {
6595                         case 1: {
6596                                 NDR_CHECK(ndr_push_drsuapi_DsWriteAccountSpnRequest1(ndr, NDR_SCALARS, &r->req1));
6597                         break; }
6598
6599                         default:
6600                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6601                 }
6602         }
6603         if (ndr_flags & NDR_BUFFERS) {
6604                 uint32_t level = ndr_push_get_switch_value(ndr, r);
6605                 switch (level) {
6606                         case 1:
6607                                 NDR_CHECK(ndr_push_drsuapi_DsWriteAccountSpnRequest1(ndr, NDR_BUFFERS, &r->req1));
6608                         break;
6609
6610                         default:
6611                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6612                 }
6613         }
6614         return NDR_ERR_SUCCESS;
6615 }
6616
6617 static enum ndr_err_code ndr_pull_drsuapi_DsWriteAccountSpnRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsWriteAccountSpnRequest *r)
6618 {
6619         uint32_t level;
6620         uint32_t _level;
6621         level = ndr_pull_get_switch_value(ndr, r);
6622         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
6623         if (ndr_flags & NDR_SCALARS) {
6624                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
6625                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
6626                 if (_level != level) {
6627                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
6628                 }
6629                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
6630                 switch (level) {
6631                         case 1: {
6632                                 NDR_CHECK(ndr_pull_drsuapi_DsWriteAccountSpnRequest1(ndr, NDR_SCALARS, &r->req1));
6633                         break; }
6634
6635                         default:
6636                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6637                 }
6638         }
6639         if (ndr_flags & NDR_BUFFERS) {
6640                 switch (level) {
6641                         case 1:
6642                                 NDR_CHECK(ndr_pull_drsuapi_DsWriteAccountSpnRequest1(ndr, NDR_BUFFERS, &r->req1));
6643                         break;
6644
6645                         default:
6646                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6647                 }
6648         }
6649         return NDR_ERR_SUCCESS;
6650 }
6651
6652 _PUBLIC_ void ndr_print_drsuapi_DsWriteAccountSpnRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsWriteAccountSpnRequest *r)
6653 {
6654         uint32_t level;
6655         level = ndr_print_get_switch_value(ndr, r);
6656         ndr_print_union(ndr, name, level, "drsuapi_DsWriteAccountSpnRequest");
6657         switch (level) {
6658                 case 1:
6659                         ndr_print_drsuapi_DsWriteAccountSpnRequest1(ndr, "req1", &r->req1);
6660                 break;
6661
6662                 default:
6663                         ndr_print_bad_level(ndr, name, level);
6664         }
6665 }
6666
6667 static enum ndr_err_code ndr_push_drsuapi_DsWriteAccountSpnResult1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsWriteAccountSpnResult1 *r)
6668 {
6669         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
6670         if (ndr_flags & NDR_SCALARS) {
6671                 NDR_CHECK(ndr_push_align(ndr, 4));
6672                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->status));
6673                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
6674         }
6675         if (ndr_flags & NDR_BUFFERS) {
6676         }
6677         return NDR_ERR_SUCCESS;
6678 }
6679
6680 static enum ndr_err_code ndr_pull_drsuapi_DsWriteAccountSpnResult1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsWriteAccountSpnResult1 *r)
6681 {
6682         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
6683         if (ndr_flags & NDR_SCALARS) {
6684                 NDR_CHECK(ndr_pull_align(ndr, 4));
6685                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->status));
6686                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
6687         }
6688         if (ndr_flags & NDR_BUFFERS) {
6689         }
6690         return NDR_ERR_SUCCESS;
6691 }
6692
6693 _PUBLIC_ void ndr_print_drsuapi_DsWriteAccountSpnResult1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsWriteAccountSpnResult1 *r)
6694 {
6695         ndr_print_struct(ndr, name, "drsuapi_DsWriteAccountSpnResult1");
6696         if (r == NULL) { ndr_print_null(ndr); return; }
6697         ndr->depth++;
6698         ndr_print_WERROR(ndr, "status", r->status);
6699         ndr->depth--;
6700 }
6701
6702 static enum ndr_err_code ndr_push_drsuapi_DsWriteAccountSpnResult(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsWriteAccountSpnResult *r)
6703 {
6704         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
6705         if (ndr_flags & NDR_SCALARS) {
6706                 uint32_t level = ndr_push_get_switch_value(ndr, r);
6707                 NDR_CHECK(ndr_push_union_align(ndr, 4));
6708                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
6709                 NDR_CHECK(ndr_push_union_align(ndr, 4));
6710                 switch (level) {
6711                         case 1: {
6712                                 NDR_CHECK(ndr_push_drsuapi_DsWriteAccountSpnResult1(ndr, NDR_SCALARS, &r->res1));
6713                         break; }
6714
6715                         default:
6716                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6717                 }
6718         }
6719         if (ndr_flags & NDR_BUFFERS) {
6720                 uint32_t level = ndr_push_get_switch_value(ndr, r);
6721                 switch (level) {
6722                         case 1:
6723                         break;
6724
6725                         default:
6726                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6727                 }
6728         }
6729         return NDR_ERR_SUCCESS;
6730 }
6731
6732 static enum ndr_err_code ndr_pull_drsuapi_DsWriteAccountSpnResult(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsWriteAccountSpnResult *r)
6733 {
6734         uint32_t level;
6735         uint32_t _level;
6736         level = ndr_pull_get_switch_value(ndr, r);
6737         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
6738         if (ndr_flags & NDR_SCALARS) {
6739                 NDR_CHECK(ndr_pull_union_align(ndr, 4));
6740                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
6741                 if (_level != level) {
6742                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
6743                 }
6744                 NDR_CHECK(ndr_pull_union_align(ndr, 4));
6745                 switch (level) {
6746                         case 1: {
6747                                 NDR_CHECK(ndr_pull_drsuapi_DsWriteAccountSpnResult1(ndr, NDR_SCALARS, &r->res1));
6748                         break; }
6749
6750                         default:
6751                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6752                 }
6753         }
6754         if (ndr_flags & NDR_BUFFERS) {
6755                 switch (level) {
6756                         case 1:
6757                         break;
6758
6759                         default:
6760                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6761                 }
6762         }
6763         return NDR_ERR_SUCCESS;
6764 }
6765
6766 _PUBLIC_ void ndr_print_drsuapi_DsWriteAccountSpnResult(struct ndr_print *ndr, const char *name, const union drsuapi_DsWriteAccountSpnResult *r)
6767 {
6768         uint32_t level;
6769         level = ndr_print_get_switch_value(ndr, r);
6770         ndr_print_union(ndr, name, level, "drsuapi_DsWriteAccountSpnResult");
6771         switch (level) {
6772                 case 1:
6773                         ndr_print_drsuapi_DsWriteAccountSpnResult1(ndr, "res1", &r->res1);
6774                 break;
6775
6776                 default:
6777                         ndr_print_bad_level(ndr, name, level);
6778         }
6779 }
6780
6781 static enum ndr_err_code ndr_push_drsuapi_DsRemoveDSServerRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsRemoveDSServerRequest1 *r)
6782 {
6783         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
6784         if (ndr_flags & NDR_SCALARS) {
6785                 NDR_CHECK(ndr_push_align(ndr, 5));
6786                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_dn));
6787                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_dn));
6788                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->commit));
6789                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6790         }
6791         if (ndr_flags & NDR_BUFFERS) {
6792                 if (r->server_dn) {
6793                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_dn, CH_UTF16)));
6794                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6795                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_dn, CH_UTF16)));
6796                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_dn, ndr_charset_length(r->server_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6797                 }
6798                 if (r->domain_dn) {
6799                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->domain_dn, CH_UTF16)));
6800                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6801                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->domain_dn, CH_UTF16)));
6802                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain_dn, ndr_charset_length(r->domain_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6803                 }
6804         }
6805         return NDR_ERR_SUCCESS;
6806 }
6807
6808 static enum ndr_err_code ndr_pull_drsuapi_DsRemoveDSServerRequest1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsRemoveDSServerRequest1 *r)
6809 {
6810         uint32_t _ptr_server_dn;
6811         uint32_t size_server_dn_1 = 0;
6812         uint32_t length_server_dn_1 = 0;
6813         TALLOC_CTX *_mem_save_server_dn_0;
6814         uint32_t _ptr_domain_dn;
6815         uint32_t size_domain_dn_1 = 0;
6816         uint32_t length_domain_dn_1 = 0;
6817         TALLOC_CTX *_mem_save_domain_dn_0;
6818         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
6819         if (ndr_flags & NDR_SCALARS) {
6820                 NDR_CHECK(ndr_pull_align(ndr, 5));
6821                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_dn));
6822                 if (_ptr_server_dn) {
6823                         NDR_PULL_ALLOC(ndr, r->server_dn);
6824                 } else {
6825                         r->server_dn = NULL;
6826                 }
6827                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_dn));
6828                 if (_ptr_domain_dn) {
6829                         NDR_PULL_ALLOC(ndr, r->domain_dn);
6830                 } else {
6831                         r->domain_dn = NULL;
6832                 }
6833                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->commit));
6834                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
6835         }
6836         if (ndr_flags & NDR_BUFFERS) {
6837                 if (r->server_dn) {
6838                         _mem_save_server_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
6839                         NDR_PULL_SET_MEM_CTX(ndr, r->server_dn, 0);
6840                         NDR_CHECK(ndr_pull_array_size(ndr, &r->server_dn));
6841                         NDR_CHECK(ndr_pull_array_length(ndr, &r->server_dn));
6842                         size_server_dn_1 = ndr_get_array_size(ndr, &r->server_dn);
6843                         length_server_dn_1 = ndr_get_array_length(ndr, &r->server_dn);
6844                         if (length_server_dn_1 > size_server_dn_1) {
6845                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_dn_1, length_server_dn_1);
6846                         }
6847                         NDR_CHECK(ndr_check_string_terminator(ndr, length_server_dn_1, sizeof(uint16_t)));
6848                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_dn, length_server_dn_1, sizeof(uint16_t), CH_UTF16));
6849                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_dn_0, 0);
6850                 }
6851                 if (r->domain_dn) {
6852                         _mem_save_domain_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
6853                         NDR_PULL_SET_MEM_CTX(ndr, r->domain_dn, 0);
6854                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain_dn));
6855                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain_dn));
6856                         size_domain_dn_1 = ndr_get_array_size(ndr, &r->domain_dn);
6857                         length_domain_dn_1 = ndr_get_array_length(ndr, &r->domain_dn);
6858                         if (length_domain_dn_1 > size_domain_dn_1) {
6859                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_domain_dn_1, length_domain_dn_1);
6860                         }
6861                         NDR_CHECK(ndr_check_string_terminator(ndr, length_domain_dn_1, sizeof(uint16_t)));
6862                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain_dn, length_domain_dn_1, sizeof(uint16_t), CH_UTF16));
6863                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_dn_0, 0);
6864                 }
6865         }
6866         return NDR_ERR_SUCCESS;
6867 }
6868
6869 _PUBLIC_ void ndr_print_drsuapi_DsRemoveDSServerRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsRemoveDSServerRequest1 *r)
6870 {
6871         ndr_print_struct(ndr, name, "drsuapi_DsRemoveDSServerRequest1");
6872         if (r == NULL) { ndr_print_null(ndr); return; }
6873         ndr->depth++;
6874         ndr_print_ptr(ndr, "server_dn", r->server_dn);
6875         ndr->depth++;
6876         if (r->server_dn) {
6877                 ndr_print_string(ndr, "server_dn", r->server_dn);
6878         }
6879         ndr->depth--;
6880         ndr_print_ptr(ndr, "domain_dn", r->domain_dn);
6881         ndr->depth++;
6882         if (r->domain_dn) {
6883                 ndr_print_string(ndr, "domain_dn", r->domain_dn);
6884         }
6885         ndr->depth--;
6886         ndr_print_uint32(ndr, "commit", r->commit);
6887         ndr->depth--;
6888 }
6889
6890 static enum ndr_err_code ndr_push_drsuapi_DsRemoveDSServerRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsRemoveDSServerRequest *r)
6891 {
6892         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
6893         if (ndr_flags & NDR_SCALARS) {
6894                 uint32_t level = ndr_push_get_switch_value(ndr, r);
6895                 NDR_CHECK(ndr_push_union_align(ndr, 5));
6896                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
6897                 NDR_CHECK(ndr_push_union_align(ndr, 5));
6898                 switch (level) {
6899                         case 1: {
6900                                 NDR_CHECK(ndr_push_drsuapi_DsRemoveDSServerRequest1(ndr, NDR_SCALARS, &r->req1));
6901                         break; }
6902
6903                         default:
6904                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6905                 }
6906         }
6907         if (ndr_flags & NDR_BUFFERS) {
6908                 uint32_t level = ndr_push_get_switch_value(ndr, r);
6909                 switch (level) {
6910                         case 1:
6911                                 NDR_CHECK(ndr_push_drsuapi_DsRemoveDSServerRequest1(ndr, NDR_BUFFERS, &r->req1));
6912                         break;
6913
6914                         default:
6915                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6916                 }
6917         }
6918         return NDR_ERR_SUCCESS;
6919 }
6920
6921 static enum ndr_err_code ndr_pull_drsuapi_DsRemoveDSServerRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsRemoveDSServerRequest *r)
6922 {
6923         uint32_t level;
6924         uint32_t _level;
6925         level = ndr_pull_get_switch_value(ndr, r);
6926         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
6927         if (ndr_flags & NDR_SCALARS) {
6928                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
6929                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
6930                 if (_level != level) {
6931                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
6932                 }
6933                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
6934                 switch (level) {
6935                         case 1: {
6936                                 NDR_CHECK(ndr_pull_drsuapi_DsRemoveDSServerRequest1(ndr, NDR_SCALARS, &r->req1));
6937                         break; }
6938
6939                         default:
6940                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6941                 }
6942         }
6943         if (ndr_flags & NDR_BUFFERS) {
6944                 switch (level) {
6945                         case 1:
6946                                 NDR_CHECK(ndr_pull_drsuapi_DsRemoveDSServerRequest1(ndr, NDR_BUFFERS, &r->req1));
6947                         break;
6948
6949                         default:
6950                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6951                 }
6952         }
6953         return NDR_ERR_SUCCESS;
6954 }
6955
6956 _PUBLIC_ void ndr_print_drsuapi_DsRemoveDSServerRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsRemoveDSServerRequest *r)
6957 {
6958         uint32_t level;
6959         level = ndr_print_get_switch_value(ndr, r);
6960         ndr_print_union(ndr, name, level, "drsuapi_DsRemoveDSServerRequest");
6961         switch (level) {
6962                 case 1:
6963                         ndr_print_drsuapi_DsRemoveDSServerRequest1(ndr, "req1", &r->req1);
6964                 break;
6965
6966                 default:
6967                         ndr_print_bad_level(ndr, name, level);
6968         }
6969 }
6970
6971 static enum ndr_err_code ndr_push_drsuapi_DsRemoveDSServerResult1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsRemoveDSServerResult1 *r)
6972 {
6973         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
6974         if (ndr_flags & NDR_SCALARS) {
6975                 NDR_CHECK(ndr_push_align(ndr, 4));
6976                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->last_dc_in_domain));
6977                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
6978         }
6979         if (ndr_flags & NDR_BUFFERS) {
6980         }
6981         return NDR_ERR_SUCCESS;
6982 }
6983
6984 static enum ndr_err_code ndr_pull_drsuapi_DsRemoveDSServerResult1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsRemoveDSServerResult1 *r)
6985 {
6986         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
6987         if (ndr_flags & NDR_SCALARS) {
6988                 NDR_CHECK(ndr_pull_align(ndr, 4));
6989                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->last_dc_in_domain));
6990                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
6991         }
6992         if (ndr_flags & NDR_BUFFERS) {
6993         }
6994         return NDR_ERR_SUCCESS;
6995 }
6996
6997 _PUBLIC_ void ndr_print_drsuapi_DsRemoveDSServerResult1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsRemoveDSServerResult1 *r)
6998 {
6999         ndr_print_struct(ndr, name, "drsuapi_DsRemoveDSServerResult1");
7000         if (r == NULL) { ndr_print_null(ndr); return; }
7001         ndr->depth++;
7002         ndr_print_uint32(ndr, "last_dc_in_domain", r->last_dc_in_domain);
7003         ndr->depth--;
7004 }
7005
7006 static enum ndr_err_code ndr_push_drsuapi_DsRemoveDSServerResult(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsRemoveDSServerResult *r)
7007 {
7008         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
7009         if (ndr_flags & NDR_SCALARS) {
7010                 uint32_t level = ndr_push_get_switch_value(ndr, r);
7011                 NDR_CHECK(ndr_push_union_align(ndr, 4));
7012                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
7013                 NDR_CHECK(ndr_push_union_align(ndr, 4));
7014                 switch (level) {
7015                         case 1: {
7016                                 NDR_CHECK(ndr_push_drsuapi_DsRemoveDSServerResult1(ndr, NDR_SCALARS, &r->res1));
7017                         break; }
7018
7019                         default:
7020                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
7021                 }
7022         }
7023         if (ndr_flags & NDR_BUFFERS) {
7024                 uint32_t level = ndr_push_get_switch_value(ndr, r);
7025                 switch (level) {
7026                         case 1:
7027                         break;
7028
7029                         default:
7030                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
7031                 }
7032         }
7033         return NDR_ERR_SUCCESS;
7034 }
7035
7036 static enum ndr_err_code ndr_pull_drsuapi_DsRemoveDSServerResult(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsRemoveDSServerResult *r)
7037 {
7038         uint32_t level;
7039         uint32_t _level;
7040         level = ndr_pull_get_switch_value(ndr, r);
7041         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
7042         if (ndr_flags & NDR_SCALARS) {
7043                 NDR_CHECK(ndr_pull_union_align(ndr, 4));
7044                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
7045                 if (_level != level) {
7046                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
7047                 }
7048                 NDR_CHECK(ndr_pull_union_align(ndr, 4));
7049                 switch (level) {
7050                         case 1: {
7051                                 NDR_CHECK(ndr_pull_drsuapi_DsRemoveDSServerResult1(ndr, NDR_SCALARS, &r->res1));
7052                         break; }
7053
7054                         default:
7055                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
7056                 }
7057         }
7058         if (ndr_flags & NDR_BUFFERS) {
7059                 switch (level) {
7060                         case 1:
7061                         break;
7062
7063                         default:
7064                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
7065                 }
7066         }
7067         return NDR_ERR_SUCCESS;
7068 }
7069
7070 _PUBLIC_ void ndr_print_drsuapi_DsRemoveDSServerResult(struct ndr_print *ndr, const char *name, const union drsuapi_DsRemoveDSServerResult *r)
7071 {
7072         uint32_t level;
7073         level = ndr_print_get_switch_value(ndr, r);
7074         ndr_print_union(ndr, name, level, "drsuapi_DsRemoveDSServerResult");
7075         switch (level) {
7076                 case 1:
7077                         ndr_print_drsuapi_DsRemoveDSServerResult1(ndr, "res1", &r->res1);
7078                 break;
7079
7080                 default:
7081                         ndr_print_bad_level(ndr, name, level);
7082         }
7083 }
7084
7085 static enum ndr_err_code ndr_push_drsuapi_DsGetDCInfoRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetDCInfoRequest1 *r)
7086 {
7087         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
7088         if (ndr_flags & NDR_SCALARS) {
7089                 NDR_CHECK(ndr_push_align(ndr, 5));
7090                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_name));
7091                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->level));
7092                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7093         }
7094         if (ndr_flags & NDR_BUFFERS) {
7095                 if (r->domain_name) {
7096                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF16)));
7097                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7098                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF16)));
7099                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain_name, ndr_charset_length(r->domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7100                 }
7101         }
7102         return NDR_ERR_SUCCESS;
7103 }
7104
7105 static enum ndr_err_code ndr_pull_drsuapi_DsGetDCInfoRequest1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetDCInfoRequest1 *r)
7106 {
7107         uint32_t _ptr_domain_name;
7108         uint32_t size_domain_name_1 = 0;
7109         uint32_t length_domain_name_1 = 0;
7110         TALLOC_CTX *_mem_save_domain_name_0;
7111         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
7112         if (ndr_flags & NDR_SCALARS) {
7113                 NDR_CHECK(ndr_pull_align(ndr, 5));
7114                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
7115                 if (_ptr_domain_name) {
7116                         NDR_PULL_ALLOC(ndr, r->domain_name);
7117                 } else {
7118                         r->domain_name = NULL;
7119                 }
7120                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->level));
7121                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7122         }
7123         if (ndr_flags & NDR_BUFFERS) {
7124                 if (r->domain_name) {
7125                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7126                         NDR_PULL_SET_MEM_CTX(ndr, r->domain_name, 0);
7127                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain_name));
7128                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain_name));
7129                         size_domain_name_1 = ndr_get_array_size(ndr, &r->domain_name);
7130                         length_domain_name_1 = ndr_get_array_length(ndr, &r->domain_name);
7131                         if (length_domain_name_1 > size_domain_name_1) {
7132                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_domain_name_1, length_domain_name_1);
7133                         }
7134                         NDR_CHECK(ndr_check_string_terminator(ndr, length_domain_name_1, sizeof(uint16_t)));
7135                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain_name, length_domain_name_1, sizeof(uint16_t), CH_UTF16));
7136                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
7137                 }
7138         }
7139         return NDR_ERR_SUCCESS;
7140 }
7141
7142 _PUBLIC_ void ndr_print_drsuapi_DsGetDCInfoRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetDCInfoRequest1 *r)
7143 {
7144         ndr_print_struct(ndr, name, "drsuapi_DsGetDCInfoRequest1");
7145         if (r == NULL) { ndr_print_null(ndr); return; }
7146         ndr->depth++;
7147         ndr_print_ptr(ndr, "domain_name", r->domain_name);
7148         ndr->depth++;
7149         if (r->domain_name) {
7150                 ndr_print_string(ndr, "domain_name", r->domain_name);
7151         }
7152         ndr->depth--;
7153         ndr_print_int32(ndr, "level", r->level);
7154         ndr->depth--;
7155 }
7156
7157 static enum ndr_err_code ndr_push_drsuapi_DsGetDCInfoRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsGetDCInfoRequest *r)
7158 {
7159         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
7160         if (ndr_flags & NDR_SCALARS) {
7161                 uint32_t level = ndr_push_get_switch_value(ndr, r);
7162                 NDR_CHECK(ndr_push_union_align(ndr, 5));
7163                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
7164                 NDR_CHECK(ndr_push_union_align(ndr, 5));
7165                 switch (level) {
7166                         case 1: {
7167                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfoRequest1(ndr, NDR_SCALARS, &r->req1));
7168                         break; }
7169
7170                         default:
7171                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
7172                 }
7173         }
7174         if (ndr_flags & NDR_BUFFERS) {
7175                 uint32_t level = ndr_push_get_switch_value(ndr, r);
7176                 switch (level) {
7177                         case 1:
7178                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfoRequest1(ndr, NDR_BUFFERS, &r->req1));
7179                         break;
7180
7181                         default:
7182                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
7183                 }
7184         }
7185         return NDR_ERR_SUCCESS;
7186 }
7187
7188 static enum ndr_err_code ndr_pull_drsuapi_DsGetDCInfoRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsGetDCInfoRequest *r)
7189 {
7190         uint32_t level;
7191         int32_t _level;
7192         level = ndr_pull_get_switch_value(ndr, r);
7193         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
7194         if (ndr_flags & NDR_SCALARS) {
7195                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
7196                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
7197                 if (_level != level) {
7198                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
7199                 }
7200                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
7201                 switch (level) {
7202                         case 1: {
7203                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfoRequest1(ndr, NDR_SCALARS, &r->req1));
7204                         break; }
7205
7206                         default:
7207                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
7208                 }
7209         }
7210         if (ndr_flags & NDR_BUFFERS) {
7211                 switch (level) {
7212                         case 1:
7213                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfoRequest1(ndr, NDR_BUFFERS, &r->req1));
7214                         break;
7215
7216                         default:
7217                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
7218                 }
7219         }
7220         return NDR_ERR_SUCCESS;
7221 }
7222
7223 _PUBLIC_ void ndr_print_drsuapi_DsGetDCInfoRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsGetDCInfoRequest *r)
7224 {
7225         uint32_t level;
7226         level = ndr_print_get_switch_value(ndr, r);
7227         ndr_print_union(ndr, name, level, "drsuapi_DsGetDCInfoRequest");
7228         switch (level) {
7229                 case 1:
7230                         ndr_print_drsuapi_DsGetDCInfoRequest1(ndr, "req1", &r->req1);
7231                 break;
7232
7233                 default:
7234                         ndr_print_bad_level(ndr, name, level);
7235         }
7236 }
7237
7238 static enum ndr_err_code ndr_push_drsuapi_DsGetDCInfo1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetDCInfo1 *r)
7239 {
7240         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
7241         if (ndr_flags & NDR_SCALARS) {
7242                 NDR_CHECK(ndr_push_align(ndr, 5));
7243                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->netbios_name));
7244                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dns_name));
7245                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->site_name));
7246                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->computer_dn));
7247                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_dn));
7248                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_pdc));
7249                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_enabled));
7250                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7251         }
7252         if (ndr_flags & NDR_BUFFERS) {
7253                 if (r->netbios_name) {
7254                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
7255                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7256                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
7257                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->netbios_name, ndr_charset_length(r->netbios_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7258                 }
7259                 if (r->dns_name) {
7260                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
7261                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7262                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
7263                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dns_name, ndr_charset_length(r->dns_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7264                 }
7265                 if (r->site_name) {
7266                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->site_name, CH_UTF16)));
7267                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7268                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->site_name, CH_UTF16)));
7269                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->site_name, ndr_charset_length(r->site_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7270                 }
7271                 if (r->computer_dn) {
7272                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->computer_dn, CH_UTF16)));
7273                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7274                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->computer_dn, CH_UTF16)));
7275                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->computer_dn, ndr_charset_length(r->computer_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7276                 }
7277                 if (r->server_dn) {
7278                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_dn, CH_UTF16)));
7279                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7280                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_dn, CH_UTF16)));
7281                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_dn, ndr_charset_length(r->server_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7282                 }
7283         }
7284         return NDR_ERR_SUCCESS;
7285 }
7286
7287 static enum ndr_err_code ndr_pull_drsuapi_DsGetDCInfo1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetDCInfo1 *r)
7288 {
7289         uint32_t _ptr_netbios_name;
7290         uint32_t size_netbios_name_1 = 0;
7291         uint32_t length_netbios_name_1 = 0;
7292         TALLOC_CTX *_mem_save_netbios_name_0;
7293         uint32_t _ptr_dns_name;
7294         uint32_t size_dns_name_1 = 0;
7295         uint32_t length_dns_name_1 = 0;
7296         TALLOC_CTX *_mem_save_dns_name_0;
7297         uint32_t _ptr_site_name;
7298         uint32_t size_site_name_1 = 0;
7299         uint32_t length_site_name_1 = 0;
7300         TALLOC_CTX *_mem_save_site_name_0;
7301         uint32_t _ptr_computer_dn;
7302         uint32_t size_computer_dn_1 = 0;
7303         uint32_t length_computer_dn_1 = 0;
7304         TALLOC_CTX *_mem_save_computer_dn_0;
7305         uint32_t _ptr_server_dn;
7306         uint32_t size_server_dn_1 = 0;
7307         uint32_t length_server_dn_1 = 0;
7308         TALLOC_CTX *_mem_save_server_dn_0;
7309         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
7310         if (ndr_flags & NDR_SCALARS) {
7311                 NDR_CHECK(ndr_pull_align(ndr, 5));
7312                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_netbios_name));
7313                 if (_ptr_netbios_name) {
7314                         NDR_PULL_ALLOC(ndr, r->netbios_name);
7315                 } else {
7316                         r->netbios_name = NULL;
7317                 }
7318                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dns_name));
7319                 if (_ptr_dns_name) {
7320                         NDR_PULL_ALLOC(ndr, r->dns_name);
7321                 } else {
7322                         r->dns_name = NULL;
7323                 }
7324                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_name));
7325                 if (_ptr_site_name) {
7326                         NDR_PULL_ALLOC(ndr, r->site_name);
7327                 } else {
7328                         r->site_name = NULL;
7329                 }
7330                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_dn));
7331                 if (_ptr_computer_dn) {
7332                         NDR_PULL_ALLOC(ndr, r->computer_dn);
7333                 } else {
7334                         r->computer_dn = NULL;
7335                 }
7336                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_dn));
7337                 if (_ptr_server_dn) {
7338                         NDR_PULL_ALLOC(ndr, r->server_dn);
7339                 } else {
7340                         r->server_dn = NULL;
7341                 }
7342                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_pdc));
7343                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_enabled));
7344                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7345         }
7346         if (ndr_flags & NDR_BUFFERS) {
7347                 if (r->netbios_name) {
7348                         _mem_save_netbios_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7349                         NDR_PULL_SET_MEM_CTX(ndr, r->netbios_name, 0);
7350                         NDR_CHECK(ndr_pull_array_size(ndr, &r->netbios_name));
7351                         NDR_CHECK(ndr_pull_array_length(ndr, &r->netbios_name));
7352                         size_netbios_name_1 = ndr_get_array_size(ndr, &r->netbios_name);
7353                         length_netbios_name_1 = ndr_get_array_length(ndr, &r->netbios_name);
7354                         if (length_netbios_name_1 > size_netbios_name_1) {
7355                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_netbios_name_1, length_netbios_name_1);
7356                         }
7357                         NDR_CHECK(ndr_check_string_terminator(ndr, length_netbios_name_1, sizeof(uint16_t)));
7358                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->netbios_name, length_netbios_name_1, sizeof(uint16_t), CH_UTF16));
7359                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_netbios_name_0, 0);
7360                 }
7361                 if (r->dns_name) {
7362                         _mem_save_dns_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7363                         NDR_PULL_SET_MEM_CTX(ndr, r->dns_name, 0);
7364                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dns_name));
7365                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dns_name));
7366                         size_dns_name_1 = ndr_get_array_size(ndr, &r->dns_name);
7367                         length_dns_name_1 = ndr_get_array_length(ndr, &r->dns_name);
7368                         if (length_dns_name_1 > size_dns_name_1) {
7369                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_dns_name_1, length_dns_name_1);
7370                         }
7371                         NDR_CHECK(ndr_check_string_terminator(ndr, length_dns_name_1, sizeof(uint16_t)));
7372                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dns_name, length_dns_name_1, sizeof(uint16_t), CH_UTF16));
7373                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dns_name_0, 0);
7374                 }
7375                 if (r->site_name) {
7376                         _mem_save_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7377                         NDR_PULL_SET_MEM_CTX(ndr, r->site_name, 0);
7378                         NDR_CHECK(ndr_pull_array_size(ndr, &r->site_name));
7379                         NDR_CHECK(ndr_pull_array_length(ndr, &r->site_name));
7380                         size_site_name_1 = ndr_get_array_size(ndr, &r->site_name);
7381                         length_site_name_1 = ndr_get_array_length(ndr, &r->site_name);
7382                         if (length_site_name_1 > size_site_name_1) {
7383                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_site_name_1, length_site_name_1);
7384                         }
7385                         NDR_CHECK(ndr_check_string_terminator(ndr, length_site_name_1, sizeof(uint16_t)));
7386                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->site_name, length_site_name_1, sizeof(uint16_t), CH_UTF16));
7387                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0);
7388                 }
7389                 if (r->computer_dn) {
7390                         _mem_save_computer_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
7391                         NDR_PULL_SET_MEM_CTX(ndr, r->computer_dn, 0);
7392                         NDR_CHECK(ndr_pull_array_size(ndr, &r->computer_dn));
7393                         NDR_CHECK(ndr_pull_array_length(ndr, &r->computer_dn));
7394                         size_computer_dn_1 = ndr_get_array_size(ndr, &r->computer_dn);
7395                         length_computer_dn_1 = ndr_get_array_length(ndr, &r->computer_dn);
7396                         if (length_computer_dn_1 > size_computer_dn_1) {
7397                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_computer_dn_1, length_computer_dn_1);
7398                         }
7399                         NDR_CHECK(ndr_check_string_terminator(ndr, length_computer_dn_1, sizeof(uint16_t)));
7400                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->computer_dn, length_computer_dn_1, sizeof(uint16_t), CH_UTF16));
7401                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_dn_0, 0);
7402                 }
7403                 if (r->server_dn) {
7404                         _mem_save_server_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
7405                         NDR_PULL_SET_MEM_CTX(ndr, r->server_dn, 0);
7406                         NDR_CHECK(ndr_pull_array_size(ndr, &r->server_dn));
7407                         NDR_CHECK(ndr_pull_array_length(ndr, &r->server_dn));
7408                         size_server_dn_1 = ndr_get_array_size(ndr, &r->server_dn);
7409                         length_server_dn_1 = ndr_get_array_length(ndr, &r->server_dn);
7410                         if (length_server_dn_1 > size_server_dn_1) {
7411                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_dn_1, length_server_dn_1);
7412                         }
7413                         NDR_CHECK(ndr_check_string_terminator(ndr, length_server_dn_1, sizeof(uint16_t)));
7414                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_dn, length_server_dn_1, sizeof(uint16_t), CH_UTF16));
7415                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_dn_0, 0);
7416                 }
7417         }
7418         return NDR_ERR_SUCCESS;
7419 }
7420
7421 _PUBLIC_ void ndr_print_drsuapi_DsGetDCInfo1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetDCInfo1 *r)
7422 {
7423         ndr_print_struct(ndr, name, "drsuapi_DsGetDCInfo1");
7424         if (r == NULL) { ndr_print_null(ndr); return; }
7425         ndr->depth++;
7426         ndr_print_ptr(ndr, "netbios_name", r->netbios_name);
7427         ndr->depth++;
7428         if (r->netbios_name) {
7429                 ndr_print_string(ndr, "netbios_name", r->netbios_name);
7430         }
7431         ndr->depth--;
7432         ndr_print_ptr(ndr, "dns_name", r->dns_name);
7433         ndr->depth++;
7434         if (r->dns_name) {
7435                 ndr_print_string(ndr, "dns_name", r->dns_name);
7436         }
7437         ndr->depth--;
7438         ndr_print_ptr(ndr, "site_name", r->site_name);
7439         ndr->depth++;
7440         if (r->site_name) {
7441                 ndr_print_string(ndr, "site_name", r->site_name);
7442         }
7443         ndr->depth--;
7444         ndr_print_ptr(ndr, "computer_dn", r->computer_dn);
7445         ndr->depth++;
7446         if (r->computer_dn) {
7447                 ndr_print_string(ndr, "computer_dn", r->computer_dn);
7448         }
7449         ndr->depth--;
7450         ndr_print_ptr(ndr, "server_dn", r->server_dn);
7451         ndr->depth++;
7452         if (r->server_dn) {
7453                 ndr_print_string(ndr, "server_dn", r->server_dn);
7454         }
7455         ndr->depth--;
7456         ndr_print_uint32(ndr, "is_pdc", r->is_pdc);
7457         ndr_print_uint32(ndr, "is_enabled", r->is_enabled);
7458         ndr->depth--;
7459 }
7460
7461 static enum ndr_err_code ndr_push_drsuapi_DsGetDCInfoCtr1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetDCInfoCtr1 *r)
7462 {
7463         uint32_t cntr_array_1;
7464         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
7465         if (ndr_flags & NDR_SCALARS) {
7466                 NDR_CHECK(ndr_push_align(ndr, 5));
7467                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7468                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->array));
7469                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7470         }
7471         if (ndr_flags & NDR_BUFFERS) {
7472                 if (r->array) {
7473                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
7474                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7475                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfo1(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
7476                         }
7477                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7478                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfo1(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
7479                         }
7480                 }
7481         }
7482         return NDR_ERR_SUCCESS;
7483 }
7484
7485 static enum ndr_err_code ndr_pull_drsuapi_DsGetDCInfoCtr1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetDCInfoCtr1 *r)
7486 {
7487         uint32_t _ptr_array;
7488         uint32_t size_array_1 = 0;
7489         uint32_t cntr_array_1;
7490         TALLOC_CTX *_mem_save_array_0;
7491         TALLOC_CTX *_mem_save_array_1;
7492         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
7493         if (ndr_flags & NDR_SCALARS) {
7494                 NDR_CHECK(ndr_pull_align(ndr, 5));
7495                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
7496                 if (r->count > 10000) {
7497                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
7498                 }
7499                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_array));
7500                 if (_ptr_array) {
7501                         NDR_PULL_ALLOC(ndr, r->array);
7502                 } else {
7503                         r->array = NULL;
7504                 }
7505                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7506         }
7507         if (ndr_flags & NDR_BUFFERS) {
7508                 if (r->array) {
7509                         _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
7510                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
7511                         NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
7512                         size_array_1 = ndr_get_array_size(ndr, &r->array);
7513                         NDR_PULL_ALLOC_N(ndr, r->array, size_array_1);
7514                         _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
7515                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
7516                         for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) {
7517                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfo1(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
7518                         }
7519                         for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) {
7520                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfo1(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
7521                         }
7522                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0);
7523                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
7524                 }
7525                 if (r->array) {
7526                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
7527                 }
7528         }
7529         return NDR_ERR_SUCCESS;
7530 }
7531
7532 _PUBLIC_ void ndr_print_drsuapi_DsGetDCInfoCtr1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetDCInfoCtr1 *r)
7533 {
7534         uint32_t cntr_array_1;
7535         ndr_print_struct(ndr, name, "drsuapi_DsGetDCInfoCtr1");
7536         if (r == NULL) { ndr_print_null(ndr); return; }
7537         ndr->depth++;
7538         ndr_print_uint32(ndr, "count", r->count);
7539         ndr_print_ptr(ndr, "array", r->array);
7540         ndr->depth++;
7541         if (r->array) {
7542                 ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
7543                 ndr->depth++;
7544                 for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
7545                         ndr_print_drsuapi_DsGetDCInfo1(ndr, "array", &r->array[cntr_array_1]);
7546                 }
7547                 ndr->depth--;
7548         }
7549         ndr->depth--;
7550         ndr->depth--;
7551 }
7552
7553 static enum ndr_err_code ndr_push_drsuapi_DsGetDCInfo2(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetDCInfo2 *r)
7554 {
7555         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
7556         if (ndr_flags & NDR_SCALARS) {
7557                 NDR_CHECK(ndr_push_align(ndr, 5));
7558                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->netbios_name));
7559                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dns_name));
7560                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->site_name));
7561                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->site_dn));
7562                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->computer_dn));
7563                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_dn));
7564                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->ntds_dn));
7565                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_pdc));
7566                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_enabled));
7567                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_gc));
7568                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->site_guid));
7569                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->computer_guid));
7570                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->server_guid));
7571                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->ntds_guid));
7572                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7573         }
7574         if (ndr_flags & NDR_BUFFERS) {
7575                 if (r->netbios_name) {
7576                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
7577                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7578                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
7579                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->netbios_name, ndr_charset_length(r->netbios_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7580                 }
7581                 if (r->dns_name) {
7582                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
7583                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7584                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
7585                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dns_name, ndr_charset_length(r->dns_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7586                 }
7587                 if (r->site_name) {
7588                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->site_name, CH_UTF16)));
7589                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7590                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->site_name, CH_UTF16)));
7591                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->site_name, ndr_charset_length(r->site_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7592                 }
7593                 if (r->site_dn) {
7594                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->site_dn, CH_UTF16)));
7595                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7596                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->site_dn, CH_UTF16)));
7597                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->site_dn, ndr_charset_length(r->site_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7598                 }
7599                 if (r->computer_dn) {
7600                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->computer_dn, CH_UTF16)));
7601                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7602                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->computer_dn, CH_UTF16)));
7603                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->computer_dn, ndr_charset_length(r->computer_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7604                 }
7605                 if (r->server_dn) {
7606                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_dn, CH_UTF16)));
7607                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7608                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_dn, CH_UTF16)));
7609                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_dn, ndr_charset_length(r->server_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7610                 }
7611                 if (r->ntds_dn) {
7612                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->ntds_dn, CH_UTF16)));
7613                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7614                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->ntds_dn, CH_UTF16)));
7615                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ntds_dn, ndr_charset_length(r->ntds_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7616                 }
7617         }
7618         return NDR_ERR_SUCCESS;
7619 }
7620
7621 static enum ndr_err_code ndr_pull_drsuapi_DsGetDCInfo2(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetDCInfo2 *r)
7622 {
7623         uint32_t _ptr_netbios_name;
7624         uint32_t size_netbios_name_1 = 0;
7625         uint32_t length_netbios_name_1 = 0;
7626         TALLOC_CTX *_mem_save_netbios_name_0;
7627         uint32_t _ptr_dns_name;
7628         uint32_t size_dns_name_1 = 0;
7629         uint32_t length_dns_name_1 = 0;
7630         TALLOC_CTX *_mem_save_dns_name_0;
7631         uint32_t _ptr_site_name;
7632         uint32_t size_site_name_1 = 0;
7633         uint32_t length_site_name_1 = 0;
7634         TALLOC_CTX *_mem_save_site_name_0;
7635         uint32_t _ptr_site_dn;
7636         uint32_t size_site_dn_1 = 0;
7637         uint32_t length_site_dn_1 = 0;
7638         TALLOC_CTX *_mem_save_site_dn_0;
7639         uint32_t _ptr_computer_dn;
7640         uint32_t size_computer_dn_1 = 0;
7641         uint32_t length_computer_dn_1 = 0;
7642         TALLOC_CTX *_mem_save_computer_dn_0;
7643         uint32_t _ptr_server_dn;
7644         uint32_t size_server_dn_1 = 0;
7645         uint32_t length_server_dn_1 = 0;
7646         TALLOC_CTX *_mem_save_server_dn_0;
7647         uint32_t _ptr_ntds_dn;
7648         uint32_t size_ntds_dn_1 = 0;
7649         uint32_t length_ntds_dn_1 = 0;
7650         TALLOC_CTX *_mem_save_ntds_dn_0;
7651         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
7652         if (ndr_flags & NDR_SCALARS) {
7653                 NDR_CHECK(ndr_pull_align(ndr, 5));
7654                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_netbios_name));
7655                 if (_ptr_netbios_name) {
7656                         NDR_PULL_ALLOC(ndr, r->netbios_name);
7657                 } else {
7658                         r->netbios_name = NULL;
7659                 }
7660                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dns_name));
7661                 if (_ptr_dns_name) {
7662                         NDR_PULL_ALLOC(ndr, r->dns_name);
7663                 } else {
7664                         r->dns_name = NULL;
7665                 }
7666                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_name));
7667                 if (_ptr_site_name) {
7668                         NDR_PULL_ALLOC(ndr, r->site_name);
7669                 } else {
7670                         r->site_name = NULL;
7671                 }
7672                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_dn));
7673                 if (_ptr_site_dn) {
7674                         NDR_PULL_ALLOC(ndr, r->site_dn);
7675                 } else {
7676                         r->site_dn = NULL;
7677                 }
7678                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_dn));
7679                 if (_ptr_computer_dn) {
7680                         NDR_PULL_ALLOC(ndr, r->computer_dn);
7681                 } else {
7682                         r->computer_dn = NULL;
7683                 }
7684                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_dn));
7685                 if (_ptr_server_dn) {
7686                         NDR_PULL_ALLOC(ndr, r->server_dn);
7687                 } else {
7688                         r->server_dn = NULL;
7689                 }
7690                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ntds_dn));
7691                 if (_ptr_ntds_dn) {
7692                         NDR_PULL_ALLOC(ndr, r->ntds_dn);
7693                 } else {
7694                         r->ntds_dn = NULL;
7695                 }
7696                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_pdc));
7697                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_enabled));
7698                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_gc));
7699                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->site_guid));
7700                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->computer_guid));
7701                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->server_guid));
7702                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->ntds_guid));
7703                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7704         }
7705         if (ndr_flags & NDR_BUFFERS) {
7706                 if (r->netbios_name) {
7707                         _mem_save_netbios_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7708                         NDR_PULL_SET_MEM_CTX(ndr, r->netbios_name, 0);
7709                         NDR_CHECK(ndr_pull_array_size(ndr, &r->netbios_name));
7710                         NDR_CHECK(ndr_pull_array_length(ndr, &r->netbios_name));
7711                         size_netbios_name_1 = ndr_get_array_size(ndr, &r->netbios_name);
7712                         length_netbios_name_1 = ndr_get_array_length(ndr, &r->netbios_name);
7713                         if (length_netbios_name_1 > size_netbios_name_1) {
7714                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_netbios_name_1, length_netbios_name_1);
7715                         }
7716                         NDR_CHECK(ndr_check_string_terminator(ndr, length_netbios_name_1, sizeof(uint16_t)));
7717                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->netbios_name, length_netbios_name_1, sizeof(uint16_t), CH_UTF16));
7718                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_netbios_name_0, 0);
7719                 }
7720                 if (r->dns_name) {
7721                         _mem_save_dns_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7722                         NDR_PULL_SET_MEM_CTX(ndr, r->dns_name, 0);
7723                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dns_name));
7724                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dns_name));
7725                         size_dns_name_1 = ndr_get_array_size(ndr, &r->dns_name);
7726                         length_dns_name_1 = ndr_get_array_length(ndr, &r->dns_name);
7727                         if (length_dns_name_1 > size_dns_name_1) {
7728                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_dns_name_1, length_dns_name_1);
7729                         }
7730                         NDR_CHECK(ndr_check_string_terminator(ndr, length_dns_name_1, sizeof(uint16_t)));
7731                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dns_name, length_dns_name_1, sizeof(uint16_t), CH_UTF16));
7732                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dns_name_0, 0);
7733                 }
7734                 if (r->site_name) {
7735                         _mem_save_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7736                         NDR_PULL_SET_MEM_CTX(ndr, r->site_name, 0);
7737                         NDR_CHECK(ndr_pull_array_size(ndr, &r->site_name));
7738                         NDR_CHECK(ndr_pull_array_length(ndr, &r->site_name));
7739                         size_site_name_1 = ndr_get_array_size(ndr, &r->site_name);
7740                         length_site_name_1 = ndr_get_array_length(ndr, &r->site_name);
7741                         if (length_site_name_1 > size_site_name_1) {
7742                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_site_name_1, length_site_name_1);
7743                         }
7744                         NDR_CHECK(ndr_check_string_terminator(ndr, length_site_name_1, sizeof(uint16_t)));
7745                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->site_name, length_site_name_1, sizeof(uint16_t), CH_UTF16));
7746                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0);
7747                 }
7748                 if (r->site_dn) {
7749                         _mem_save_site_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
7750                         NDR_PULL_SET_MEM_CTX(ndr, r->site_dn, 0);
7751                         NDR_CHECK(ndr_pull_array_size(ndr, &r->site_dn));
7752                         NDR_CHECK(ndr_pull_array_length(ndr, &r->site_dn));
7753                         size_site_dn_1 = ndr_get_array_size(ndr, &r->site_dn);
7754                         length_site_dn_1 = ndr_get_array_length(ndr, &r->site_dn);
7755                         if (length_site_dn_1 > size_site_dn_1) {
7756                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_site_dn_1, length_site_dn_1);
7757                         }
7758                         NDR_CHECK(ndr_check_string_terminator(ndr, length_site_dn_1, sizeof(uint16_t)));
7759                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->site_dn, length_site_dn_1, sizeof(uint16_t), CH_UTF16));
7760                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_dn_0, 0);
7761                 }
7762                 if (r->computer_dn) {
7763                         _mem_save_computer_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
7764                         NDR_PULL_SET_MEM_CTX(ndr, r->computer_dn, 0);
7765                         NDR_CHECK(ndr_pull_array_size(ndr, &r->computer_dn));
7766                         NDR_CHECK(ndr_pull_array_length(ndr, &r->computer_dn));
7767                         size_computer_dn_1 = ndr_get_array_size(ndr, &r->computer_dn);
7768                         length_computer_dn_1 = ndr_get_array_length(ndr, &r->computer_dn);
7769                         if (length_computer_dn_1 > size_computer_dn_1) {
7770                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_computer_dn_1, length_computer_dn_1);
7771                         }
7772                         NDR_CHECK(ndr_check_string_terminator(ndr, length_computer_dn_1, sizeof(uint16_t)));
7773                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->computer_dn, length_computer_dn_1, sizeof(uint16_t), CH_UTF16));
7774                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_dn_0, 0);
7775                 }
7776                 if (r->server_dn) {
7777                         _mem_save_server_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
7778                         NDR_PULL_SET_MEM_CTX(ndr, r->server_dn, 0);
7779                         NDR_CHECK(ndr_pull_array_size(ndr, &r->server_dn));
7780                         NDR_CHECK(ndr_pull_array_length(ndr, &r->server_dn));
7781                         size_server_dn_1 = ndr_get_array_size(ndr, &r->server_dn);
7782                         length_server_dn_1 = ndr_get_array_length(ndr, &r->server_dn);
7783                         if (length_server_dn_1 > size_server_dn_1) {
7784                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_dn_1, length_server_dn_1);
7785                         }
7786                         NDR_CHECK(ndr_check_string_terminator(ndr, length_server_dn_1, sizeof(uint16_t)));
7787                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_dn, length_server_dn_1, sizeof(uint16_t), CH_UTF16));
7788                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_dn_0, 0);
7789                 }
7790                 if (r->ntds_dn) {
7791                         _mem_save_ntds_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
7792                         NDR_PULL_SET_MEM_CTX(ndr, r->ntds_dn, 0);
7793                         NDR_CHECK(ndr_pull_array_size(ndr, &r->ntds_dn));
7794                         NDR_CHECK(ndr_pull_array_length(ndr, &r->ntds_dn));
7795                         size_ntds_dn_1 = ndr_get_array_size(ndr, &r->ntds_dn);
7796                         length_ntds_dn_1 = ndr_get_array_length(ndr, &r->ntds_dn);
7797                         if (length_ntds_dn_1 > size_ntds_dn_1) {
7798                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_ntds_dn_1, length_ntds_dn_1);
7799                         }
7800                         NDR_CHECK(ndr_check_string_terminator(ndr, length_ntds_dn_1, sizeof(uint16_t)));
7801                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ntds_dn, length_ntds_dn_1, sizeof(uint16_t), CH_UTF16));
7802                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ntds_dn_0, 0);
7803                 }
7804         }
7805         return NDR_ERR_SUCCESS;
7806 }
7807
7808 _PUBLIC_ void ndr_print_drsuapi_DsGetDCInfo2(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetDCInfo2 *r)
7809 {
7810         ndr_print_struct(ndr, name, "drsuapi_DsGetDCInfo2");
7811         if (r == NULL) { ndr_print_null(ndr); return; }
7812         ndr->depth++;
7813         ndr_print_ptr(ndr, "netbios_name", r->netbios_name);
7814         ndr->depth++;
7815         if (r->netbios_name) {
7816                 ndr_print_string(ndr, "netbios_name", r->netbios_name);
7817         }
7818         ndr->depth--;
7819         ndr_print_ptr(ndr, "dns_name", r->dns_name);
7820         ndr->depth++;
7821         if (r->dns_name) {
7822                 ndr_print_string(ndr, "dns_name", r->dns_name);
7823         }
7824         ndr->depth--;
7825         ndr_print_ptr(ndr, "site_name", r->site_name);
7826         ndr->depth++;
7827         if (r->site_name) {
7828                 ndr_print_string(ndr, "site_name", r->site_name);
7829         }
7830         ndr->depth--;
7831         ndr_print_ptr(ndr, "site_dn", r->site_dn);
7832         ndr->depth++;
7833         if (r->site_dn) {
7834                 ndr_print_string(ndr, "site_dn", r->site_dn);
7835         }
7836         ndr->depth--;
7837         ndr_print_ptr(ndr, "computer_dn", r->computer_dn);
7838         ndr->depth++;
7839         if (r->computer_dn) {
7840                 ndr_print_string(ndr, "computer_dn", r->computer_dn);
7841         }
7842         ndr->depth--;
7843         ndr_print_ptr(ndr, "server_dn", r->server_dn);
7844         ndr->depth++;
7845         if (r->server_dn) {
7846                 ndr_print_string(ndr, "server_dn", r->server_dn);
7847         }
7848         ndr->depth--;
7849         ndr_print_ptr(ndr, "ntds_dn", r->ntds_dn);
7850         ndr->depth++;
7851         if (r->ntds_dn) {
7852                 ndr_print_string(ndr, "ntds_dn", r->ntds_dn);
7853         }
7854         ndr->depth--;
7855         ndr_print_uint32(ndr, "is_pdc", r->is_pdc);
7856         ndr_print_uint32(ndr, "is_enabled", r->is_enabled);
7857         ndr_print_uint32(ndr, "is_gc", r->is_gc);
7858         ndr_print_GUID(ndr, "site_guid", &r->site_guid);
7859         ndr_print_GUID(ndr, "computer_guid", &r->computer_guid);
7860         ndr_print_GUID(ndr, "server_guid", &r->server_guid);
7861         ndr_print_GUID(ndr, "ntds_guid", &r->ntds_guid);
7862         ndr->depth--;
7863 }
7864
7865 static enum ndr_err_code ndr_push_drsuapi_DsGetDCInfoCtr2(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetDCInfoCtr2 *r)
7866 {
7867         uint32_t cntr_array_1;
7868         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
7869         if (ndr_flags & NDR_SCALARS) {
7870                 NDR_CHECK(ndr_push_align(ndr, 5));
7871                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7872                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->array));
7873                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7874         }
7875         if (ndr_flags & NDR_BUFFERS) {
7876                 if (r->array) {
7877                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
7878                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7879                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfo2(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
7880                         }
7881                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7882                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfo2(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
7883                         }
7884                 }
7885         }
7886         return NDR_ERR_SUCCESS;
7887 }
7888
7889 static enum ndr_err_code ndr_pull_drsuapi_DsGetDCInfoCtr2(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetDCInfoCtr2 *r)
7890 {
7891         uint32_t _ptr_array;
7892         uint32_t size_array_1 = 0;
7893         uint32_t cntr_array_1;
7894         TALLOC_CTX *_mem_save_array_0;
7895         TALLOC_CTX *_mem_save_array_1;
7896         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
7897         if (ndr_flags & NDR_SCALARS) {
7898                 NDR_CHECK(ndr_pull_align(ndr, 5));
7899                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
7900                 if (r->count > 10000) {
7901                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
7902                 }
7903                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_array));
7904                 if (_ptr_array) {
7905                         NDR_PULL_ALLOC(ndr, r->array);
7906                 } else {
7907                         r->array = NULL;
7908                 }
7909                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7910         }
7911         if (ndr_flags & NDR_BUFFERS) {
7912                 if (r->array) {
7913                         _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
7914                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
7915                         NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
7916                         size_array_1 = ndr_get_array_size(ndr, &r->array);
7917                         NDR_PULL_ALLOC_N(ndr, r->array, size_array_1);
7918                         _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
7919                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
7920                         for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) {
7921                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfo2(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
7922                         }
7923                         for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) {
7924                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfo2(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
7925                         }
7926                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0);
7927                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
7928                 }
7929                 if (r->array) {
7930                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
7931                 }
7932         }
7933         return NDR_ERR_SUCCESS;
7934 }
7935
7936 _PUBLIC_ void ndr_print_drsuapi_DsGetDCInfoCtr2(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetDCInfoCtr2 *r)
7937 {
7938         uint32_t cntr_array_1;
7939         ndr_print_struct(ndr, name, "drsuapi_DsGetDCInfoCtr2");
7940         if (r == NULL) { ndr_print_null(ndr); return; }
7941         ndr->depth++;
7942         ndr_print_uint32(ndr, "count", r->count);
7943         ndr_print_ptr(ndr, "array", r->array);
7944         ndr->depth++;
7945         if (r->array) {
7946                 ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
7947                 ndr->depth++;
7948                 for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
7949                         ndr_print_drsuapi_DsGetDCInfo2(ndr, "array", &r->array[cntr_array_1]);
7950                 }
7951                 ndr->depth--;
7952         }
7953         ndr->depth--;
7954         ndr->depth--;
7955 }
7956
7957 static enum ndr_err_code ndr_push_drsuapi_DsGetDCInfo3(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetDCInfo3 *r)
7958 {
7959         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
7960         if (ndr_flags & NDR_SCALARS) {
7961                 NDR_CHECK(ndr_push_align(ndr, 5));
7962                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->netbios_name));
7963                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dns_name));
7964                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->site_name));
7965                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->site_dn));
7966                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->computer_dn));
7967                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_dn));
7968                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->ntds_dn));
7969                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_pdc));
7970                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_enabled));
7971                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_gc));
7972                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_rodc));
7973                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->site_guid));
7974                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->computer_guid));
7975                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->server_guid));
7976                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->ntds_guid));
7977                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7978         }
7979         if (ndr_flags & NDR_BUFFERS) {
7980                 if (r->netbios_name) {
7981                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
7982                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7983                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
7984                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->netbios_name, ndr_charset_length(r->netbios_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7985                 }
7986                 if (r->dns_name) {
7987                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
7988                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7989                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
7990                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dns_name, ndr_charset_length(r->dns_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7991                 }
7992                 if (r->site_name) {
7993                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->site_name, CH_UTF16)));
7994                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7995                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->site_name, CH_UTF16)));
7996                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->site_name, ndr_charset_length(r->site_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7997                 }
7998                 if (r->site_dn) {
7999                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->site_dn, CH_UTF16)));
8000                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8001                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->site_dn, CH_UTF16)));
8002                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->site_dn, ndr_charset_length(r->site_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8003                 }
8004                 if (r->computer_dn) {
8005                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->computer_dn, CH_UTF16)));
8006                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8007                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->computer_dn, CH_UTF16)));
8008                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->computer_dn, ndr_charset_length(r->computer_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8009                 }
8010                 if (r->server_dn) {
8011                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_dn, CH_UTF16)));
8012                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8013                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_dn, CH_UTF16)));
8014                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_dn, ndr_charset_length(r->server_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8015                 }
8016                 if (r->ntds_dn) {
8017                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->ntds_dn, CH_UTF16)));
8018                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8019                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->ntds_dn, CH_UTF16)));
8020                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ntds_dn, ndr_charset_length(r->ntds_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8021                 }
8022         }
8023         return NDR_ERR_SUCCESS;
8024 }
8025
8026 static enum ndr_err_code ndr_pull_drsuapi_DsGetDCInfo3(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetDCInfo3 *r)
8027 {
8028         uint32_t _ptr_netbios_name;
8029         uint32_t size_netbios_name_1 = 0;
8030         uint32_t length_netbios_name_1 = 0;
8031         TALLOC_CTX *_mem_save_netbios_name_0;
8032         uint32_t _ptr_dns_name;
8033         uint32_t size_dns_name_1 = 0;
8034         uint32_t length_dns_name_1 = 0;
8035         TALLOC_CTX *_mem_save_dns_name_0;
8036         uint32_t _ptr_site_name;
8037         uint32_t size_site_name_1 = 0;
8038         uint32_t length_site_name_1 = 0;
8039         TALLOC_CTX *_mem_save_site_name_0;
8040         uint32_t _ptr_site_dn;
8041         uint32_t size_site_dn_1 = 0;
8042         uint32_t length_site_dn_1 = 0;
8043         TALLOC_CTX *_mem_save_site_dn_0;
8044         uint32_t _ptr_computer_dn;
8045         uint32_t size_computer_dn_1 = 0;
8046         uint32_t length_computer_dn_1 = 0;
8047         TALLOC_CTX *_mem_save_computer_dn_0;
8048         uint32_t _ptr_server_dn;
8049         uint32_t size_server_dn_1 = 0;
8050         uint32_t length_server_dn_1 = 0;
8051         TALLOC_CTX *_mem_save_server_dn_0;
8052         uint32_t _ptr_ntds_dn;
8053         uint32_t size_ntds_dn_1 = 0;
8054         uint32_t length_ntds_dn_1 = 0;
8055         TALLOC_CTX *_mem_save_ntds_dn_0;
8056         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
8057         if (ndr_flags & NDR_SCALARS) {
8058                 NDR_CHECK(ndr_pull_align(ndr, 5));
8059                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_netbios_name));
8060                 if (_ptr_netbios_name) {
8061                         NDR_PULL_ALLOC(ndr, r->netbios_name);
8062                 } else {
8063                         r->netbios_name = NULL;
8064                 }
8065                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dns_name));
8066                 if (_ptr_dns_name) {
8067                         NDR_PULL_ALLOC(ndr, r->dns_name);
8068                 } else {
8069                         r->dns_name = NULL;
8070                 }
8071                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_name));
8072                 if (_ptr_site_name) {
8073                         NDR_PULL_ALLOC(ndr, r->site_name);
8074                 } else {
8075                         r->site_name = NULL;
8076                 }
8077                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_dn));
8078                 if (_ptr_site_dn) {
8079                         NDR_PULL_ALLOC(ndr, r->site_dn);
8080                 } else {
8081                         r->site_dn = NULL;
8082                 }
8083                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_dn));
8084                 if (_ptr_computer_dn) {
8085                         NDR_PULL_ALLOC(ndr, r->computer_dn);
8086                 } else {
8087                         r->computer_dn = NULL;
8088                 }
8089                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_dn));
8090                 if (_ptr_server_dn) {
8091                         NDR_PULL_ALLOC(ndr, r->server_dn);
8092                 } else {
8093                         r->server_dn = NULL;
8094                 }
8095                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ntds_dn));
8096                 if (_ptr_ntds_dn) {
8097                         NDR_PULL_ALLOC(ndr, r->ntds_dn);
8098                 } else {
8099                         r->ntds_dn = NULL;
8100                 }
8101                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_pdc));
8102                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_enabled));
8103                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_gc));
8104                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_rodc));
8105                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->site_guid));
8106                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->computer_guid));
8107                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->server_guid));
8108                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->ntds_guid));
8109                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8110         }
8111         if (ndr_flags & NDR_BUFFERS) {
8112                 if (r->netbios_name) {
8113                         _mem_save_netbios_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8114                         NDR_PULL_SET_MEM_CTX(ndr, r->netbios_name, 0);
8115                         NDR_CHECK(ndr_pull_array_size(ndr, &r->netbios_name));
8116                         NDR_CHECK(ndr_pull_array_length(ndr, &r->netbios_name));
8117                         size_netbios_name_1 = ndr_get_array_size(ndr, &r->netbios_name);
8118                         length_netbios_name_1 = ndr_get_array_length(ndr, &r->netbios_name);
8119                         if (length_netbios_name_1 > size_netbios_name_1) {
8120                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_netbios_name_1, length_netbios_name_1);
8121                         }
8122                         NDR_CHECK(ndr_check_string_terminator(ndr, length_netbios_name_1, sizeof(uint16_t)));
8123                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->netbios_name, length_netbios_name_1, sizeof(uint16_t), CH_UTF16));
8124                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_netbios_name_0, 0);
8125                 }
8126                 if (r->dns_name) {
8127                         _mem_save_dns_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8128                         NDR_PULL_SET_MEM_CTX(ndr, r->dns_name, 0);
8129                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dns_name));
8130                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dns_name));
8131                         size_dns_name_1 = ndr_get_array_size(ndr, &r->dns_name);
8132                         length_dns_name_1 = ndr_get_array_length(ndr, &r->dns_name);
8133                         if (length_dns_name_1 > size_dns_name_1) {
8134                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_dns_name_1, length_dns_name_1);
8135                         }
8136                         NDR_CHECK(ndr_check_string_terminator(ndr, length_dns_name_1, sizeof(uint16_t)));
8137                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dns_name, length_dns_name_1, sizeof(uint16_t), CH_UTF16));
8138                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dns_name_0, 0);
8139                 }
8140                 if (r->site_name) {
8141                         _mem_save_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8142                         NDR_PULL_SET_MEM_CTX(ndr, r->site_name, 0);
8143                         NDR_CHECK(ndr_pull_array_size(ndr, &r->site_name));
8144                         NDR_CHECK(ndr_pull_array_length(ndr, &r->site_name));
8145                         size_site_name_1 = ndr_get_array_size(ndr, &r->site_name);
8146                         length_site_name_1 = ndr_get_array_length(ndr, &r->site_name);
8147                         if (length_site_name_1 > size_site_name_1) {
8148                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_site_name_1, length_site_name_1);
8149                         }
8150                         NDR_CHECK(ndr_check_string_terminator(ndr, length_site_name_1, sizeof(uint16_t)));
8151                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->site_name, length_site_name_1, sizeof(uint16_t), CH_UTF16));
8152                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0);
8153                 }
8154                 if (r->site_dn) {
8155                         _mem_save_site_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
8156                         NDR_PULL_SET_MEM_CTX(ndr, r->site_dn, 0);
8157                         NDR_CHECK(ndr_pull_array_size(ndr, &r->site_dn));
8158                         NDR_CHECK(ndr_pull_array_length(ndr, &r->site_dn));
8159                         size_site_dn_1 = ndr_get_array_size(ndr, &r->site_dn);
8160                         length_site_dn_1 = ndr_get_array_length(ndr, &r->site_dn);
8161                         if (length_site_dn_1 > size_site_dn_1) {
8162                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_site_dn_1, length_site_dn_1);
8163                         }
8164                         NDR_CHECK(ndr_check_string_terminator(ndr, length_site_dn_1, sizeof(uint16_t)));
8165                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->site_dn, length_site_dn_1, sizeof(uint16_t), CH_UTF16));
8166                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_dn_0, 0);
8167                 }
8168                 if (r->computer_dn) {
8169                         _mem_save_computer_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
8170                         NDR_PULL_SET_MEM_CTX(ndr, r->computer_dn, 0);
8171                         NDR_CHECK(ndr_pull_array_size(ndr, &r->computer_dn));
8172                         NDR_CHECK(ndr_pull_array_length(ndr, &r->computer_dn));
8173                         size_computer_dn_1 = ndr_get_array_size(ndr, &r->computer_dn);
8174                         length_computer_dn_1 = ndr_get_array_length(ndr, &r->computer_dn);
8175                         if (length_computer_dn_1 > size_computer_dn_1) {
8176                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_computer_dn_1, length_computer_dn_1);
8177                         }
8178                         NDR_CHECK(ndr_check_string_terminator(ndr, length_computer_dn_1, sizeof(uint16_t)));
8179                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->computer_dn, length_computer_dn_1, sizeof(uint16_t), CH_UTF16));
8180                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_dn_0, 0);
8181                 }
8182                 if (r->server_dn) {
8183                         _mem_save_server_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
8184                         NDR_PULL_SET_MEM_CTX(ndr, r->server_dn, 0);
8185                         NDR_CHECK(ndr_pull_array_size(ndr, &r->server_dn));
8186                         NDR_CHECK(ndr_pull_array_length(ndr, &r->server_dn));
8187                         size_server_dn_1 = ndr_get_array_size(ndr, &r->server_dn);
8188                         length_server_dn_1 = ndr_get_array_length(ndr, &r->server_dn);
8189                         if (length_server_dn_1 > size_server_dn_1) {
8190                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_dn_1, length_server_dn_1);
8191                         }
8192                         NDR_CHECK(ndr_check_string_terminator(ndr, length_server_dn_1, sizeof(uint16_t)));
8193                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_dn, length_server_dn_1, sizeof(uint16_t), CH_UTF16));
8194                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_dn_0, 0);
8195                 }
8196                 if (r->ntds_dn) {
8197                         _mem_save_ntds_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
8198                         NDR_PULL_SET_MEM_CTX(ndr, r->ntds_dn, 0);
8199                         NDR_CHECK(ndr_pull_array_size(ndr, &r->ntds_dn));
8200                         NDR_CHECK(ndr_pull_array_length(ndr, &r->ntds_dn));
8201                         size_ntds_dn_1 = ndr_get_array_size(ndr, &r->ntds_dn);
8202                         length_ntds_dn_1 = ndr_get_array_length(ndr, &r->ntds_dn);
8203                         if (length_ntds_dn_1 > size_ntds_dn_1) {
8204                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_ntds_dn_1, length_ntds_dn_1);
8205                         }
8206                         NDR_CHECK(ndr_check_string_terminator(ndr, length_ntds_dn_1, sizeof(uint16_t)));
8207                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ntds_dn, length_ntds_dn_1, sizeof(uint16_t), CH_UTF16));
8208                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ntds_dn_0, 0);
8209                 }
8210         }
8211         return NDR_ERR_SUCCESS;
8212 }
8213
8214 _PUBLIC_ void ndr_print_drsuapi_DsGetDCInfo3(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetDCInfo3 *r)
8215 {
8216         ndr_print_struct(ndr, name, "drsuapi_DsGetDCInfo3");
8217         if (r == NULL) { ndr_print_null(ndr); return; }
8218         ndr->depth++;
8219         ndr_print_ptr(ndr, "netbios_name", r->netbios_name);
8220         ndr->depth++;
8221         if (r->netbios_name) {
8222                 ndr_print_string(ndr, "netbios_name", r->netbios_name);
8223         }
8224         ndr->depth--;
8225         ndr_print_ptr(ndr, "dns_name", r->dns_name);
8226         ndr->depth++;
8227         if (r->dns_name) {
8228                 ndr_print_string(ndr, "dns_name", r->dns_name);
8229         }
8230         ndr->depth--;
8231         ndr_print_ptr(ndr, "site_name", r->site_name);
8232         ndr->depth++;
8233         if (r->site_name) {
8234                 ndr_print_string(ndr, "site_name", r->site_name);
8235         }
8236         ndr->depth--;
8237         ndr_print_ptr(ndr, "site_dn", r->site_dn);
8238         ndr->depth++;
8239         if (r->site_dn) {
8240                 ndr_print_string(ndr, "site_dn", r->site_dn);
8241         }
8242         ndr->depth--;
8243         ndr_print_ptr(ndr, "computer_dn", r->computer_dn);
8244         ndr->depth++;
8245         if (r->computer_dn) {
8246                 ndr_print_string(ndr, "computer_dn", r->computer_dn);
8247         }
8248         ndr->depth--;
8249         ndr_print_ptr(ndr, "server_dn", r->server_dn);
8250         ndr->depth++;
8251         if (r->server_dn) {
8252                 ndr_print_string(ndr, "server_dn", r->server_dn);
8253         }
8254         ndr->depth--;
8255         ndr_print_ptr(ndr, "ntds_dn", r->ntds_dn);
8256         ndr->depth++;
8257         if (r->ntds_dn) {
8258                 ndr_print_string(ndr, "ntds_dn", r->ntds_dn);
8259         }
8260         ndr->depth--;
8261         ndr_print_uint32(ndr, "is_pdc", r->is_pdc);
8262         ndr_print_uint32(ndr, "is_enabled", r->is_enabled);
8263         ndr_print_uint32(ndr, "is_gc", r->is_gc);
8264         ndr_print_uint32(ndr, "is_rodc", r->is_rodc);
8265         ndr_print_GUID(ndr, "site_guid", &r->site_guid);
8266         ndr_print_GUID(ndr, "computer_guid", &r->computer_guid);
8267         ndr_print_GUID(ndr, "server_guid", &r->server_guid);
8268         ndr_print_GUID(ndr, "ntds_guid", &r->ntds_guid);
8269         ndr->depth--;
8270 }
8271
8272 static enum ndr_err_code ndr_push_drsuapi_DsGetDCInfoCtr3(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetDCInfoCtr3 *r)
8273 {
8274         uint32_t cntr_array_1;
8275         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
8276         if (ndr_flags & NDR_SCALARS) {
8277                 NDR_CHECK(ndr_push_align(ndr, 5));
8278                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8279                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->array));
8280                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8281         }
8282         if (ndr_flags & NDR_BUFFERS) {
8283                 if (r->array) {
8284                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
8285                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
8286                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfo3(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
8287                         }
8288                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
8289                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfo3(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
8290                         }
8291                 }
8292         }
8293         return NDR_ERR_SUCCESS;
8294 }
8295
8296 static enum ndr_err_code ndr_pull_drsuapi_DsGetDCInfoCtr3(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetDCInfoCtr3 *r)
8297 {
8298         uint32_t _ptr_array;
8299         uint32_t size_array_1 = 0;
8300         uint32_t cntr_array_1;
8301         TALLOC_CTX *_mem_save_array_0;
8302         TALLOC_CTX *_mem_save_array_1;
8303         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
8304         if (ndr_flags & NDR_SCALARS) {
8305                 NDR_CHECK(ndr_pull_align(ndr, 5));
8306                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
8307                 if (r->count > 10000) {
8308                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
8309                 }
8310                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_array));
8311                 if (_ptr_array) {
8312                         NDR_PULL_ALLOC(ndr, r->array);
8313                 } else {
8314                         r->array = NULL;
8315                 }
8316                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8317         }
8318         if (ndr_flags & NDR_BUFFERS) {
8319                 if (r->array) {
8320                         _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
8321                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
8322                         NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
8323                         size_array_1 = ndr_get_array_size(ndr, &r->array);
8324                         NDR_PULL_ALLOC_N(ndr, r->array, size_array_1);
8325                         _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
8326                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
8327                         for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) {
8328                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfo3(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
8329                         }
8330                         for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) {
8331                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfo3(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
8332                         }
8333                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0);
8334                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
8335                 }
8336                 if (r->array) {
8337                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
8338                 }
8339         }
8340         return NDR_ERR_SUCCESS;
8341 }
8342
8343 _PUBLIC_ void ndr_print_drsuapi_DsGetDCInfoCtr3(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetDCInfoCtr3 *r)
8344 {
8345         uint32_t cntr_array_1;
8346         ndr_print_struct(ndr, name, "drsuapi_DsGetDCInfoCtr3");
8347         if (r == NULL) { ndr_print_null(ndr); return; }
8348         ndr->depth++;
8349         ndr_print_uint32(ndr, "count", r->count);
8350         ndr_print_ptr(ndr, "array", r->array);
8351         ndr->depth++;
8352         if (r->array) {
8353                 ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
8354                 ndr->depth++;
8355                 for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
8356                         ndr_print_drsuapi_DsGetDCInfo3(ndr, "array", &r->array[cntr_array_1]);
8357                 }
8358                 ndr->depth--;
8359         }
8360         ndr->depth--;
8361         ndr->depth--;
8362 }
8363
8364 static enum ndr_err_code ndr_push_drsuapi_DsGetDCConnection01(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetDCConnection01 *r)
8365 {
8366         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
8367         if (ndr_flags & NDR_SCALARS) {
8368                 NDR_CHECK(ndr_push_align(ndr, 5));
8369                 {
8370                         uint32_t _flags_save_ipv4address = ndr->flags;
8371                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
8372                         NDR_CHECK(ndr_push_ipv4address(ndr, NDR_SCALARS, r->client_ip_address));
8373                         ndr->flags = _flags_save_ipv4address;
8374                 }
8375                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
8376                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->connection_time));
8377                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
8378                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
8379                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
8380                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client_account));
8381                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8382         }
8383         if (ndr_flags & NDR_BUFFERS) {
8384                 if (r->client_account) {
8385                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client_account, CH_UTF16)));
8386                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8387                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client_account, CH_UTF16)));
8388                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client_account, ndr_charset_length(r->client_account, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8389                 }
8390         }
8391         return NDR_ERR_SUCCESS;
8392 }
8393
8394 static enum ndr_err_code ndr_pull_drsuapi_DsGetDCConnection01(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetDCConnection01 *r)
8395 {
8396         uint32_t _ptr_client_account;
8397         uint32_t size_client_account_1 = 0;
8398         uint32_t length_client_account_1 = 0;
8399         TALLOC_CTX *_mem_save_client_account_0;
8400         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
8401         if (ndr_flags & NDR_SCALARS) {
8402                 NDR_CHECK(ndr_pull_align(ndr, 5));
8403                 {
8404                         uint32_t _flags_save_ipv4address = ndr->flags;
8405                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
8406                         NDR_CHECK(ndr_pull_ipv4address(ndr, NDR_SCALARS, &r->client_ip_address));
8407                         ndr->flags = _flags_save_ipv4address;
8408                 }
8409                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
8410                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->connection_time));
8411                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
8412                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
8413                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
8414                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_account));
8415                 if (_ptr_client_account) {
8416                         NDR_PULL_ALLOC(ndr, r->client_account);
8417                 } else {
8418                         r->client_account = NULL;
8419                 }
8420                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8421         }
8422         if (ndr_flags & NDR_BUFFERS) {
8423                 if (r->client_account) {
8424                         _mem_save_client_account_0 = NDR_PULL_GET_MEM_CTX(ndr);
8425                         NDR_PULL_SET_MEM_CTX(ndr, r->client_account, 0);
8426                         NDR_CHECK(ndr_pull_array_size(ndr, &r->client_account));
8427                         NDR_CHECK(ndr_pull_array_length(ndr, &r->client_account));
8428                         size_client_account_1 = ndr_get_array_size(ndr, &r->client_account);
8429                         length_client_account_1 = ndr_get_array_length(ndr, &r->client_account);
8430                         if (length_client_account_1 > size_client_account_1) {
8431                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_client_account_1, length_client_account_1);
8432                         }
8433                         NDR_CHECK(ndr_check_string_terminator(ndr, length_client_account_1, sizeof(uint16_t)));
8434                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client_account, length_client_account_1, sizeof(uint16_t), CH_UTF16));
8435                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_account_0, 0);
8436                 }
8437         }
8438         return NDR_ERR_SUCCESS;
8439 }
8440
8441 _PUBLIC_ void ndr_print_drsuapi_DsGetDCConnection01(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetDCConnection01 *r)
8442 {
8443         ndr_print_struct(ndr, name, "drsuapi_DsGetDCConnection01");
8444         if (r == NULL) { ndr_print_null(ndr); return; }
8445         ndr->depth++;
8446         ndr_print_ipv4address(ndr, "client_ip_address", r->client_ip_address);
8447         ndr_print_uint32(ndr, "unknown2", r->unknown2);
8448         ndr_print_uint32(ndr, "connection_time", r->connection_time);
8449         ndr_print_uint32(ndr, "unknown4", r->unknown4);
8450         ndr_print_uint32(ndr, "unknown5", r->unknown5);
8451         ndr_print_uint32(ndr, "unknown6", r->unknown6);
8452         ndr_print_ptr(ndr, "client_account", r->client_account);
8453         ndr->depth++;
8454         if (r->client_account) {
8455                 ndr_print_string(ndr, "client_account", r->client_account);
8456         }
8457         ndr->depth--;
8458         ndr->depth--;
8459 }
8460
8461 static enum ndr_err_code ndr_push_drsuapi_DsGetDCConnectionCtr01(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetDCConnectionCtr01 *r)
8462 {
8463         uint32_t cntr_array_1;
8464         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
8465         if (ndr_flags & NDR_SCALARS) {
8466                 NDR_CHECK(ndr_push_align(ndr, 5));
8467                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8468                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->array));
8469                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8470         }
8471         if (ndr_flags & NDR_BUFFERS) {
8472                 if (r->array) {
8473                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
8474                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
8475                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCConnection01(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
8476                         }
8477                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
8478                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCConnection01(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
8479                         }
8480                 }
8481         }
8482         return NDR_ERR_SUCCESS;
8483 }
8484
8485 static enum ndr_err_code ndr_pull_drsuapi_DsGetDCConnectionCtr01(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetDCConnectionCtr01 *r)
8486 {
8487         uint32_t _ptr_array;
8488         uint32_t size_array_1 = 0;
8489         uint32_t cntr_array_1;
8490         TALLOC_CTX *_mem_save_array_0;
8491         TALLOC_CTX *_mem_save_array_1;
8492         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
8493         if (ndr_flags & NDR_SCALARS) {
8494                 NDR_CHECK(ndr_pull_align(ndr, 5));
8495                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
8496                 if (r->count > 10000) {
8497                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
8498                 }
8499                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_array));
8500                 if (_ptr_array) {
8501                         NDR_PULL_ALLOC(ndr, r->array);
8502                 } else {
8503                         r->array = NULL;
8504                 }
8505                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8506         }
8507         if (ndr_flags & NDR_BUFFERS) {
8508                 if (r->array) {
8509                         _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
8510                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
8511                         NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
8512                         size_array_1 = ndr_get_array_size(ndr, &r->array);
8513                         NDR_PULL_ALLOC_N(ndr, r->array, size_array_1);
8514                         _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
8515                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
8516                         for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) {
8517                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCConnection01(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
8518                         }
8519                         for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) {
8520                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCConnection01(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
8521                         }
8522                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0);
8523                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
8524                 }
8525                 if (r->array) {
8526                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
8527                 }
8528         }
8529         return NDR_ERR_SUCCESS;
8530 }
8531
8532 _PUBLIC_ void ndr_print_drsuapi_DsGetDCConnectionCtr01(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetDCConnectionCtr01 *r)
8533 {
8534         uint32_t cntr_array_1;
8535         ndr_print_struct(ndr, name, "drsuapi_DsGetDCConnectionCtr01");
8536         if (r == NULL) { ndr_print_null(ndr); return; }
8537         ndr->depth++;
8538         ndr_print_uint32(ndr, "count", r->count);
8539         ndr_print_ptr(ndr, "array", r->array);
8540         ndr->depth++;
8541         if (r->array) {
8542                 ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
8543                 ndr->depth++;
8544                 for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
8545                         ndr_print_drsuapi_DsGetDCConnection01(ndr, "array", &r->array[cntr_array_1]);
8546                 }
8547                 ndr->depth--;
8548         }
8549         ndr->depth--;
8550         ndr->depth--;
8551 }
8552
8553 static enum ndr_err_code ndr_push_drsuapi_DsGetDCInfoCtr(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsGetDCInfoCtr *r)
8554 {
8555         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
8556         if (ndr_flags & NDR_SCALARS) {
8557                 uint32_t level = ndr_push_get_switch_value(ndr, r);
8558                 NDR_CHECK(ndr_push_union_align(ndr, 5));
8559                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
8560                 NDR_CHECK(ndr_push_union_align(ndr, 5));
8561                 switch (level) {
8562                         case DRSUAPI_DC_INFO_CTR_1: {
8563                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfoCtr1(ndr, NDR_SCALARS, &r->ctr1));
8564                         break; }
8565
8566                         case DRSUAPI_DC_INFO_CTR_2: {
8567                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfoCtr2(ndr, NDR_SCALARS, &r->ctr2));
8568                         break; }
8569
8570                         case DRSUAPI_DC_INFO_CTR_3: {
8571                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfoCtr3(ndr, NDR_SCALARS, &r->ctr3));
8572                         break; }
8573
8574                         case DRSUAPI_DC_CONNECTION_CTR_01: {
8575                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCConnectionCtr01(ndr, NDR_SCALARS, &r->ctr01));
8576                         break; }
8577
8578                         default:
8579                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
8580                 }
8581         }
8582         if (ndr_flags & NDR_BUFFERS) {
8583                 uint32_t level = ndr_push_get_switch_value(ndr, r);
8584                 switch (level) {
8585                         case DRSUAPI_DC_INFO_CTR_1:
8586                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfoCtr1(ndr, NDR_BUFFERS, &r->ctr1));
8587                         break;
8588
8589                         case DRSUAPI_DC_INFO_CTR_2:
8590                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfoCtr2(ndr, NDR_BUFFERS, &r->ctr2));
8591                         break;
8592
8593                         case DRSUAPI_DC_INFO_CTR_3:
8594                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfoCtr3(ndr, NDR_BUFFERS, &r->ctr3));
8595                         break;
8596
8597                         case DRSUAPI_DC_CONNECTION_CTR_01:
8598                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCConnectionCtr01(ndr, NDR_BUFFERS, &r->ctr01));
8599                         break;
8600
8601                         default:
8602                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
8603                 }
8604         }
8605         return NDR_ERR_SUCCESS;
8606 }
8607
8608 static enum ndr_err_code ndr_pull_drsuapi_DsGetDCInfoCtr(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsGetDCInfoCtr *r)
8609 {
8610         uint32_t level;
8611         int32_t _level;
8612         level = ndr_pull_get_switch_value(ndr, r);
8613         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
8614         if (ndr_flags & NDR_SCALARS) {
8615                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
8616                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
8617                 if (_level != level) {
8618                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
8619                 }
8620                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
8621                 switch (level) {
8622                         case DRSUAPI_DC_INFO_CTR_1: {
8623                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfoCtr1(ndr, NDR_SCALARS, &r->ctr1));
8624                         break; }
8625
8626                         case DRSUAPI_DC_INFO_CTR_2: {
8627                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfoCtr2(ndr, NDR_SCALARS, &r->ctr2));
8628                         break; }
8629
8630                         case DRSUAPI_DC_INFO_CTR_3: {
8631                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfoCtr3(ndr, NDR_SCALARS, &r->ctr3));
8632                         break; }
8633
8634                         case DRSUAPI_DC_CONNECTION_CTR_01: {
8635                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCConnectionCtr01(ndr, NDR_SCALARS, &r->ctr01));
8636                         break; }
8637
8638                         default:
8639                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
8640                 }
8641         }
8642         if (ndr_flags & NDR_BUFFERS) {
8643                 switch (level) {
8644                         case DRSUAPI_DC_INFO_CTR_1:
8645                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfoCtr1(ndr, NDR_BUFFERS, &r->ctr1));
8646                         break;
8647
8648                         case DRSUAPI_DC_INFO_CTR_2:
8649                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfoCtr2(ndr, NDR_BUFFERS, &r->ctr2));
8650                         break;
8651
8652                         case DRSUAPI_DC_INFO_CTR_3:
8653                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfoCtr3(ndr, NDR_BUFFERS, &r->ctr3));
8654                         break;
8655
8656                         case DRSUAPI_DC_CONNECTION_CTR_01:
8657                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCConnectionCtr01(ndr, NDR_BUFFERS, &r->ctr01));
8658                         break;
8659
8660                         default:
8661                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
8662                 }
8663         }
8664         return NDR_ERR_SUCCESS;
8665 }
8666
8667 _PUBLIC_ void ndr_print_drsuapi_DsGetDCInfoCtr(struct ndr_print *ndr, const char *name, const union drsuapi_DsGetDCInfoCtr *r)
8668 {
8669         uint32_t level;
8670         level = ndr_print_get_switch_value(ndr, r);
8671         ndr_print_union(ndr, name, level, "drsuapi_DsGetDCInfoCtr");
8672         switch (level) {
8673                 case DRSUAPI_DC_INFO_CTR_1:
8674                         ndr_print_drsuapi_DsGetDCInfoCtr1(ndr, "ctr1", &r->ctr1);
8675                 break;
8676
8677                 case DRSUAPI_DC_INFO_CTR_2:
8678                         ndr_print_drsuapi_DsGetDCInfoCtr2(ndr, "ctr2", &r->ctr2);
8679                 break;
8680
8681                 case DRSUAPI_DC_INFO_CTR_3:
8682                         ndr_print_drsuapi_DsGetDCInfoCtr3(ndr, "ctr3", &r->ctr3);
8683                 break;
8684
8685                 case DRSUAPI_DC_CONNECTION_CTR_01:
8686                         ndr_print_drsuapi_DsGetDCConnectionCtr01(ndr, "ctr01", &r->ctr01);
8687                 break;
8688
8689                 default:
8690                         ndr_print_bad_level(ndr, name, level);
8691         }
8692 }
8693
8694 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaObjectListItem(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaObjectListItem *r)
8695 {
8696         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
8697         if (ndr_flags & NDR_SCALARS) {
8698                 NDR_CHECK(ndr_push_align(ndr, 5));
8699                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->next_object));
8700                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObject(ndr, NDR_SCALARS, &r->object));
8701                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8702         }
8703         if (ndr_flags & NDR_BUFFERS) {
8704                 if (r->next_object) {
8705                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectListItem(ndr, NDR_SCALARS|NDR_BUFFERS, r->next_object));
8706                 }
8707                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObject(ndr, NDR_BUFFERS, &r->object));
8708         }
8709         return NDR_ERR_SUCCESS;
8710 }
8711
8712 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaObjectListItem(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaObjectListItem *r)
8713 {
8714         uint32_t _ptr_next_object;
8715         TALLOC_CTX *_mem_save_next_object_0;
8716         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
8717         if (ndr_flags & NDR_SCALARS) {
8718                 NDR_CHECK(ndr_pull_align(ndr, 5));
8719                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_next_object));
8720                 if (_ptr_next_object) {
8721                         NDR_PULL_ALLOC(ndr, r->next_object);
8722                 } else {
8723                         r->next_object = NULL;
8724                 }
8725                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObject(ndr, NDR_SCALARS, &r->object));
8726                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8727         }
8728         if (ndr_flags & NDR_BUFFERS) {
8729                 if (r->next_object) {
8730                         _mem_save_next_object_0 = NDR_PULL_GET_MEM_CTX(ndr);
8731                         NDR_PULL_SET_MEM_CTX(ndr, r->next_object, 0);
8732                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectListItem(ndr, NDR_SCALARS|NDR_BUFFERS, r->next_object));
8733                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_next_object_0, 0);
8734                 }
8735                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObject(ndr, NDR_BUFFERS, &r->object));
8736         }
8737         return NDR_ERR_SUCCESS;
8738 }
8739
8740 static enum ndr_err_code ndr_push_drsuapi_DsAddEntry_DirErr(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsAddEntry_DirErr r)
8741 {
8742         NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
8743         return NDR_ERR_SUCCESS;
8744 }
8745
8746 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntry_DirErr(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsAddEntry_DirErr *r)
8747 {
8748         uint32_t v;
8749         NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
8750         *r = v;
8751         return NDR_ERR_SUCCESS;
8752 }
8753
8754 _PUBLIC_ void ndr_print_drsuapi_DsAddEntry_DirErr(struct ndr_print *ndr, const char *name, enum drsuapi_DsAddEntry_DirErr r)
8755 {
8756         const char *val = NULL;
8757
8758         switch (r) {
8759                 case DRSUAPI_DIRERR_OK: val = "DRSUAPI_DIRERR_OK"; break;
8760                 case DRSUAPI_DIRERR_ATTRIBUTE: val = "DRSUAPI_DIRERR_ATTRIBUTE"; break;
8761                 case DRSUAPI_DIRERR_NAME: val = "DRSUAPI_DIRERR_NAME"; break;
8762                 case DRSUAPI_DIRERR_REFERRAL: val = "DRSUAPI_DIRERR_REFERRAL"; break;
8763                 case DRSUAPI_DIRERR_SECURITY: val = "DRSUAPI_DIRERR_SECURITY"; break;
8764                 case DRSUAPI_DIRERR_SERVICE: val = "DRSUAPI_DIRERR_SERVICE"; break;
8765                 case DRSUAPI_DIRERR_UPDATE: val = "DRSUAPI_DIRERR_UPDATE"; break;
8766                 case DRSUAPI_DIRERR_SYSTEM: val = "DRSUAPI_DIRERR_SYSTEM"; break;
8767         }
8768         ndr_print_enum(ndr, name, "ENUM", val, r);
8769 }
8770
8771 static enum ndr_err_code ndr_push_drsuapi_DsAddEntryRequest2(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAddEntryRequest2 *r)
8772 {
8773         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
8774         if (ndr_flags & NDR_SCALARS) {
8775                 NDR_CHECK(ndr_push_align(ndr, 5));
8776                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectListItem(ndr, NDR_SCALARS, &r->first_object));
8777                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8778         }
8779         if (ndr_flags & NDR_BUFFERS) {
8780                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectListItem(ndr, NDR_BUFFERS, &r->first_object));
8781         }
8782         return NDR_ERR_SUCCESS;
8783 }
8784
8785 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryRequest2(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntryRequest2 *r)
8786 {
8787         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
8788         if (ndr_flags & NDR_SCALARS) {
8789                 NDR_CHECK(ndr_pull_align(ndr, 5));
8790                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectListItem(ndr, NDR_SCALARS, &r->first_object));
8791                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8792         }
8793         if (ndr_flags & NDR_BUFFERS) {
8794                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectListItem(ndr, NDR_BUFFERS, &r->first_object));
8795         }
8796         return NDR_ERR_SUCCESS;
8797 }
8798
8799 _PUBLIC_ void ndr_print_drsuapi_DsAddEntryRequest2(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntryRequest2 *r)
8800 {
8801         ndr_print_struct(ndr, name, "drsuapi_DsAddEntryRequest2");
8802         if (r == NULL) { ndr_print_null(ndr); return; }
8803         ndr->depth++;
8804         ndr_print_drsuapi_DsReplicaObjectListItem(ndr, "first_object", &r->first_object);
8805         ndr->depth--;
8806 }
8807
8808 static enum ndr_err_code ndr_push_drsuapi_SecBufferType(struct ndr_push *ndr, int ndr_flags, enum drsuapi_SecBufferType r)
8809 {
8810         NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
8811         return NDR_ERR_SUCCESS;
8812 }
8813
8814 static enum ndr_err_code ndr_pull_drsuapi_SecBufferType(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_SecBufferType *r)
8815 {
8816         uint32_t v;
8817         NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
8818         *r = v;
8819         return NDR_ERR_SUCCESS;
8820 }
8821
8822 static enum ndr_err_code ndr_push_drsuapi_SecBuffer(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_SecBuffer *r)
8823 {
8824         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
8825         if (ndr_flags & NDR_SCALARS) {
8826                 NDR_CHECK(ndr_push_align(ndr, 5));
8827                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->buf_size));
8828                 NDR_CHECK(ndr_push_drsuapi_SecBufferType(ndr, NDR_SCALARS, r->buf_type));
8829                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->buffer));
8830                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8831         }
8832         if (ndr_flags & NDR_BUFFERS) {
8833                 if (r->buffer) {
8834                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->buf_size));
8835                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->buffer, r->buf_size));
8836                 }
8837         }
8838         return NDR_ERR_SUCCESS;
8839 }
8840
8841 static enum ndr_err_code ndr_pull_drsuapi_SecBuffer(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_SecBuffer *r)
8842 {
8843         uint32_t _ptr_buffer;
8844         uint32_t size_buffer_1 = 0;
8845         TALLOC_CTX *_mem_save_buffer_0;
8846         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
8847         if (ndr_flags & NDR_SCALARS) {
8848                 NDR_CHECK(ndr_pull_align(ndr, 5));
8849                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->buf_size));
8850                 if (r->buf_size > 10000) {
8851                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
8852                 }
8853                 NDR_CHECK(ndr_pull_drsuapi_SecBufferType(ndr, NDR_SCALARS, &r->buf_type));
8854                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
8855                 if (_ptr_buffer) {
8856                         NDR_PULL_ALLOC(ndr, r->buffer);
8857                 } else {
8858                         r->buffer = NULL;
8859                 }
8860                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8861         }
8862         if (ndr_flags & NDR_BUFFERS) {
8863                 if (r->buffer) {
8864                         _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
8865                         NDR_PULL_SET_MEM_CTX(ndr, r->buffer, 0);
8866                         NDR_CHECK(ndr_pull_array_size(ndr, &r->buffer));
8867                         size_buffer_1 = ndr_get_array_size(ndr, &r->buffer);
8868                         NDR_PULL_ALLOC_N(ndr, r->buffer, size_buffer_1);
8869                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->buffer, size_buffer_1));
8870                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
8871                 }
8872                 if (r->buffer) {
8873                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->buffer, r->buf_size));
8874                 }
8875         }
8876         return NDR_ERR_SUCCESS;
8877 }
8878
8879 _PUBLIC_ void ndr_print_drsuapi_SecBuffer(struct ndr_print *ndr, const char *name, const struct drsuapi_SecBuffer *r)
8880 {
8881         ndr_print_struct(ndr, name, "drsuapi_SecBuffer");
8882         if (r == NULL) { ndr_print_null(ndr); return; }
8883         ndr->depth++;
8884         ndr_print_uint32(ndr, "buf_size", r->buf_size);
8885         ndr_print_drsuapi_SecBufferType(ndr, "buf_type", r->buf_type);
8886         ndr_print_ptr(ndr, "buffer", r->buffer);
8887         ndr->depth++;
8888         if (r->buffer) {
8889                 ndr_print_array_uint8(ndr, "buffer", r->buffer, r->buf_size);
8890         }
8891         ndr->depth--;
8892         ndr->depth--;
8893 }
8894
8895 static enum ndr_err_code ndr_push_drsuapi_SecBufferDesc(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_SecBufferDesc *r)
8896 {
8897         uint32_t cntr_buffers_1;
8898         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
8899         if (ndr_flags & NDR_SCALARS) {
8900                 NDR_CHECK(ndr_push_align(ndr, 5));
8901                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8902                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->buff_count));
8903                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->buffers));
8904                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8905         }
8906         if (ndr_flags & NDR_BUFFERS) {
8907                 if (r->buffers) {
8908                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->buff_count));
8909                         for (cntr_buffers_1 = 0; cntr_buffers_1 < r->buff_count; cntr_buffers_1++) {
8910                                 NDR_CHECK(ndr_push_drsuapi_SecBuffer(ndr, NDR_SCALARS, &r->buffers[cntr_buffers_1]));
8911                         }
8912                         for (cntr_buffers_1 = 0; cntr_buffers_1 < r->buff_count; cntr_buffers_1++) {
8913                                 NDR_CHECK(ndr_push_drsuapi_SecBuffer(ndr, NDR_BUFFERS, &r->buffers[cntr_buffers_1]));
8914                         }
8915                 }
8916         }
8917         return NDR_ERR_SUCCESS;
8918 }
8919
8920 static enum ndr_err_code ndr_pull_drsuapi_SecBufferDesc(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_SecBufferDesc *r)
8921 {
8922         uint32_t _ptr_buffers;
8923         uint32_t size_buffers_1 = 0;
8924         uint32_t cntr_buffers_1;
8925         TALLOC_CTX *_mem_save_buffers_0;
8926         TALLOC_CTX *_mem_save_buffers_1;
8927         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
8928         if (ndr_flags & NDR_SCALARS) {
8929                 NDR_CHECK(ndr_pull_align(ndr, 5));
8930                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
8931                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->buff_count));
8932                 if (r->buff_count > 10000) {
8933                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
8934                 }
8935                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffers));
8936                 if (_ptr_buffers) {
8937                         NDR_PULL_ALLOC(ndr, r->buffers);
8938                 } else {
8939                         r->buffers = NULL;
8940                 }
8941                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8942         }
8943         if (ndr_flags & NDR_BUFFERS) {
8944                 if (r->buffers) {
8945                         _mem_save_buffers_0 = NDR_PULL_GET_MEM_CTX(ndr);
8946                         NDR_PULL_SET_MEM_CTX(ndr, r->buffers, 0);
8947                         NDR_CHECK(ndr_pull_array_size(ndr, &r->buffers));
8948                         size_buffers_1 = ndr_get_array_size(ndr, &r->buffers);
8949                         NDR_PULL_ALLOC_N(ndr, r->buffers, size_buffers_1);
8950                         _mem_save_buffers_1 = NDR_PULL_GET_MEM_CTX(ndr);
8951                         NDR_PULL_SET_MEM_CTX(ndr, r->buffers, 0);
8952                         for (cntr_buffers_1 = 0; cntr_buffers_1 < size_buffers_1; cntr_buffers_1++) {
8953                                 NDR_CHECK(ndr_pull_drsuapi_SecBuffer(ndr, NDR_SCALARS, &r->buffers[cntr_buffers_1]));
8954                         }
8955                         for (cntr_buffers_1 = 0; cntr_buffers_1 < size_buffers_1; cntr_buffers_1++) {
8956                                 NDR_CHECK(ndr_pull_drsuapi_SecBuffer(ndr, NDR_BUFFERS, &r->buffers[cntr_buffers_1]));
8957                         }
8958                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffers_1, 0);
8959                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffers_0, 0);
8960                 }
8961                 if (r->buffers) {
8962                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->buffers, r->buff_count));
8963                 }
8964         }
8965         return NDR_ERR_SUCCESS;
8966 }
8967
8968 _PUBLIC_ void ndr_print_drsuapi_SecBufferDesc(struct ndr_print *ndr, const char *name, const struct drsuapi_SecBufferDesc *r)
8969 {
8970         uint32_t cntr_buffers_1;
8971         ndr_print_struct(ndr, name, "drsuapi_SecBufferDesc");
8972         if (r == NULL) { ndr_print_null(ndr); return; }
8973         ndr->depth++;
8974         ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->version);
8975         ndr_print_uint32(ndr, "buff_count", r->buff_count);
8976         ndr_print_ptr(ndr, "buffers", r->buffers);
8977         ndr->depth++;
8978         if (r->buffers) {
8979                 ndr->print(ndr, "%s: ARRAY(%d)", "buffers", (int)r->buff_count);
8980                 ndr->depth++;
8981                 for (cntr_buffers_1=0;cntr_buffers_1<r->buff_count;cntr_buffers_1++) {
8982                         ndr_print_drsuapi_SecBuffer(ndr, "buffers", &r->buffers[cntr_buffers_1]);
8983                 }
8984                 ndr->depth--;
8985         }
8986         ndr->depth--;
8987         ndr->depth--;
8988 }
8989
8990 static enum ndr_err_code ndr_push_drsuapi_DsAddEntryRequest3(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAddEntryRequest3 *r)
8991 {
8992         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
8993         if (ndr_flags & NDR_SCALARS) {
8994                 NDR_CHECK(ndr_push_align(ndr, 5));
8995                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectListItem(ndr, NDR_SCALARS, &r->first_object));
8996                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client_creds));
8997                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8998         }
8999         if (ndr_flags & NDR_BUFFERS) {
9000                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectListItem(ndr, NDR_BUFFERS, &r->first_object));
9001                 if (r->client_creds) {
9002                         NDR_CHECK(ndr_push_drsuapi_SecBufferDesc(ndr, NDR_SCALARS|NDR_BUFFERS, r->client_creds));
9003                 }
9004         }
9005         return NDR_ERR_SUCCESS;
9006 }
9007
9008 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryRequest3(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntryRequest3 *r)
9009 {
9010         uint32_t _ptr_client_creds;
9011         TALLOC_CTX *_mem_save_client_creds_0;
9012         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
9013         if (ndr_flags & NDR_SCALARS) {
9014                 NDR_CHECK(ndr_pull_align(ndr, 5));
9015                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectListItem(ndr, NDR_SCALARS, &r->first_object));
9016                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_creds));
9017                 if (_ptr_client_creds) {
9018                         NDR_PULL_ALLOC(ndr, r->client_creds);
9019                 } else {
9020                         r->client_creds = NULL;
9021                 }
9022                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
9023         }
9024         if (ndr_flags & NDR_BUFFERS) {
9025                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectListItem(ndr, NDR_BUFFERS, &r->first_object));
9026                 if (r->client_creds) {
9027                         _mem_save_client_creds_0 = NDR_PULL_GET_MEM_CTX(ndr);
9028                         NDR_PULL_SET_MEM_CTX(ndr, r->client_creds, 0);
9029                         NDR_CHECK(ndr_pull_drsuapi_SecBufferDesc(ndr, NDR_SCALARS|NDR_BUFFERS, r->client_creds));
9030                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_creds_0, 0);
9031                 }
9032         }
9033         return NDR_ERR_SUCCESS;
9034 }
9035
9036 _PUBLIC_ void ndr_print_drsuapi_DsAddEntryRequest3(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntryRequest3 *r)
9037 {
9038         ndr_print_struct(ndr, name, "drsuapi_DsAddEntryRequest3");
9039         if (r == NULL) { ndr_print_null(ndr); return; }
9040         ndr->depth++;
9041         ndr_print_drsuapi_DsReplicaObjectListItem(ndr, "first_object", &r->first_object);
9042         ndr_print_ptr(ndr, "client_creds", r->client_creds);
9043         ndr->depth++;
9044         if (r->client_creds) {
9045                 ndr_print_drsuapi_SecBufferDesc(ndr, "client_creds", r->client_creds);
9046         }
9047         ndr->depth--;
9048         ndr->depth--;
9049 }
9050
9051 static enum ndr_err_code ndr_push_drsuapi_DsAddEntryRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsAddEntryRequest *r)
9052 {
9053         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
9054         if (ndr_flags & NDR_SCALARS) {
9055                 uint32_t level = ndr_push_get_switch_value(ndr, r);
9056                 NDR_CHECK(ndr_push_union_align(ndr, 5));
9057                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
9058                 NDR_CHECK(ndr_push_union_align(ndr, 5));
9059                 switch (level) {
9060                         case 2: {
9061                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryRequest2(ndr, NDR_SCALARS, &r->req2));
9062                         break; }
9063
9064                         case 3: {
9065                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryRequest3(ndr, NDR_SCALARS, &r->req3));
9066                         break; }
9067
9068                         default:
9069                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
9070                 }
9071         }
9072         if (ndr_flags & NDR_BUFFERS) {
9073                 uint32_t level = ndr_push_get_switch_value(ndr, r);
9074                 switch (level) {
9075                         case 2:
9076                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryRequest2(ndr, NDR_BUFFERS, &r->req2));
9077                         break;
9078
9079                         case 3:
9080                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryRequest3(ndr, NDR_BUFFERS, &r->req3));
9081                         break;
9082
9083                         default:
9084                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
9085                 }
9086         }
9087         return NDR_ERR_SUCCESS;
9088 }
9089
9090 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsAddEntryRequest *r)
9091 {
9092         uint32_t level;
9093         uint32_t _level;
9094         level = ndr_pull_get_switch_value(ndr, r);
9095         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
9096         if (ndr_flags & NDR_SCALARS) {
9097                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
9098                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
9099                 if (_level != level) {
9100                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
9101                 }
9102                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
9103                 switch (level) {
9104                         case 2: {
9105                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryRequest2(ndr, NDR_SCALARS, &r->req2));
9106                         break; }
9107
9108                         case 3: {
9109                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryRequest3(ndr, NDR_SCALARS, &r->req3));
9110                         break; }
9111
9112                         default:
9113                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
9114                 }
9115         }
9116         if (ndr_flags & NDR_BUFFERS) {
9117                 switch (level) {
9118                         case 2:
9119                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryRequest2(ndr, NDR_BUFFERS, &r->req2));
9120                         break;
9121
9122                         case 3:
9123                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryRequest3(ndr, NDR_BUFFERS, &r->req3));
9124                         break;
9125
9126                         default:
9127                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
9128                 }
9129         }
9130         return NDR_ERR_SUCCESS;
9131 }
9132
9133 _PUBLIC_ void ndr_print_drsuapi_DsAddEntryRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsAddEntryRequest *r)
9134 {
9135         uint32_t level;
9136         level = ndr_print_get_switch_value(ndr, r);
9137         ndr_print_union(ndr, name, level, "drsuapi_DsAddEntryRequest");
9138         switch (level) {
9139                 case 2:
9140                         ndr_print_drsuapi_DsAddEntryRequest2(ndr, "req2", &r->req2);
9141                 break;
9142
9143                 case 3:
9144                         ndr_print_drsuapi_DsAddEntryRequest3(ndr, "req3", &r->req3);
9145                 break;
9146
9147                 default:
9148                         ndr_print_bad_level(ndr, name, level);
9149         }
9150 }
9151
9152 static enum ndr_err_code ndr_push_drsuapi_DsAddEntryErrorInfoX(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAddEntryErrorInfoX *r)
9153 {
9154         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
9155         if (ndr_flags & NDR_SCALARS) {
9156                 NDR_CHECK(ndr_push_align(ndr, 4));
9157                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dsid));
9158                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->extended_err));
9159                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->extended_data));
9160                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->problem));
9161                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
9162         }
9163         if (ndr_flags & NDR_BUFFERS) {
9164         }
9165         return NDR_ERR_SUCCESS;
9166 }
9167
9168 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryErrorInfoX(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntryErrorInfoX *r)
9169 {
9170         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
9171         if (ndr_flags & NDR_SCALARS) {
9172                 NDR_CHECK(ndr_pull_align(ndr, 4));
9173                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dsid));
9174                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->extended_err));
9175                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->extended_data));
9176                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->problem));
9177                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
9178         }
9179         if (ndr_flags & NDR_BUFFERS) {
9180         }
9181         return NDR_ERR_SUCCESS;
9182 }
9183
9184 _PUBLIC_ void ndr_print_drsuapi_DsAddEntryErrorInfoX(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntryErrorInfoX *r)
9185 {
9186         ndr_print_struct(ndr, name, "drsuapi_DsAddEntryErrorInfoX");
9187         if (r == NULL) { ndr_print_null(ndr); return; }
9188         ndr->depth++;
9189         ndr_print_uint32(ndr, "dsid", r->dsid);
9190         ndr_print_WERROR(ndr, "extended_err", r->extended_err);
9191         ndr_print_uint32(ndr, "extended_data", r->extended_data);
9192         ndr_print_uint16(ndr, "problem", r->problem);
9193         ndr->depth--;
9194 }
9195
9196 static enum ndr_err_code ndr_push_drsuapi_DsAddEntry_AttrErr_V1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAddEntry_AttrErr_V1 *r)
9197 {
9198         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
9199         if (ndr_flags & NDR_SCALARS) {
9200                 NDR_CHECK(ndr_push_align(ndr, 5));
9201                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dsid));
9202                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->extended_err));
9203                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->extended_data));
9204                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->problem));
9205                 NDR_CHECK(ndr_push_drsuapi_DsAttributeId(ndr, NDR_SCALARS, r->attid));
9206                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_val_returned));
9207                 NDR_CHECK(ndr_push_drsuapi_DsAttributeValue(ndr, NDR_SCALARS, &r->attr_val));
9208                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
9209         }
9210         if (ndr_flags & NDR_BUFFERS) {
9211                 NDR_CHECK(ndr_push_drsuapi_DsAttributeValue(ndr, NDR_BUFFERS, &r->attr_val));
9212         }
9213         return NDR_ERR_SUCCESS;
9214 }
9215
9216 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntry_AttrErr_V1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntry_AttrErr_V1 *r)
9217 {
9218         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
9219         if (ndr_flags & NDR_SCALARS) {
9220                 NDR_CHECK(ndr_pull_align(ndr, 5));
9221                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dsid));
9222                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->extended_err));
9223                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->extended_data));
9224                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->problem));
9225                 NDR_CHECK(ndr_pull_drsuapi_DsAttributeId(ndr, NDR_SCALARS, &r->attid));
9226                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_val_returned));
9227                 NDR_CHECK(ndr_pull_drsuapi_DsAttributeValue(ndr, NDR_SCALARS, &r->attr_val));
9228                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
9229         }
9230         if (ndr_flags & NDR_BUFFERS) {
9231                 NDR_CHECK(ndr_pull_drsuapi_DsAttributeValue(ndr, NDR_BUFFERS, &r->attr_val));
9232         }
9233         return NDR_ERR_SUCCESS;
9234 }
9235
9236 _PUBLIC_ void ndr_print_drsuapi_DsAddEntry_AttrErr_V1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntry_AttrErr_V1 *r)
9237 {
9238         ndr_print_struct(ndr, name, "drsuapi_DsAddEntry_AttrErr_V1");
9239         if (r == NULL) { ndr_print_null(ndr); return; }
9240         ndr->depth++;
9241         ndr_print_uint32(ndr, "dsid", r->dsid);
9242         ndr_print_WERROR(ndr, "extended_err", r->extended_err);
9243         ndr_print_uint32(ndr, "extended_data", r->extended_data);
9244         ndr_print_uint16(ndr, "problem", r->problem);
9245         ndr_print_drsuapi_DsAttributeId(ndr, "attid", r->attid);
9246         ndr_print_uint32(ndr, "is_val_returned", r->is_val_returned);
9247         ndr_print_drsuapi_DsAttributeValue(ndr, "attr_val", &r->attr_val);
9248         ndr->depth--;
9249 }
9250
9251 static enum ndr_err_code ndr_push_drsuapi_DsAddEntry_AttrErrListItem_V1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAddEntry_AttrErrListItem_V1 *r)
9252 {
9253         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
9254         if (ndr_flags & NDR_SCALARS) {
9255                 NDR_CHECK(ndr_push_align(ndr, 5));
9256                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->next));
9257                 NDR_CHECK(ndr_push_drsuapi_DsAddEntry_AttrErr_V1(ndr, NDR_SCALARS, &r->err_data));
9258                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
9259         }
9260         if (ndr_flags & NDR_BUFFERS) {
9261                 if (r->next) {
9262                         NDR_CHECK(ndr_push_drsuapi_DsAddEntry_AttrErrListItem_V1(ndr, NDR_SCALARS|NDR_BUFFERS, r->next));
9263                 }
9264                 NDR_CHECK(ndr_push_drsuapi_DsAddEntry_AttrErr_V1(ndr, NDR_BUFFERS, &r->err_data));
9265         }
9266         return NDR_ERR_SUCCESS;
9267 }
9268
9269 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntry_AttrErrListItem_V1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntry_AttrErrListItem_V1 *r)
9270 {
9271         uint32_t _ptr_next;
9272         TALLOC_CTX *_mem_save_next_0;
9273         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
9274         if (ndr_flags & NDR_SCALARS) {
9275                 NDR_CHECK(ndr_pull_align(ndr, 5));
9276                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_next));
9277                 if (_ptr_next) {
9278                         NDR_PULL_ALLOC(ndr, r->next);
9279                 } else {
9280                         r->next = NULL;
9281                 }
9282                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntry_AttrErr_V1(ndr, NDR_SCALARS, &r->err_data));
9283                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
9284         }
9285         if (ndr_flags & NDR_BUFFERS) {
9286                 if (r->next) {
9287                         _mem_save_next_0 = NDR_PULL_GET_MEM_CTX(ndr);
9288                         NDR_PULL_SET_MEM_CTX(ndr, r->next, 0);
9289                         NDR_CHECK(ndr_pull_drsuapi_DsAddEntry_AttrErrListItem_V1(ndr, NDR_SCALARS|NDR_BUFFERS, r->next));
9290                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_next_0, 0);
9291                 }
9292                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntry_AttrErr_V1(ndr, NDR_BUFFERS, &r->err_data));
9293         }
9294         return NDR_ERR_SUCCESS;
9295 }
9296
9297 static enum ndr_err_code ndr_push_drsuapi_DsAddEntryErrorInfo_Attr_V1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAddEntryErrorInfo_Attr_V1 *r)
9298 {
9299         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
9300         if (ndr_flags & NDR_SCALARS) {
9301                 NDR_CHECK(ndr_push_align(ndr, 5));
9302                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->id));
9303                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
9304                 NDR_CHECK(ndr_push_drsuapi_DsAddEntry_AttrErrListItem_V1(ndr, NDR_SCALARS, &r->first));
9305                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
9306         }
9307         if (ndr_flags & NDR_BUFFERS) {
9308                 if (r->id) {
9309                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->id));
9310                 }
9311                 NDR_CHECK(ndr_push_drsuapi_DsAddEntry_AttrErrListItem_V1(ndr, NDR_BUFFERS, &r->first));
9312         }
9313         return NDR_ERR_SUCCESS;
9314 }
9315
9316 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryErrorInfo_Attr_V1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntryErrorInfo_Attr_V1 *r)
9317 {
9318         uint32_t _ptr_id;
9319         TALLOC_CTX *_mem_save_id_0;
9320         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
9321         if (ndr_flags & NDR_SCALARS) {
9322                 NDR_CHECK(ndr_pull_align(ndr, 5));
9323                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_id));
9324                 if (_ptr_id) {
9325                         NDR_PULL_ALLOC(ndr, r->id);
9326                 } else {
9327                         r->id = NULL;
9328                 }
9329                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
9330                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntry_AttrErrListItem_V1(ndr, NDR_SCALARS, &r->first));
9331                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
9332         }
9333         if (ndr_flags & NDR_BUFFERS) {
9334                 if (r->id) {
9335                         _mem_save_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
9336                         NDR_PULL_SET_MEM_CTX(ndr, r->id, 0);
9337                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->id));
9338                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_id_0, 0);
9339                 }
9340                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntry_AttrErrListItem_V1(ndr, NDR_BUFFERS, &r->first));
9341         }
9342         return NDR_ERR_SUCCESS;
9343 }
9344
9345 _PUBLIC_ void ndr_print_drsuapi_DsAddEntryErrorInfo_Attr_V1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntryErrorInfo_Attr_V1 *r)
9346 {
9347         ndr_print_struct(ndr, name, "drsuapi_DsAddEntryErrorInfo_Attr_V1");
9348         if (r == NULL) { ndr_print_null(ndr); return; }
9349         ndr->depth++;
9350         ndr_print_ptr(ndr, "id", r->id);
9351         ndr->depth++;
9352         if (r->id) {
9353                 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "id", r->id);
9354         }
9355         ndr->depth--;
9356         ndr_print_uint32(ndr, "count", r->count);
9357         ndr_print_drsuapi_DsAddEntry_AttrErrListItem_V1(ndr, "first", &r->first);
9358         ndr->depth--;
9359 }
9360
9361 static enum ndr_err_code ndr_push_drsuapi_DsAddEntryErrorInfo_Name_V1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAddEntryErrorInfo_Name_V1 *r)
9362 {
9363         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
9364         if (ndr_flags & NDR_SCALARS) {
9365                 NDR_CHECK(ndr_push_align(ndr, 5));
9366                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dsid));
9367                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->extended_err));
9368                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->extended_data));
9369                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->problem));
9370                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->id_matched));
9371                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
9372         }
9373         if (ndr_flags & NDR_BUFFERS) {
9374                 if (r->id_matched) {
9375                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->id_matched));
9376                 }
9377         }
9378         return NDR_ERR_SUCCESS;
9379 }
9380
9381 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryErrorInfo_Name_V1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntryErrorInfo_Name_V1 *r)
9382 {
9383         uint32_t _ptr_id_matched;
9384         TALLOC_CTX *_mem_save_id_matched_0;
9385         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
9386         if (ndr_flags & NDR_SCALARS) {
9387                 NDR_CHECK(ndr_pull_align(ndr, 5));
9388                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dsid));
9389                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->extended_err));
9390                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->extended_data));
9391                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->problem));
9392                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_id_matched));
9393                 if (_ptr_id_matched) {
9394                         NDR_PULL_ALLOC(ndr, r->id_matched);
9395                 } else {
9396                         r->id_matched = NULL;
9397                 }
9398                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
9399         }
9400         if (ndr_flags & NDR_BUFFERS) {
9401                 if (r->id_matched) {
9402                         _mem_save_id_matched_0 = NDR_PULL_GET_MEM_CTX(ndr);
9403                         NDR_PULL_SET_MEM_CTX(ndr, r->id_matched, 0);
9404                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->id_matched));
9405                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_id_matched_0, 0);
9406                 }
9407         }
9408         return NDR_ERR_SUCCESS;
9409 }
9410
9411 _PUBLIC_ void ndr_print_drsuapi_DsAddEntryErrorInfo_Name_V1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntryErrorInfo_Name_V1 *r)
9412 {
9413         ndr_print_struct(ndr, name, "drsuapi_DsAddEntryErrorInfo_Name_V1");
9414         if (r == NULL) { ndr_print_null(ndr); return; }
9415         ndr->depth++;
9416         ndr_print_uint32(ndr, "dsid", r->dsid);
9417         ndr_print_WERROR(ndr, "extended_err", r->extended_err);
9418         ndr_print_uint32(ndr, "extended_data", r->extended_data);
9419         ndr_print_uint16(ndr, "problem", r->problem);
9420         ndr_print_ptr(ndr, "id_matched", r->id_matched);
9421         ndr->depth++;
9422         if (r->id_matched) {
9423                 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "id_matched", r->id_matched);
9424         }
9425         ndr->depth--;
9426         ndr->depth--;
9427 }
9428
9429 static enum ndr_err_code ndr_push_drsuapi_NameResOp_V1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_NameResOp_V1 *r)
9430 {
9431         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
9432         if (ndr_flags & NDR_SCALARS) {
9433                 NDR_CHECK(ndr_push_align(ndr, 2));
9434                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, 83));
9435                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, 0));
9436                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, 0));
9437                 NDR_CHECK(ndr_push_trailer_align(ndr, 2));
9438         }
9439         if (ndr_flags & NDR_BUFFERS) {
9440         }
9441         return NDR_ERR_SUCCESS;
9442 }
9443
9444 static enum ndr_err_code ndr_pull_drsuapi_NameResOp_V1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_NameResOp_V1 *r)
9445 {
9446         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
9447         if (ndr_flags & NDR_SCALARS) {
9448                 NDR_CHECK(ndr_pull_align(ndr, 2));
9449                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->name_res));
9450                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->unused_pad));
9451                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->next_rdn));
9452                 NDR_CHECK(ndr_pull_trailer_align(ndr, 2));
9453         }
9454         if (ndr_flags & NDR_BUFFERS) {
9455         }
9456         return NDR_ERR_SUCCESS;
9457 }
9458
9459 _PUBLIC_ void ndr_print_drsuapi_NameResOp_V1(struct ndr_print *ndr, const char *name, const struct drsuapi_NameResOp_V1 *r)
9460 {
9461         ndr_print_struct(ndr, name, "drsuapi_NameResOp_V1");
9462         if (r == NULL) { ndr_print_null(ndr); return; }
9463         ndr->depth++;
9464         ndr_print_uint8(ndr, "name_res", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?83:r->name_res);
9465         ndr_print_uint8(ndr, "unused_pad", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->unused_pad);
9466         ndr_print_uint16(ndr, "next_rdn", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->next_rdn);
9467         ndr->depth--;
9468 }
9469
9470 static enum ndr_err_code ndr_push_drsuapi_DsAddEntry_RefType(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsAddEntry_RefType r)
9471 {
9472         NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
9473         return NDR_ERR_SUCCESS;
9474 }
9475
9476 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntry_RefType(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsAddEntry_RefType *r)
9477 {
9478         uint16_t v;
9479         NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
9480         *r = v;
9481         return NDR_ERR_SUCCESS;
9482 }
9483
9484 _PUBLIC_ void ndr_print_drsuapi_DsAddEntry_RefType(struct ndr_print *ndr, const char *name, enum drsuapi_DsAddEntry_RefType r)
9485 {
9486         const char *val = NULL;
9487
9488         switch (r) {
9489                 case DRSUAPI_CH_REFTYPE_SUPERIOR: val = "DRSUAPI_CH_REFTYPE_SUPERIOR"; break;
9490                 case DRSUAPI_CH_REFTYPE_SUBORDINATE: val = "DRSUAPI_CH_REFTYPE_SUBORDINATE"; break;
9491                 case DRSUAPI_CH_REFTYPE_NSSR: val = "DRSUAPI_CH_REFTYPE_NSSR"; break;
9492                 case DRSUAPI_CH_REFTYPE_CROSS: val = "DRSUAPI_CH_REFTYPE_CROSS"; break;
9493         }
9494         ndr_print_enum(ndr, name, "ENUM", val, r);
9495 }
9496
9497 static enum ndr_err_code ndr_push_drsuapi_DsAddEntry_ChoiceType(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsAddEntry_ChoiceType r)
9498 {
9499         NDR_CHECK(ndr_push_enum_uint8(ndr, NDR_SCALARS, r));
9500         return NDR_ERR_SUCCESS;
9501 }
9502
9503 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntry_ChoiceType(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsAddEntry_ChoiceType *r)
9504 {
9505         uint8_t v;
9506         NDR_CHECK(ndr_pull_enum_uint8(ndr, NDR_SCALARS, &v));
9507         *r = v;
9508         return NDR_ERR_SUCCESS;
9509 }
9510
9511 _PUBLIC_ void ndr_print_drsuapi_DsAddEntry_ChoiceType(struct ndr_print *ndr, const char *name, enum drsuapi_DsAddEntry_ChoiceType r)
9512 {
9513         const char *val = NULL;
9514
9515         switch (r) {
9516                 case DRSUAPI_SE_CHOICE_BASE_ONLY: val = "DRSUAPI_SE_CHOICE_BASE_ONLY"; break;
9517                 case DRSUAPI_SE_CHOICE_IMMED_CHLDRN: val = "DRSUAPI_SE_CHOICE_IMMED_CHLDRN"; break;
9518                 case DRSUAPI_SE_CHOICE_WHOLE_SUBTREE: val = "DRSUAPI_SE_CHOICE_WHOLE_SUBTREE"; break;
9519         }
9520         ndr_print_enum(ndr, name, "ENUM", val, r);
9521 }
9522
9523 static enum ndr_err_code ndr_push_drsuapi_DsaAddressListItem_V1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsaAddressListItem_V1 *r)
9524 {
9525         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
9526         if (ndr_flags & NDR_SCALARS) {
9527                 NDR_CHECK(ndr_push_align(ndr, 5));
9528                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->next));
9529                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->address));
9530                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
9531         }
9532         if (ndr_flags & NDR_BUFFERS) {
9533                 if (r->next) {
9534                         NDR_CHECK(ndr_push_drsuapi_DsaAddressListItem_V1(ndr, NDR_SCALARS|NDR_BUFFERS, r->next));
9535                 }
9536                 if (r->address) {
9537                         NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->address));
9538                 }
9539         }
9540         return NDR_ERR_SUCCESS;
9541 }
9542
9543 static enum ndr_err_code ndr_pull_drsuapi_DsaAddressListItem_V1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsaAddressListItem_V1 *r)
9544 {
9545         uint32_t _ptr_next;
9546         TALLOC_CTX *_mem_save_next_0;
9547         uint32_t _ptr_address;
9548         TALLOC_CTX *_mem_save_address_0;
9549         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
9550         if (ndr_flags & NDR_SCALARS) {
9551                 NDR_CHECK(ndr_pull_align(ndr, 5));
9552                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_next));
9553                 if (_ptr_next) {
9554                         NDR_PULL_ALLOC(ndr, r->next);
9555                 } else {
9556                         r->next = NULL;
9557                 }
9558                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_address));
9559                 if (_ptr_address) {
9560                         NDR_PULL_ALLOC(ndr, r->address);
9561                 } else {
9562                         r->address = NULL;
9563                 }
9564                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
9565         }
9566         if (ndr_flags & NDR_BUFFERS) {
9567                 if (r->next) {
9568                         _mem_save_next_0 = NDR_PULL_GET_MEM_CTX(ndr);
9569                         NDR_PULL_SET_MEM_CTX(ndr, r->next, 0);
9570                         NDR_CHECK(ndr_pull_drsuapi_DsaAddressListItem_V1(ndr, NDR_SCALARS|NDR_BUFFERS, r->next));
9571                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_next_0, 0);
9572                 }
9573                 if (r->address) {
9574                         _mem_save_address_0 = NDR_PULL_GET_MEM_CTX(ndr);
9575                         NDR_PULL_SET_MEM_CTX(ndr, r->address, 0);
9576                         NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->address));
9577                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_address_0, 0);
9578                 }
9579         }
9580         return NDR_ERR_SUCCESS;
9581 }
9582
9583 _PUBLIC_ void ndr_print_drsuapi_DsaAddressListItem_V1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsaAddressListItem_V1 *r)
9584 {
9585         ndr_print_struct(ndr, name, "drsuapi_DsaAddressListItem_V1");
9586         if (r == NULL) { ndr_print_null(ndr); return; }
9587         ndr->depth++;
9588         ndr_print_ptr(ndr, "next", r->next);
9589         ndr->depth++;
9590         if (r->next) {
9591                 ndr_print_drsuapi_DsaAddressListItem_V1(ndr, "next", r->next);
9592         }
9593         ndr->depth--;
9594         ndr_print_ptr(ndr, "address", r->address);
9595         ndr->depth++;
9596         if (r->address) {
9597                 ndr_print_lsa_String(ndr, "address", r->address);
9598         }
9599         ndr->depth--;
9600         ndr->depth--;
9601 }
9602
9603 static enum ndr_err_code ndr_push_drsuapi_DsAddEntry_RefErrListItem_V1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAddEntry_RefErrListItem_V1 *r)
9604 {
9605         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
9606         if (ndr_flags & NDR_SCALARS) {
9607                 NDR_CHECK(ndr_push_align(ndr, 5));
9608                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->id_target));
9609                 NDR_CHECK(ndr_push_drsuapi_NameResOp_V1(ndr, NDR_SCALARS, &r->op_state));
9610                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, 0));
9611                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, 0));
9612                 NDR_CHECK(ndr_push_drsuapi_DsAddEntry_RefType(ndr, NDR_SCALARS, r->ref_type));
9613                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->addr_list_count));
9614                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->addr_list));
9615                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->next));
9616                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_choice_set));
9617                 NDR_CHECK(ndr_push_drsuapi_DsAddEntry_ChoiceType(ndr, NDR_SCALARS, r->choice));
9618                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
9619         }
9620         if (ndr_flags & NDR_BUFFERS) {
9621                 if (r->id_target) {
9622                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->id_target));
9623                 }
9624                 if (r->addr_list) {
9625                         NDR_CHECK(ndr_push_drsuapi_DsaAddressListItem_V1(ndr, NDR_SCALARS|NDR_BUFFERS, r->addr_list));
9626                 }
9627                 if (r->next) {
9628                         NDR_CHECK(ndr_push_drsuapi_DsAddEntry_RefErrListItem_V1(ndr, NDR_SCALARS|NDR_BUFFERS, r->next));
9629                 }
9630         }
9631         return NDR_ERR_SUCCESS;
9632 }
9633
9634 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntry_RefErrListItem_V1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntry_RefErrListItem_V1 *r)
9635 {
9636         uint32_t _ptr_id_target;
9637         TALLOC_CTX *_mem_save_id_target_0;
9638         uint32_t _ptr_addr_list;
9639         TALLOC_CTX *_mem_save_addr_list_0;
9640         uint32_t _ptr_next;
9641         TALLOC_CTX *_mem_save_next_0;
9642         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
9643         if (ndr_flags & NDR_SCALARS) {
9644                 NDR_CHECK(ndr_pull_align(ndr, 5));
9645                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_id_target));
9646                 if (_ptr_id_target) {
9647                         NDR_PULL_ALLOC(ndr, r->id_target);
9648                 } else {
9649                         r->id_target = NULL;
9650                 }
9651                 NDR_CHECK(ndr_pull_drsuapi_NameResOp_V1(ndr, NDR_SCALARS, &r->op_state));
9652                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->rdn_alias));
9653                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->rdn_internal));
9654                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntry_RefType(ndr, NDR_SCALARS, &r->ref_type));
9655                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->addr_list_count));
9656                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_addr_list));
9657                 if (_ptr_addr_list) {
9658                         NDR_PULL_ALLOC(ndr, r->addr_list);
9659                 } else {
9660                         r->addr_list = NULL;
9661                 }
9662                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_next));
9663                 if (_ptr_next) {
9664                         NDR_PULL_ALLOC(ndr, r->next);
9665                 } else {
9666                         r->next = NULL;
9667                 }
9668                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_choice_set));
9669                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntry_ChoiceType(ndr, NDR_SCALARS, &r->choice));
9670                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
9671         }
9672         if (ndr_flags & NDR_BUFFERS) {
9673                 if (r->id_target) {
9674                         _mem_save_id_target_0 = NDR_PULL_GET_MEM_CTX(ndr);
9675                         NDR_PULL_SET_MEM_CTX(ndr, r->id_target, 0);
9676                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->id_target));
9677                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_id_target_0, 0);
9678                 }
9679                 if (r->addr_list) {
9680                         _mem_save_addr_list_0 = NDR_PULL_GET_MEM_CTX(ndr);
9681                         NDR_PULL_SET_MEM_CTX(ndr, r->addr_list, 0);
9682                         NDR_CHECK(ndr_pull_drsuapi_DsaAddressListItem_V1(ndr, NDR_SCALARS|NDR_BUFFERS, r->addr_list));
9683                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_addr_list_0, 0);
9684                 }
9685                 if (r->next) {
9686                         _mem_save_next_0 = NDR_PULL_GET_MEM_CTX(ndr);
9687                         NDR_PULL_SET_MEM_CTX(ndr, r->next, 0);
9688                         NDR_CHECK(ndr_pull_drsuapi_DsAddEntry_RefErrListItem_V1(ndr, NDR_SCALARS|NDR_BUFFERS, r->next));
9689                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_next_0, 0);
9690                 }
9691         }
9692         return NDR_ERR_SUCCESS;
9693 }
9694
9695 _PUBLIC_ void ndr_print_drsuapi_DsAddEntry_RefErrListItem_V1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntry_RefErrListItem_V1 *r)
9696 {
9697         ndr_print_struct(ndr, name, "drsuapi_DsAddEntry_RefErrListItem_V1");
9698         if (r == NULL) { ndr_print_null(ndr); return; }
9699         ndr->depth++;
9700         ndr_print_ptr(ndr, "id_target", r->id_target);
9701         ndr->depth++;
9702         if (r->id_target) {
9703                 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "id_target", r->id_target);
9704         }
9705         ndr->depth--;
9706         ndr_print_drsuapi_NameResOp_V1(ndr, "op_state", &r->op_state);
9707         ndr_print_uint16(ndr, "rdn_alias", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->rdn_alias);
9708         ndr_print_uint16(ndr, "rdn_internal", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->rdn_internal);
9709         ndr_print_drsuapi_DsAddEntry_RefType(ndr, "ref_type", r->ref_type);
9710         ndr_print_uint16(ndr, "addr_list_count", r->addr_list_count);
9711         ndr_print_ptr(ndr, "addr_list", r->addr_list);
9712         ndr->depth++;
9713         if (r->addr_list) {
9714                 ndr_print_drsuapi_DsaAddressListItem_V1(ndr, "addr_list", r->addr_list);
9715         }
9716         ndr->depth--;
9717         ndr_print_ptr(ndr, "next", r->next);
9718         ndr->depth++;
9719         if (r->next) {
9720                 ndr_print_drsuapi_DsAddEntry_RefErrListItem_V1(ndr, "next", r->next);
9721         }
9722         ndr->depth--;
9723         ndr_print_uint32(ndr, "is_choice_set", r->is_choice_set);
9724         ndr_print_drsuapi_DsAddEntry_ChoiceType(ndr, "choice", r->choice);
9725         ndr->depth--;
9726 }
9727
9728 static enum ndr_err_code ndr_push_drsuapi_DsAddEntryErrorInfo_Referr_V1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAddEntryErrorInfo_Referr_V1 *r)
9729 {
9730         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
9731         if (ndr_flags & NDR_SCALARS) {
9732                 NDR_CHECK(ndr_push_align(ndr, 5));
9733                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dsid));
9734                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->extended_err));
9735                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->extended_data));
9736                 NDR_CHECK(ndr_push_drsuapi_DsAddEntry_RefErrListItem_V1(ndr, NDR_SCALARS, &r->refer));
9737                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
9738         }
9739         if (ndr_flags & NDR_BUFFERS) {
9740                 NDR_CHECK(ndr_push_drsuapi_DsAddEntry_RefErrListItem_V1(ndr, NDR_BUFFERS, &r->refer));
9741         }
9742         return NDR_ERR_SUCCESS;
9743 }
9744
9745 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryErrorInfo_Referr_V1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntryErrorInfo_Referr_V1 *r)
9746 {
9747         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
9748         if (ndr_flags & NDR_SCALARS) {
9749                 NDR_CHECK(ndr_pull_align(ndr, 5));
9750                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dsid));
9751                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->extended_err));
9752                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->extended_data));
9753                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntry_RefErrListItem_V1(ndr, NDR_SCALARS, &r->refer));
9754                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
9755         }
9756         if (ndr_flags & NDR_BUFFERS) {
9757                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntry_RefErrListItem_V1(ndr, NDR_BUFFERS, &r->refer));
9758         }
9759         return NDR_ERR_SUCCESS;
9760 }
9761
9762 _PUBLIC_ void ndr_print_drsuapi_DsAddEntryErrorInfo_Referr_V1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntryErrorInfo_Referr_V1 *r)
9763 {
9764         ndr_print_struct(ndr, name, "drsuapi_DsAddEntryErrorInfo_Referr_V1");
9765         if (r == NULL) { ndr_print_null(ndr); return; }
9766         ndr->depth++;
9767         ndr_print_uint32(ndr, "dsid", r->dsid);
9768         ndr_print_WERROR(ndr, "extended_err", r->extended_err);
9769         ndr_print_uint32(ndr, "extended_data", r->extended_data);
9770         ndr_print_drsuapi_DsAddEntry_RefErrListItem_V1(ndr, "refer", &r->refer);
9771         ndr->depth--;
9772 }
9773
9774 static enum ndr_err_code ndr_push_drsuapi_DsAddEntryErrorInfo(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsAddEntryErrorInfo *r)
9775 {
9776         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
9777         if (ndr_flags & NDR_SCALARS) {
9778                 uint32_t level = ndr_push_get_switch_value(ndr, r);
9779                 NDR_CHECK(ndr_push_union_align(ndr, 5));
9780                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
9781                 NDR_CHECK(ndr_push_union_align(ndr, 5));
9782                 switch (level) {
9783                         case 1: {
9784                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfo_Attr_V1(ndr, NDR_SCALARS, &r->attr_err));
9785                         break; }
9786
9787                         case 2: {
9788                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfo_Name_V1(ndr, NDR_SCALARS, &r->name_err));
9789                         break; }
9790
9791                         case 3: {
9792                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfo_Referr_V1(ndr, NDR_SCALARS, &r->referral_err));
9793                         break; }
9794
9795                         case 4: {
9796                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->security_err));
9797                         break; }
9798
9799                         case 5: {
9800                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->service_err));
9801                         break; }
9802
9803                         case 6: {
9804                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->update_err));
9805                         break; }
9806
9807                         case 7: {
9808                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->system_err));
9809                         break; }
9810
9811                         default:
9812                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
9813                 }
9814         }
9815         if (ndr_flags & NDR_BUFFERS) {
9816                 uint32_t level = ndr_push_get_switch_value(ndr, r);
9817                 switch (level) {
9818                         case 1:
9819                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfo_Attr_V1(ndr, NDR_BUFFERS, &r->attr_err));
9820                         break;
9821
9822                         case 2:
9823                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfo_Name_V1(ndr, NDR_BUFFERS, &r->name_err));
9824                         break;
9825
9826                         case 3:
9827                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfo_Referr_V1(ndr, NDR_BUFFERS, &r->referral_err));
9828                         break;
9829
9830                         case 4:
9831                         break;
9832
9833                         case 5:
9834                         break;
9835
9836                         case 6:
9837                         break;
9838
9839                         case 7:
9840                         break;
9841
9842                         default:
9843                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
9844                 }
9845         }
9846         return NDR_ERR_SUCCESS;
9847 }
9848
9849 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryErrorInfo(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsAddEntryErrorInfo *r)
9850 {
9851         uint32_t level;
9852         uint32_t _level;
9853         level = ndr_pull_get_switch_value(ndr, r);
9854         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
9855         if (ndr_flags & NDR_SCALARS) {
9856                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
9857                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
9858                 if (_level != level) {
9859                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
9860                 }
9861                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
9862                 switch (level) {
9863                         case 1: {
9864                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfo_Attr_V1(ndr, NDR_SCALARS, &r->attr_err));
9865                         break; }
9866
9867                         case 2: {
9868                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfo_Name_V1(ndr, NDR_SCALARS, &r->name_err));
9869                         break; }
9870
9871                         case 3: {
9872                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfo_Referr_V1(ndr, NDR_SCALARS, &r->referral_err));
9873                         break; }
9874
9875                         case 4: {
9876                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->security_err));
9877                         break; }
9878
9879                         case 5: {
9880                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->service_err));
9881                         break; }
9882
9883                         case 6: {
9884                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->update_err));
9885                         break; }
9886
9887                         case 7: {
9888                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->system_err));
9889                         break; }
9890
9891                         default:
9892                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
9893                 }
9894         }
9895         if (ndr_flags & NDR_BUFFERS) {
9896                 switch (level) {
9897                         case 1:
9898                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfo_Attr_V1(ndr, NDR_BUFFERS, &r->attr_err));
9899                         break;
9900
9901                         case 2:
9902                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfo_Name_V1(ndr, NDR_BUFFERS, &r->name_err));
9903                         break;
9904
9905                         case 3:
9906                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfo_Referr_V1(ndr, NDR_BUFFERS, &r->referral_err));
9907                         break;
9908
9909                         case 4:
9910                         break;
9911
9912                         case 5:
9913                         break;
9914
9915                         case 6:
9916                         break;
9917
9918                         case 7:
9919                         break;
9920
9921                         default:
9922                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
9923                 }
9924         }
9925         return NDR_ERR_SUCCESS;
9926 }
9927
9928 _PUBLIC_ void ndr_print_drsuapi_DsAddEntryErrorInfo(struct ndr_print *ndr, const char *name, const union drsuapi_DsAddEntryErrorInfo *r)
9929 {
9930         uint32_t level;
9931         level = ndr_print_get_switch_value(ndr, r);
9932         ndr_print_union(ndr, name, level, "drsuapi_DsAddEntryErrorInfo");
9933         switch (level) {
9934                 case 1:
9935                         ndr_print_drsuapi_DsAddEntryErrorInfo_Attr_V1(ndr, "attr_err", &r->attr_err);
9936                 break;
9937
9938                 case 2:
9939                         ndr_print_drsuapi_DsAddEntryErrorInfo_Name_V1(ndr, "name_err", &r->name_err);
9940                 break;
9941
9942                 case 3:
9943                         ndr_print_drsuapi_DsAddEntryErrorInfo_Referr_V1(ndr, "referral_err", &r->referral_err);
9944                 break;
9945
9946                 case 4:
9947                         ndr_print_drsuapi_DsAddEntryErrorInfoX(ndr, "security_err", &r->security_err);
9948                 break;
9949
9950                 case 5:
9951                         ndr_print_drsuapi_DsAddEntryErrorInfoX(ndr, "service_err", &r->service_err);
9952                 break;
9953
9954                 case 6:
9955                         ndr_print_drsuapi_DsAddEntryErrorInfoX(ndr, "update_err", &r->update_err);
9956                 break;
9957
9958                 case 7:
9959                         ndr_print_drsuapi_DsAddEntryErrorInfoX(ndr, "system_err", &r->system_err);
9960                 break;
9961
9962                 default:
9963                         ndr_print_bad_level(ndr, name, level);
9964         }
9965 }
9966
9967 static enum ndr_err_code ndr_push_drsuapi_DsAddEntry_ErrData_V1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAddEntry_ErrData_V1 *r)
9968 {
9969         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
9970         if (ndr_flags & NDR_SCALARS) {
9971                 NDR_CHECK(ndr_push_align(ndr, 5));
9972                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->status));
9973                 NDR_CHECK(ndr_push_drsuapi_DsAddEntry_DirErr(ndr, NDR_SCALARS, r->dir_err));
9974                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info));
9975                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
9976         }
9977         if (ndr_flags & NDR_BUFFERS) {
9978                 if (r->info) {
9979                         NDR_CHECK(ndr_push_set_switch_value(ndr, r->info, r->dir_err));
9980                         NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info));
9981                 }
9982         }
9983         return NDR_ERR_SUCCESS;
9984 }
9985
9986 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntry_ErrData_V1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntry_ErrData_V1 *r)
9987 {
9988         uint32_t _ptr_info;
9989         TALLOC_CTX *_mem_save_info_0;
9990         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
9991         if (ndr_flags & NDR_SCALARS) {
9992                 NDR_CHECK(ndr_pull_align(ndr, 5));
9993                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->status));
9994                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntry_DirErr(ndr, NDR_SCALARS, &r->dir_err));
9995                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
9996                 if (_ptr_info) {
9997                         NDR_PULL_ALLOC(ndr, r->info);
9998                 } else {
9999                         r->info = NULL;
10000                 }
10001                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
10002         }
10003         if (ndr_flags & NDR_BUFFERS) {
10004                 if (r->info) {
10005                         _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
10006                         NDR_PULL_SET_MEM_CTX(ndr, r->info, 0);
10007                         NDR_CHECK(ndr_pull_set_switch_value(ndr, r->info, r->dir_err));
10008                         NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info));
10009                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
10010                 }
10011         }
10012         return NDR_ERR_SUCCESS;
10013 }
10014
10015 _PUBLIC_ void ndr_print_drsuapi_DsAddEntry_ErrData_V1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntry_ErrData_V1 *r)
10016 {
10017         ndr_print_struct(ndr, name, "drsuapi_DsAddEntry_ErrData_V1");
10018         if (r == NULL) { ndr_print_null(ndr); return; }
10019         ndr->depth++;
10020         ndr_print_WERROR(ndr, "status", r->status);
10021         ndr_print_drsuapi_DsAddEntry_DirErr(ndr, "dir_err", r->dir_err);
10022         ndr_print_ptr(ndr, "info", r->info);
10023         ndr->depth++;
10024         if (r->info) {
10025                 ndr_print_set_switch_value(ndr, r->info, r->dir_err);
10026                 ndr_print_drsuapi_DsAddEntryErrorInfo(ndr, "info", r->info);
10027         }
10028         ndr->depth--;
10029         ndr->depth--;
10030 }
10031
10032 static enum ndr_err_code ndr_push_drsuapi_DsAddEntry_ErrData(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsAddEntry_ErrData *r)
10033 {
10034         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
10035         if (ndr_flags & NDR_SCALARS) {
10036                 uint32_t level = ndr_push_get_switch_value(ndr, r);
10037                 NDR_CHECK(ndr_push_union_align(ndr, 5));
10038                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
10039                 NDR_CHECK(ndr_push_union_align(ndr, 5));
10040                 switch (level) {
10041                         case 1: {
10042                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntry_ErrData_V1(ndr, NDR_SCALARS, &r->v1));
10043                         break; }
10044
10045                         default:
10046                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10047                 }
10048         }
10049         if (ndr_flags & NDR_BUFFERS) {
10050                 uint32_t level = ndr_push_get_switch_value(ndr, r);
10051                 switch (level) {
10052                         case 1:
10053                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntry_ErrData_V1(ndr, NDR_BUFFERS, &r->v1));
10054                         break;
10055
10056                         default:
10057                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10058                 }
10059         }
10060         return NDR_ERR_SUCCESS;
10061 }
10062
10063 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntry_ErrData(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsAddEntry_ErrData *r)
10064 {
10065         uint32_t level;
10066         uint32_t _level;
10067         level = ndr_pull_get_switch_value(ndr, r);
10068         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
10069         if (ndr_flags & NDR_SCALARS) {
10070                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
10071                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
10072                 if (_level != level) {
10073                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
10074                 }
10075                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
10076                 switch (level) {
10077                         case 1: {
10078                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntry_ErrData_V1(ndr, NDR_SCALARS, &r->v1));
10079                         break; }
10080
10081                         default:
10082                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10083                 }
10084         }
10085         if (ndr_flags & NDR_BUFFERS) {
10086                 switch (level) {
10087                         case 1:
10088                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntry_ErrData_V1(ndr, NDR_BUFFERS, &r->v1));
10089                         break;
10090
10091                         default:
10092                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10093                 }
10094         }
10095         return NDR_ERR_SUCCESS;
10096 }
10097
10098 _PUBLIC_ void ndr_print_drsuapi_DsAddEntry_ErrData(struct ndr_print *ndr, const char *name, const union drsuapi_DsAddEntry_ErrData *r)
10099 {
10100         uint32_t level;
10101         level = ndr_print_get_switch_value(ndr, r);
10102         ndr_print_union(ndr, name, level, "drsuapi_DsAddEntry_ErrData");
10103         switch (level) {
10104                 case 1:
10105                         ndr_print_drsuapi_DsAddEntry_ErrData_V1(ndr, "v1", &r->v1);
10106                 break;
10107
10108                 default:
10109                         ndr_print_bad_level(ndr, name, level);
10110         }
10111 }
10112
10113 static enum ndr_err_code ndr_push_drsuapi_DsReplicaObjectIdentifier2(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaObjectIdentifier2 *r)
10114 {
10115         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
10116         if (ndr_flags & NDR_SCALARS) {
10117                 NDR_CHECK(ndr_push_align(ndr, 4));
10118                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
10119                 NDR_CHECK(ndr_push_dom_sid28(ndr, NDR_SCALARS, &r->sid));
10120                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
10121         }
10122         if (ndr_flags & NDR_BUFFERS) {
10123                 NDR_CHECK(ndr_push_dom_sid28(ndr, NDR_BUFFERS, &r->sid));
10124         }
10125         return NDR_ERR_SUCCESS;
10126 }
10127
10128 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaObjectIdentifier2(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaObjectIdentifier2 *r)
10129 {
10130         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
10131         if (ndr_flags & NDR_SCALARS) {
10132                 NDR_CHECK(ndr_pull_align(ndr, 4));
10133                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
10134                 NDR_CHECK(ndr_pull_dom_sid28(ndr, NDR_SCALARS, &r->sid));
10135                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
10136         }
10137         if (ndr_flags & NDR_BUFFERS) {
10138                 NDR_CHECK(ndr_pull_dom_sid28(ndr, NDR_BUFFERS, &r->sid));
10139         }
10140         return NDR_ERR_SUCCESS;
10141 }
10142
10143 _PUBLIC_ void ndr_print_drsuapi_DsReplicaObjectIdentifier2(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaObjectIdentifier2 *r)
10144 {
10145         ndr_print_struct(ndr, name, "drsuapi_DsReplicaObjectIdentifier2");
10146         if (r == NULL) { ndr_print_null(ndr); return; }
10147         ndr->depth++;
10148         ndr_print_GUID(ndr, "guid", &r->guid);
10149         ndr_print_dom_sid28(ndr, "sid", &r->sid);
10150         ndr->depth--;
10151 }
10152
10153 static enum ndr_err_code ndr_push_drsuapi_DsAddEntryCtr2(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAddEntryCtr2 *r)
10154 {
10155         uint32_t cntr_objects_1;
10156         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
10157         if (ndr_flags & NDR_SCALARS) {
10158                 NDR_CHECK(ndr_push_align(ndr, 5));
10159                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->id));
10160                 NDR_CHECK(ndr_push_drsuapi_DsAddEntry_DirErr(ndr, NDR_SCALARS, r->dir_err));
10161                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dsid));
10162                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->extended_err));
10163                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->extended_data));
10164                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->problem));
10165                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
10166                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->objects));
10167                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
10168         }
10169         if (ndr_flags & NDR_BUFFERS) {
10170                 if (r->id) {
10171                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->id));
10172                 }
10173                 if (r->objects) {
10174                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
10175                         for (cntr_objects_1 = 0; cntr_objects_1 < r->count; cntr_objects_1++) {
10176                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier2(ndr, NDR_SCALARS, &r->objects[cntr_objects_1]));
10177                         }
10178                         for (cntr_objects_1 = 0; cntr_objects_1 < r->count; cntr_objects_1++) {
10179                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier2(ndr, NDR_BUFFERS, &r->objects[cntr_objects_1]));
10180                         }
10181                 }
10182         }
10183         return NDR_ERR_SUCCESS;
10184 }
10185
10186 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryCtr2(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntryCtr2 *r)
10187 {
10188         uint32_t _ptr_id;
10189         TALLOC_CTX *_mem_save_id_0;
10190         uint32_t _ptr_objects;
10191         uint32_t size_objects_1 = 0;
10192         uint32_t cntr_objects_1;
10193         TALLOC_CTX *_mem_save_objects_0;
10194         TALLOC_CTX *_mem_save_objects_1;
10195         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
10196         if (ndr_flags & NDR_SCALARS) {
10197                 NDR_CHECK(ndr_pull_align(ndr, 5));
10198                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_id));
10199                 if (_ptr_id) {
10200                         NDR_PULL_ALLOC(ndr, r->id);
10201                 } else {
10202                         r->id = NULL;
10203                 }
10204                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntry_DirErr(ndr, NDR_SCALARS, &r->dir_err));
10205                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dsid));
10206                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->extended_err));
10207                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->extended_data));
10208                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->problem));
10209                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
10210                 if (r->count > 10000) {
10211                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
10212                 }
10213                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_objects));
10214                 if (_ptr_objects) {
10215                         NDR_PULL_ALLOC(ndr, r->objects);
10216                 } else {
10217                         r->objects = NULL;
10218                 }
10219                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
10220         }
10221         if (ndr_flags & NDR_BUFFERS) {
10222                 if (r->id) {
10223                         _mem_save_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
10224                         NDR_PULL_SET_MEM_CTX(ndr, r->id, 0);
10225                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->id));
10226                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_id_0, 0);
10227                 }
10228                 if (r->objects) {
10229                         _mem_save_objects_0 = NDR_PULL_GET_MEM_CTX(ndr);
10230                         NDR_PULL_SET_MEM_CTX(ndr, r->objects, 0);
10231                         NDR_CHECK(ndr_pull_array_size(ndr, &r->objects));
10232                         size_objects_1 = ndr_get_array_size(ndr, &r->objects);
10233                         NDR_PULL_ALLOC_N(ndr, r->objects, size_objects_1);
10234                         _mem_save_objects_1 = NDR_PULL_GET_MEM_CTX(ndr);
10235                         NDR_PULL_SET_MEM_CTX(ndr, r->objects, 0);
10236                         for (cntr_objects_1 = 0; cntr_objects_1 < size_objects_1; cntr_objects_1++) {
10237                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier2(ndr, NDR_SCALARS, &r->objects[cntr_objects_1]));
10238                         }
10239                         for (cntr_objects_1 = 0; cntr_objects_1 < size_objects_1; cntr_objects_1++) {
10240                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier2(ndr, NDR_BUFFERS, &r->objects[cntr_objects_1]));
10241                         }
10242                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_objects_1, 0);
10243                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_objects_0, 0);
10244                 }
10245                 if (r->objects) {
10246                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->objects, r->count));
10247                 }
10248         }
10249         return NDR_ERR_SUCCESS;
10250 }
10251
10252 _PUBLIC_ void ndr_print_drsuapi_DsAddEntryCtr2(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntryCtr2 *r)
10253 {
10254         uint32_t cntr_objects_1;
10255         ndr_print_struct(ndr, name, "drsuapi_DsAddEntryCtr2");
10256         if (r == NULL) { ndr_print_null(ndr); return; }
10257         ndr->depth++;
10258         ndr_print_ptr(ndr, "id", r->id);
10259         ndr->depth++;
10260         if (r->id) {
10261                 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "id", r->id);
10262         }
10263         ndr->depth--;
10264         ndr_print_drsuapi_DsAddEntry_DirErr(ndr, "dir_err", r->dir_err);
10265         ndr_print_uint32(ndr, "dsid", r->dsid);
10266         ndr_print_WERROR(ndr, "extended_err", r->extended_err);
10267         ndr_print_uint32(ndr, "extended_data", r->extended_data);
10268         ndr_print_uint16(ndr, "problem", r->problem);
10269         ndr_print_uint32(ndr, "count", r->count);
10270         ndr_print_ptr(ndr, "objects", r->objects);
10271         ndr->depth++;
10272         if (r->objects) {
10273                 ndr->print(ndr, "%s: ARRAY(%d)", "objects", (int)r->count);
10274                 ndr->depth++;
10275                 for (cntr_objects_1=0;cntr_objects_1<r->count;cntr_objects_1++) {
10276                         ndr_print_drsuapi_DsReplicaObjectIdentifier2(ndr, "objects", &r->objects[cntr_objects_1]);
10277                 }
10278                 ndr->depth--;
10279         }
10280         ndr->depth--;
10281         ndr->depth--;
10282 }
10283
10284 static enum ndr_err_code ndr_push_drsuapi_DsAddEntryCtr3(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAddEntryCtr3 *r)
10285 {
10286         uint32_t cntr_objects_1;
10287         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
10288         if (ndr_flags & NDR_SCALARS) {
10289                 NDR_CHECK(ndr_push_align(ndr, 5));
10290                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->id));
10291                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->err_ver));
10292                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->err_data));
10293                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
10294                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->objects));
10295                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
10296         }
10297         if (ndr_flags & NDR_BUFFERS) {
10298                 if (r->id) {
10299                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->id));
10300                 }
10301                 if (r->err_data) {
10302                         NDR_CHECK(ndr_push_set_switch_value(ndr, r->err_data, r->err_ver));
10303                         NDR_CHECK(ndr_push_drsuapi_DsAddEntry_ErrData(ndr, NDR_SCALARS|NDR_BUFFERS, r->err_data));
10304                 }
10305                 if (r->objects) {
10306                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
10307                         for (cntr_objects_1 = 0; cntr_objects_1 < r->count; cntr_objects_1++) {
10308                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier2(ndr, NDR_SCALARS, &r->objects[cntr_objects_1]));
10309                         }
10310                         for (cntr_objects_1 = 0; cntr_objects_1 < r->count; cntr_objects_1++) {
10311                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier2(ndr, NDR_BUFFERS, &r->objects[cntr_objects_1]));
10312                         }
10313                 }
10314         }
10315         return NDR_ERR_SUCCESS;
10316 }
10317
10318 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryCtr3(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntryCtr3 *r)
10319 {
10320         uint32_t _ptr_id;
10321         TALLOC_CTX *_mem_save_id_0;
10322         uint32_t _ptr_err_data;
10323         TALLOC_CTX *_mem_save_err_data_0;
10324         uint32_t _ptr_objects;
10325         uint32_t size_objects_1 = 0;
10326         uint32_t cntr_objects_1;
10327         TALLOC_CTX *_mem_save_objects_0;
10328         TALLOC_CTX *_mem_save_objects_1;
10329         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
10330         if (ndr_flags & NDR_SCALARS) {
10331                 NDR_CHECK(ndr_pull_align(ndr, 5));
10332                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_id));
10333                 if (_ptr_id) {
10334                         NDR_PULL_ALLOC(ndr, r->id);
10335                 } else {
10336                         r->id = NULL;
10337                 }
10338                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->err_ver));
10339                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_err_data));
10340                 if (_ptr_err_data) {
10341                         NDR_PULL_ALLOC(ndr, r->err_data);
10342                 } else {
10343                         r->err_data = NULL;
10344                 }
10345                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
10346                 if (r->count > 10000) {
10347                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
10348                 }
10349                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_objects));
10350                 if (_ptr_objects) {
10351                         NDR_PULL_ALLOC(ndr, r->objects);
10352                 } else {
10353                         r->objects = NULL;
10354                 }
10355                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
10356         }
10357         if (ndr_flags & NDR_BUFFERS) {
10358                 if (r->id) {
10359                         _mem_save_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
10360                         NDR_PULL_SET_MEM_CTX(ndr, r->id, 0);
10361                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->id));
10362                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_id_0, 0);
10363                 }
10364                 if (r->err_data) {
10365                         _mem_save_err_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
10366                         NDR_PULL_SET_MEM_CTX(ndr, r->err_data, 0);
10367                         NDR_CHECK(ndr_pull_set_switch_value(ndr, r->err_data, r->err_ver));
10368                         NDR_CHECK(ndr_pull_drsuapi_DsAddEntry_ErrData(ndr, NDR_SCALARS|NDR_BUFFERS, r->err_data));
10369                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_err_data_0, 0);
10370                 }
10371                 if (r->objects) {
10372                         _mem_save_objects_0 = NDR_PULL_GET_MEM_CTX(ndr);
10373                         NDR_PULL_SET_MEM_CTX(ndr, r->objects, 0);
10374                         NDR_CHECK(ndr_pull_array_size(ndr, &r->objects));
10375                         size_objects_1 = ndr_get_array_size(ndr, &r->objects);
10376                         NDR_PULL_ALLOC_N(ndr, r->objects, size_objects_1);
10377                         _mem_save_objects_1 = NDR_PULL_GET_MEM_CTX(ndr);
10378                         NDR_PULL_SET_MEM_CTX(ndr, r->objects, 0);
10379                         for (cntr_objects_1 = 0; cntr_objects_1 < size_objects_1; cntr_objects_1++) {
10380                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier2(ndr, NDR_SCALARS, &r->objects[cntr_objects_1]));
10381                         }
10382                         for (cntr_objects_1 = 0; cntr_objects_1 < size_objects_1; cntr_objects_1++) {
10383                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier2(ndr, NDR_BUFFERS, &r->objects[cntr_objects_1]));
10384                         }
10385                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_objects_1, 0);
10386                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_objects_0, 0);
10387                 }
10388                 if (r->objects) {
10389                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->objects, r->count));
10390                 }
10391         }
10392         return NDR_ERR_SUCCESS;
10393 }
10394
10395 _PUBLIC_ void ndr_print_drsuapi_DsAddEntryCtr3(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntryCtr3 *r)
10396 {
10397         uint32_t cntr_objects_1;
10398         ndr_print_struct(ndr, name, "drsuapi_DsAddEntryCtr3");
10399         if (r == NULL) { ndr_print_null(ndr); return; }
10400         ndr->depth++;
10401         ndr_print_ptr(ndr, "id", r->id);
10402         ndr->depth++;
10403         if (r->id) {
10404                 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "id", r->id);
10405         }
10406         ndr->depth--;
10407         ndr_print_uint32(ndr, "err_ver", r->err_ver);
10408         ndr_print_ptr(ndr, "err_data", r->err_data);
10409         ndr->depth++;
10410         if (r->err_data) {
10411                 ndr_print_set_switch_value(ndr, r->err_data, r->err_ver);
10412                 ndr_print_drsuapi_DsAddEntry_ErrData(ndr, "err_data", r->err_data);
10413         }
10414         ndr->depth--;
10415         ndr_print_uint32(ndr, "count", r->count);
10416         ndr_print_ptr(ndr, "objects", r->objects);
10417         ndr->depth++;
10418         if (r->objects) {
10419                 ndr->print(ndr, "%s: ARRAY(%d)", "objects", (int)r->count);
10420                 ndr->depth++;
10421                 for (cntr_objects_1=0;cntr_objects_1<r->count;cntr_objects_1++) {
10422                         ndr_print_drsuapi_DsReplicaObjectIdentifier2(ndr, "objects", &r->objects[cntr_objects_1]);
10423                 }
10424                 ndr->depth--;
10425         }
10426         ndr->depth--;
10427         ndr->depth--;
10428 }
10429
10430 static enum ndr_err_code ndr_push_drsuapi_DsAddEntryCtr(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsAddEntryCtr *r)
10431 {
10432         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
10433         if (ndr_flags & NDR_SCALARS) {
10434                 uint32_t level = ndr_push_get_switch_value(ndr, r);
10435                 NDR_CHECK(ndr_push_union_align(ndr, 5));
10436                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
10437                 NDR_CHECK(ndr_push_union_align(ndr, 5));
10438                 switch (level) {
10439                         case 2: {
10440                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryCtr2(ndr, NDR_SCALARS, &r->ctr2));
10441                         break; }
10442
10443                         case 3: {
10444                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryCtr3(ndr, NDR_SCALARS, &r->ctr3));
10445                         break; }
10446
10447                         default:
10448                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10449                 }
10450         }
10451         if (ndr_flags & NDR_BUFFERS) {
10452                 uint32_t level = ndr_push_get_switch_value(ndr, r);
10453                 switch (level) {
10454                         case 2:
10455                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryCtr2(ndr, NDR_BUFFERS, &r->ctr2));
10456                         break;
10457
10458                         case 3:
10459                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryCtr3(ndr, NDR_BUFFERS, &r->ctr3));
10460                         break;
10461
10462                         default:
10463                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10464                 }
10465         }
10466         return NDR_ERR_SUCCESS;
10467 }
10468
10469 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryCtr(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsAddEntryCtr *r)
10470 {
10471         uint32_t level;
10472         uint32_t _level;
10473         level = ndr_pull_get_switch_value(ndr, r);
10474         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
10475         if (ndr_flags & NDR_SCALARS) {
10476                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
10477                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
10478                 if (_level != level) {
10479                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
10480                 }
10481                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
10482                 switch (level) {
10483                         case 2: {
10484                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryCtr2(ndr, NDR_SCALARS, &r->ctr2));
10485                         break; }
10486
10487                         case 3: {
10488                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryCtr3(ndr, NDR_SCALARS, &r->ctr3));
10489                         break; }
10490
10491                         default:
10492                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10493                 }
10494         }
10495         if (ndr_flags & NDR_BUFFERS) {
10496                 switch (level) {
10497                         case 2:
10498                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryCtr2(ndr, NDR_BUFFERS, &r->ctr2));
10499                         break;
10500
10501                         case 3:
10502                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryCtr3(ndr, NDR_BUFFERS, &r->ctr3));
10503                         break;
10504
10505                         default:
10506                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10507                 }
10508         }
10509         return NDR_ERR_SUCCESS;
10510 }
10511
10512 _PUBLIC_ void ndr_print_drsuapi_DsAddEntryCtr(struct ndr_print *ndr, const char *name, const union drsuapi_DsAddEntryCtr *r)
10513 {
10514         uint32_t level;
10515         level = ndr_print_get_switch_value(ndr, r);
10516         ndr_print_union(ndr, name, level, "drsuapi_DsAddEntryCtr");
10517         switch (level) {
10518                 case 2:
10519                         ndr_print_drsuapi_DsAddEntryCtr2(ndr, "ctr2", &r->ctr2);
10520                 break;
10521
10522                 case 3:
10523                         ndr_print_drsuapi_DsAddEntryCtr3(ndr, "ctr3", &r->ctr3);
10524                 break;
10525
10526                 default:
10527                         ndr_print_bad_level(ndr, name, level);
10528         }
10529 }
10530
10531 static enum ndr_err_code ndr_push_drsuapi_DsExecuteKCCFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
10532 {
10533         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
10534         return NDR_ERR_SUCCESS;
10535 }
10536
10537 static enum ndr_err_code ndr_pull_drsuapi_DsExecuteKCCFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
10538 {
10539         uint32_t v;
10540         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
10541         *r = v;
10542         return NDR_ERR_SUCCESS;
10543 }
10544
10545 _PUBLIC_ void ndr_print_drsuapi_DsExecuteKCCFlags(struct ndr_print *ndr, const char *name, uint32_t r)
10546 {
10547         ndr_print_uint32(ndr, name, r);
10548         ndr->depth++;
10549         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_EXECUTE_KCC_ASYNCHRONOUS_OPERATION", DRSUAPI_DS_EXECUTE_KCC_ASYNCHRONOUS_OPERATION, r);
10550         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_EXECUTE_KCC_DAMPED", DRSUAPI_DS_EXECUTE_KCC_DAMPED, r);
10551         ndr->depth--;
10552 }
10553
10554 static enum ndr_err_code ndr_push_drsuapi_DsExecuteKCC1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsExecuteKCC1 *r)
10555 {
10556         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
10557         if (ndr_flags & NDR_SCALARS) {
10558                 NDR_CHECK(ndr_push_align(ndr, 4));
10559                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->taskID));
10560                 NDR_CHECK(ndr_push_drsuapi_DsExecuteKCCFlags(ndr, NDR_SCALARS, r->flags));
10561                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
10562         }
10563         if (ndr_flags & NDR_BUFFERS) {
10564         }
10565         return NDR_ERR_SUCCESS;
10566 }
10567
10568 static enum ndr_err_code ndr_pull_drsuapi_DsExecuteKCC1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsExecuteKCC1 *r)
10569 {
10570         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
10571         if (ndr_flags & NDR_SCALARS) {
10572                 NDR_CHECK(ndr_pull_align(ndr, 4));
10573                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->taskID));
10574                 NDR_CHECK(ndr_pull_drsuapi_DsExecuteKCCFlags(ndr, NDR_SCALARS, &r->flags));
10575                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
10576         }
10577         if (ndr_flags & NDR_BUFFERS) {
10578         }
10579         return NDR_ERR_SUCCESS;
10580 }
10581
10582 _PUBLIC_ void ndr_print_drsuapi_DsExecuteKCC1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsExecuteKCC1 *r)
10583 {
10584         ndr_print_struct(ndr, name, "drsuapi_DsExecuteKCC1");
10585         if (r == NULL) { ndr_print_null(ndr); return; }
10586         ndr->depth++;
10587         ndr_print_uint32(ndr, "taskID", r->taskID);
10588         ndr_print_drsuapi_DsExecuteKCCFlags(ndr, "flags", r->flags);
10589         ndr->depth--;
10590 }
10591
10592 static enum ndr_err_code ndr_push_drsuapi_DsExecuteKCCRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsExecuteKCCRequest *r)
10593 {
10594         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
10595         if (ndr_flags & NDR_SCALARS) {
10596                 uint32_t level = ndr_push_get_switch_value(ndr, r);
10597                 NDR_CHECK(ndr_push_union_align(ndr, 4));
10598                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
10599                 NDR_CHECK(ndr_push_union_align(ndr, 4));
10600                 switch (level) {
10601                         case 1: {
10602                                 NDR_CHECK(ndr_push_drsuapi_DsExecuteKCC1(ndr, NDR_SCALARS, &r->ctr1));
10603                         break; }
10604
10605                         default:
10606                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10607                 }
10608         }
10609         if (ndr_flags & NDR_BUFFERS) {
10610                 uint32_t level = ndr_push_get_switch_value(ndr, r);
10611                 switch (level) {
10612                         case 1:
10613                         break;
10614
10615                         default:
10616                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10617                 }
10618         }
10619         return NDR_ERR_SUCCESS;
10620 }
10621
10622 static enum ndr_err_code ndr_pull_drsuapi_DsExecuteKCCRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsExecuteKCCRequest *r)
10623 {
10624         uint32_t level;
10625         uint32_t _level;
10626         level = ndr_pull_get_switch_value(ndr, r);
10627         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
10628         if (ndr_flags & NDR_SCALARS) {
10629                 NDR_CHECK(ndr_pull_union_align(ndr, 4));
10630                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
10631                 if (_level != level) {
10632                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
10633                 }
10634                 NDR_CHECK(ndr_pull_union_align(ndr, 4));
10635                 switch (level) {
10636                         case 1: {
10637                                 NDR_CHECK(ndr_pull_drsuapi_DsExecuteKCC1(ndr, NDR_SCALARS, &r->ctr1));
10638                         break; }
10639
10640                         default:
10641                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10642                 }
10643         }
10644         if (ndr_flags & NDR_BUFFERS) {
10645                 switch (level) {
10646                         case 1:
10647                         break;
10648
10649                         default:
10650                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10651                 }
10652         }
10653         return NDR_ERR_SUCCESS;
10654 }
10655
10656 _PUBLIC_ void ndr_print_drsuapi_DsExecuteKCCRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsExecuteKCCRequest *r)
10657 {
10658         uint32_t level;
10659         level = ndr_print_get_switch_value(ndr, r);
10660         ndr_print_union(ndr, name, level, "drsuapi_DsExecuteKCCRequest");
10661         switch (level) {
10662                 case 1:
10663                         ndr_print_drsuapi_DsExecuteKCC1(ndr, "ctr1", &r->ctr1);
10664                 break;
10665
10666                 default:
10667                         ndr_print_bad_level(ndr, name, level);
10668         }
10669 }
10670
10671 static enum ndr_err_code ndr_push_drsuapi_DsReplicaGetInfoLevel(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsReplicaGetInfoLevel r)
10672 {
10673         NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
10674         return NDR_ERR_SUCCESS;
10675 }
10676
10677 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaGetInfoLevel(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsReplicaGetInfoLevel *r)
10678 {
10679         uint32_t v;
10680         NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
10681         *r = v;
10682         return NDR_ERR_SUCCESS;
10683 }
10684
10685 _PUBLIC_ void ndr_print_drsuapi_DsReplicaGetInfoLevel(struct ndr_print *ndr, const char *name, enum drsuapi_DsReplicaGetInfoLevel r)
10686 {
10687         const char *val = NULL;
10688
10689         switch (r) {
10690                 case DRSUAPI_DS_REPLICA_GET_INFO: val = "DRSUAPI_DS_REPLICA_GET_INFO"; break;
10691                 case DRSUAPI_DS_REPLICA_GET_INFO2: val = "DRSUAPI_DS_REPLICA_GET_INFO2"; break;
10692         }
10693         ndr_print_enum(ndr, name, "ENUM", val, r);
10694 }
10695
10696 static enum ndr_err_code ndr_push_drsuapi_DsReplicaInfoType(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsReplicaInfoType r)
10697 {
10698         NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
10699         return NDR_ERR_SUCCESS;
10700 }
10701
10702 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaInfoType(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsReplicaInfoType *r)
10703 {
10704         uint32_t v;
10705         NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
10706         *r = v;
10707         return NDR_ERR_SUCCESS;
10708 }
10709
10710 _PUBLIC_ void ndr_print_drsuapi_DsReplicaInfoType(struct ndr_print *ndr, const char *name, enum drsuapi_DsReplicaInfoType r)
10711 {
10712         const char *val = NULL;
10713
10714         switch (r) {
10715                 case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS: val = "DRSUAPI_DS_REPLICA_INFO_NEIGHBORS"; break;
10716                 case DRSUAPI_DS_REPLICA_INFO_CURSORS: val = "DRSUAPI_DS_REPLICA_INFO_CURSORS"; break;
10717                 case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA: val = "DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA"; break;
10718                 case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES: val = "DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES"; break;
10719                 case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES: val = "DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES"; break;
10720                 case DRSUAPI_DS_REPLICA_INFO_PENDING_OPS: val = "DRSUAPI_DS_REPLICA_INFO_PENDING_OPS"; break;
10721                 case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA: val = "DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA"; break;
10722                 case DRSUAPI_DS_REPLICA_INFO_CURSORS2: val = "DRSUAPI_DS_REPLICA_INFO_CURSORS2"; break;
10723                 case DRSUAPI_DS_REPLICA_INFO_CURSORS3: val = "DRSUAPI_DS_REPLICA_INFO_CURSORS3"; break;
10724                 case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2: val = "DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2"; break;
10725                 case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2: val = "DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2"; break;
10726                 case DRSUAPI_DS_REPLICA_INFO_REPSTO: val = "DRSUAPI_DS_REPLICA_INFO_REPSTO"; break;
10727                 case DRSUAPI_DS_REPLICA_INFO_CLIENT_CONTEXTS: val = "DRSUAPI_DS_REPLICA_INFO_CLIENT_CONTEXTS"; break;
10728                 case DRSUAPI_DS_REPLICA_INFO_UPTODATE_VECTOR_V1: val = "DRSUAPI_DS_REPLICA_INFO_UPTODATE_VECTOR_V1"; break;
10729                 case DRSUAPI_DS_REPLICA_INFO_SERVER_OUTGOING_CALLS: val = "DRSUAPI_DS_REPLICA_INFO_SERVER_OUTGOING_CALLS"; break;
10730         }
10731         ndr_print_enum(ndr, name, "ENUM", val, r);
10732 }
10733
10734 static enum ndr_err_code ndr_push_drsuapi_DsReplicaGetInfoRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaGetInfoRequest1 *r)
10735 {
10736         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
10737         if (ndr_flags & NDR_SCALARS) {
10738                 NDR_CHECK(ndr_push_align(ndr, 5));
10739                 NDR_CHECK(ndr_push_drsuapi_DsReplicaInfoType(ndr, NDR_SCALARS, r->info_type));
10740                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->object_dn));
10741                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_guid));
10742                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
10743         }
10744         if (ndr_flags & NDR_BUFFERS) {
10745                 if (r->object_dn) {
10746                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->object_dn, CH_UTF16)));
10747                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10748                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->object_dn, CH_UTF16)));
10749                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->object_dn, ndr_charset_length(r->object_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10750                 }
10751         }
10752         return NDR_ERR_SUCCESS;
10753 }
10754
10755 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaGetInfoRequest1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaGetInfoRequest1 *r)
10756 {
10757         uint32_t _ptr_object_dn;
10758         uint32_t size_object_dn_1 = 0;
10759         uint32_t length_object_dn_1 = 0;
10760         TALLOC_CTX *_mem_save_object_dn_0;
10761         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
10762         if (ndr_flags & NDR_SCALARS) {
10763                 NDR_CHECK(ndr_pull_align(ndr, 5));
10764                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaInfoType(ndr, NDR_SCALARS, &r->info_type));
10765                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_object_dn));
10766                 if (_ptr_object_dn) {
10767                         NDR_PULL_ALLOC(ndr, r->object_dn);
10768                 } else {
10769                         r->object_dn = NULL;
10770                 }
10771                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_guid));
10772                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
10773         }
10774         if (ndr_flags & NDR_BUFFERS) {
10775                 if (r->object_dn) {
10776                         _mem_save_object_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
10777                         NDR_PULL_SET_MEM_CTX(ndr, r->object_dn, 0);
10778                         NDR_CHECK(ndr_pull_array_size(ndr, &r->object_dn));
10779                         NDR_CHECK(ndr_pull_array_length(ndr, &r->object_dn));
10780                         size_object_dn_1 = ndr_get_array_size(ndr, &r->object_dn);
10781                         length_object_dn_1 = ndr_get_array_length(ndr, &r->object_dn);
10782                         if (length_object_dn_1 > size_object_dn_1) {
10783                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_object_dn_1, length_object_dn_1);
10784                         }
10785                         NDR_CHECK(ndr_check_string_terminator(ndr, length_object_dn_1, sizeof(uint16_t)));
10786                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->object_dn, length_object_dn_1, sizeof(uint16_t), CH_UTF16));
10787                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_object_dn_0, 0);
10788                 }
10789         }
10790         return NDR_ERR_SUCCESS;
10791 }
10792
10793 _PUBLIC_ void ndr_print_drsuapi_DsReplicaGetInfoRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaGetInfoRequest1 *r)
10794 {
10795         ndr_print_struct(ndr, name, "drsuapi_DsReplicaGetInfoRequest1");
10796         if (r == NULL) { ndr_print_null(ndr); return; }
10797         ndr->depth++;
10798         ndr_print_drsuapi_DsReplicaInfoType(ndr, "info_type", r->info_type);
10799         ndr_print_ptr(ndr, "object_dn", r->object_dn);
10800         ndr->depth++;
10801         if (r->object_dn) {
10802                 ndr_print_string(ndr, "object_dn", r->object_dn);
10803         }
10804         ndr->depth--;
10805         ndr_print_GUID(ndr, "source_dsa_guid", &r->source_dsa_guid);
10806         ndr->depth--;
10807 }
10808
10809 static enum ndr_err_code ndr_push_drsuapi_DsReplicaGetInfoRequest2(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaGetInfoRequest2 *r)
10810 {
10811         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
10812         if (ndr_flags & NDR_SCALARS) {
10813                 NDR_CHECK(ndr_push_align(ndr, 5));
10814                 NDR_CHECK(ndr_push_drsuapi_DsReplicaInfoType(ndr, NDR_SCALARS, r->info_type));
10815                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->object_dn));
10816                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_guid));
10817                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
10818                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->attribute_name));
10819                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->value_dn_str));
10820                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumeration_context));
10821                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
10822         }
10823         if (ndr_flags & NDR_BUFFERS) {
10824                 if (r->object_dn) {
10825                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->object_dn, CH_UTF16)));
10826                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10827                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->object_dn, CH_UTF16)));
10828                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->object_dn, ndr_charset_length(r->object_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10829                 }
10830                 if (r->attribute_name) {
10831                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->attribute_name, CH_UTF16)));
10832                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10833                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->attribute_name, CH_UTF16)));
10834                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->attribute_name, ndr_charset_length(r->attribute_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10835                 }
10836                 if (r->value_dn_str) {
10837                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->value_dn_str, CH_UTF16)));
10838                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10839                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->value_dn_str, CH_UTF16)));
10840                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->value_dn_str, ndr_charset_length(r->value_dn_str, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10841                 }
10842         }
10843         return NDR_ERR_SUCCESS;
10844 }
10845
10846 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaGetInfoRequest2(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaGetInfoRequest2 *r)
10847 {
10848         uint32_t _ptr_object_dn;
10849         uint32_t size_object_dn_1 = 0;
10850         uint32_t length_object_dn_1 = 0;
10851         TALLOC_CTX *_mem_save_object_dn_0;
10852         uint32_t _ptr_attribute_name;
10853         uint32_t size_attribute_name_1 = 0;
10854         uint32_t length_attribute_name_1 = 0;
10855         TALLOC_CTX *_mem_save_attribute_name_0;
10856         uint32_t _ptr_value_dn_str;
10857         uint32_t size_value_dn_str_1 = 0;
10858         uint32_t length_value_dn_str_1 = 0;
10859         TALLOC_CTX *_mem_save_value_dn_str_0;
10860         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
10861         if (ndr_flags & NDR_SCALARS) {
10862                 NDR_CHECK(ndr_pull_align(ndr, 5));
10863                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaInfoType(ndr, NDR_SCALARS, &r->info_type));
10864                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_object_dn));
10865                 if (_ptr_object_dn) {
10866                         NDR_PULL_ALLOC(ndr, r->object_dn);
10867                 } else {
10868                         r->object_dn = NULL;
10869                 }
10870                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_guid));
10871                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
10872                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_attribute_name));
10873                 if (_ptr_attribute_name) {
10874                         NDR_PULL_ALLOC(ndr, r->attribute_name);
10875                 } else {
10876                         r->attribute_name = NULL;
10877                 }
10878                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value_dn_str));
10879                 if (_ptr_value_dn_str) {
10880                         NDR_PULL_ALLOC(ndr, r->value_dn_str);
10881                 } else {
10882                         r->value_dn_str = NULL;
10883                 }
10884                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumeration_context));
10885                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
10886         }
10887         if (ndr_flags & NDR_BUFFERS) {
10888                 if (r->object_dn) {
10889                         _mem_save_object_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
10890                         NDR_PULL_SET_MEM_CTX(ndr, r->object_dn, 0);
10891                         NDR_CHECK(ndr_pull_array_size(ndr, &r->object_dn));
10892                         NDR_CHECK(ndr_pull_array_length(ndr, &r->object_dn));
10893                         size_object_dn_1 = ndr_get_array_size(ndr, &r->object_dn);
10894                         length_object_dn_1 = ndr_get_array_length(ndr, &r->object_dn);
10895                         if (length_object_dn_1 > size_object_dn_1) {
10896                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_object_dn_1, length_object_dn_1);
10897                         }
10898                         NDR_CHECK(ndr_check_string_terminator(ndr, length_object_dn_1, sizeof(uint16_t)));
10899                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->object_dn, length_object_dn_1, sizeof(uint16_t), CH_UTF16));
10900                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_object_dn_0, 0);
10901                 }
10902                 if (r->attribute_name) {
10903                         _mem_save_attribute_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10904                         NDR_PULL_SET_MEM_CTX(ndr, r->attribute_name, 0);
10905                         NDR_CHECK(ndr_pull_array_size(ndr, &r->attribute_name));
10906                         NDR_CHECK(ndr_pull_array_length(ndr, &r->attribute_name));
10907                         size_attribute_name_1 = ndr_get_array_size(ndr, &r->attribute_name);
10908                         length_attribute_name_1 = ndr_get_array_length(ndr, &r->attribute_name);
10909                         if (length_attribute_name_1 > size_attribute_name_1) {
10910                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_attribute_name_1, length_attribute_name_1);
10911                         }
10912                         NDR_CHECK(ndr_check_string_terminator(ndr, length_attribute_name_1, sizeof(uint16_t)));
10913                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->attribute_name, length_attribute_name_1, sizeof(uint16_t), CH_UTF16));
10914                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribute_name_0, 0);
10915                 }
10916                 if (r->value_dn_str) {
10917                         _mem_save_value_dn_str_0 = NDR_PULL_GET_MEM_CTX(ndr);
10918                         NDR_PULL_SET_MEM_CTX(ndr, r->value_dn_str, 0);
10919                         NDR_CHECK(ndr_pull_array_size(ndr, &r->value_dn_str));
10920                         NDR_CHECK(ndr_pull_array_length(ndr, &r->value_dn_str));
10921                         size_value_dn_str_1 = ndr_get_array_size(ndr, &r->value_dn_str);
10922                         length_value_dn_str_1 = ndr_get_array_length(ndr, &r->value_dn_str);
10923                         if (length_value_dn_str_1 > size_value_dn_str_1) {
10924                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_value_dn_str_1, length_value_dn_str_1);
10925                         }
10926                         NDR_CHECK(ndr_check_string_terminator(ndr, length_value_dn_str_1, sizeof(uint16_t)));
10927                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->value_dn_str, length_value_dn_str_1, sizeof(uint16_t), CH_UTF16));
10928                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_dn_str_0, 0);
10929                 }
10930         }
10931         return NDR_ERR_SUCCESS;
10932 }
10933
10934 _PUBLIC_ void ndr_print_drsuapi_DsReplicaGetInfoRequest2(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaGetInfoRequest2 *r)
10935 {
10936         ndr_print_struct(ndr, name, "drsuapi_DsReplicaGetInfoRequest2");
10937         if (r == NULL) { ndr_print_null(ndr); return; }
10938         ndr->depth++;
10939         ndr_print_drsuapi_DsReplicaInfoType(ndr, "info_type", r->info_type);
10940         ndr_print_ptr(ndr, "object_dn", r->object_dn);
10941         ndr->depth++;
10942         if (r->object_dn) {
10943                 ndr_print_string(ndr, "object_dn", r->object_dn);
10944         }
10945         ndr->depth--;
10946         ndr_print_GUID(ndr, "source_dsa_guid", &r->source_dsa_guid);
10947         ndr_print_uint32(ndr, "flags", r->flags);
10948         ndr_print_ptr(ndr, "attribute_name", r->attribute_name);
10949         ndr->depth++;
10950         if (r->attribute_name) {
10951                 ndr_print_string(ndr, "attribute_name", r->attribute_name);
10952         }
10953         ndr->depth--;
10954         ndr_print_ptr(ndr, "value_dn_str", r->value_dn_str);
10955         ndr->depth++;
10956         if (r->value_dn_str) {
10957                 ndr_print_string(ndr, "value_dn_str", r->value_dn_str);
10958         }
10959         ndr->depth--;
10960         ndr_print_uint32(ndr, "enumeration_context", r->enumeration_context);
10961         ndr->depth--;
10962 }
10963
10964 static enum ndr_err_code ndr_push_drsuapi_DsReplicaGetInfoRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsReplicaGetInfoRequest *r)
10965 {
10966         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
10967         if (ndr_flags & NDR_SCALARS) {
10968                 uint32_t level = ndr_push_get_switch_value(ndr, r);
10969                 NDR_CHECK(ndr_push_union_align(ndr, 5));
10970                 NDR_CHECK(ndr_push_drsuapi_DsReplicaGetInfoLevel(ndr, NDR_SCALARS, level));
10971                 NDR_CHECK(ndr_push_union_align(ndr, 5));
10972                 switch (level) {
10973                         case DRSUAPI_DS_REPLICA_GET_INFO: {
10974                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaGetInfoRequest1(ndr, NDR_SCALARS, &r->req1));
10975                         break; }
10976
10977                         case DRSUAPI_DS_REPLICA_GET_INFO2: {
10978                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaGetInfoRequest2(ndr, NDR_SCALARS, &r->req2));
10979                         break; }
10980
10981                         default:
10982                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10983                 }
10984         }
10985         if (ndr_flags & NDR_BUFFERS) {
10986                 uint32_t level = ndr_push_get_switch_value(ndr, r);
10987                 switch (level) {
10988                         case DRSUAPI_DS_REPLICA_GET_INFO:
10989                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaGetInfoRequest1(ndr, NDR_BUFFERS, &r->req1));
10990                         break;
10991
10992                         case DRSUAPI_DS_REPLICA_GET_INFO2:
10993                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaGetInfoRequest2(ndr, NDR_BUFFERS, &r->req2));
10994                         break;
10995
10996                         default:
10997                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10998                 }
10999         }
11000         return NDR_ERR_SUCCESS;
11001 }
11002
11003 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaGetInfoRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsReplicaGetInfoRequest *r)
11004 {
11005         uint32_t level;
11006         uint32_t _level;
11007         level = ndr_pull_get_switch_value(ndr, r);
11008         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
11009         if (ndr_flags & NDR_SCALARS) {
11010                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
11011                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
11012                 if (_level != level) {
11013                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
11014                 }
11015                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
11016                 switch (level) {
11017                         case DRSUAPI_DS_REPLICA_GET_INFO: {
11018                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaGetInfoRequest1(ndr, NDR_SCALARS, &r->req1));
11019                         break; }
11020
11021                         case DRSUAPI_DS_REPLICA_GET_INFO2: {
11022                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaGetInfoRequest2(ndr, NDR_SCALARS, &r->req2));
11023                         break; }
11024
11025                         default:
11026                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
11027                 }
11028         }
11029         if (ndr_flags & NDR_BUFFERS) {
11030                 switch (level) {
11031                         case DRSUAPI_DS_REPLICA_GET_INFO:
11032                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaGetInfoRequest1(ndr, NDR_BUFFERS, &r->req1));
11033                         break;
11034
11035                         case DRSUAPI_DS_REPLICA_GET_INFO2:
11036                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaGetInfoRequest2(ndr, NDR_BUFFERS, &r->req2));
11037                         break;
11038
11039                         default:
11040                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
11041                 }
11042         }
11043         return NDR_ERR_SUCCESS;
11044 }
11045
11046 _PUBLIC_ void ndr_print_drsuapi_DsReplicaGetInfoRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsReplicaGetInfoRequest *r)
11047 {
11048         uint32_t level;
11049         level = ndr_print_get_switch_value(ndr, r);
11050         ndr_print_union(ndr, name, level, "drsuapi_DsReplicaGetInfoRequest");
11051         switch (level) {
11052                 case DRSUAPI_DS_REPLICA_GET_INFO:
11053                         ndr_print_drsuapi_DsReplicaGetInfoRequest1(ndr, "req1", &r->req1);
11054                 break;
11055
11056                 case DRSUAPI_DS_REPLICA_GET_INFO2:
11057                         ndr_print_drsuapi_DsReplicaGetInfoRequest2(ndr, "req2", &r->req2);
11058                 break;
11059
11060                 default:
11061                         ndr_print_bad_level(ndr, name, level);
11062         }
11063 }
11064
11065 static enum ndr_err_code ndr_push_drsuapi_DsReplicaNeighbour(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaNeighbour *r)
11066 {
11067         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
11068         if (ndr_flags & NDR_SCALARS) {
11069                 NDR_CHECK(ndr_push_align(ndr, 8));
11070                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->naming_context_dn));
11071                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->source_dsa_obj_dn));
11072                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->source_dsa_address));
11073                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->transport_obj_dn));
11074                 NDR_CHECK(ndr_push_drsuapi_DrsOptions(ndr, NDR_SCALARS, r->replica_flags));
11075                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
11076                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->naming_context_obj_guid));
11077                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_obj_guid));
11078                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
11079                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->transport_obj_guid));
11080                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->tmp_highest_usn));
11081                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->highest_usn));
11082                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_success));
11083                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_attempt));
11084                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->result_last_attempt));
11085                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->consecutive_sync_failures));
11086                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
11087         }
11088         if (ndr_flags & NDR_BUFFERS) {
11089                 if (r->naming_context_dn) {
11090                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->naming_context_dn, CH_UTF16)));
11091                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
11092                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->naming_context_dn, CH_UTF16)));
11093                         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));
11094                 }
11095                 if (r->source_dsa_obj_dn) {
11096                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->source_dsa_obj_dn, CH_UTF16)));
11097                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
11098                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->source_dsa_obj_dn, CH_UTF16)));
11099                         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));
11100                 }
11101                 if (r->source_dsa_address) {
11102                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->source_dsa_address, CH_UTF16)));
11103                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
11104                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->source_dsa_address, CH_UTF16)));
11105                         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));
11106                 }
11107                 if (r->transport_obj_dn) {
11108                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->transport_obj_dn, CH_UTF16)));
11109                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
11110                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->transport_obj_dn, CH_UTF16)));
11111                         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));
11112                 }
11113         }
11114         return NDR_ERR_SUCCESS;
11115 }
11116
11117 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaNeighbour(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaNeighbour *r)
11118 {
11119         uint32_t _ptr_naming_context_dn;
11120         uint32_t size_naming_context_dn_1 = 0;
11121         uint32_t length_naming_context_dn_1 = 0;
11122         TALLOC_CTX *_mem_save_naming_context_dn_0;
11123         uint32_t _ptr_source_dsa_obj_dn;
11124         uint32_t size_source_dsa_obj_dn_1 = 0;
11125         uint32_t length_source_dsa_obj_dn_1 = 0;
11126         TALLOC_CTX *_mem_save_source_dsa_obj_dn_0;
11127         uint32_t _ptr_source_dsa_address;
11128         uint32_t size_source_dsa_address_1 = 0;
11129         uint32_t length_source_dsa_address_1 = 0;
11130         TALLOC_CTX *_mem_save_source_dsa_address_0;
11131         uint32_t _ptr_transport_obj_dn;
11132         uint32_t size_transport_obj_dn_1 = 0;
11133         uint32_t length_transport_obj_dn_1 = 0;
11134         TALLOC_CTX *_mem_save_transport_obj_dn_0;
11135         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
11136         if (ndr_flags & NDR_SCALARS) {
11137                 NDR_CHECK(ndr_pull_align(ndr, 8));
11138                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_naming_context_dn));
11139                 if (_ptr_naming_context_dn) {
11140                         NDR_PULL_ALLOC(ndr, r->naming_context_dn);
11141                 } else {
11142                         r->naming_context_dn = NULL;
11143                 }
11144                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_source_dsa_obj_dn));
11145                 if (_ptr_source_dsa_obj_dn) {
11146                         NDR_PULL_ALLOC(ndr, r->source_dsa_obj_dn);
11147                 } else {
11148                         r->source_dsa_obj_dn = NULL;
11149                 }
11150                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_source_dsa_address));
11151                 if (_ptr_source_dsa_address) {
11152                         NDR_PULL_ALLOC(ndr, r->source_dsa_address);
11153                 } else {
11154                         r->source_dsa_address = NULL;
11155                 }
11156                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_transport_obj_dn));
11157                 if (_ptr_transport_obj_dn) {
11158                         NDR_PULL_ALLOC(ndr, r->transport_obj_dn);
11159                 } else {
11160                         r->transport_obj_dn = NULL;
11161                 }
11162                 NDR_CHECK(ndr_pull_drsuapi_DrsOptions(ndr, NDR_SCALARS, &r->replica_flags));
11163                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
11164                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->naming_context_obj_guid));
11165                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_obj_guid));
11166                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
11167                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->transport_obj_guid));
11168                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->tmp_highest_usn));
11169                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->highest_usn));
11170                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_success));
11171                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_attempt));
11172                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->result_last_attempt));
11173                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->consecutive_sync_failures));
11174                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
11175         }
11176         if (ndr_flags & NDR_BUFFERS) {
11177                 if (r->naming_context_dn) {
11178                         _mem_save_naming_context_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
11179                         NDR_PULL_SET_MEM_CTX(ndr, r->naming_context_dn, 0);
11180                         NDR_CHECK(ndr_pull_array_size(ndr, &r->naming_context_dn));
11181                         NDR_CHECK(ndr_pull_array_length(ndr, &r->naming_context_dn));
11182                         size_naming_context_dn_1 = ndr_get_array_size(ndr, &r->naming_context_dn);
11183                         length_naming_context_dn_1 = ndr_get_array_length(ndr, &r->naming_context_dn);
11184                         if (length_naming_context_dn_1 > size_naming_context_dn_1) {
11185                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_naming_context_dn_1, length_naming_context_dn_1);
11186                         }
11187                         NDR_CHECK(ndr_check_string_terminator(ndr, length_naming_context_dn_1, sizeof(uint16_t)));
11188                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->naming_context_dn, length_naming_context_dn_1, sizeof(uint16_t), CH_UTF16));
11189                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_naming_context_dn_0, 0);
11190                 }
11191                 if (r->source_dsa_obj_dn) {
11192                         _mem_save_source_dsa_obj_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
11193                         NDR_PULL_SET_MEM_CTX(ndr, r->source_dsa_obj_dn, 0);
11194                         NDR_CHECK(ndr_pull_array_size(ndr, &r->source_dsa_obj_dn));
11195                         NDR_CHECK(ndr_pull_array_length(ndr, &r->source_dsa_obj_dn));
11196                         size_source_dsa_obj_dn_1 = ndr_get_array_size(ndr, &r->source_dsa_obj_dn);
11197                         length_source_dsa_obj_dn_1 = ndr_get_array_length(ndr, &r->source_dsa_obj_dn);
11198                         if (length_source_dsa_obj_dn_1 > size_source_dsa_obj_dn_1) {
11199                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_source_dsa_obj_dn_1, length_source_dsa_obj_dn_1);
11200                         }
11201                         NDR_CHECK(ndr_check_string_terminator(ndr, length_source_dsa_obj_dn_1, sizeof(uint16_t)));
11202                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->source_dsa_obj_dn, length_source_dsa_obj_dn_1, sizeof(uint16_t), CH_UTF16));
11203                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_source_dsa_obj_dn_0, 0);
11204                 }
11205                 if (r->source_dsa_address) {
11206                         _mem_save_source_dsa_address_0 = NDR_PULL_GET_MEM_CTX(ndr);
11207                         NDR_PULL_SET_MEM_CTX(ndr, r->source_dsa_address, 0);
11208                         NDR_CHECK(ndr_pull_array_size(ndr, &r->source_dsa_address));
11209                         NDR_CHECK(ndr_pull_array_length(ndr, &r->source_dsa_address));
11210                         size_source_dsa_address_1 = ndr_get_array_size(ndr, &r->source_dsa_address);
11211                         length_source_dsa_address_1 = ndr_get_array_length(ndr, &r->source_dsa_address);
11212                         if (length_source_dsa_address_1 > size_source_dsa_address_1) {
11213                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_source_dsa_address_1, length_source_dsa_address_1);
11214                         }
11215                         NDR_CHECK(ndr_check_string_terminator(ndr, length_source_dsa_address_1, sizeof(uint16_t)));
11216                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->source_dsa_address, length_source_dsa_address_1, sizeof(uint16_t), CH_UTF16));
11217                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_source_dsa_address_0, 0);
11218                 }
11219                 if (r->transport_obj_dn) {
11220                         _mem_save_transport_obj_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
11221                         NDR_PULL_SET_MEM_CTX(ndr, r->transport_obj_dn, 0);
11222                         NDR_CHECK(ndr_pull_array_size(ndr, &r->transport_obj_dn));
11223                         NDR_CHECK(ndr_pull_array_length(ndr, &r->transport_obj_dn));
11224                         size_transport_obj_dn_1 = ndr_get_array_size(ndr, &r->transport_obj_dn);
11225                         length_transport_obj_dn_1 = ndr_get_array_length(ndr, &r->transport_obj_dn);
11226                         if (length_transport_obj_dn_1 > size_transport_obj_dn_1) {
11227                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_transport_obj_dn_1, length_transport_obj_dn_1);
11228                         }
11229                         NDR_CHECK(ndr_check_string_terminator(ndr, length_transport_obj_dn_1, sizeof(uint16_t)));
11230                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->transport_obj_dn, length_transport_obj_dn_1, sizeof(uint16_t), CH_UTF16));
11231                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_transport_obj_dn_0, 0);
11232                 }
11233         }
11234         return NDR_ERR_SUCCESS;
11235 }
11236
11237 _PUBLIC_ void ndr_print_drsuapi_DsReplicaNeighbour(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaNeighbour *r)
11238 {
11239         ndr_print_struct(ndr, name, "drsuapi_DsReplicaNeighbour");
11240         if (r == NULL) { ndr_print_null(ndr); return; }
11241         ndr->depth++;
11242         ndr_print_ptr(ndr, "naming_context_dn", r->naming_context_dn);
11243         ndr->depth++;
11244         if (r->naming_context_dn) {
11245                 ndr_print_string(ndr, "naming_context_dn", r->naming_context_dn);
11246         }
11247         ndr->depth--;
11248         ndr_print_ptr(ndr, "source_dsa_obj_dn", r->source_dsa_obj_dn);
11249         ndr->depth++;
11250         if (r->source_dsa_obj_dn) {
11251                 ndr_print_string(ndr, "source_dsa_obj_dn", r->source_dsa_obj_dn);
11252         }
11253         ndr->depth--;
11254         ndr_print_ptr(ndr, "source_dsa_address", r->source_dsa_address);
11255         ndr->depth++;
11256         if (r->source_dsa_address) {
11257                 ndr_print_string(ndr, "source_dsa_address", r->source_dsa_address);
11258         }
11259         ndr->depth--;
11260         ndr_print_ptr(ndr, "transport_obj_dn", r->transport_obj_dn);
11261         ndr->depth++;
11262         if (r->transport_obj_dn) {
11263                 ndr_print_string(ndr, "transport_obj_dn", r->transport_obj_dn);
11264         }
11265         ndr->depth--;
11266         ndr_print_drsuapi_DrsOptions(ndr, "replica_flags", r->replica_flags);
11267         ndr_print_uint32(ndr, "reserved", r->reserved);
11268         ndr_print_GUID(ndr, "naming_context_obj_guid", &r->naming_context_obj_guid);
11269         ndr_print_GUID(ndr, "source_dsa_obj_guid", &r->source_dsa_obj_guid);
11270         ndr_print_GUID(ndr, "source_dsa_invocation_id", &r->source_dsa_invocation_id);
11271         ndr_print_GUID(ndr, "transport_obj_guid", &r->transport_obj_guid);
11272         ndr_print_hyper(ndr, "tmp_highest_usn", r->tmp_highest_usn);
11273         ndr_print_hyper(ndr, "highest_usn", r->highest_usn);
11274         ndr_print_NTTIME(ndr, "last_success", r->last_success);
11275         ndr_print_NTTIME(ndr, "last_attempt", r->last_attempt);
11276         ndr_print_WERROR(ndr, "result_last_attempt", r->result_last_attempt);
11277         ndr_print_uint32(ndr, "consecutive_sync_failures", r->consecutive_sync_failures);
11278         ndr->depth--;
11279 }
11280
11281 static enum ndr_err_code ndr_push_drsuapi_DsReplicaNeighbourCtr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaNeighbourCtr *r)
11282 {
11283         uint32_t cntr_array_0;
11284         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
11285         if (ndr_flags & NDR_SCALARS) {
11286                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
11287                 NDR_CHECK(ndr_push_align(ndr, 8));
11288                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
11289                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
11290                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
11291                         NDR_CHECK(ndr_push_drsuapi_DsReplicaNeighbour(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
11292                 }
11293                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
11294         }
11295         if (ndr_flags & NDR_BUFFERS) {
11296                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
11297                         NDR_CHECK(ndr_push_drsuapi_DsReplicaNeighbour(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
11298                 }
11299         }
11300         return NDR_ERR_SUCCESS;
11301 }
11302
11303 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaNeighbourCtr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaNeighbourCtr *r)
11304 {
11305         uint32_t size_array_0 = 0;
11306         uint32_t cntr_array_0;
11307         TALLOC_CTX *_mem_save_array_0;
11308         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
11309         if (ndr_flags & NDR_SCALARS) {
11310                 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
11311                 NDR_CHECK(ndr_pull_align(ndr, 8));
11312                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
11313                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
11314                 size_array_0 = ndr_get_array_size(ndr, &r->array);
11315                 NDR_PULL_ALLOC_N(ndr, r->array, size_array_0);
11316                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
11317                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
11318                 for (cntr_array_0 = 0; cntr_array_0 < size_array_0; cntr_array_0++) {
11319                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaNeighbour(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
11320                 }
11321                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
11322                 if (r->array) {
11323                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
11324                 }
11325                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
11326         }
11327         if (ndr_flags & NDR_BUFFERS) {
11328                 size_array_0 = ndr_get_array_size(ndr, &r->array);
11329                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
11330                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
11331                 for (cntr_array_0 = 0; cntr_array_0 < size_array_0; cntr_array_0++) {
11332                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaNeighbour(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
11333                 }
11334                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
11335         }
11336         return NDR_ERR_SUCCESS;
11337 }
11338
11339 _PUBLIC_ void ndr_print_drsuapi_DsReplicaNeighbourCtr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaNeighbourCtr *r)
11340 {
11341         uint32_t cntr_array_0;
11342         ndr_print_struct(ndr, name, "drsuapi_DsReplicaNeighbourCtr");
11343         if (r == NULL) { ndr_print_null(ndr); return; }
11344         ndr->depth++;
11345         ndr_print_uint32(ndr, "count", r->count);
11346         ndr_print_uint32(ndr, "reserved", r->reserved);
11347         ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
11348         ndr->depth++;
11349         for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
11350                 ndr_print_drsuapi_DsReplicaNeighbour(ndr, "array", &r->array[cntr_array_0]);
11351         }
11352         ndr->depth--;
11353         ndr->depth--;
11354 }
11355
11356 static enum ndr_err_code ndr_push_drsuapi_DsReplicaCursorCtr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaCursorCtr *r)
11357 {
11358         uint32_t cntr_array_0;
11359         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
11360         if (ndr_flags & NDR_SCALARS) {
11361                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
11362                 NDR_CHECK(ndr_push_align(ndr, 8));
11363                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
11364                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
11365                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
11366                         NDR_CHECK(ndr_push_drsuapi_DsReplicaCursor(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
11367                 }
11368                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
11369         }
11370         if (ndr_flags & NDR_BUFFERS) {
11371         }
11372         return NDR_ERR_SUCCESS;
11373 }
11374
11375 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaCursorCtr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaCursorCtr *r)
11376 {
11377         uint32_t size_array_0 = 0;
11378         uint32_t cntr_array_0;
11379         TALLOC_CTX *_mem_save_array_0;
11380         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
11381         if (ndr_flags & NDR_SCALARS) {
11382                 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
11383                 NDR_CHECK(ndr_pull_align(ndr, 8));
11384                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
11385                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
11386                 size_array_0 = ndr_get_array_size(ndr, &r->array);
11387                 NDR_PULL_ALLOC_N(ndr, r->array, size_array_0);
11388                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
11389                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
11390                 for (cntr_array_0 = 0; cntr_array_0 < size_array_0; cntr_array_0++) {
11391                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursor(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
11392                 }
11393                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
11394                 if (r->array) {
11395                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
11396                 }
11397                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
11398         }
11399         if (ndr_flags & NDR_BUFFERS) {
11400         }
11401         return NDR_ERR_SUCCESS;
11402 }
11403
11404 _PUBLIC_ void ndr_print_drsuapi_DsReplicaCursorCtr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaCursorCtr *r)
11405 {
11406         uint32_t cntr_array_0;
11407         ndr_print_struct(ndr, name, "drsuapi_DsReplicaCursorCtr");
11408         if (r == NULL) { ndr_print_null(ndr); return; }
11409         ndr->depth++;
11410         ndr_print_uint32(ndr, "count", r->count);
11411         ndr_print_uint32(ndr, "reserved", r->reserved);
11412         ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
11413         ndr->depth++;
11414         for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
11415                 ndr_print_drsuapi_DsReplicaCursor(ndr, "array", &r->array[cntr_array_0]);
11416         }
11417         ndr->depth--;
11418         ndr->depth--;
11419 }
11420
11421 static enum ndr_err_code ndr_push_drsuapi_DsReplicaObjMetaData(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaObjMetaData *r)
11422 {
11423         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
11424         if (ndr_flags & NDR_SCALARS) {
11425                 NDR_CHECK(ndr_push_align(ndr, 8));
11426                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->attribute_name));
11427                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
11428                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->originating_change_time));
11429                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->originating_invocation_id));
11430                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->originating_usn));
11431                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->local_usn));
11432                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
11433         }
11434         if (ndr_flags & NDR_BUFFERS) {
11435                 if (r->attribute_name) {
11436                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->attribute_name, CH_UTF16)));
11437                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
11438                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->attribute_name, CH_UTF16)));
11439                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->attribute_name, ndr_charset_length(r->attribute_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11440                 }
11441         }
11442         return NDR_ERR_SUCCESS;
11443 }
11444
11445 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaObjMetaData(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaObjMetaData *r)
11446 {
11447         uint32_t _ptr_attribute_name;
11448         uint32_t size_attribute_name_1 = 0;
11449         uint32_t length_attribute_name_1 = 0;
11450         TALLOC_CTX *_mem_save_attribute_name_0;
11451         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
11452         if (ndr_flags & NDR_SCALARS) {
11453                 NDR_CHECK(ndr_pull_align(ndr, 8));
11454                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_attribute_name));
11455                 if (_ptr_attribute_name) {
11456                         NDR_PULL_ALLOC(ndr, r->attribute_name);
11457                 } else {
11458                         r->attribute_name = NULL;
11459                 }
11460                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
11461                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->originating_change_time));
11462                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->originating_invocation_id));
11463                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->originating_usn));
11464                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->local_usn));
11465                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
11466         }
11467         if (ndr_flags & NDR_BUFFERS) {
11468                 if (r->attribute_name) {
11469                         _mem_save_attribute_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11470                         NDR_PULL_SET_MEM_CTX(ndr, r->attribute_name, 0);
11471                         NDR_CHECK(ndr_pull_array_size(ndr, &r->attribute_name));
11472                         NDR_CHECK(ndr_pull_array_length(ndr, &r->attribute_name));
11473                         size_attribute_name_1 = ndr_get_array_size(ndr, &r->attribute_name);
11474                         length_attribute_name_1 = ndr_get_array_length(ndr, &r->attribute_name);
11475                         if (length_attribute_name_1 > size_attribute_name_1) {
11476                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_attribute_name_1, length_attribute_name_1);
11477                         }
11478                         NDR_CHECK(ndr_check_string_terminator(ndr, length_attribute_name_1, sizeof(uint16_t)));
11479                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->attribute_name, length_attribute_name_1, sizeof(uint16_t), CH_UTF16));
11480                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribute_name_0, 0);
11481                 }
11482         }
11483         return NDR_ERR_SUCCESS;
11484 }
11485
11486 _PUBLIC_ void ndr_print_drsuapi_DsReplicaObjMetaData(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaObjMetaData *r)
11487 {
11488         ndr_print_struct(ndr, name, "drsuapi_DsReplicaObjMetaData");
11489         if (r == NULL) { ndr_print_null(ndr); return; }
11490         ndr->depth++;
11491         ndr_print_ptr(ndr, "attribute_name", r->attribute_name);
11492         ndr->depth++;
11493         if (r->attribute_name) {
11494                 ndr_print_string(ndr, "attribute_name", r->attribute_name);
11495         }
11496         ndr->depth--;
11497         ndr_print_uint32(ndr, "version", r->version);
11498         ndr_print_NTTIME(ndr, "originating_change_time", r->originating_change_time);
11499         ndr_print_GUID(ndr, "originating_invocation_id", &r->originating_invocation_id);
11500         ndr_print_hyper(ndr, "originating_usn", r->originating_usn);
11501         ndr_print_hyper(ndr, "local_usn", r->local_usn);
11502         ndr->depth--;
11503 }
11504
11505 static enum ndr_err_code ndr_push_drsuapi_DsReplicaObjMetaDataCtr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaObjMetaDataCtr *r)
11506 {
11507         uint32_t cntr_array_0;
11508         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
11509         if (ndr_flags & NDR_SCALARS) {
11510                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
11511                 NDR_CHECK(ndr_push_align(ndr, 8));
11512                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
11513                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
11514                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
11515                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjMetaData(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
11516                 }
11517                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
11518         }
11519         if (ndr_flags & NDR_BUFFERS) {
11520                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
11521                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjMetaData(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
11522                 }
11523         }
11524         return NDR_ERR_SUCCESS;
11525 }
11526
11527 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaObjMetaDataCtr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaObjMetaDataCtr *r)
11528 {
11529         uint32_t size_array_0 = 0;
11530         uint32_t cntr_array_0;
11531         TALLOC_CTX *_mem_save_array_0;
11532         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
11533         if (ndr_flags & NDR_SCALARS) {
11534                 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
11535                 NDR_CHECK(ndr_pull_align(ndr, 8));
11536                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
11537                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
11538                 size_array_0 = ndr_get_array_size(ndr, &r->array);
11539                 NDR_PULL_ALLOC_N(ndr, r->array, size_array_0);
11540                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
11541                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
11542                 for (cntr_array_0 = 0; cntr_array_0 < size_array_0; cntr_array_0++) {
11543                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjMetaData(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
11544                 }
11545                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
11546                 if (r->array) {
11547                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
11548                 }
11549                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
11550         }
11551         if (ndr_flags & NDR_BUFFERS) {
11552                 size_array_0 = ndr_get_array_size(ndr, &r->array);
11553                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
11554                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
11555                 for (cntr_array_0 = 0; cntr_array_0 < size_array_0; cntr_array_0++) {
11556                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjMetaData(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
11557                 }
11558                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
11559         }
11560         return NDR_ERR_SUCCESS;
11561 }
11562
11563 _PUBLIC_ void ndr_print_drsuapi_DsReplicaObjMetaDataCtr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaObjMetaDataCtr *r)
11564 {
11565         uint32_t cntr_array_0;
11566         ndr_print_struct(ndr, name, "drsuapi_DsReplicaObjMetaDataCtr");
11567         if (r == NULL) { ndr_print_null(ndr); return; }
11568         ndr->depth++;
11569         ndr_print_uint32(ndr, "count", r->count);
11570         ndr_print_uint32(ndr, "reserved", r->reserved);
11571         ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
11572         ndr->depth++;
11573         for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
11574                 ndr_print_drsuapi_DsReplicaObjMetaData(ndr, "array", &r->array[cntr_array_0]);
11575         }
11576         ndr->depth--;
11577         ndr->depth--;
11578 }
11579
11580 static enum ndr_err_code ndr_push_drsuapi_DsReplicaKccDsaFailure(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaKccDsaFailure *r)
11581 {
11582         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
11583         if (ndr_flags & NDR_SCALARS) {
11584                 NDR_CHECK(ndr_push_align(ndr, 5));
11585                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dsa_obj_dn));
11586                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->dsa_obj_guid));
11587                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->first_failure));
11588                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_failures));
11589                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->last_result));
11590                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
11591         }
11592         if (ndr_flags & NDR_BUFFERS) {
11593                 if (r->dsa_obj_dn) {
11594                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dsa_obj_dn, CH_UTF16)));
11595                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
11596                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dsa_obj_dn, CH_UTF16)));
11597                         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));
11598                 }
11599         }
11600         return NDR_ERR_SUCCESS;
11601 }
11602
11603 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaKccDsaFailure(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaKccDsaFailure *r)
11604 {
11605         uint32_t _ptr_dsa_obj_dn;
11606         uint32_t size_dsa_obj_dn_1 = 0;
11607         uint32_t length_dsa_obj_dn_1 = 0;
11608         TALLOC_CTX *_mem_save_dsa_obj_dn_0;
11609         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
11610         if (ndr_flags & NDR_SCALARS) {
11611                 NDR_CHECK(ndr_pull_align(ndr, 5));
11612                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dsa_obj_dn));
11613                 if (_ptr_dsa_obj_dn) {
11614                         NDR_PULL_ALLOC(ndr, r->dsa_obj_dn);
11615                 } else {
11616                         r->dsa_obj_dn = NULL;
11617                 }
11618                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->dsa_obj_guid));
11619                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->first_failure));
11620                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_failures));
11621                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_result));
11622                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
11623         }
11624         if (ndr_flags & NDR_BUFFERS) {
11625                 if (r->dsa_obj_dn) {
11626                         _mem_save_dsa_obj_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
11627                         NDR_PULL_SET_MEM_CTX(ndr, r->dsa_obj_dn, 0);
11628                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dsa_obj_dn));
11629                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dsa_obj_dn));
11630                         size_dsa_obj_dn_1 = ndr_get_array_size(ndr, &r->dsa_obj_dn);
11631                         length_dsa_obj_dn_1 = ndr_get_array_length(ndr, &r->dsa_obj_dn);
11632                         if (length_dsa_obj_dn_1 > size_dsa_obj_dn_1) {
11633                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_dsa_obj_dn_1, length_dsa_obj_dn_1);
11634                         }
11635                         NDR_CHECK(ndr_check_string_terminator(ndr, length_dsa_obj_dn_1, sizeof(uint16_t)));
11636                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dsa_obj_dn, length_dsa_obj_dn_1, sizeof(uint16_t), CH_UTF16));
11637                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dsa_obj_dn_0, 0);
11638                 }
11639         }
11640         return NDR_ERR_SUCCESS;
11641 }
11642
11643 _PUBLIC_ void ndr_print_drsuapi_DsReplicaKccDsaFailure(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaKccDsaFailure *r)
11644 {
11645         ndr_print_struct(ndr, name, "drsuapi_DsReplicaKccDsaFailure");
11646         if (r == NULL) { ndr_print_null(ndr); return; }
11647         ndr->depth++;
11648         ndr_print_ptr(ndr, "dsa_obj_dn", r->dsa_obj_dn);
11649         ndr->depth++;
11650         if (r->dsa_obj_dn) {
11651                 ndr_print_string(ndr, "dsa_obj_dn", r->dsa_obj_dn);
11652         }
11653         ndr->depth--;
11654         ndr_print_GUID(ndr, "dsa_obj_guid", &r->dsa_obj_guid);
11655         ndr_print_NTTIME(ndr, "first_failure", r->first_failure);
11656         ndr_print_uint32(ndr, "num_failures", r->num_failures);
11657         ndr_print_WERROR(ndr, "last_result", r->last_result);
11658         ndr->depth--;
11659 }
11660
11661 static enum ndr_err_code ndr_push_drsuapi_DsReplicaKccDsaFailuresCtr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaKccDsaFailuresCtr *r)
11662 {
11663         uint32_t cntr_array_0;
11664         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
11665         if (ndr_flags & NDR_SCALARS) {
11666                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
11667                 NDR_CHECK(ndr_push_align(ndr, 5));
11668                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
11669                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
11670                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
11671                         NDR_CHECK(ndr_push_drsuapi_DsReplicaKccDsaFailure(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
11672                 }
11673                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
11674         }
11675         if (ndr_flags & NDR_BUFFERS) {
11676                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
11677                         NDR_CHECK(ndr_push_drsuapi_DsReplicaKccDsaFailure(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
11678                 }
11679         }
11680         return NDR_ERR_SUCCESS;
11681 }
11682
11683 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaKccDsaFailuresCtr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaKccDsaFailuresCtr *r)
11684 {
11685         uint32_t size_array_0 = 0;
11686         uint32_t cntr_array_0;
11687         TALLOC_CTX *_mem_save_array_0;
11688         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
11689         if (ndr_flags & NDR_SCALARS) {
11690                 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
11691                 NDR_CHECK(ndr_pull_align(ndr, 5));
11692                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
11693                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
11694                 size_array_0 = ndr_get_array_size(ndr, &r->array);
11695                 NDR_PULL_ALLOC_N(ndr, r->array, size_array_0);
11696                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
11697                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
11698                 for (cntr_array_0 = 0; cntr_array_0 < size_array_0; cntr_array_0++) {
11699                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaKccDsaFailure(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
11700                 }
11701                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
11702                 if (r->array) {
11703                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
11704                 }
11705                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
11706         }
11707         if (ndr_flags & NDR_BUFFERS) {
11708                 size_array_0 = ndr_get_array_size(ndr, &r->array);
11709                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
11710                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
11711                 for (cntr_array_0 = 0; cntr_array_0 < size_array_0; cntr_array_0++) {
11712                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaKccDsaFailure(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
11713                 }
11714                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
11715         }
11716         return NDR_ERR_SUCCESS;
11717 }
11718
11719 _PUBLIC_ void ndr_print_drsuapi_DsReplicaKccDsaFailuresCtr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaKccDsaFailuresCtr *r)
11720 {
11721         uint32_t cntr_array_0;
11722         ndr_print_struct(ndr, name, "drsuapi_DsReplicaKccDsaFailuresCtr");
11723         if (r == NULL) { ndr_print_null(ndr); return; }
11724         ndr->depth++;
11725         ndr_print_uint32(ndr, "count", r->count);
11726         ndr_print_uint32(ndr, "reserved", r->reserved);
11727         ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
11728         ndr->depth++;
11729         for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
11730                 ndr_print_drsuapi_DsReplicaKccDsaFailure(ndr, "array", &r->array[cntr_array_0]);
11731         }
11732         ndr->depth--;
11733         ndr->depth--;
11734 }
11735
11736 static enum ndr_err_code ndr_push_drsuapi_DsReplicaOpType(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsReplicaOpType r)
11737 {
11738         NDR_CHECK(ndr_push_enum_uint1632(ndr, NDR_SCALARS, r));
11739         return NDR_ERR_SUCCESS;
11740 }
11741
11742 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaOpType(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsReplicaOpType *r)
11743 {
11744         uint16_t v;
11745         NDR_CHECK(ndr_pull_enum_uint1632(ndr, NDR_SCALARS, &v));
11746         *r = v;
11747         return NDR_ERR_SUCCESS;
11748 }
11749
11750 _PUBLIC_ void ndr_print_drsuapi_DsReplicaOpType(struct ndr_print *ndr, const char *name, enum drsuapi_DsReplicaOpType r)
11751 {
11752         const char *val = NULL;
11753
11754         switch (r) {
11755                 case DRSUAPI_DS_REPLICA_OP_TYPE_SYNC: val = "DRSUAPI_DS_REPLICA_OP_TYPE_SYNC"; break;
11756                 case DRSUAPI_DS_REPLICA_OP_TYPE_ADD: val = "DRSUAPI_DS_REPLICA_OP_TYPE_ADD"; break;
11757                 case DRSUAPI_DS_REPLICA_OP_TYPE_DELETE: val = "DRSUAPI_DS_REPLICA_OP_TYPE_DELETE"; break;
11758                 case DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY: val = "DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY"; break;
11759                 case DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS: val = "DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS"; break;
11760         }
11761         ndr_print_enum(ndr, name, "ENUM", val, r);
11762 }
11763
11764 static enum ndr_err_code ndr_push_drsuapi_DsReplicaOp(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaOp *r)
11765 {
11766         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
11767         if (ndr_flags & NDR_SCALARS) {
11768                 NDR_CHECK(ndr_push_align(ndr, 5));
11769                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->operation_start));
11770                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->serial_num));
11771                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
11772                 NDR_CHECK(ndr_push_drsuapi_DsReplicaOpType(ndr, NDR_SCALARS, r->operation_type));
11773                 NDR_CHECK(ndr_push_drsuapi_DrsOptions(ndr, NDR_SCALARS, r->options));
11774                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->nc_dn));
11775                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->remote_dsa_obj_dn));
11776                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->remote_dsa_address));
11777                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->nc_obj_guid));
11778                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->remote_dsa_obj_guid));
11779                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
11780         }
11781         if (ndr_flags & NDR_BUFFERS) {
11782                 if (r->nc_dn) {
11783                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->nc_dn, CH_UTF16)));
11784                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
11785                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->nc_dn, CH_UTF16)));
11786                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->nc_dn, ndr_charset_length(r->nc_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11787                 }
11788                 if (r->remote_dsa_obj_dn) {
11789                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->remote_dsa_obj_dn, CH_UTF16)));
11790                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
11791                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->remote_dsa_obj_dn, CH_UTF16)));
11792                         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));
11793                 }
11794                 if (r->remote_dsa_address) {
11795                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->remote_dsa_address, CH_UTF16)));
11796                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
11797                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->remote_dsa_address, CH_UTF16)));
11798                         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));
11799                 }
11800         }
11801         return NDR_ERR_SUCCESS;
11802 }
11803
11804 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaOp(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaOp *r)
11805 {
11806         uint32_t _ptr_nc_dn;
11807         uint32_t size_nc_dn_1 = 0;
11808         uint32_t length_nc_dn_1 = 0;
11809         TALLOC_CTX *_mem_save_nc_dn_0;
11810         uint32_t _ptr_remote_dsa_obj_dn;
11811         uint32_t size_remote_dsa_obj_dn_1 = 0;
11812         uint32_t length_remote_dsa_obj_dn_1 = 0;
11813         TALLOC_CTX *_mem_save_remote_dsa_obj_dn_0;
11814         uint32_t _ptr_remote_dsa_address;
11815         uint32_t size_remote_dsa_address_1 = 0;
11816         uint32_t length_remote_dsa_address_1 = 0;
11817         TALLOC_CTX *_mem_save_remote_dsa_address_0;
11818         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
11819         if (ndr_flags & NDR_SCALARS) {
11820                 NDR_CHECK(ndr_pull_align(ndr, 5));
11821                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->operation_start));
11822                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->serial_num));
11823                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
11824                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOpType(ndr, NDR_SCALARS, &r->operation_type));
11825                 NDR_CHECK(ndr_pull_drsuapi_DrsOptions(ndr, NDR_SCALARS, &r->options));
11826                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_nc_dn));
11827                 if (_ptr_nc_dn) {
11828                         NDR_PULL_ALLOC(ndr, r->nc_dn);
11829                 } else {
11830                         r->nc_dn = NULL;
11831                 }
11832                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_remote_dsa_obj_dn));
11833                 if (_ptr_remote_dsa_obj_dn) {
11834                         NDR_PULL_ALLOC(ndr, r->remote_dsa_obj_dn);
11835                 } else {
11836                         r->remote_dsa_obj_dn = NULL;
11837                 }
11838                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_remote_dsa_address));
11839                 if (_ptr_remote_dsa_address) {
11840                         NDR_PULL_ALLOC(ndr, r->remote_dsa_address);
11841                 } else {
11842                         r->remote_dsa_address = NULL;
11843                 }
11844                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->nc_obj_guid));
11845                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->remote_dsa_obj_guid));
11846                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
11847         }
11848         if (ndr_flags & NDR_BUFFERS) {
11849                 if (r->nc_dn) {
11850                         _mem_save_nc_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
11851                         NDR_PULL_SET_MEM_CTX(ndr, r->nc_dn, 0);
11852                         NDR_CHECK(ndr_pull_array_size(ndr, &r->nc_dn));
11853                         NDR_CHECK(ndr_pull_array_length(ndr, &r->nc_dn));
11854                         size_nc_dn_1 = ndr_get_array_size(ndr, &r->nc_dn);
11855                         length_nc_dn_1 = ndr_get_array_length(ndr, &r->nc_dn);
11856                         if (length_nc_dn_1 > size_nc_dn_1) {
11857                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_nc_dn_1, length_nc_dn_1);
11858                         }
11859                         NDR_CHECK(ndr_check_string_terminator(ndr, length_nc_dn_1, sizeof(uint16_t)));
11860                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->nc_dn, length_nc_dn_1, sizeof(uint16_t), CH_UTF16));
11861                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_nc_dn_0, 0);
11862                 }
11863                 if (r->remote_dsa_obj_dn) {
11864                         _mem_save_remote_dsa_obj_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
11865                         NDR_PULL_SET_MEM_CTX(ndr, r->remote_dsa_obj_dn, 0);
11866                         NDR_CHECK(ndr_pull_array_size(ndr, &r->remote_dsa_obj_dn));
11867                         NDR_CHECK(ndr_pull_array_length(ndr, &r->remote_dsa_obj_dn));
11868                         size_remote_dsa_obj_dn_1 = ndr_get_array_size(ndr, &r->remote_dsa_obj_dn);
11869                         length_remote_dsa_obj_dn_1 = ndr_get_array_length(ndr, &r->remote_dsa_obj_dn);
11870                         if (length_remote_dsa_obj_dn_1 > size_remote_dsa_obj_dn_1) {
11871                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_remote_dsa_obj_dn_1, length_remote_dsa_obj_dn_1);
11872                         }
11873                         NDR_CHECK(ndr_check_string_terminator(ndr, length_remote_dsa_obj_dn_1, sizeof(uint16_t)));
11874                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->remote_dsa_obj_dn, length_remote_dsa_obj_dn_1, sizeof(uint16_t), CH_UTF16));
11875                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_remote_dsa_obj_dn_0, 0);
11876                 }
11877                 if (r->remote_dsa_address) {
11878                         _mem_save_remote_dsa_address_0 = NDR_PULL_GET_MEM_CTX(ndr);
11879                         NDR_PULL_SET_MEM_CTX(ndr, r->remote_dsa_address, 0);
11880                         NDR_CHECK(ndr_pull_array_size(ndr, &r->remote_dsa_address));
11881                         NDR_CHECK(ndr_pull_array_length(ndr, &r->remote_dsa_address));
11882                         size_remote_dsa_address_1 = ndr_get_array_size(ndr, &r->remote_dsa_address);
11883                         length_remote_dsa_address_1 = ndr_get_array_length(ndr, &r->remote_dsa_address);
11884                         if (length_remote_dsa_address_1 > size_remote_dsa_address_1) {
11885                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_remote_dsa_address_1, length_remote_dsa_address_1);
11886                         }
11887                         NDR_CHECK(ndr_check_string_terminator(ndr, length_remote_dsa_address_1, sizeof(uint16_t)));
11888                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->remote_dsa_address, length_remote_dsa_address_1, sizeof(uint16_t), CH_UTF16));
11889                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_remote_dsa_address_0, 0);
11890                 }
11891         }
11892         return NDR_ERR_SUCCESS;
11893 }
11894
11895 _PUBLIC_ void ndr_print_drsuapi_DsReplicaOp(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaOp *r)
11896 {
11897         ndr_print_struct(ndr, name, "drsuapi_DsReplicaOp");
11898         if (r == NULL) { ndr_print_null(ndr); return; }
11899         ndr->depth++;
11900         ndr_print_NTTIME(ndr, "operation_start", r->operation_start);
11901         ndr_print_uint32(ndr, "serial_num", r->serial_num);
11902         ndr_print_uint32(ndr, "priority", r->priority);
11903         ndr_print_drsuapi_DsReplicaOpType(ndr, "operation_type", r->operation_type);
11904         ndr_print_drsuapi_DrsOptions(ndr, "options", r->options);
11905         ndr_print_ptr(ndr, "nc_dn", r->nc_dn);
11906         ndr->depth++;
11907         if (r->nc_dn) {
11908                 ndr_print_string(ndr, "nc_dn", r->nc_dn);
11909         }
11910         ndr->depth--;
11911         ndr_print_ptr(ndr, "remote_dsa_obj_dn", r->remote_dsa_obj_dn);
11912         ndr->depth++;
11913         if (r->remote_dsa_obj_dn) {
11914                 ndr_print_string(ndr, "remote_dsa_obj_dn", r->remote_dsa_obj_dn);
11915         }
11916         ndr->depth--;
11917         ndr_print_ptr(ndr, "remote_dsa_address", r->remote_dsa_address);
11918         ndr->depth++;
11919         if (r->remote_dsa_address) {
11920                 ndr_print_string(ndr, "remote_dsa_address", r->remote_dsa_address);
11921         }
11922         ndr->depth--;
11923         ndr_print_GUID(ndr, "nc_obj_guid", &r->nc_obj_guid);
11924         ndr_print_GUID(ndr, "remote_dsa_obj_guid", &r->remote_dsa_obj_guid);
11925         ndr->depth--;
11926 }
11927
11928 static enum ndr_err_code ndr_push_drsuapi_DsReplicaOpCtr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaOpCtr *r)
11929 {
11930         uint32_t cntr_array_0;
11931         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
11932         if (ndr_flags & NDR_SCALARS) {
11933                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
11934                 NDR_CHECK(ndr_push_align(ndr, 5));
11935                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->time));
11936                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
11937                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
11938                         NDR_CHECK(ndr_push_drsuapi_DsReplicaOp(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
11939                 }
11940                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
11941         }
11942         if (ndr_flags & NDR_BUFFERS) {
11943                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
11944                         NDR_CHECK(ndr_push_drsuapi_DsReplicaOp(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
11945                 }
11946         }
11947         return NDR_ERR_SUCCESS;
11948 }
11949
11950 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaOpCtr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaOpCtr *r)
11951 {
11952         uint32_t size_array_0 = 0;
11953         uint32_t cntr_array_0;
11954         TALLOC_CTX *_mem_save_array_0;
11955         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
11956         if (ndr_flags & NDR_SCALARS) {
11957                 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
11958                 NDR_CHECK(ndr_pull_align(ndr, 5));
11959                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->time));
11960                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
11961                 size_array_0 = ndr_get_array_size(ndr, &r->array);
11962                 NDR_PULL_ALLOC_N(ndr, r->array, size_array_0);
11963                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
11964                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
11965                 for (cntr_array_0 = 0; cntr_array_0 < size_array_0; cntr_array_0++) {
11966                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaOp(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
11967                 }
11968                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
11969                 if (r->array) {
11970                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
11971                 }
11972                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
11973         }
11974         if (ndr_flags & NDR_BUFFERS) {
11975                 size_array_0 = ndr_get_array_size(ndr, &r->array);
11976                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
11977                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
11978                 for (cntr_array_0 = 0; cntr_array_0 < size_array_0; cntr_array_0++) {
11979                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaOp(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
11980                 }
11981                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
11982         }
11983         return NDR_ERR_SUCCESS;
11984 }
11985
11986 _PUBLIC_ void ndr_print_drsuapi_DsReplicaOpCtr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaOpCtr *r)
11987 {
11988         uint32_t cntr_array_0;
11989         ndr_print_struct(ndr, name, "drsuapi_DsReplicaOpCtr");
11990         if (r == NULL) { ndr_print_null(ndr); return; }
11991         ndr->depth++;
11992         ndr_print_NTTIME(ndr, "time", r->time);
11993         ndr_print_uint32(ndr, "count", r->count);
11994         ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
11995         ndr->depth++;
11996         for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
11997                 ndr_print_drsuapi_DsReplicaOp(ndr, "array", &r->array[cntr_array_0]);
11998         }
11999         ndr->depth--;
12000         ndr->depth--;
12001 }
12002
12003 static enum ndr_err_code ndr_push_drsuapi_DsReplicaAttrValMetaData(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaAttrValMetaData *r)
12004 {
12005         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
12006         if (ndr_flags & NDR_SCALARS) {
12007                 NDR_CHECK(ndr_push_align(ndr, 8));
12008                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->attribute_name));
12009                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->object_dn));
12010                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_DATA_BLOB(0, r->binary, 0)));
12011                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->binary));
12012                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->deleted));
12013                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->created));
12014                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
12015                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->originating_change_time));
12016                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->originating_invocation_id));
12017                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->originating_usn));
12018                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->local_usn));
12019                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
12020         }
12021         if (ndr_flags & NDR_BUFFERS) {
12022                 if (r->attribute_name) {
12023                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->attribute_name, CH_UTF16)));
12024                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
12025                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->attribute_name, CH_UTF16)));
12026                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->attribute_name, ndr_charset_length(r->attribute_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12027                 }
12028                 if (r->object_dn) {
12029                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->object_dn, CH_UTF16)));
12030                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
12031                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->object_dn, CH_UTF16)));
12032                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->object_dn, ndr_charset_length(r->object_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12033                 }
12034                 if (r->binary) {
12035                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->binary));
12036                 }
12037         }
12038         return NDR_ERR_SUCCESS;
12039 }
12040
12041 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaAttrValMetaData(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaAttrValMetaData *r)
12042 {
12043         uint32_t _ptr_attribute_name;
12044         uint32_t size_attribute_name_1 = 0;
12045         uint32_t length_attribute_name_1 = 0;
12046         TALLOC_CTX *_mem_save_attribute_name_0;
12047         uint32_t _ptr_object_dn;
12048         uint32_t size_object_dn_1 = 0;
12049         uint32_t length_object_dn_1 = 0;
12050         TALLOC_CTX *_mem_save_object_dn_0;
12051         uint32_t _ptr_binary;
12052         TALLOC_CTX *_mem_save_binary_0;
12053         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
12054         if (ndr_flags & NDR_SCALARS) {
12055                 NDR_CHECK(ndr_pull_align(ndr, 8));
12056                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_attribute_name));
12057                 if (_ptr_attribute_name) {
12058                         NDR_PULL_ALLOC(ndr, r->attribute_name);
12059                 } else {
12060                         r->attribute_name = NULL;
12061                 }
12062                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_object_dn));
12063                 if (_ptr_object_dn) {
12064                         NDR_PULL_ALLOC(ndr, r->object_dn);
12065                 } else {
12066                         r->object_dn = NULL;
12067                 }
12068                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size_binary));
12069                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_binary));
12070                 if (_ptr_binary) {
12071                         NDR_PULL_ALLOC(ndr, r->binary);
12072                 } else {
12073                         r->binary = NULL;
12074                 }
12075                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->deleted));
12076                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->created));
12077                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
12078                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->originating_change_time));
12079                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->originating_invocation_id));
12080                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->originating_usn));
12081                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->local_usn));
12082                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
12083         }
12084         if (ndr_flags & NDR_BUFFERS) {
12085                 if (r->attribute_name) {
12086                         _mem_save_attribute_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12087                         NDR_PULL_SET_MEM_CTX(ndr, r->attribute_name, 0);
12088                         NDR_CHECK(ndr_pull_array_size(ndr, &r->attribute_name));
12089                         NDR_CHECK(ndr_pull_array_length(ndr, &r->attribute_name));
12090                         size_attribute_name_1 = ndr_get_array_size(ndr, &r->attribute_name);
12091                         length_attribute_name_1 = ndr_get_array_length(ndr, &r->attribute_name);
12092                         if (length_attribute_name_1 > size_attribute_name_1) {
12093                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_attribute_name_1, length_attribute_name_1);
12094                         }
12095                         NDR_CHECK(ndr_check_string_terminator(ndr, length_attribute_name_1, sizeof(uint16_t)));
12096                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->attribute_name, length_attribute_name_1, sizeof(uint16_t), CH_UTF16));
12097                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribute_name_0, 0);
12098                 }
12099                 if (r->object_dn) {
12100                         _mem_save_object_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
12101                         NDR_PULL_SET_MEM_CTX(ndr, r->object_dn, 0);
12102                         NDR_CHECK(ndr_pull_array_size(ndr, &r->object_dn));
12103                         NDR_CHECK(ndr_pull_array_length(ndr, &r->object_dn));
12104                         size_object_dn_1 = ndr_get_array_size(ndr, &r->object_dn);
12105                         length_object_dn_1 = ndr_get_array_length(ndr, &r->object_dn);
12106                         if (length_object_dn_1 > size_object_dn_1) {
12107                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_object_dn_1, length_object_dn_1);
12108                         }
12109                         NDR_CHECK(ndr_check_string_terminator(ndr, length_object_dn_1, sizeof(uint16_t)));
12110                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->object_dn, length_object_dn_1, sizeof(uint16_t), CH_UTF16));
12111                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_object_dn_0, 0);
12112                 }
12113                 if (r->binary) {
12114                         _mem_save_binary_0 = NDR_PULL_GET_MEM_CTX(ndr);
12115                         NDR_PULL_SET_MEM_CTX(ndr, r->binary, 0);
12116                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->binary));
12117                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_binary_0, 0);
12118                 }
12119         }
12120         return NDR_ERR_SUCCESS;
12121 }
12122
12123 _PUBLIC_ void ndr_print_drsuapi_DsReplicaAttrValMetaData(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaAttrValMetaData *r)
12124 {
12125         ndr_print_struct(ndr, name, "drsuapi_DsReplicaAttrValMetaData");
12126         if (r == NULL) { ndr_print_null(ndr); return; }
12127         ndr->depth++;
12128         ndr_print_ptr(ndr, "attribute_name", r->attribute_name);
12129         ndr->depth++;
12130         if (r->attribute_name) {
12131                 ndr_print_string(ndr, "attribute_name", r->attribute_name);
12132         }
12133         ndr->depth--;
12134         ndr_print_ptr(ndr, "object_dn", r->object_dn);
12135         ndr->depth++;
12136         if (r->object_dn) {
12137                 ndr_print_string(ndr, "object_dn", r->object_dn);
12138         }
12139         ndr->depth--;
12140         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);
12141         ndr_print_ptr(ndr, "binary", r->binary);
12142         ndr->depth++;
12143         if (r->binary) {
12144                 ndr_print_DATA_BLOB(ndr, "binary", *r->binary);
12145         }
12146         ndr->depth--;
12147         ndr_print_NTTIME(ndr, "deleted", r->deleted);
12148         ndr_print_NTTIME(ndr, "created", r->created);
12149         ndr_print_uint32(ndr, "version", r->version);
12150         ndr_print_NTTIME(ndr, "originating_change_time", r->originating_change_time);
12151         ndr_print_GUID(ndr, "originating_invocation_id", &r->originating_invocation_id);
12152         ndr_print_hyper(ndr, "originating_usn", r->originating_usn);
12153         ndr_print_hyper(ndr, "local_usn", r->local_usn);
12154         ndr->depth--;
12155 }
12156
12157 static enum ndr_err_code ndr_push_drsuapi_DsReplicaAttrValMetaDataCtr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaAttrValMetaDataCtr *r)
12158 {
12159         uint32_t cntr_array_0;
12160         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
12161         if (ndr_flags & NDR_SCALARS) {
12162                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
12163                 NDR_CHECK(ndr_push_align(ndr, 8));
12164                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
12165                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumeration_context));
12166                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
12167                         NDR_CHECK(ndr_push_drsuapi_DsReplicaAttrValMetaData(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
12168                 }
12169                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
12170         }
12171         if (ndr_flags & NDR_BUFFERS) {
12172                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
12173                         NDR_CHECK(ndr_push_drsuapi_DsReplicaAttrValMetaData(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
12174                 }
12175         }
12176         return NDR_ERR_SUCCESS;
12177 }
12178
12179 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaAttrValMetaDataCtr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaAttrValMetaDataCtr *r)
12180 {
12181         uint32_t size_array_0 = 0;
12182         uint32_t cntr_array_0;
12183         TALLOC_CTX *_mem_save_array_0;
12184         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
12185         if (ndr_flags & NDR_SCALARS) {
12186                 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
12187                 NDR_CHECK(ndr_pull_align(ndr, 8));
12188                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
12189                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumeration_context));
12190                 size_array_0 = ndr_get_array_size(ndr, &r->array);
12191                 NDR_PULL_ALLOC_N(ndr, r->array, size_array_0);
12192                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
12193                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
12194                 for (cntr_array_0 = 0; cntr_array_0 < size_array_0; cntr_array_0++) {
12195                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaAttrValMetaData(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
12196                 }
12197                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
12198                 if (r->array) {
12199                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
12200                 }
12201                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
12202         }
12203         if (ndr_flags & NDR_BUFFERS) {
12204                 size_array_0 = ndr_get_array_size(ndr, &r->array);
12205                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
12206                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
12207                 for (cntr_array_0 = 0; cntr_array_0 < size_array_0; cntr_array_0++) {
12208                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaAttrValMetaData(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
12209                 }
12210                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
12211         }
12212         return NDR_ERR_SUCCESS;
12213 }
12214
12215 _PUBLIC_ void ndr_print_drsuapi_DsReplicaAttrValMetaDataCtr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaAttrValMetaDataCtr *r)
12216 {
12217         uint32_t cntr_array_0;
12218         ndr_print_struct(ndr, name, "drsuapi_DsReplicaAttrValMetaDataCtr");
12219         if (r == NULL) { ndr_print_null(ndr); return; }
12220         ndr->depth++;
12221         ndr_print_uint32(ndr, "count", r->count);
12222         ndr_print_uint32(ndr, "enumeration_context", r->enumeration_context);
12223         ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
12224         ndr->depth++;
12225         for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
12226                 ndr_print_drsuapi_DsReplicaAttrValMetaData(ndr, "array", &r->array[cntr_array_0]);
12227         }
12228         ndr->depth--;
12229         ndr->depth--;
12230 }
12231
12232 static enum ndr_err_code ndr_push_drsuapi_DsReplicaCursor2Ctr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaCursor2Ctr *r)
12233 {
12234         uint32_t cntr_array_0;
12235         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
12236         if (ndr_flags & NDR_SCALARS) {
12237                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
12238                 NDR_CHECK(ndr_push_align(ndr, 8));
12239                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
12240                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumeration_context));
12241                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
12242                         NDR_CHECK(ndr_push_drsuapi_DsReplicaCursor2(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
12243                 }
12244                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
12245         }
12246         if (ndr_flags & NDR_BUFFERS) {
12247         }
12248         return NDR_ERR_SUCCESS;
12249 }
12250
12251 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaCursor2Ctr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaCursor2Ctr *r)
12252 {
12253         uint32_t size_array_0 = 0;
12254         uint32_t cntr_array_0;
12255         TALLOC_CTX *_mem_save_array_0;
12256         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
12257         if (ndr_flags & NDR_SCALARS) {
12258                 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
12259                 NDR_CHECK(ndr_pull_align(ndr, 8));
12260                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
12261                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumeration_context));
12262                 size_array_0 = ndr_get_array_size(ndr, &r->array);
12263                 NDR_PULL_ALLOC_N(ndr, r->array, size_array_0);
12264                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
12265                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
12266                 for (cntr_array_0 = 0; cntr_array_0 < size_array_0; cntr_array_0++) {
12267                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursor2(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
12268                 }
12269                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
12270                 if (r->array) {
12271                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
12272                 }
12273                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
12274         }
12275         if (ndr_flags & NDR_BUFFERS) {
12276         }
12277         return NDR_ERR_SUCCESS;
12278 }
12279
12280 _PUBLIC_ void ndr_print_drsuapi_DsReplicaCursor2Ctr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaCursor2Ctr *r)
12281 {
12282         uint32_t cntr_array_0;
12283         ndr_print_struct(ndr, name, "drsuapi_DsReplicaCursor2Ctr");
12284         if (r == NULL) { ndr_print_null(ndr); return; }
12285         ndr->depth++;
12286         ndr_print_uint32(ndr, "count", r->count);
12287         ndr_print_uint32(ndr, "enumeration_context", r->enumeration_context);
12288         ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
12289         ndr->depth++;
12290         for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
12291                 ndr_print_drsuapi_DsReplicaCursor2(ndr, "array", &r->array[cntr_array_0]);
12292         }
12293         ndr->depth--;
12294         ndr->depth--;
12295 }
12296
12297 static enum ndr_err_code ndr_push_drsuapi_DsReplicaCursor3(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaCursor3 *r)
12298 {
12299         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
12300         if (ndr_flags & NDR_SCALARS) {
12301                 NDR_CHECK(ndr_push_align(ndr, 8));
12302                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
12303                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->highest_usn));
12304                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_sync_success));
12305                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->source_dsa_obj_dn));
12306                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
12307         }
12308         if (ndr_flags & NDR_BUFFERS) {
12309                 if (r->source_dsa_obj_dn) {
12310                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->source_dsa_obj_dn, CH_UTF16)));
12311                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
12312                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->source_dsa_obj_dn, CH_UTF16)));
12313                         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));
12314                 }
12315         }
12316         return NDR_ERR_SUCCESS;
12317 }
12318
12319 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaCursor3(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaCursor3 *r)
12320 {
12321         uint32_t _ptr_source_dsa_obj_dn;
12322         uint32_t size_source_dsa_obj_dn_1 = 0;
12323         uint32_t length_source_dsa_obj_dn_1 = 0;
12324         TALLOC_CTX *_mem_save_source_dsa_obj_dn_0;
12325         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
12326         if (ndr_flags & NDR_SCALARS) {
12327                 NDR_CHECK(ndr_pull_align(ndr, 8));
12328                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
12329                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->highest_usn));
12330                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_sync_success));
12331                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_source_dsa_obj_dn));
12332                 if (_ptr_source_dsa_obj_dn) {
12333                         NDR_PULL_ALLOC(ndr, r->source_dsa_obj_dn);
12334                 } else {
12335                         r->source_dsa_obj_dn = NULL;
12336                 }
12337                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
12338         }
12339         if (ndr_flags & NDR_BUFFERS) {
12340                 if (r->source_dsa_obj_dn) {
12341                         _mem_save_source_dsa_obj_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
12342                         NDR_PULL_SET_MEM_CTX(ndr, r->source_dsa_obj_dn, 0);
12343                         NDR_CHECK(ndr_pull_array_size(ndr, &r->source_dsa_obj_dn));
12344                         NDR_CHECK(ndr_pull_array_length(ndr, &r->source_dsa_obj_dn));
12345                         size_source_dsa_obj_dn_1 = ndr_get_array_size(ndr, &r->source_dsa_obj_dn);
12346                         length_source_dsa_obj_dn_1 = ndr_get_array_length(ndr, &r->source_dsa_obj_dn);
12347                         if (length_source_dsa_obj_dn_1 > size_source_dsa_obj_dn_1) {
12348                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_source_dsa_obj_dn_1, length_source_dsa_obj_dn_1);
12349                         }
12350                         NDR_CHECK(ndr_check_string_terminator(ndr, length_source_dsa_obj_dn_1, sizeof(uint16_t)));
12351                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->source_dsa_obj_dn, length_source_dsa_obj_dn_1, sizeof(uint16_t), CH_UTF16));
12352                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_source_dsa_obj_dn_0, 0);
12353                 }
12354         }
12355         return NDR_ERR_SUCCESS;
12356 }
12357
12358 _PUBLIC_ void ndr_print_drsuapi_DsReplicaCursor3(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaCursor3 *r)
12359 {
12360         ndr_print_struct(ndr, name, "drsuapi_DsReplicaCursor3");
12361         if (r == NULL) { ndr_print_null(ndr); return; }
12362         ndr->depth++;
12363         ndr_print_GUID(ndr, "source_dsa_invocation_id", &r->source_dsa_invocation_id);
12364         ndr_print_hyper(ndr, "highest_usn", r->highest_usn);
12365         ndr_print_NTTIME(ndr, "last_sync_success", r->last_sync_success);
12366         ndr_print_ptr(ndr, "source_dsa_obj_dn", r->source_dsa_obj_dn);
12367         ndr->depth++;
12368         if (r->source_dsa_obj_dn) {
12369                 ndr_print_string(ndr, "source_dsa_obj_dn", r->source_dsa_obj_dn);
12370         }
12371         ndr->depth--;
12372         ndr->depth--;
12373 }
12374
12375 static enum ndr_err_code ndr_push_drsuapi_DsReplicaCursor3Ctr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaCursor3Ctr *r)
12376 {
12377         uint32_t cntr_array_0;
12378         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
12379         if (ndr_flags & NDR_SCALARS) {
12380                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
12381                 NDR_CHECK(ndr_push_align(ndr, 8));
12382                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
12383                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumeration_context));
12384                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
12385                         NDR_CHECK(ndr_push_drsuapi_DsReplicaCursor3(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
12386                 }
12387                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
12388         }
12389         if (ndr_flags & NDR_BUFFERS) {
12390                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
12391                         NDR_CHECK(ndr_push_drsuapi_DsReplicaCursor3(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
12392                 }
12393         }
12394         return NDR_ERR_SUCCESS;
12395 }
12396
12397 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaCursor3Ctr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaCursor3Ctr *r)
12398 {
12399         uint32_t size_array_0 = 0;
12400         uint32_t cntr_array_0;
12401         TALLOC_CTX *_mem_save_array_0;
12402         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
12403         if (ndr_flags & NDR_SCALARS) {
12404                 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
12405                 NDR_CHECK(ndr_pull_align(ndr, 8));
12406                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
12407                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumeration_context));
12408                 size_array_0 = ndr_get_array_size(ndr, &r->array);
12409                 NDR_PULL_ALLOC_N(ndr, r->array, size_array_0);
12410                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
12411                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
12412                 for (cntr_array_0 = 0; cntr_array_0 < size_array_0; cntr_array_0++) {
12413                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursor3(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
12414                 }
12415                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
12416                 if (r->array) {
12417                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
12418                 }
12419                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
12420         }
12421         if (ndr_flags & NDR_BUFFERS) {
12422                 size_array_0 = ndr_get_array_size(ndr, &r->array);
12423                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
12424                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
12425                 for (cntr_array_0 = 0; cntr_array_0 < size_array_0; cntr_array_0++) {
12426                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursor3(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
12427                 }
12428                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
12429         }
12430         return NDR_ERR_SUCCESS;
12431 }
12432
12433 _PUBLIC_ void ndr_print_drsuapi_DsReplicaCursor3Ctr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaCursor3Ctr *r)
12434 {
12435         uint32_t cntr_array_0;
12436         ndr_print_struct(ndr, name, "drsuapi_DsReplicaCursor3Ctr");
12437         if (r == NULL) { ndr_print_null(ndr); return; }
12438         ndr->depth++;
12439         ndr_print_uint32(ndr, "count", r->count);
12440         ndr_print_uint32(ndr, "enumeration_context", r->enumeration_context);
12441         ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
12442         ndr->depth++;
12443         for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
12444                 ndr_print_drsuapi_DsReplicaCursor3(ndr, "array", &r->array[cntr_array_0]);
12445         }
12446         ndr->depth--;
12447         ndr->depth--;
12448 }
12449
12450 static enum ndr_err_code ndr_push_drsuapi_DsReplicaObjMetaData2(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaObjMetaData2 *r)
12451 {
12452         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
12453         if (ndr_flags & NDR_SCALARS) {
12454                 NDR_CHECK(ndr_push_align(ndr, 8));
12455                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->attribute_name));
12456                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
12457                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->originating_change_time));
12458                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->originating_invocation_id));
12459                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->originating_usn));
12460                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->local_usn));
12461                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->originating_dsa_dn));
12462                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
12463         }
12464         if (ndr_flags & NDR_BUFFERS) {
12465                 if (r->attribute_name) {
12466                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->attribute_name, CH_UTF16)));
12467                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
12468                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->attribute_name, CH_UTF16)));
12469                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->attribute_name, ndr_charset_length(r->attribute_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12470                 }
12471                 if (r->originating_dsa_dn) {
12472                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->originating_dsa_dn, CH_UTF16)));
12473                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
12474                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->originating_dsa_dn, CH_UTF16)));
12475                         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));
12476                 }
12477         }
12478         return NDR_ERR_SUCCESS;
12479 }
12480
12481 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaObjMetaData2(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaObjMetaData2 *r)
12482 {
12483         uint32_t _ptr_attribute_name;
12484         uint32_t size_attribute_name_1 = 0;
12485         uint32_t length_attribute_name_1 = 0;
12486         TALLOC_CTX *_mem_save_attribute_name_0;
12487         uint32_t _ptr_originating_dsa_dn;
12488         uint32_t size_originating_dsa_dn_1 = 0;
12489         uint32_t length_originating_dsa_dn_1 = 0;
12490         TALLOC_CTX *_mem_save_originating_dsa_dn_0;
12491         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
12492         if (ndr_flags & NDR_SCALARS) {
12493                 NDR_CHECK(ndr_pull_align(ndr, 8));
12494                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_attribute_name));
12495                 if (_ptr_attribute_name) {
12496                         NDR_PULL_ALLOC(ndr, r->attribute_name);
12497                 } else {
12498                         r->attribute_name = NULL;
12499                 }
12500                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
12501                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->originating_change_time));
12502                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->originating_invocation_id));
12503                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->originating_usn));
12504                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->local_usn));
12505                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_originating_dsa_dn));
12506                 if (_ptr_originating_dsa_dn) {
12507                         NDR_PULL_ALLOC(ndr, r->originating_dsa_dn);
12508                 } else {
12509                         r->originating_dsa_dn = NULL;
12510                 }
12511                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
12512         }
12513         if (ndr_flags & NDR_BUFFERS) {
12514                 if (r->attribute_name) {
12515                         _mem_save_attribute_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12516                         NDR_PULL_SET_MEM_CTX(ndr, r->attribute_name, 0);
12517                         NDR_CHECK(ndr_pull_array_size(ndr, &r->attribute_name));
12518                         NDR_CHECK(ndr_pull_array_length(ndr, &r->attribute_name));
12519                         size_attribute_name_1 = ndr_get_array_size(ndr, &r->attribute_name);
12520                         length_attribute_name_1 = ndr_get_array_length(ndr, &r->attribute_name);
12521                         if (length_attribute_name_1 > size_attribute_name_1) {
12522                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_attribute_name_1, length_attribute_name_1);
12523                         }
12524                         NDR_CHECK(ndr_check_string_terminator(ndr, length_attribute_name_1, sizeof(uint16_t)));
12525                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->attribute_name, length_attribute_name_1, sizeof(uint16_t), CH_UTF16));
12526                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribute_name_0, 0);
12527                 }
12528                 if (r->originating_dsa_dn) {
12529                         _mem_save_originating_dsa_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
12530                         NDR_PULL_SET_MEM_CTX(ndr, r->originating_dsa_dn, 0);
12531                         NDR_CHECK(ndr_pull_array_size(ndr, &r->originating_dsa_dn));
12532                         NDR_CHECK(ndr_pull_array_length(ndr, &r->originating_dsa_dn));
12533                         size_originating_dsa_dn_1 = ndr_get_array_size(ndr, &r->originating_dsa_dn);
12534                         length_originating_dsa_dn_1 = ndr_get_array_length(ndr, &r->originating_dsa_dn);
12535                         if (length_originating_dsa_dn_1 > size_originating_dsa_dn_1) {
12536                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_originating_dsa_dn_1, length_originating_dsa_dn_1);
12537                         }
12538                         NDR_CHECK(ndr_check_string_terminator(ndr, length_originating_dsa_dn_1, sizeof(uint16_t)));
12539                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->originating_dsa_dn, length_originating_dsa_dn_1, sizeof(uint16_t), CH_UTF16));
12540                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_originating_dsa_dn_0, 0);
12541                 }
12542         }
12543         return NDR_ERR_SUCCESS;
12544 }
12545
12546 _PUBLIC_ void ndr_print_drsuapi_DsReplicaObjMetaData2(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaObjMetaData2 *r)
12547 {
12548         ndr_print_struct(ndr, name, "drsuapi_DsReplicaObjMetaData2");
12549         if (r == NULL) { ndr_print_null(ndr); return; }
12550         ndr->depth++;
12551         ndr_print_ptr(ndr, "attribute_name", r->attribute_name);
12552         ndr->depth++;
12553         if (r->attribute_name) {
12554                 ndr_print_string(ndr, "attribute_name", r->attribute_name);
12555         }
12556         ndr->depth--;
12557         ndr_print_uint32(ndr, "version", r->version);
12558         ndr_print_NTTIME(ndr, "originating_change_time", r->originating_change_time);
12559         ndr_print_GUID(ndr, "originating_invocation_id", &r->originating_invocation_id);
12560         ndr_print_hyper(ndr, "originating_usn", r->originating_usn);
12561         ndr_print_hyper(ndr, "local_usn", r->local_usn);
12562         ndr_print_ptr(ndr, "originating_dsa_dn", r->originating_dsa_dn);
12563         ndr->depth++;
12564         if (r->originating_dsa_dn) {
12565                 ndr_print_string(ndr, "originating_dsa_dn", r->originating_dsa_dn);
12566         }
12567         ndr->depth--;
12568         ndr->depth--;
12569 }
12570
12571 static enum ndr_err_code ndr_push_drsuapi_DsReplicaObjMetaData2Ctr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaObjMetaData2Ctr *r)
12572 {
12573         uint32_t cntr_array_0;
12574         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
12575         if (ndr_flags & NDR_SCALARS) {
12576                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
12577                 NDR_CHECK(ndr_push_align(ndr, 8));
12578                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
12579                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumeration_context));
12580                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
12581                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjMetaData2(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
12582                 }
12583                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
12584         }
12585         if (ndr_flags & NDR_BUFFERS) {
12586                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
12587                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjMetaData2(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
12588                 }
12589         }
12590         return NDR_ERR_SUCCESS;
12591 }
12592
12593 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaObjMetaData2Ctr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaObjMetaData2Ctr *r)
12594 {
12595         uint32_t size_array_0 = 0;
12596         uint32_t cntr_array_0;
12597         TALLOC_CTX *_mem_save_array_0;
12598         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
12599         if (ndr_flags & NDR_SCALARS) {
12600                 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
12601                 NDR_CHECK(ndr_pull_align(ndr, 8));
12602                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
12603                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumeration_context));
12604                 size_array_0 = ndr_get_array_size(ndr, &r->array);
12605                 NDR_PULL_ALLOC_N(ndr, r->array, size_array_0);
12606                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
12607                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
12608                 for (cntr_array_0 = 0; cntr_array_0 < size_array_0; cntr_array_0++) {
12609                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjMetaData2(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
12610                 }
12611                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
12612                 if (r->array) {
12613                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
12614                 }
12615                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
12616         }
12617         if (ndr_flags & NDR_BUFFERS) {
12618                 size_array_0 = ndr_get_array_size(ndr, &r->array);
12619                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
12620                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
12621                 for (cntr_array_0 = 0; cntr_array_0 < size_array_0; cntr_array_0++) {
12622                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjMetaData2(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
12623                 }
12624                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
12625         }
12626         return NDR_ERR_SUCCESS;
12627 }
12628
12629 _PUBLIC_ void ndr_print_drsuapi_DsReplicaObjMetaData2Ctr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaObjMetaData2Ctr *r)
12630 {
12631         uint32_t cntr_array_0;
12632         ndr_print_struct(ndr, name, "drsuapi_DsReplicaObjMetaData2Ctr");
12633         if (r == NULL) { ndr_print_null(ndr); return; }
12634         ndr->depth++;
12635         ndr_print_uint32(ndr, "count", r->count);
12636         ndr_print_uint32(ndr, "enumeration_context", r->enumeration_context);
12637         ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
12638         ndr->depth++;
12639         for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
12640                 ndr_print_drsuapi_DsReplicaObjMetaData2(ndr, "array", &r->array[cntr_array_0]);
12641         }
12642         ndr->depth--;
12643         ndr->depth--;
12644 }
12645
12646 static enum ndr_err_code ndr_push_drsuapi_DsReplicaAttrValMetaData2(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaAttrValMetaData2 *r)
12647 {
12648         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
12649         if (ndr_flags & NDR_SCALARS) {
12650                 NDR_CHECK(ndr_push_align(ndr, 8));
12651                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->attribute_name));
12652                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->object_dn));
12653                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_DATA_BLOB(0, r->binary, 0)));
12654                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->binary));
12655                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->deleted));
12656                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->created));
12657                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
12658                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->originating_change_time));
12659                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->originating_invocation_id));
12660                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->originating_usn));
12661                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->local_usn));
12662                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->originating_dsa_dn));
12663                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
12664         }
12665         if (ndr_flags & NDR_BUFFERS) {
12666                 if (r->attribute_name) {
12667                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->attribute_name, CH_UTF16)));
12668                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
12669                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->attribute_name, CH_UTF16)));
12670                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->attribute_name, ndr_charset_length(r->attribute_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12671                 }
12672                 if (r->object_dn) {
12673                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->object_dn, CH_UTF16)));
12674                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
12675                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->object_dn, CH_UTF16)));
12676                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->object_dn, ndr_charset_length(r->object_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12677                 }
12678                 if (r->binary) {
12679                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->binary));
12680                 }
12681                 if (r->originating_dsa_dn) {
12682                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->originating_dsa_dn, CH_UTF16)));
12683                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
12684                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->originating_dsa_dn, CH_UTF16)));
12685                         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));
12686                 }
12687         }
12688         return NDR_ERR_SUCCESS;
12689 }
12690
12691 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaAttrValMetaData2(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaAttrValMetaData2 *r)
12692 {
12693         uint32_t _ptr_attribute_name;
12694         uint32_t size_attribute_name_1 = 0;
12695         uint32_t length_attribute_name_1 = 0;
12696         TALLOC_CTX *_mem_save_attribute_name_0;
12697         uint32_t _ptr_object_dn;
12698         uint32_t size_object_dn_1 = 0;
12699         uint32_t length_object_dn_1 = 0;
12700         TALLOC_CTX *_mem_save_object_dn_0;
12701         uint32_t _ptr_binary;
12702         TALLOC_CTX *_mem_save_binary_0;
12703         uint32_t _ptr_originating_dsa_dn;
12704         uint32_t size_originating_dsa_dn_1 = 0;
12705         uint32_t length_originating_dsa_dn_1 = 0;
12706         TALLOC_CTX *_mem_save_originating_dsa_dn_0;
12707         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
12708         if (ndr_flags & NDR_SCALARS) {
12709                 NDR_CHECK(ndr_pull_align(ndr, 8));
12710                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_attribute_name));
12711                 if (_ptr_attribute_name) {
12712                         NDR_PULL_ALLOC(ndr, r->attribute_name);
12713                 } else {
12714                         r->attribute_name = NULL;
12715                 }
12716                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_object_dn));
12717                 if (_ptr_object_dn) {
12718                         NDR_PULL_ALLOC(ndr, r->object_dn);
12719                 } else {
12720                         r->object_dn = NULL;
12721                 }
12722                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size_binary));
12723                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_binary));
12724                 if (_ptr_binary) {
12725                         NDR_PULL_ALLOC(ndr, r->binary);
12726                 } else {
12727                         r->binary = NULL;
12728                 }
12729                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->deleted));
12730                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->created));
12731                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
12732                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->originating_change_time));
12733                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->originating_invocation_id));
12734                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->originating_usn));
12735                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->local_usn));
12736                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_originating_dsa_dn));
12737                 if (_ptr_originating_dsa_dn) {
12738                         NDR_PULL_ALLOC(ndr, r->originating_dsa_dn);
12739                 } else {
12740                         r->originating_dsa_dn = NULL;
12741                 }
12742                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
12743         }
12744         if (ndr_flags & NDR_BUFFERS) {
12745                 if (r->attribute_name) {
12746                         _mem_save_attribute_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12747                         NDR_PULL_SET_MEM_CTX(ndr, r->attribute_name, 0);
12748                         NDR_CHECK(ndr_pull_array_size(ndr, &r->attribute_name));
12749                         NDR_CHECK(ndr_pull_array_length(ndr, &r->attribute_name));
12750                         size_attribute_name_1 = ndr_get_array_size(ndr, &r->attribute_name);
12751                         length_attribute_name_1 = ndr_get_array_length(ndr, &r->attribute_name);
12752                         if (length_attribute_name_1 > size_attribute_name_1) {
12753                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_attribute_name_1, length_attribute_name_1);
12754                         }
12755                         NDR_CHECK(ndr_check_string_terminator(ndr, length_attribute_name_1, sizeof(uint16_t)));
12756                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->attribute_name, length_attribute_name_1, sizeof(uint16_t), CH_UTF16));
12757                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribute_name_0, 0);
12758                 }
12759                 if (r->object_dn) {
12760                         _mem_save_object_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
12761                         NDR_PULL_SET_MEM_CTX(ndr, r->object_dn, 0);
12762                         NDR_CHECK(ndr_pull_array_size(ndr, &r->object_dn));
12763                         NDR_CHECK(ndr_pull_array_length(ndr, &r->object_dn));
12764                         size_object_dn_1 = ndr_get_array_size(ndr, &r->object_dn);
12765                         length_object_dn_1 = ndr_get_array_length(ndr, &r->object_dn);
12766                         if (length_object_dn_1 > size_object_dn_1) {
12767                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_object_dn_1, length_object_dn_1);
12768                         }
12769                         NDR_CHECK(ndr_check_string_terminator(ndr, length_object_dn_1, sizeof(uint16_t)));
12770                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->object_dn, length_object_dn_1, sizeof(uint16_t), CH_UTF16));
12771                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_object_dn_0, 0);
12772                 }
12773                 if (r->binary) {
12774                         _mem_save_binary_0 = NDR_PULL_GET_MEM_CTX(ndr);
12775                         NDR_PULL_SET_MEM_CTX(ndr, r->binary, 0);
12776                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->binary));
12777                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_binary_0, 0);
12778                 }
12779                 if (r->originating_dsa_dn) {
12780                         _mem_save_originating_dsa_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
12781                         NDR_PULL_SET_MEM_CTX(ndr, r->originating_dsa_dn, 0);
12782                         NDR_CHECK(ndr_pull_array_size(ndr, &r->originating_dsa_dn));
12783                         NDR_CHECK(ndr_pull_array_length(ndr, &r->originating_dsa_dn));
12784                         size_originating_dsa_dn_1 = ndr_get_array_size(ndr, &r->originating_dsa_dn);
12785                         length_originating_dsa_dn_1 = ndr_get_array_length(ndr, &r->originating_dsa_dn);
12786                         if (length_originating_dsa_dn_1 > size_originating_dsa_dn_1) {
12787                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_originating_dsa_dn_1, length_originating_dsa_dn_1);
12788                         }
12789                         NDR_CHECK(ndr_check_string_terminator(ndr, length_originating_dsa_dn_1, sizeof(uint16_t)));
12790                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->originating_dsa_dn, length_originating_dsa_dn_1, sizeof(uint16_t), CH_UTF16));
12791                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_originating_dsa_dn_0, 0);
12792                 }
12793         }
12794         return NDR_ERR_SUCCESS;
12795 }
12796
12797 _PUBLIC_ void ndr_print_drsuapi_DsReplicaAttrValMetaData2(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaAttrValMetaData2 *r)
12798 {
12799         ndr_print_struct(ndr, name, "drsuapi_DsReplicaAttrValMetaData2");
12800         if (r == NULL) { ndr_print_null(ndr); return; }
12801         ndr->depth++;
12802         ndr_print_ptr(ndr, "attribute_name", r->attribute_name);
12803         ndr->depth++;
12804         if (r->attribute_name) {
12805                 ndr_print_string(ndr, "attribute_name", r->attribute_name);
12806         }
12807         ndr->depth--;
12808         ndr_print_ptr(ndr, "object_dn", r->object_dn);
12809         ndr->depth++;
12810         if (r->object_dn) {
12811                 ndr_print_string(ndr, "object_dn", r->object_dn);
12812         }
12813         ndr->depth--;
12814         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);
12815         ndr_print_ptr(ndr, "binary", r->binary);
12816         ndr->depth++;
12817         if (r->binary) {
12818                 ndr_print_DATA_BLOB(ndr, "binary", *r->binary);
12819         }
12820         ndr->depth--;
12821         ndr_print_NTTIME(ndr, "deleted", r->deleted);
12822         ndr_print_NTTIME(ndr, "created", r->created);
12823         ndr_print_uint32(ndr, "version", r->version);
12824         ndr_print_NTTIME(ndr, "originating_change_time", r->originating_change_time);
12825         ndr_print_GUID(ndr, "originating_invocation_id", &r->originating_invocation_id);
12826         ndr_print_hyper(ndr, "originating_usn", r->originating_usn);
12827         ndr_print_hyper(ndr, "local_usn", r->local_usn);
12828         ndr_print_ptr(ndr, "originating_dsa_dn", r->originating_dsa_dn);
12829         ndr->depth++;
12830         if (r->originating_dsa_dn) {
12831                 ndr_print_string(ndr, "originating_dsa_dn", r->originating_dsa_dn);
12832         }
12833         ndr->depth--;
12834         ndr->depth--;
12835 }
12836
12837 static enum ndr_err_code ndr_push_drsuapi_DsReplicaAttrValMetaData2Ctr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaAttrValMetaData2Ctr *r)
12838 {
12839         uint32_t cntr_array_0;
12840         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
12841         if (ndr_flags & NDR_SCALARS) {
12842                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
12843                 NDR_CHECK(ndr_push_align(ndr, 8));
12844                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
12845                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumeration_context));
12846                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
12847                         NDR_CHECK(ndr_push_drsuapi_DsReplicaAttrValMetaData2(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
12848                 }
12849                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
12850         }
12851         if (ndr_flags & NDR_BUFFERS) {
12852                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
12853                         NDR_CHECK(ndr_push_drsuapi_DsReplicaAttrValMetaData2(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
12854                 }
12855         }
12856         return NDR_ERR_SUCCESS;
12857 }
12858
12859 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaAttrValMetaData2Ctr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaAttrValMetaData2Ctr *r)
12860 {
12861         uint32_t size_array_0 = 0;
12862         uint32_t cntr_array_0;
12863         TALLOC_CTX *_mem_save_array_0;
12864         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
12865         if (ndr_flags & NDR_SCALARS) {
12866                 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
12867                 NDR_CHECK(ndr_pull_align(ndr, 8));
12868                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
12869                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumeration_context));
12870                 size_array_0 = ndr_get_array_size(ndr, &r->array);
12871                 NDR_PULL_ALLOC_N(ndr, r->array, size_array_0);
12872                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
12873                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
12874                 for (cntr_array_0 = 0; cntr_array_0 < size_array_0; cntr_array_0++) {
12875                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaAttrValMetaData2(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
12876                 }
12877                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
12878                 if (r->array) {
12879                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
12880                 }
12881                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
12882         }
12883         if (ndr_flags & NDR_BUFFERS) {
12884                 size_array_0 = ndr_get_array_size(ndr, &r->array);
12885                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
12886                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
12887                 for (cntr_array_0 = 0; cntr_array_0 < size_array_0; cntr_array_0++) {
12888                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaAttrValMetaData2(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
12889                 }
12890                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
12891         }
12892         return NDR_ERR_SUCCESS;
12893 }
12894
12895 _PUBLIC_ void ndr_print_drsuapi_DsReplicaAttrValMetaData2Ctr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaAttrValMetaData2Ctr *r)
12896 {
12897         uint32_t cntr_array_0;
12898         ndr_print_struct(ndr, name, "drsuapi_DsReplicaAttrValMetaData2Ctr");
12899         if (r == NULL) { ndr_print_null(ndr); return; }
12900         ndr->depth++;
12901         ndr_print_uint32(ndr, "count", r->count);
12902         ndr_print_uint32(ndr, "enumeration_context", r->enumeration_context);
12903         ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
12904         ndr->depth++;
12905         for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
12906                 ndr_print_drsuapi_DsReplicaAttrValMetaData2(ndr, "array", &r->array[cntr_array_0]);
12907         }
12908         ndr->depth--;
12909         ndr->depth--;
12910 }
12911
12912 static enum ndr_err_code ndr_push_drsuapi_DsReplicaConnection04(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaConnection04 *r)
12913 {
12914         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
12915         if (ndr_flags & NDR_SCALARS) {
12916                 NDR_CHECK(ndr_push_align(ndr, 8));
12917                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->u1));
12918                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u2));
12919                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u3));
12920                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->bind_guid));
12921                 NDR_CHECK(ndr_push_NTTIME_1sec(ndr, NDR_SCALARS, r->bind_time));
12922                 {
12923                         uint32_t _flags_save_ipv4address = ndr->flags;
12924                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
12925                         NDR_CHECK(ndr_push_ipv4address(ndr, NDR_SCALARS, r->client_ip_address));
12926                         ndr->flags = _flags_save_ipv4address;
12927                 }
12928                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u5));
12929                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
12930         }
12931         if (ndr_flags & NDR_BUFFERS) {
12932         }
12933         return NDR_ERR_SUCCESS;
12934 }
12935
12936 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaConnection04(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaConnection04 *r)
12937 {
12938         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
12939         if (ndr_flags & NDR_SCALARS) {
12940                 NDR_CHECK(ndr_pull_align(ndr, 8));
12941                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->u1));
12942                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u2));
12943                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u3));
12944                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->bind_guid));
12945                 NDR_CHECK(ndr_pull_NTTIME_1sec(ndr, NDR_SCALARS, &r->bind_time));
12946                 {
12947                         uint32_t _flags_save_ipv4address = ndr->flags;
12948                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
12949                         NDR_CHECK(ndr_pull_ipv4address(ndr, NDR_SCALARS, &r->client_ip_address));
12950                         ndr->flags = _flags_save_ipv4address;
12951                 }
12952                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u5));
12953                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
12954         }
12955         if (ndr_flags & NDR_BUFFERS) {
12956         }
12957         return NDR_ERR_SUCCESS;
12958 }
12959
12960 _PUBLIC_ void ndr_print_drsuapi_DsReplicaConnection04(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaConnection04 *r)
12961 {
12962         ndr_print_struct(ndr, name, "drsuapi_DsReplicaConnection04");
12963         if (r == NULL) { ndr_print_null(ndr); return; }
12964         ndr->depth++;
12965         ndr_print_hyper(ndr, "u1", r->u1);
12966         ndr_print_uint32(ndr, "u2", r->u2);
12967         ndr_print_uint32(ndr, "u3", r->u3);
12968         ndr_print_GUID(ndr, "bind_guid", &r->bind_guid);
12969         ndr_print_NTTIME_1sec(ndr, "bind_time", r->bind_time);
12970         ndr_print_ipv4address(ndr, "client_ip_address", r->client_ip_address);
12971         ndr_print_uint32(ndr, "u5", r->u5);
12972         ndr->depth--;
12973 }
12974
12975 static enum ndr_err_code ndr_push_drsuapi_DsReplicaConnection04Ctr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaConnection04Ctr *r)
12976 {
12977         uint32_t cntr_array_0;
12978         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
12979         if (ndr_flags & NDR_SCALARS) {
12980                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
12981                 NDR_CHECK(ndr_push_align(ndr, 8));
12982                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
12983                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
12984                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
12985                         NDR_CHECK(ndr_push_drsuapi_DsReplicaConnection04(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
12986                 }
12987                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
12988         }
12989         if (ndr_flags & NDR_BUFFERS) {
12990         }
12991         return NDR_ERR_SUCCESS;
12992 }
12993
12994 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaConnection04Ctr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaConnection04Ctr *r)
12995 {
12996         uint32_t size_array_0 = 0;
12997         uint32_t cntr_array_0;
12998         TALLOC_CTX *_mem_save_array_0;
12999         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
13000         if (ndr_flags & NDR_SCALARS) {
13001                 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
13002                 NDR_CHECK(ndr_pull_align(ndr, 8));
13003                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
13004                 if (r->count > 10000) {
13005                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
13006                 }
13007                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
13008                 size_array_0 = ndr_get_array_size(ndr, &r->array);
13009                 NDR_PULL_ALLOC_N(ndr, r->array, size_array_0);
13010                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
13011                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
13012                 for (cntr_array_0 = 0; cntr_array_0 < size_array_0; cntr_array_0++) {
13013                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaConnection04(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
13014                 }
13015                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
13016                 if (r->array) {
13017                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
13018                 }
13019                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
13020         }
13021         if (ndr_flags & NDR_BUFFERS) {
13022         }
13023         return NDR_ERR_SUCCESS;
13024 }
13025
13026 _PUBLIC_ void ndr_print_drsuapi_DsReplicaConnection04Ctr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaConnection04Ctr *r)
13027 {
13028         uint32_t cntr_array_0;
13029         ndr_print_struct(ndr, name, "drsuapi_DsReplicaConnection04Ctr");
13030         if (r == NULL) { ndr_print_null(ndr); return; }
13031         ndr->depth++;
13032         ndr_print_uint32(ndr, "count", r->count);
13033         ndr_print_uint32(ndr, "reserved", r->reserved);
13034         ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
13035         ndr->depth++;
13036         for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
13037                 ndr_print_drsuapi_DsReplicaConnection04(ndr, "array", &r->array[cntr_array_0]);
13038         }
13039         ndr->depth--;
13040         ndr->depth--;
13041 }
13042
13043 static enum ndr_err_code ndr_push_drsuapi_DsReplica06(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplica06 *r)
13044 {
13045         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
13046         if (ndr_flags & NDR_SCALARS) {
13047                 NDR_CHECK(ndr_push_align(ndr, 8));
13048                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->str1));
13049                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u1));
13050                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u2));
13051                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u3));
13052                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u4));
13053                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u5));
13054                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->u6));
13055                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u7));
13056                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
13057         }
13058         if (ndr_flags & NDR_BUFFERS) {
13059                 if (r->str1) {
13060                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->str1, CH_UTF16)));
13061                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
13062                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->str1, CH_UTF16)));
13063                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->str1, ndr_charset_length(r->str1, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13064                 }
13065         }
13066         return NDR_ERR_SUCCESS;
13067 }
13068
13069 static enum ndr_err_code ndr_pull_drsuapi_DsReplica06(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplica06 *r)
13070 {
13071         uint32_t _ptr_str1;
13072         uint32_t size_str1_1 = 0;
13073         uint32_t length_str1_1 = 0;
13074         TALLOC_CTX *_mem_save_str1_0;
13075         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
13076         if (ndr_flags & NDR_SCALARS) {
13077                 NDR_CHECK(ndr_pull_align(ndr, 8));
13078                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_str1));
13079                 if (_ptr_str1) {
13080                         NDR_PULL_ALLOC(ndr, r->str1);
13081                 } else {
13082                         r->str1 = NULL;
13083                 }
13084                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u1));
13085                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u2));
13086                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u3));
13087                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u4));
13088                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u5));
13089                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->u6));
13090                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u7));
13091                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
13092         }
13093         if (ndr_flags & NDR_BUFFERS) {
13094                 if (r->str1) {
13095                         _mem_save_str1_0 = NDR_PULL_GET_MEM_CTX(ndr);
13096                         NDR_PULL_SET_MEM_CTX(ndr, r->str1, 0);
13097                         NDR_CHECK(ndr_pull_array_size(ndr, &r->str1));
13098                         NDR_CHECK(ndr_pull_array_length(ndr, &r->str1));
13099                         size_str1_1 = ndr_get_array_size(ndr, &r->str1);
13100                         length_str1_1 = ndr_get_array_length(ndr, &r->str1);
13101                         if (length_str1_1 > size_str1_1) {
13102                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_str1_1, length_str1_1);
13103                         }
13104                         NDR_CHECK(ndr_check_string_terminator(ndr, length_str1_1, sizeof(uint16_t)));
13105                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->str1, length_str1_1, sizeof(uint16_t), CH_UTF16));
13106                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_str1_0, 0);
13107                 }
13108         }
13109         return NDR_ERR_SUCCESS;
13110 }
13111
13112 _PUBLIC_ void ndr_print_drsuapi_DsReplica06(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplica06 *r)
13113 {
13114         ndr_print_struct(ndr, name, "drsuapi_DsReplica06");
13115         if (r == NULL) { ndr_print_null(ndr); return; }
13116         ndr->depth++;
13117         ndr_print_ptr(ndr, "str1", r->str1);
13118         ndr->depth++;
13119         if (r->str1) {
13120                 ndr_print_string(ndr, "str1", r->str1);
13121         }
13122         ndr->depth--;
13123         ndr_print_uint32(ndr, "u1", r->u1);
13124         ndr_print_uint32(ndr, "u2", r->u2);
13125         ndr_print_uint32(ndr, "u3", r->u3);
13126         ndr_print_uint32(ndr, "u4", r->u4);
13127         ndr_print_uint32(ndr, "u5", r->u5);
13128         ndr_print_hyper(ndr, "u6", r->u6);
13129         ndr_print_uint32(ndr, "u7", r->u7);
13130         ndr->depth--;
13131 }
13132
13133 static enum ndr_err_code ndr_push_drsuapi_DsReplica06Ctr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplica06Ctr *r)
13134 {
13135         uint32_t cntr_array_0;
13136         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
13137         if (ndr_flags & NDR_SCALARS) {
13138                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
13139                 NDR_CHECK(ndr_push_align(ndr, 8));
13140                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
13141                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
13142                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
13143                         NDR_CHECK(ndr_push_drsuapi_DsReplica06(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
13144                 }
13145                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
13146         }
13147         if (ndr_flags & NDR_BUFFERS) {
13148                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
13149                         NDR_CHECK(ndr_push_drsuapi_DsReplica06(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
13150                 }
13151         }
13152         return NDR_ERR_SUCCESS;
13153 }
13154
13155 static enum ndr_err_code ndr_pull_drsuapi_DsReplica06Ctr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplica06Ctr *r)
13156 {
13157         uint32_t size_array_0 = 0;
13158         uint32_t cntr_array_0;
13159         TALLOC_CTX *_mem_save_array_0;
13160         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
13161         if (ndr_flags & NDR_SCALARS) {
13162                 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
13163                 NDR_CHECK(ndr_pull_align(ndr, 8));
13164                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
13165                 if (r->count > 256) {
13166                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
13167                 }
13168                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
13169                 size_array_0 = ndr_get_array_size(ndr, &r->array);
13170                 NDR_PULL_ALLOC_N(ndr, r->array, size_array_0);
13171                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
13172                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
13173                 for (cntr_array_0 = 0; cntr_array_0 < size_array_0; cntr_array_0++) {
13174                         NDR_CHECK(ndr_pull_drsuapi_DsReplica06(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
13175                 }
13176                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
13177                 if (r->array) {
13178                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
13179                 }
13180                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
13181         }
13182         if (ndr_flags & NDR_BUFFERS) {
13183                 size_array_0 = ndr_get_array_size(ndr, &r->array);
13184                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
13185                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
13186                 for (cntr_array_0 = 0; cntr_array_0 < size_array_0; cntr_array_0++) {
13187                         NDR_CHECK(ndr_pull_drsuapi_DsReplica06(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
13188                 }
13189                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
13190         }
13191         return NDR_ERR_SUCCESS;
13192 }
13193
13194 _PUBLIC_ void ndr_print_drsuapi_DsReplica06Ctr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplica06Ctr *r)
13195 {
13196         uint32_t cntr_array_0;
13197         ndr_print_struct(ndr, name, "drsuapi_DsReplica06Ctr");
13198         if (r == NULL) { ndr_print_null(ndr); return; }
13199         ndr->depth++;
13200         ndr_print_uint32(ndr, "count", r->count);
13201         ndr_print_uint32(ndr, "reserved", r->reserved);
13202         ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
13203         ndr->depth++;
13204         for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
13205                 ndr_print_drsuapi_DsReplica06(ndr, "array", &r->array[cntr_array_0]);
13206         }
13207         ndr->depth--;
13208         ndr->depth--;
13209 }
13210
13211 static enum ndr_err_code ndr_push_drsuapi_DsReplicaInfo(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsReplicaInfo *r)
13212 {
13213         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
13214         if (ndr_flags & NDR_SCALARS) {
13215                 uint32_t level = ndr_push_get_switch_value(ndr, r);
13216                 NDR_CHECK(ndr_push_union_align(ndr, 5));
13217                 NDR_CHECK(ndr_push_drsuapi_DsReplicaInfoType(ndr, NDR_SCALARS, level));
13218                 NDR_CHECK(ndr_push_union_align(ndr, 5));
13219                 switch (level) {
13220                         case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS: {
13221                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->neighbours));
13222                         break; }
13223
13224                         case DRSUAPI_DS_REPLICA_INFO_CURSORS: {
13225                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->cursors));
13226                         break; }
13227
13228                         case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA: {
13229                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->objmetadata));
13230                         break; }
13231
13232                         case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES: {
13233                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->connectfailures));
13234                         break; }
13235
13236                         case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES: {
13237                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->linkfailures));
13238                         break; }
13239
13240                         case DRSUAPI_DS_REPLICA_INFO_PENDING_OPS: {
13241                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pendingops));
13242                         break; }
13243
13244                         case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA: {
13245                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->attrvalmetadata));
13246                         break; }
13247
13248                         case DRSUAPI_DS_REPLICA_INFO_CURSORS2: {
13249                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->cursors2));
13250                         break; }
13251
13252                         case DRSUAPI_DS_REPLICA_INFO_CURSORS3: {
13253                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->cursors3));
13254                         break; }
13255
13256                         case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2: {
13257                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->objmetadata2));
13258                         break; }
13259
13260                         case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2: {
13261                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->attrvalmetadata2));
13262                         break; }
13263
13264                         case DRSUAPI_DS_REPLICA_INFO_REPSTO: {
13265                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->repsto));
13266                         break; }
13267
13268                         case DRSUAPI_DS_REPLICA_INFO_CLIENT_CONTEXTS: {
13269                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->clientctx));
13270                         break; }
13271
13272                         case DRSUAPI_DS_REPLICA_INFO_UPTODATE_VECTOR_V1: {
13273                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->udv1));
13274                         break; }
13275
13276                         case DRSUAPI_DS_REPLICA_INFO_SERVER_OUTGOING_CALLS: {
13277                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->srvoutgoingcalls));
13278                         break; }
13279
13280                         default:
13281                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
13282                 }
13283         }
13284         if (ndr_flags & NDR_BUFFERS) {
13285                 uint32_t level = ndr_push_get_switch_value(ndr, r);
13286                 switch (level) {
13287                         case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS:
13288                                 if (r->neighbours) {
13289                                         NDR_CHECK(ndr_push_drsuapi_DsReplicaNeighbourCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->neighbours));
13290                                 }
13291                         break;
13292
13293                         case DRSUAPI_DS_REPLICA_INFO_CURSORS:
13294                                 if (r->cursors) {
13295                                         NDR_CHECK(ndr_push_drsuapi_DsReplicaCursorCtr(ndr, NDR_SCALARS, r->cursors));
13296                                 }
13297                         break;
13298
13299                         case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA:
13300                                 if (r->objmetadata) {
13301                                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjMetaDataCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->objmetadata));
13302                                 }
13303                         break;
13304
13305                         case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES:
13306                                 if (r->connectfailures) {
13307                                         NDR_CHECK(ndr_push_drsuapi_DsReplicaKccDsaFailuresCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->connectfailures));
13308                                 }
13309                         break;
13310
13311                         case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES:
13312                                 if (r->linkfailures) {
13313                                         NDR_CHECK(ndr_push_drsuapi_DsReplicaKccDsaFailuresCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->linkfailures));
13314                                 }
13315                         break;
13316
13317                         case DRSUAPI_DS_REPLICA_INFO_PENDING_OPS:
13318                                 if (r->pendingops) {
13319                                         NDR_CHECK(ndr_push_drsuapi_DsReplicaOpCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->pendingops));
13320                                 }
13321                         break;
13322
13323                         case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA:
13324                                 if (r->attrvalmetadata) {
13325                                         NDR_CHECK(ndr_push_drsuapi_DsReplicaAttrValMetaDataCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->attrvalmetadata));
13326                                 }
13327                         break;
13328
13329                         case DRSUAPI_DS_REPLICA_INFO_CURSORS2:
13330                                 if (r->cursors2) {
13331                                         NDR_CHECK(ndr_push_drsuapi_DsReplicaCursor2Ctr(ndr, NDR_SCALARS, r->cursors2));
13332                                 }
13333                         break;
13334
13335                         case DRSUAPI_DS_REPLICA_INFO_CURSORS3:
13336                                 if (r->cursors3) {
13337                                         NDR_CHECK(ndr_push_drsuapi_DsReplicaCursor3Ctr(ndr, NDR_SCALARS|NDR_BUFFERS, r->cursors3));
13338                                 }
13339                         break;
13340
13341                         case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2:
13342                                 if (r->objmetadata2) {
13343                                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjMetaData2Ctr(ndr, NDR_SCALARS|NDR_BUFFERS, r->objmetadata2));
13344                                 }
13345                         break;
13346
13347                         case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2:
13348                                 if (r->attrvalmetadata2) {
13349                                         NDR_CHECK(ndr_push_drsuapi_DsReplicaAttrValMetaData2Ctr(ndr, NDR_SCALARS|NDR_BUFFERS, r->attrvalmetadata2));
13350                                 }
13351                         break;
13352
13353                         case DRSUAPI_DS_REPLICA_INFO_REPSTO:
13354                                 if (r->repsto) {
13355                                         NDR_CHECK(ndr_push_drsuapi_DsReplicaNeighbourCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->repsto));
13356                                 }
13357                         break;
13358
13359                         case DRSUAPI_DS_REPLICA_INFO_CLIENT_CONTEXTS:
13360                                 if (r->clientctx) {
13361                                         NDR_CHECK(ndr_push_drsuapi_DsReplicaConnection04Ctr(ndr, NDR_SCALARS, r->clientctx));
13362                                 }
13363                         break;
13364
13365                         case DRSUAPI_DS_REPLICA_INFO_UPTODATE_VECTOR_V1:
13366                                 if (r->udv1) {
13367                                         NDR_CHECK(ndr_push_drsuapi_DsReplicaCursorCtrEx(ndr, NDR_SCALARS, r->udv1));
13368                                 }
13369                         break;
13370
13371                         case DRSUAPI_DS_REPLICA_INFO_SERVER_OUTGOING_CALLS:
13372                                 if (r->srvoutgoingcalls) {
13373                                         NDR_CHECK(ndr_push_drsuapi_DsReplica06Ctr(ndr, NDR_SCALARS|NDR_BUFFERS, r->srvoutgoingcalls));
13374                                 }
13375                         break;
13376
13377                         default:
13378                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
13379                 }
13380         }
13381         return NDR_ERR_SUCCESS;
13382 }
13383
13384 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaInfo(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsReplicaInfo *r)
13385 {
13386         uint32_t level;
13387         uint32_t _level;
13388         TALLOC_CTX *_mem_save_neighbours_0;
13389         uint32_t _ptr_neighbours;
13390         TALLOC_CTX *_mem_save_cursors_0;
13391         uint32_t _ptr_cursors;
13392         TALLOC_CTX *_mem_save_objmetadata_0;
13393         uint32_t _ptr_objmetadata;
13394         TALLOC_CTX *_mem_save_connectfailures_0;
13395         uint32_t _ptr_connectfailures;
13396         TALLOC_CTX *_mem_save_linkfailures_0;
13397         uint32_t _ptr_linkfailures;
13398         TALLOC_CTX *_mem_save_pendingops_0;
13399         uint32_t _ptr_pendingops;
13400         TALLOC_CTX *_mem_save_attrvalmetadata_0;
13401         uint32_t _ptr_attrvalmetadata;
13402         TALLOC_CTX *_mem_save_cursors2_0;
13403         uint32_t _ptr_cursors2;
13404         TALLOC_CTX *_mem_save_cursors3_0;
13405         uint32_t _ptr_cursors3;
13406         TALLOC_CTX *_mem_save_objmetadata2_0;
13407         uint32_t _ptr_objmetadata2;
13408         TALLOC_CTX *_mem_save_attrvalmetadata2_0;
13409         uint32_t _ptr_attrvalmetadata2;
13410         TALLOC_CTX *_mem_save_repsto_0;
13411         uint32_t _ptr_repsto;
13412         TALLOC_CTX *_mem_save_clientctx_0;
13413         uint32_t _ptr_clientctx;
13414         TALLOC_CTX *_mem_save_udv1_0;
13415         uint32_t _ptr_udv1;
13416         TALLOC_CTX *_mem_save_srvoutgoingcalls_0;
13417         uint32_t _ptr_srvoutgoingcalls;
13418         level = ndr_pull_get_switch_value(ndr, r);
13419         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
13420         if (ndr_flags & NDR_SCALARS) {
13421                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
13422                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
13423                 if (_level != level) {
13424                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
13425                 }
13426                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
13427                 switch (level) {
13428                         case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS: {
13429                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_neighbours));
13430                                 if (_ptr_neighbours) {
13431                                         NDR_PULL_ALLOC(ndr, r->neighbours);
13432                                 } else {
13433                                         r->neighbours = NULL;
13434                                 }
13435                         break; }
13436
13437                         case DRSUAPI_DS_REPLICA_INFO_CURSORS: {
13438                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_cursors));
13439                                 if (_ptr_cursors) {
13440                                         NDR_PULL_ALLOC(ndr, r->cursors);
13441                                 } else {
13442                                         r->cursors = NULL;
13443                                 }
13444                         break; }
13445
13446                         case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA: {
13447                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_objmetadata));
13448                                 if (_ptr_objmetadata) {
13449                                         NDR_PULL_ALLOC(ndr, r->objmetadata);
13450                                 } else {
13451                                         r->objmetadata = NULL;
13452                                 }
13453                         break; }
13454
13455                         case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES: {
13456                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_connectfailures));
13457                                 if (_ptr_connectfailures) {
13458                                         NDR_PULL_ALLOC(ndr, r->connectfailures);
13459                                 } else {
13460                                         r->connectfailures = NULL;
13461                                 }
13462                         break; }
13463
13464                         case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES: {
13465                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_linkfailures));
13466                                 if (_ptr_linkfailures) {
13467                                         NDR_PULL_ALLOC(ndr, r->linkfailures);
13468                                 } else {
13469                                         r->linkfailures = NULL;
13470                                 }
13471                         break; }
13472
13473                         case DRSUAPI_DS_REPLICA_INFO_PENDING_OPS: {
13474                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pendingops));
13475                                 if (_ptr_pendingops) {
13476                                         NDR_PULL_ALLOC(ndr, r->pendingops);
13477                                 } else {
13478                                         r->pendingops = NULL;
13479                                 }
13480                         break; }
13481
13482                         case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA: {
13483                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_attrvalmetadata));
13484                                 if (_ptr_attrvalmetadata) {
13485                                         NDR_PULL_ALLOC(ndr, r->attrvalmetadata);
13486                                 } else {
13487                                         r->attrvalmetadata = NULL;
13488                                 }
13489                         break; }
13490
13491                         case DRSUAPI_DS_REPLICA_INFO_CURSORS2: {
13492                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_cursors2));
13493                                 if (_ptr_cursors2) {
13494                                         NDR_PULL_ALLOC(ndr, r->cursors2);
13495                                 } else {
13496                                         r->cursors2 = NULL;
13497                                 }
13498                         break; }
13499
13500                         case DRSUAPI_DS_REPLICA_INFO_CURSORS3: {
13501                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_cursors3));
13502                                 if (_ptr_cursors3) {
13503                                         NDR_PULL_ALLOC(ndr, r->cursors3);
13504                                 } else {
13505                                         r->cursors3 = NULL;
13506                                 }
13507                         break; }
13508
13509                         case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2: {
13510                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_objmetadata2));
13511                                 if (_ptr_objmetadata2) {
13512                                         NDR_PULL_ALLOC(ndr, r->objmetadata2);
13513                                 } else {
13514                                         r->objmetadata2 = NULL;
13515                                 }
13516                         break; }
13517
13518                         case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2: {
13519                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_attrvalmetadata2));
13520                                 if (_ptr_attrvalmetadata2) {
13521                                         NDR_PULL_ALLOC(ndr, r->attrvalmetadata2);
13522                                 } else {
13523                                         r->attrvalmetadata2 = NULL;
13524                                 }
13525                         break; }
13526
13527                         case DRSUAPI_DS_REPLICA_INFO_REPSTO: {
13528                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_repsto));
13529                                 if (_ptr_repsto) {
13530                                         NDR_PULL_ALLOC(ndr, r->repsto);
13531                                 } else {
13532                                         r->repsto = NULL;
13533                                 }
13534                         break; }
13535
13536                         case DRSUAPI_DS_REPLICA_INFO_CLIENT_CONTEXTS: {
13537                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_clientctx));
13538                                 if (_ptr_clientctx) {
13539                                         NDR_PULL_ALLOC(ndr, r->clientctx);
13540                                 } else {
13541                                         r->clientctx = NULL;
13542                                 }
13543                         break; }
13544
13545                         case DRSUAPI_DS_REPLICA_INFO_UPTODATE_VECTOR_V1: {
13546                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_udv1));
13547                                 if (_ptr_udv1) {
13548                                         NDR_PULL_ALLOC(ndr, r->udv1);
13549                                 } else {
13550                                         r->udv1 = NULL;
13551                                 }
13552                         break; }
13553
13554                         case DRSUAPI_DS_REPLICA_INFO_SERVER_OUTGOING_CALLS: {
13555                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_srvoutgoingcalls));
13556                                 if (_ptr_srvoutgoingcalls) {
13557                                         NDR_PULL_ALLOC(ndr, r->srvoutgoingcalls);
13558                                 } else {
13559                                         r->srvoutgoingcalls = NULL;
13560                                 }
13561                         break; }
13562
13563                         default:
13564                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
13565                 }
13566         }
13567         if (ndr_flags & NDR_BUFFERS) {
13568                 switch (level) {
13569                         case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS:
13570                                 if (r->neighbours) {
13571                                         _mem_save_neighbours_0 = NDR_PULL_GET_MEM_CTX(ndr);
13572                                         NDR_PULL_SET_MEM_CTX(ndr, r->neighbours, 0);
13573                                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaNeighbourCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->neighbours));
13574                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_neighbours_0, 0);
13575                                 }
13576                         break;
13577
13578                         case DRSUAPI_DS_REPLICA_INFO_CURSORS:
13579                                 if (r->cursors) {
13580                                         _mem_save_cursors_0 = NDR_PULL_GET_MEM_CTX(ndr);
13581                                         NDR_PULL_SET_MEM_CTX(ndr, r->cursors, 0);
13582                                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursorCtr(ndr, NDR_SCALARS, r->cursors));
13583                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_cursors_0, 0);
13584                                 }
13585                         break;
13586
13587                         case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA:
13588                                 if (r->objmetadata) {
13589                                         _mem_save_objmetadata_0 = NDR_PULL_GET_MEM_CTX(ndr);
13590                                         NDR_PULL_SET_MEM_CTX(ndr, r->objmetadata, 0);
13591                                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjMetaDataCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->objmetadata));
13592                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_objmetadata_0, 0);
13593                                 }
13594                         break;
13595
13596                         case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES:
13597                                 if (r->connectfailures) {
13598                                         _mem_save_connectfailures_0 = NDR_PULL_GET_MEM_CTX(ndr);
13599                                         NDR_PULL_SET_MEM_CTX(ndr, r->connectfailures, 0);
13600                                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaKccDsaFailuresCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->connectfailures));
13601                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_connectfailures_0, 0);
13602                                 }
13603                         break;
13604
13605                         case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES:
13606                                 if (r->linkfailures) {
13607                                         _mem_save_linkfailures_0 = NDR_PULL_GET_MEM_CTX(ndr);
13608                                         NDR_PULL_SET_MEM_CTX(ndr, r->linkfailures, 0);
13609                                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaKccDsaFailuresCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->linkfailures));
13610                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_linkfailures_0, 0);
13611                                 }
13612                         break;
13613
13614                         case DRSUAPI_DS_REPLICA_INFO_PENDING_OPS:
13615                                 if (r->pendingops) {
13616                                         _mem_save_pendingops_0 = NDR_PULL_GET_MEM_CTX(ndr);
13617                                         NDR_PULL_SET_MEM_CTX(ndr, r->pendingops, 0);
13618                                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaOpCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->pendingops));
13619                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pendingops_0, 0);
13620                                 }
13621                         break;
13622
13623                         case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA:
13624                                 if (r->attrvalmetadata) {
13625                                         _mem_save_attrvalmetadata_0 = NDR_PULL_GET_MEM_CTX(ndr);
13626                                         NDR_PULL_SET_MEM_CTX(ndr, r->attrvalmetadata, 0);
13627                                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaAttrValMetaDataCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->attrvalmetadata));
13628                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attrvalmetadata_0, 0);
13629                                 }
13630                         break;
13631
13632                         case DRSUAPI_DS_REPLICA_INFO_CURSORS2:
13633                                 if (r->cursors2) {
13634                                         _mem_save_cursors2_0 = NDR_PULL_GET_MEM_CTX(ndr);
13635                                         NDR_PULL_SET_MEM_CTX(ndr, r->cursors2, 0);
13636                                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursor2Ctr(ndr, NDR_SCALARS, r->cursors2));
13637                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_cursors2_0, 0);
13638                                 }
13639                         break;
13640
13641                         case DRSUAPI_DS_REPLICA_INFO_CURSORS3:
13642                                 if (r->cursors3) {
13643                                         _mem_save_cursors3_0 = NDR_PULL_GET_MEM_CTX(ndr);
13644                                         NDR_PULL_SET_MEM_CTX(ndr, r->cursors3, 0);
13645                                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursor3Ctr(ndr, NDR_SCALARS|NDR_BUFFERS, r->cursors3));
13646                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_cursors3_0, 0);
13647                                 }
13648                         break;
13649
13650                         case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2:
13651                                 if (r->objmetadata2) {
13652                                         _mem_save_objmetadata2_0 = NDR_PULL_GET_MEM_CTX(ndr);
13653                                         NDR_PULL_SET_MEM_CTX(ndr, r->objmetadata2, 0);
13654                                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjMetaData2Ctr(ndr, NDR_SCALARS|NDR_BUFFERS, r->objmetadata2));
13655                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_objmetadata2_0, 0);
13656                                 }
13657                         break;
13658
13659                         case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2:
13660                                 if (r->attrvalmetadata2) {
13661                                         _mem_save_attrvalmetadata2_0 = NDR_PULL_GET_MEM_CTX(ndr);
13662                                         NDR_PULL_SET_MEM_CTX(ndr, r->attrvalmetadata2, 0);
13663                                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaAttrValMetaData2Ctr(ndr, NDR_SCALARS|NDR_BUFFERS, r->attrvalmetadata2));
13664                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attrvalmetadata2_0, 0);
13665                                 }
13666                         break;
13667
13668                         case DRSUAPI_DS_REPLICA_INFO_REPSTO:
13669                                 if (r->repsto) {
13670                                         _mem_save_repsto_0 = NDR_PULL_GET_MEM_CTX(ndr);
13671                                         NDR_PULL_SET_MEM_CTX(ndr, r->repsto, 0);
13672                                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaNeighbourCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->repsto));
13673                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_repsto_0, 0);
13674                                 }
13675                         break;
13676
13677                         case DRSUAPI_DS_REPLICA_INFO_CLIENT_CONTEXTS:
13678                                 if (r->clientctx) {
13679                                         _mem_save_clientctx_0 = NDR_PULL_GET_MEM_CTX(ndr);
13680                                         NDR_PULL_SET_MEM_CTX(ndr, r->clientctx, 0);
13681                                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaConnection04Ctr(ndr, NDR_SCALARS, r->clientctx));
13682                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_clientctx_0, 0);
13683                                 }
13684                         break;
13685
13686                         case DRSUAPI_DS_REPLICA_INFO_UPTODATE_VECTOR_V1:
13687                                 if (r->udv1) {
13688                                         _mem_save_udv1_0 = NDR_PULL_GET_MEM_CTX(ndr);
13689                                         NDR_PULL_SET_MEM_CTX(ndr, r->udv1, 0);
13690                                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursorCtrEx(ndr, NDR_SCALARS, r->udv1));
13691                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_udv1_0, 0);
13692                                 }
13693                         break;
13694
13695                         case DRSUAPI_DS_REPLICA_INFO_SERVER_OUTGOING_CALLS:
13696                                 if (r->srvoutgoingcalls) {
13697                                         _mem_save_srvoutgoingcalls_0 = NDR_PULL_GET_MEM_CTX(ndr);
13698                                         NDR_PULL_SET_MEM_CTX(ndr, r->srvoutgoingcalls, 0);
13699                                         NDR_CHECK(ndr_pull_drsuapi_DsReplica06Ctr(ndr, NDR_SCALARS|NDR_BUFFERS, r->srvoutgoingcalls));
13700                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_srvoutgoingcalls_0, 0);
13701                                 }
13702                         break;
13703
13704                         default:
13705                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
13706                 }
13707         }
13708         return NDR_ERR_SUCCESS;
13709 }
13710
13711 _PUBLIC_ void ndr_print_drsuapi_DsReplicaInfo(struct ndr_print *ndr, const char *name, const union drsuapi_DsReplicaInfo *r)
13712 {
13713         uint32_t level;
13714         level = ndr_print_get_switch_value(ndr, r);
13715         ndr_print_union(ndr, name, level, "drsuapi_DsReplicaInfo");
13716         switch (level) {
13717                 case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS:
13718                         ndr_print_ptr(ndr, "neighbours", r->neighbours);
13719                         ndr->depth++;
13720                         if (r->neighbours) {
13721                                 ndr_print_drsuapi_DsReplicaNeighbourCtr(ndr, "neighbours", r->neighbours);
13722                         }
13723                         ndr->depth--;
13724                 break;
13725
13726                 case DRSUAPI_DS_REPLICA_INFO_CURSORS:
13727                         ndr_print_ptr(ndr, "cursors", r->cursors);
13728                         ndr->depth++;
13729                         if (r->cursors) {
13730                                 ndr_print_drsuapi_DsReplicaCursorCtr(ndr, "cursors", r->cursors);
13731                         }
13732                         ndr->depth--;
13733                 break;
13734
13735                 case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA:
13736                         ndr_print_ptr(ndr, "objmetadata", r->objmetadata);
13737                         ndr->depth++;
13738                         if (r->objmetadata) {
13739                                 ndr_print_drsuapi_DsReplicaObjMetaDataCtr(ndr, "objmetadata", r->objmetadata);
13740                         }
13741                         ndr->depth--;
13742                 break;
13743
13744                 case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES:
13745                         ndr_print_ptr(ndr, "connectfailures", r->connectfailures);
13746                         ndr->depth++;
13747                         if (r->connectfailures) {
13748                                 ndr_print_drsuapi_DsReplicaKccDsaFailuresCtr(ndr, "connectfailures", r->connectfailures);
13749                         }
13750                         ndr->depth--;
13751                 break;
13752
13753                 case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES:
13754                         ndr_print_ptr(ndr, "linkfailures", r->linkfailures);
13755                         ndr->depth++;
13756                         if (r->linkfailures) {
13757                                 ndr_print_drsuapi_DsReplicaKccDsaFailuresCtr(ndr, "linkfailures", r->linkfailures);
13758                         }
13759                         ndr->depth--;
13760                 break;
13761
13762                 case DRSUAPI_DS_REPLICA_INFO_PENDING_OPS:
13763                         ndr_print_ptr(ndr, "pendingops", r->pendingops);
13764                         ndr->depth++;
13765                         if (r->pendingops) {
13766                                 ndr_print_drsuapi_DsReplicaOpCtr(ndr, "pendingops", r->pendingops);
13767                         }
13768                         ndr->depth--;
13769                 break;
13770
13771                 case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA:
13772                         ndr_print_ptr(ndr, "attrvalmetadata", r->attrvalmetadata);
13773                         ndr->depth++;
13774                         if (r->attrvalmetadata) {
13775                                 ndr_print_drsuapi_DsReplicaAttrValMetaDataCtr(ndr, "attrvalmetadata", r->attrvalmetadata);
13776                         }
13777                         ndr->depth--;
13778                 break;
13779
13780                 case DRSUAPI_DS_REPLICA_INFO_CURSORS2:
13781                         ndr_print_ptr(ndr, "cursors2", r->cursors2);
13782                         ndr->depth++;
13783                         if (r->cursors2) {
13784                                 ndr_print_drsuapi_DsReplicaCursor2Ctr(ndr, "cursors2", r->cursors2);
13785                         }
13786                         ndr->depth--;
13787                 break;
13788
13789                 case DRSUAPI_DS_REPLICA_INFO_CURSORS3:
13790                         ndr_print_ptr(ndr, "cursors3", r->cursors3);
13791                         ndr->depth++;
13792                         if (r->cursors3) {
13793                                 ndr_print_drsuapi_DsReplicaCursor3Ctr(ndr, "cursors3", r->cursors3);
13794                         }
13795                         ndr->depth--;
13796                 break;
13797
13798                 case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2:
13799                         ndr_print_ptr(ndr, "objmetadata2", r->objmetadata2);
13800                         ndr->depth++;
13801                         if (r->objmetadata2) {
13802                                 ndr_print_drsuapi_DsReplicaObjMetaData2Ctr(ndr, "objmetadata2", r->objmetadata2);
13803                         }
13804                         ndr->depth--;
13805                 break;
13806
13807                 case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2:
13808                         ndr_print_ptr(ndr, "attrvalmetadata2", r->attrvalmetadata2);
13809                         ndr->depth++;
13810                         if (r->attrvalmetadata2) {
13811                                 ndr_print_drsuapi_DsReplicaAttrValMetaData2Ctr(ndr, "attrvalmetadata2", r->attrvalmetadata2);
13812                         }
13813                         ndr->depth--;
13814                 break;
13815
13816                 case DRSUAPI_DS_REPLICA_INFO_REPSTO:
13817                         ndr_print_ptr(ndr, "repsto", r->repsto);
13818                         ndr->depth++;
13819                         if (r->repsto) {
13820                                 ndr_print_drsuapi_DsReplicaNeighbourCtr(ndr, "repsto", r->repsto);
13821                         }
13822                         ndr->depth--;
13823                 break;
13824
13825                 case DRSUAPI_DS_REPLICA_INFO_CLIENT_CONTEXTS:
13826                         ndr_print_ptr(ndr, "clientctx", r->clientctx);
13827                         ndr->depth++;
13828                         if (r->clientctx) {
13829                                 ndr_print_drsuapi_DsReplicaConnection04Ctr(ndr, "clientctx", r->clientctx);
13830                         }
13831                         ndr->depth--;
13832                 break;
13833
13834                 case DRSUAPI_DS_REPLICA_INFO_UPTODATE_VECTOR_V1:
13835                         ndr_print_ptr(ndr, "udv1", r->udv1);
13836                         ndr->depth++;
13837                         if (r->udv1) {
13838                                 ndr_print_drsuapi_DsReplicaCursorCtrEx(ndr, "udv1", r->udv1);
13839                         }
13840                         ndr->depth--;
13841                 break;
13842
13843                 case DRSUAPI_DS_REPLICA_INFO_SERVER_OUTGOING_CALLS:
13844                         ndr_print_ptr(ndr, "srvoutgoingcalls", r->srvoutgoingcalls);
13845                         ndr->depth++;
13846                         if (r->srvoutgoingcalls) {
13847                                 ndr_print_drsuapi_DsReplica06Ctr(ndr, "srvoutgoingcalls", r->srvoutgoingcalls);
13848                         }
13849                         ndr->depth--;
13850                 break;
13851
13852                 default:
13853                         ndr_print_bad_level(ndr, name, level);
13854         }
13855 }
13856
13857 static enum ndr_err_code ndr_push_drsuapi_DsGetMemberships2Ctr(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsGetMemberships2Ctr *r)
13858 {
13859         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
13860         if (ndr_flags & NDR_SCALARS) {
13861                 uint32_t level = ndr_push_get_switch_value(ndr, r);
13862                 NDR_CHECK(ndr_push_union_align(ndr, 5));
13863                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
13864                 NDR_CHECK(ndr_push_union_align(ndr, 5));
13865                 switch (level) {
13866                         case 1: {
13867                                 NDR_CHECK(ndr_push_drsuapi_DsGetMembershipsCtr1(ndr, NDR_SCALARS, &r->ctr1));
13868                         break; }
13869
13870                         default:
13871                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
13872                 }
13873         }
13874         if (ndr_flags & NDR_BUFFERS) {
13875                 uint32_t level = ndr_push_get_switch_value(ndr, r);
13876                 switch (level) {
13877                         case 1:
13878                                 NDR_CHECK(ndr_push_drsuapi_DsGetMembershipsCtr1(ndr, NDR_BUFFERS, &r->ctr1));
13879                         break;
13880
13881                         default:
13882                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
13883                 }
13884         }
13885         return NDR_ERR_SUCCESS;
13886 }
13887
13888 static enum ndr_err_code ndr_pull_drsuapi_DsGetMemberships2Ctr(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsGetMemberships2Ctr *r)
13889 {
13890         uint32_t level;
13891         uint32_t _level;
13892         level = ndr_pull_get_switch_value(ndr, r);
13893         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
13894         if (ndr_flags & NDR_SCALARS) {
13895                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
13896                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
13897                 if (_level != level) {
13898                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
13899                 }
13900                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
13901                 switch (level) {
13902                         case 1: {
13903                                 NDR_CHECK(ndr_pull_drsuapi_DsGetMembershipsCtr1(ndr, NDR_SCALARS, &r->ctr1));
13904                         break; }
13905
13906                         default:
13907                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
13908                 }
13909         }
13910         if (ndr_flags & NDR_BUFFERS) {
13911                 switch (level) {
13912                         case 1:
13913                                 NDR_CHECK(ndr_pull_drsuapi_DsGetMembershipsCtr1(ndr, NDR_BUFFERS, &r->ctr1));
13914                         break;
13915
13916                         default:
13917                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
13918                 }
13919         }
13920         return NDR_ERR_SUCCESS;
13921 }
13922
13923 _PUBLIC_ void ndr_print_drsuapi_DsGetMemberships2Ctr(struct ndr_print *ndr, const char *name, const union drsuapi_DsGetMemberships2Ctr *r)
13924 {
13925         uint32_t level;
13926         level = ndr_print_get_switch_value(ndr, r);
13927         ndr_print_union(ndr, name, level, "drsuapi_DsGetMemberships2Ctr");
13928         switch (level) {
13929                 case 1:
13930                         ndr_print_drsuapi_DsGetMembershipsCtr1(ndr, "ctr1", &r->ctr1);
13931                 break;
13932
13933                 default:
13934                         ndr_print_bad_level(ndr, name, level);
13935         }
13936 }
13937
13938 static enum ndr_err_code ndr_push_drsuapi_DsGetMemberships2Request1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetMemberships2Request1 *r)
13939 {
13940         uint32_t cntr_req_array_1;
13941         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
13942         if (ndr_flags & NDR_SCALARS) {
13943                 NDR_CHECK(ndr_push_align(ndr, 5));
13944                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_req));
13945                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->req_array));
13946                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
13947         }
13948         if (ndr_flags & NDR_BUFFERS) {
13949                 if (r->req_array) {
13950                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->num_req));
13951                         for (cntr_req_array_1 = 0; cntr_req_array_1 < r->num_req; cntr_req_array_1++) {
13952                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->req_array[cntr_req_array_1]));
13953                         }
13954                         for (cntr_req_array_1 = 0; cntr_req_array_1 < r->num_req; cntr_req_array_1++) {
13955                                 if (r->req_array[cntr_req_array_1]) {
13956                                         NDR_CHECK(ndr_push_drsuapi_DsGetMembershipsRequest1(ndr, NDR_SCALARS|NDR_BUFFERS, r->req_array[cntr_req_array_1]));
13957                                 }
13958                         }
13959                 }
13960         }
13961         return NDR_ERR_SUCCESS;
13962 }
13963
13964 static enum ndr_err_code ndr_pull_drsuapi_DsGetMemberships2Request1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetMemberships2Request1 *r)
13965 {
13966         uint32_t _ptr_req_array;
13967         uint32_t size_req_array_1 = 0;
13968         uint32_t cntr_req_array_1;
13969         TALLOC_CTX *_mem_save_req_array_0;
13970         TALLOC_CTX *_mem_save_req_array_1;
13971         TALLOC_CTX *_mem_save_req_array_2;
13972         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
13973         if (ndr_flags & NDR_SCALARS) {
13974                 NDR_CHECK(ndr_pull_align(ndr, 5));
13975                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_req));
13976                 if (r->num_req < 1 || r->num_req > 10000) {
13977                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
13978                 }
13979                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_req_array));
13980                 if (_ptr_req_array) {
13981                         NDR_PULL_ALLOC(ndr, r->req_array);
13982                 } else {
13983                         r->req_array = NULL;
13984                 }
13985                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
13986         }
13987         if (ndr_flags & NDR_BUFFERS) {
13988                 if (r->req_array) {
13989                         _mem_save_req_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
13990                         NDR_PULL_SET_MEM_CTX(ndr, r->req_array, 0);
13991                         NDR_CHECK(ndr_pull_array_size(ndr, &r->req_array));
13992                         size_req_array_1 = ndr_get_array_size(ndr, &r->req_array);
13993                         NDR_PULL_ALLOC_N(ndr, r->req_array, size_req_array_1);
13994                         _mem_save_req_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
13995                         NDR_PULL_SET_MEM_CTX(ndr, r->req_array, 0);
13996                         for (cntr_req_array_1 = 0; cntr_req_array_1 < size_req_array_1; cntr_req_array_1++) {
13997                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_req_array));
13998                                 if (_ptr_req_array) {
13999                                         NDR_PULL_ALLOC(ndr, r->req_array[cntr_req_array_1]);
14000                                 } else {
14001                                         r->req_array[cntr_req_array_1] = NULL;
14002                                 }
14003                         }
14004                         for (cntr_req_array_1 = 0; cntr_req_array_1 < size_req_array_1; cntr_req_array_1++) {
14005                                 if (r->req_array[cntr_req_array_1]) {
14006                                         _mem_save_req_array_2 = NDR_PULL_GET_MEM_CTX(ndr);
14007                                         NDR_PULL_SET_MEM_CTX(ndr, r->req_array[cntr_req_array_1], 0);
14008                                         NDR_CHECK(ndr_pull_drsuapi_DsGetMembershipsRequest1(ndr, NDR_SCALARS|NDR_BUFFERS, r->req_array[cntr_req_array_1]));
14009                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_array_2, 0);
14010                                 }
14011                         }
14012                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_array_1, 0);
14013                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_array_0, 0);
14014                 }
14015                 if (r->req_array) {
14016                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->req_array, r->num_req));
14017                 }
14018         }
14019         return NDR_ERR_SUCCESS;
14020 }
14021
14022 _PUBLIC_ void ndr_print_drsuapi_DsGetMemberships2Request1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetMemberships2Request1 *r)
14023 {
14024         uint32_t cntr_req_array_1;
14025         ndr_print_struct(ndr, name, "drsuapi_DsGetMemberships2Request1");
14026         if (r == NULL) { ndr_print_null(ndr); return; }
14027         ndr->depth++;
14028         ndr_print_uint32(ndr, "num_req", r->num_req);
14029         ndr_print_ptr(ndr, "req_array", r->req_array);
14030         ndr->depth++;
14031         if (r->req_array) {
14032                 ndr->print(ndr, "%s: ARRAY(%d)", "req_array", (int)r->num_req);
14033                 ndr->depth++;
14034                 for (cntr_req_array_1=0;cntr_req_array_1<r->num_req;cntr_req_array_1++) {
14035                         ndr_print_ptr(ndr, "req_array", r->req_array[cntr_req_array_1]);
14036                         ndr->depth++;
14037                         if (r->req_array[cntr_req_array_1]) {
14038                                 ndr_print_drsuapi_DsGetMembershipsRequest1(ndr, "req_array", r->req_array[cntr_req_array_1]);
14039                         }
14040                         ndr->depth--;
14041                 }
14042                 ndr->depth--;
14043         }
14044         ndr->depth--;
14045         ndr->depth--;
14046 }
14047
14048 static enum ndr_err_code ndr_push_drsuapi_DsGetMemberships2Request(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsGetMemberships2Request *r)
14049 {
14050         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
14051         if (ndr_flags & NDR_SCALARS) {
14052                 uint32_t level = ndr_push_get_switch_value(ndr, r);
14053                 NDR_CHECK(ndr_push_union_align(ndr, 5));
14054                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
14055                 NDR_CHECK(ndr_push_union_align(ndr, 5));
14056                 switch (level) {
14057                         case 1: {
14058                                 NDR_CHECK(ndr_push_drsuapi_DsGetMemberships2Request1(ndr, NDR_SCALARS, &r->req1));
14059                         break; }
14060
14061                         default:
14062                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
14063                 }
14064         }
14065         if (ndr_flags & NDR_BUFFERS) {
14066                 uint32_t level = ndr_push_get_switch_value(ndr, r);
14067                 switch (level) {
14068                         case 1:
14069                                 NDR_CHECK(ndr_push_drsuapi_DsGetMemberships2Request1(ndr, NDR_BUFFERS, &r->req1));
14070                         break;
14071
14072                         default:
14073                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
14074                 }
14075         }
14076         return NDR_ERR_SUCCESS;
14077 }
14078
14079 static enum ndr_err_code ndr_pull_drsuapi_DsGetMemberships2Request(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsGetMemberships2Request *r)
14080 {
14081         uint32_t level;
14082         uint32_t _level;
14083         level = ndr_pull_get_switch_value(ndr, r);
14084         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
14085         if (ndr_flags & NDR_SCALARS) {
14086                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
14087                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
14088                 if (_level != level) {
14089                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
14090                 }
14091                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
14092                 switch (level) {
14093                         case 1: {
14094                                 NDR_CHECK(ndr_pull_drsuapi_DsGetMemberships2Request1(ndr, NDR_SCALARS, &r->req1));
14095                         break; }
14096
14097                         default:
14098                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
14099                 }
14100         }
14101         if (ndr_flags & NDR_BUFFERS) {
14102                 switch (level) {
14103                         case 1:
14104                                 NDR_CHECK(ndr_pull_drsuapi_DsGetMemberships2Request1(ndr, NDR_BUFFERS, &r->req1));
14105                         break;
14106
14107                         default:
14108                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
14109                 }
14110         }
14111         return NDR_ERR_SUCCESS;
14112 }
14113
14114 _PUBLIC_ void ndr_print_drsuapi_DsGetMemberships2Request(struct ndr_print *ndr, const char *name, const union drsuapi_DsGetMemberships2Request *r)
14115 {
14116         uint32_t level;
14117         level = ndr_print_get_switch_value(ndr, r);
14118         ndr_print_union(ndr, name, level, "drsuapi_DsGetMemberships2Request");
14119         switch (level) {
14120                 case 1:
14121                         ndr_print_drsuapi_DsGetMemberships2Request1(ndr, "req1", &r->req1);
14122                 break;
14123
14124                 default:
14125                         ndr_print_bad_level(ndr, name, level);
14126         }
14127 }
14128
14129 static enum ndr_err_code ndr_push_drsuapi_DsSiteCostInfo(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsSiteCostInfo *r)
14130 {
14131         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
14132         if (ndr_flags & NDR_SCALARS) {
14133                 NDR_CHECK(ndr_push_align(ndr, 4));
14134                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->error_code));
14135                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->site_cost));
14136                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
14137         }
14138         if (ndr_flags & NDR_BUFFERS) {
14139         }
14140         return NDR_ERR_SUCCESS;
14141 }
14142
14143 static enum ndr_err_code ndr_pull_drsuapi_DsSiteCostInfo(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsSiteCostInfo *r)
14144 {
14145         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
14146         if (ndr_flags & NDR_SCALARS) {
14147                 NDR_CHECK(ndr_pull_align(ndr, 4));
14148                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->error_code));
14149                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->site_cost));
14150                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
14151         }
14152         if (ndr_flags & NDR_BUFFERS) {
14153         }
14154         return NDR_ERR_SUCCESS;
14155 }
14156
14157 _PUBLIC_ void ndr_print_drsuapi_DsSiteCostInfo(struct ndr_print *ndr, const char *name, const struct drsuapi_DsSiteCostInfo *r)
14158 {
14159         ndr_print_struct(ndr, name, "drsuapi_DsSiteCostInfo");
14160         if (r == NULL) { ndr_print_null(ndr); return; }
14161         ndr->depth++;
14162         ndr_print_WERROR(ndr, "error_code", r->error_code);
14163         ndr_print_uint32(ndr, "site_cost", r->site_cost);
14164         ndr->depth--;
14165 }
14166
14167 static enum ndr_err_code ndr_push_drsuapi_QuerySitesByCostCtr1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_QuerySitesByCostCtr1 *r)
14168 {
14169         uint32_t cntr_info_1;
14170         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
14171         if (ndr_flags & NDR_SCALARS) {
14172                 NDR_CHECK(ndr_push_align(ndr, 5));
14173                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_info));
14174                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info));
14175                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14176                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
14177         }
14178         if (ndr_flags & NDR_BUFFERS) {
14179                 if (r->info) {
14180                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->num_info));
14181                         for (cntr_info_1 = 0; cntr_info_1 < r->num_info; cntr_info_1++) {
14182                                 NDR_CHECK(ndr_push_drsuapi_DsSiteCostInfo(ndr, NDR_SCALARS, &r->info[cntr_info_1]));
14183                         }
14184                 }
14185         }
14186         return NDR_ERR_SUCCESS;
14187 }
14188
14189 static enum ndr_err_code ndr_pull_drsuapi_QuerySitesByCostCtr1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_QuerySitesByCostCtr1 *r)
14190 {
14191         uint32_t _ptr_info;
14192         uint32_t size_info_1 = 0;
14193         uint32_t cntr_info_1;
14194         TALLOC_CTX *_mem_save_info_0;
14195         TALLOC_CTX *_mem_save_info_1;
14196         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
14197         if (ndr_flags & NDR_SCALARS) {
14198                 NDR_CHECK(ndr_pull_align(ndr, 5));
14199                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_info));
14200                 if (r->num_info > 10000) {
14201                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
14202                 }
14203                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
14204                 if (_ptr_info) {
14205                         NDR_PULL_ALLOC(ndr, r->info);
14206                 } else {
14207                         r->info = NULL;
14208                 }
14209                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags_reserved));
14210                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
14211         }
14212         if (ndr_flags & NDR_BUFFERS) {
14213                 if (r->info) {
14214                         _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
14215                         NDR_PULL_SET_MEM_CTX(ndr, r->info, 0);
14216                         NDR_CHECK(ndr_pull_array_size(ndr, &r->info));
14217                         size_info_1 = ndr_get_array_size(ndr, &r->info);
14218                         NDR_PULL_ALLOC_N(ndr, r->info, size_info_1);
14219                         _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
14220                         NDR_PULL_SET_MEM_CTX(ndr, r->info, 0);
14221                         for (cntr_info_1 = 0; cntr_info_1 < size_info_1; cntr_info_1++) {
14222                                 NDR_CHECK(ndr_pull_drsuapi_DsSiteCostInfo(ndr, NDR_SCALARS, &r->info[cntr_info_1]));
14223                         }
14224                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
14225                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
14226                 }
14227                 if (r->info) {
14228                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->info, r->num_info));
14229                 }
14230         }
14231         return NDR_ERR_SUCCESS;
14232 }
14233
14234 _PUBLIC_ void ndr_print_drsuapi_QuerySitesByCostCtr1(struct ndr_print *ndr, const char *name, const struct drsuapi_QuerySitesByCostCtr1 *r)
14235 {
14236         uint32_t cntr_info_1;
14237         ndr_print_struct(ndr, name, "drsuapi_QuerySitesByCostCtr1");
14238         if (r == NULL) { ndr_print_null(ndr); return; }
14239         ndr->depth++;
14240         ndr_print_uint32(ndr, "num_info", r->num_info);
14241         ndr_print_ptr(ndr, "info", r->info);
14242         ndr->depth++;
14243         if (r->info) {
14244                 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)r->num_info);
14245                 ndr->depth++;
14246                 for (cntr_info_1=0;cntr_info_1<r->num_info;cntr_info_1++) {
14247                         ndr_print_drsuapi_DsSiteCostInfo(ndr, "info", &r->info[cntr_info_1]);
14248                 }
14249                 ndr->depth--;
14250         }
14251         ndr->depth--;
14252         ndr_print_uint32(ndr, "flags_reserved", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->flags_reserved);
14253         ndr->depth--;
14254 }
14255
14256 static enum ndr_err_code ndr_push_drsuapi_QuerySitesByCostCtr(struct ndr_push *ndr, int ndr_flags, const union drsuapi_QuerySitesByCostCtr *r)
14257 {
14258         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
14259         if (ndr_flags & NDR_SCALARS) {
14260                 uint32_t level = ndr_push_get_switch_value(ndr, r);
14261                 NDR_CHECK(ndr_push_union_align(ndr, 5));
14262                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
14263                 NDR_CHECK(ndr_push_union_align(ndr, 5));
14264                 switch (level) {
14265                         case 1: {
14266                                 NDR_CHECK(ndr_push_drsuapi_QuerySitesByCostCtr1(ndr, NDR_SCALARS, &r->ctr1));
14267                         break; }
14268
14269                         default:
14270                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
14271                 }
14272         }
14273         if (ndr_flags & NDR_BUFFERS) {
14274                 uint32_t level = ndr_push_get_switch_value(ndr, r);
14275                 switch (level) {
14276                         case 1:
14277                                 NDR_CHECK(ndr_push_drsuapi_QuerySitesByCostCtr1(ndr, NDR_BUFFERS, &r->ctr1));
14278                         break;
14279
14280                         default:
14281                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
14282                 }
14283         }
14284         return NDR_ERR_SUCCESS;
14285 }
14286
14287 static enum ndr_err_code ndr_pull_drsuapi_QuerySitesByCostCtr(struct ndr_pull *ndr, int ndr_flags, union drsuapi_QuerySitesByCostCtr *r)
14288 {
14289         uint32_t level;
14290         uint32_t _level;
14291         level = ndr_pull_get_switch_value(ndr, r);
14292         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
14293         if (ndr_flags & NDR_SCALARS) {
14294                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
14295                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
14296                 if (_level != level) {
14297                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
14298                 }
14299                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
14300                 switch (level) {
14301                         case 1: {
14302                                 NDR_CHECK(ndr_pull_drsuapi_QuerySitesByCostCtr1(ndr, NDR_SCALARS, &r->ctr1));
14303                         break; }
14304
14305                         default:
14306                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
14307                 }
14308         }
14309         if (ndr_flags & NDR_BUFFERS) {
14310                 switch (level) {
14311                         case 1:
14312                                 NDR_CHECK(ndr_pull_drsuapi_QuerySitesByCostCtr1(ndr, NDR_BUFFERS, &r->ctr1));
14313                         break;
14314
14315                         default:
14316                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
14317                 }
14318         }
14319         return NDR_ERR_SUCCESS;
14320 }
14321
14322 _PUBLIC_ void ndr_print_drsuapi_QuerySitesByCostCtr(struct ndr_print *ndr, const char *name, const union drsuapi_QuerySitesByCostCtr *r)
14323 {
14324         uint32_t level;
14325         level = ndr_print_get_switch_value(ndr, r);
14326         ndr_print_union(ndr, name, level, "drsuapi_QuerySitesByCostCtr");
14327         switch (level) {
14328                 case 1:
14329                         ndr_print_drsuapi_QuerySitesByCostCtr1(ndr, "ctr1", &r->ctr1);
14330                 break;
14331
14332                 default:
14333                         ndr_print_bad_level(ndr, name, level);
14334         }
14335 }
14336
14337 static enum ndr_err_code ndr_push_drsuapi_QuerySitesByCostRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_QuerySitesByCostRequest1 *r)
14338 {
14339         uint32_t cntr_site_to_1;
14340         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
14341         if (ndr_flags & NDR_SCALARS) {
14342                 NDR_CHECK(ndr_push_align(ndr, 5));
14343                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->site_from));
14344                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_req));
14345                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->site_to));
14346                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
14347                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
14348         }
14349         if (ndr_flags & NDR_BUFFERS) {
14350                 if (r->site_from) {
14351                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->site_from, CH_UTF16)));
14352                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
14353                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->site_from, CH_UTF16)));
14354                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->site_from, ndr_charset_length(r->site_from, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14355                 }
14356                 if (r->site_to) {
14357                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->num_req));
14358                         for (cntr_site_to_1 = 0; cntr_site_to_1 < r->num_req; cntr_site_to_1++) {
14359                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->site_to[cntr_site_to_1]));
14360                         }
14361                         for (cntr_site_to_1 = 0; cntr_site_to_1 < r->num_req; cntr_site_to_1++) {
14362                                 if (r->site_to[cntr_site_to_1]) {
14363                                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->site_to[cntr_site_to_1], CH_UTF16)));
14364                                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
14365                                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->site_to[cntr_site_to_1], CH_UTF16)));
14366                                         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));
14367                                 }
14368                         }
14369                 }
14370         }
14371         return NDR_ERR_SUCCESS;
14372 }
14373
14374 static enum ndr_err_code ndr_pull_drsuapi_QuerySitesByCostRequest1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_QuerySitesByCostRequest1 *r)
14375 {
14376         uint32_t _ptr_site_from;
14377         uint32_t size_site_from_1 = 0;
14378         uint32_t length_site_from_1 = 0;
14379         TALLOC_CTX *_mem_save_site_from_0;
14380         uint32_t _ptr_site_to;
14381         uint32_t size_site_to_1 = 0;
14382         uint32_t cntr_site_to_1;
14383         uint32_t size_site_to_3 = 0;
14384         uint32_t length_site_to_3 = 0;
14385         TALLOC_CTX *_mem_save_site_to_0;
14386         TALLOC_CTX *_mem_save_site_to_1;
14387         TALLOC_CTX *_mem_save_site_to_2;
14388         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
14389         if (ndr_flags & NDR_SCALARS) {
14390                 NDR_CHECK(ndr_pull_align(ndr, 5));
14391                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_from));
14392                 if (_ptr_site_from) {
14393                         NDR_PULL_ALLOC(ndr, r->site_from);
14394                 } else {
14395                         r->site_from = NULL;
14396                 }
14397                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_req));
14398                 if (r->num_req < 1 || r->num_req > 10000) {
14399                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
14400                 }
14401                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_to));
14402                 if (_ptr_site_to) {
14403                         NDR_PULL_ALLOC(ndr, r->site_to);
14404                 } else {
14405                         r->site_to = NULL;
14406                 }
14407                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
14408                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
14409         }
14410         if (ndr_flags & NDR_BUFFERS) {
14411                 if (r->site_from) {
14412                         _mem_save_site_from_0 = NDR_PULL_GET_MEM_CTX(ndr);
14413                         NDR_PULL_SET_MEM_CTX(ndr, r->site_from, 0);
14414                         NDR_CHECK(ndr_pull_array_size(ndr, &r->site_from));
14415                         NDR_CHECK(ndr_pull_array_length(ndr, &r->site_from));
14416                         size_site_from_1 = ndr_get_array_size(ndr, &r->site_from);
14417                         length_site_from_1 = ndr_get_array_length(ndr, &r->site_from);
14418                         if (length_site_from_1 > size_site_from_1) {
14419                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_site_from_1, length_site_from_1);
14420                         }
14421                         NDR_CHECK(ndr_check_string_terminator(ndr, length_site_from_1, sizeof(uint16_t)));
14422                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->site_from, length_site_from_1, sizeof(uint16_t), CH_UTF16));
14423                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_from_0, 0);
14424                 }
14425                 if (r->site_to) {
14426                         _mem_save_site_to_0 = NDR_PULL_GET_MEM_CTX(ndr);
14427                         NDR_PULL_SET_MEM_CTX(ndr, r->site_to, 0);
14428                         NDR_CHECK(ndr_pull_array_size(ndr, &r->site_to));
14429                         size_site_to_1 = ndr_get_array_size(ndr, &r->site_to);
14430                         NDR_PULL_ALLOC_N(ndr, r->site_to, size_site_to_1);
14431                         _mem_save_site_to_1 = NDR_PULL_GET_MEM_CTX(ndr);
14432                         NDR_PULL_SET_MEM_CTX(ndr, r->site_to, 0);
14433                         for (cntr_site_to_1 = 0; cntr_site_to_1 < size_site_to_1; cntr_site_to_1++) {
14434                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_to));
14435                                 if (_ptr_site_to) {
14436                                         NDR_PULL_ALLOC(ndr, r->site_to[cntr_site_to_1]);
14437                                 } else {
14438                                         r->site_to[cntr_site_to_1] = NULL;
14439                                 }
14440                         }
14441                         for (cntr_site_to_1 = 0; cntr_site_to_1 < size_site_to_1; cntr_site_to_1++) {
14442                                 if (r->site_to[cntr_site_to_1]) {
14443                                         _mem_save_site_to_2 = NDR_PULL_GET_MEM_CTX(ndr);
14444                                         NDR_PULL_SET_MEM_CTX(ndr, r->site_to[cntr_site_to_1], 0);
14445                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->site_to[cntr_site_to_1]));
14446                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->site_to[cntr_site_to_1]));
14447                                         size_site_to_3 = ndr_get_array_size(ndr, &r->site_to[cntr_site_to_1]);
14448                                         length_site_to_3 = ndr_get_array_length(ndr, &r->site_to[cntr_site_to_1]);
14449                                         if (length_site_to_3 > size_site_to_3) {
14450                                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_site_to_3, length_site_to_3);
14451                                         }
14452                                         NDR_CHECK(ndr_check_string_terminator(ndr, length_site_to_3, sizeof(uint16_t)));
14453                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->site_to[cntr_site_to_1], length_site_to_3, sizeof(uint16_t), CH_UTF16));
14454                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_to_2, 0);
14455                                 }
14456                         }
14457                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_to_1, 0);
14458                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_to_0, 0);
14459                 }
14460                 if (r->site_to) {
14461                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->site_to, r->num_req));
14462                 }
14463         }
14464         return NDR_ERR_SUCCESS;
14465 }
14466
14467 _PUBLIC_ void ndr_print_drsuapi_QuerySitesByCostRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_QuerySitesByCostRequest1 *r)
14468 {
14469         uint32_t cntr_site_to_1;
14470         ndr_print_struct(ndr, name, "drsuapi_QuerySitesByCostRequest1");
14471         if (r == NULL) { ndr_print_null(ndr); return; }
14472         ndr->depth++;
14473         ndr_print_ptr(ndr, "site_from", r->site_from);
14474         ndr->depth++;
14475         if (r->site_from) {
14476                 ndr_print_string(ndr, "site_from", r->site_from);
14477         }
14478         ndr->depth--;
14479         ndr_print_uint32(ndr, "num_req", r->num_req);
14480         ndr_print_ptr(ndr, "site_to", r->site_to);
14481         ndr->depth++;
14482         if (r->site_to) {
14483                 ndr->print(ndr, "%s: ARRAY(%d)", "site_to", (int)r->num_req);
14484                 ndr->depth++;
14485                 for (cntr_site_to_1=0;cntr_site_to_1<r->num_req;cntr_site_to_1++) {
14486                         ndr_print_ptr(ndr, "site_to", r->site_to[cntr_site_to_1]);
14487                         ndr->depth++;
14488                         if (r->site_to[cntr_site_to_1]) {
14489                                 ndr_print_string(ndr, "site_to", r->site_to[cntr_site_to_1]);
14490                         }
14491                         ndr->depth--;
14492                 }
14493                 ndr->depth--;
14494         }
14495         ndr->depth--;
14496         ndr_print_uint32(ndr, "flags", r->flags);
14497         ndr->depth--;
14498 }
14499
14500 static enum ndr_err_code ndr_push_drsuapi_QuerySitesByCostRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_QuerySitesByCostRequest *r)
14501 {
14502         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
14503         if (ndr_flags & NDR_SCALARS) {
14504                 uint32_t level = ndr_push_get_switch_value(ndr, r);
14505                 NDR_CHECK(ndr_push_union_align(ndr, 5));
14506                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
14507                 NDR_CHECK(ndr_push_union_align(ndr, 5));
14508                 switch (level) {
14509                         case 1: {
14510                                 NDR_CHECK(ndr_push_drsuapi_QuerySitesByCostRequest1(ndr, NDR_SCALARS, &r->req1));
14511                         break; }
14512
14513                         default:
14514                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
14515                 }
14516         }
14517         if (ndr_flags & NDR_BUFFERS) {
14518                 uint32_t level = ndr_push_get_switch_value(ndr, r);
14519                 switch (level) {
14520                         case 1:
14521                                 NDR_CHECK(ndr_push_drsuapi_QuerySitesByCostRequest1(ndr, NDR_BUFFERS, &r->req1));
14522                         break;
14523
14524                         default:
14525                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
14526                 }
14527         }
14528         return NDR_ERR_SUCCESS;
14529 }
14530
14531 static enum ndr_err_code ndr_pull_drsuapi_QuerySitesByCostRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_QuerySitesByCostRequest *r)
14532 {
14533         uint32_t level;
14534         uint32_t _level;
14535         level = ndr_pull_get_switch_value(ndr, r);
14536         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
14537         if (ndr_flags & NDR_SCALARS) {
14538                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
14539                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
14540                 if (_level != level) {
14541                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
14542                 }
14543                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
14544                 switch (level) {
14545                         case 1: {
14546                                 NDR_CHECK(ndr_pull_drsuapi_QuerySitesByCostRequest1(ndr, NDR_SCALARS, &r->req1));
14547                         break; }
14548
14549                         default:
14550                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
14551                 }
14552         }
14553         if (ndr_flags & NDR_BUFFERS) {
14554                 switch (level) {
14555                         case 1:
14556                                 NDR_CHECK(ndr_pull_drsuapi_QuerySitesByCostRequest1(ndr, NDR_BUFFERS, &r->req1));
14557                         break;
14558
14559                         default:
14560                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
14561                 }
14562         }
14563         return NDR_ERR_SUCCESS;
14564 }
14565
14566 _PUBLIC_ void ndr_print_drsuapi_QuerySitesByCostRequest(struct ndr_print *ndr, const char *name, const union drsuapi_QuerySitesByCostRequest *r)
14567 {
14568         uint32_t level;
14569         level = ndr_print_get_switch_value(ndr, r);
14570         ndr_print_union(ndr, name, level, "drsuapi_QuerySitesByCostRequest");
14571         switch (level) {
14572                 case 1:
14573                         ndr_print_drsuapi_QuerySitesByCostRequest1(ndr, "req1", &r->req1);
14574                 break;
14575
14576                 default:
14577                         ndr_print_bad_level(ndr, name, level);
14578         }
14579 }
14580
14581 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsBind(struct ndr_push *ndr, int flags, const struct drsuapi_DsBind *r)
14582 {
14583         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
14584         if (flags & NDR_IN) {
14585                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.bind_guid));
14586                 if (r->in.bind_guid) {
14587                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.bind_guid));
14588                 }
14589                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.bind_info));
14590                 if (r->in.bind_info) {
14591                         NDR_CHECK(ndr_push_drsuapi_DsBindInfoCtr(ndr, NDR_SCALARS, r->in.bind_info));
14592                 }
14593         }
14594         if (flags & NDR_OUT) {
14595                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.bind_info));
14596                 if (r->out.bind_info) {
14597                         NDR_CHECK(ndr_push_drsuapi_DsBindInfoCtr(ndr, NDR_SCALARS, r->out.bind_info));
14598                 }
14599                 if (r->out.bind_handle == NULL) {
14600                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14601                 }
14602                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.bind_handle));
14603                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14604         }
14605         return NDR_ERR_SUCCESS;
14606 }
14607
14608 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsBind(struct ndr_pull *ndr, int flags, struct drsuapi_DsBind *r)
14609 {
14610         uint32_t _ptr_bind_guid;
14611         uint32_t _ptr_bind_info;
14612         TALLOC_CTX *_mem_save_bind_guid_0;
14613         TALLOC_CTX *_mem_save_bind_info_0;
14614         TALLOC_CTX *_mem_save_bind_handle_0;
14615         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
14616         if (flags & NDR_IN) {
14617                 ZERO_STRUCT(r->out);
14618
14619                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_bind_guid));
14620                 if (_ptr_bind_guid) {
14621                         NDR_PULL_ALLOC(ndr, r->in.bind_guid);
14622                 } else {
14623                         r->in.bind_guid = NULL;
14624                 }
14625                 if (r->in.bind_guid) {
14626                         _mem_save_bind_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
14627                         NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_guid, 0);
14628                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.bind_guid));
14629                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_guid_0, 0);
14630                 }
14631                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_bind_info));
14632                 if (_ptr_bind_info) {
14633                         NDR_PULL_ALLOC(ndr, r->in.bind_info);
14634                 } else {
14635                         r->in.bind_info = NULL;
14636                 }
14637                 if (r->in.bind_info) {
14638                         _mem_save_bind_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
14639                         NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_info, 0);
14640                         NDR_CHECK(ndr_pull_drsuapi_DsBindInfoCtr(ndr, NDR_SCALARS, r->in.bind_info));
14641                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_info_0, 0);
14642                 }
14643                 NDR_PULL_ALLOC(ndr, r->out.bind_handle);
14644                 ZERO_STRUCTP(r->out.bind_handle);
14645         }
14646         if (flags & NDR_OUT) {
14647                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_bind_info));
14648                 if (_ptr_bind_info) {
14649                         NDR_PULL_ALLOC(ndr, r->out.bind_info);
14650                 } else {
14651                         r->out.bind_info = NULL;
14652                 }
14653                 if (r->out.bind_info) {
14654                         _mem_save_bind_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
14655                         NDR_PULL_SET_MEM_CTX(ndr, r->out.bind_info, 0);
14656                         NDR_CHECK(ndr_pull_drsuapi_DsBindInfoCtr(ndr, NDR_SCALARS, r->out.bind_info));
14657                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_info_0, 0);
14658                 }
14659                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14660                         NDR_PULL_ALLOC(ndr, r->out.bind_handle);
14661                 }
14662                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
14663                 NDR_PULL_SET_MEM_CTX(ndr, r->out.bind_handle, LIBNDR_FLAG_REF_ALLOC);
14664                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.bind_handle));
14665                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
14666                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14667         }
14668         return NDR_ERR_SUCCESS;
14669 }
14670
14671 _PUBLIC_ void ndr_print_drsuapi_DsBind(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsBind *r)
14672 {
14673         ndr_print_struct(ndr, name, "drsuapi_DsBind");
14674         if (r == NULL) { ndr_print_null(ndr); return; }
14675         ndr->depth++;
14676         if (flags & NDR_SET_VALUES) {
14677                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14678         }
14679         if (flags & NDR_IN) {
14680                 ndr_print_struct(ndr, "in", "drsuapi_DsBind");
14681                 ndr->depth++;
14682                 ndr_print_ptr(ndr, "bind_guid", r->in.bind_guid);
14683                 ndr->depth++;
14684                 if (r->in.bind_guid) {
14685                         ndr_print_GUID(ndr, "bind_guid", r->in.bind_guid);
14686                 }
14687                 ndr->depth--;
14688                 ndr_print_ptr(ndr, "bind_info", r->in.bind_info);
14689                 ndr->depth++;
14690                 if (r->in.bind_info) {
14691                         ndr_print_drsuapi_DsBindInfoCtr(ndr, "bind_info", r->in.bind_info);
14692                 }
14693                 ndr->depth--;
14694                 ndr->depth--;
14695         }
14696         if (flags & NDR_OUT) {
14697                 ndr_print_struct(ndr, "out", "drsuapi_DsBind");
14698                 ndr->depth++;
14699                 ndr_print_ptr(ndr, "bind_info", r->out.bind_info);
14700                 ndr->depth++;
14701                 if (r->out.bind_info) {
14702                         ndr_print_drsuapi_DsBindInfoCtr(ndr, "bind_info", r->out.bind_info);
14703                 }
14704                 ndr->depth--;
14705                 ndr_print_ptr(ndr, "bind_handle", r->out.bind_handle);
14706                 ndr->depth++;
14707                 ndr_print_policy_handle(ndr, "bind_handle", r->out.bind_handle);
14708                 ndr->depth--;
14709                 ndr_print_WERROR(ndr, "result", r->out.result);
14710                 ndr->depth--;
14711         }
14712         ndr->depth--;
14713 }
14714
14715 static enum ndr_err_code ndr_push_drsuapi_DsUnbind(struct ndr_push *ndr, int flags, const struct drsuapi_DsUnbind *r)
14716 {
14717         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
14718         if (flags & NDR_IN) {
14719                 if (r->in.bind_handle == NULL) {
14720                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14721                 }
14722                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
14723         }
14724         if (flags & NDR_OUT) {
14725                 if (r->out.bind_handle == NULL) {
14726                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14727                 }
14728                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.bind_handle));
14729                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14730         }
14731         return NDR_ERR_SUCCESS;
14732 }
14733
14734 static enum ndr_err_code ndr_pull_drsuapi_DsUnbind(struct ndr_pull *ndr, int flags, struct drsuapi_DsUnbind *r)
14735 {
14736         TALLOC_CTX *_mem_save_bind_handle_0;
14737         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
14738         if (flags & NDR_IN) {
14739                 ZERO_STRUCT(r->out);
14740
14741                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14742                         NDR_PULL_ALLOC(ndr, r->in.bind_handle);
14743                 }
14744                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
14745                 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
14746                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
14747                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
14748                 NDR_PULL_ALLOC(ndr, r->out.bind_handle);
14749                 *r->out.bind_handle = *r->in.bind_handle;
14750         }
14751         if (flags & NDR_OUT) {
14752                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14753                         NDR_PULL_ALLOC(ndr, r->out.bind_handle);
14754                 }
14755                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
14756                 NDR_PULL_SET_MEM_CTX(ndr, r->out.bind_handle, LIBNDR_FLAG_REF_ALLOC);
14757                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.bind_handle));
14758                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
14759                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14760         }
14761         return NDR_ERR_SUCCESS;
14762 }
14763
14764 _PUBLIC_ void ndr_print_drsuapi_DsUnbind(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsUnbind *r)
14765 {
14766         ndr_print_struct(ndr, name, "drsuapi_DsUnbind");
14767         if (r == NULL) { ndr_print_null(ndr); return; }
14768         ndr->depth++;
14769         if (flags & NDR_SET_VALUES) {
14770                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14771         }
14772         if (flags & NDR_IN) {
14773                 ndr_print_struct(ndr, "in", "drsuapi_DsUnbind");
14774                 ndr->depth++;
14775                 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
14776                 ndr->depth++;
14777                 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
14778                 ndr->depth--;
14779                 ndr->depth--;
14780         }
14781         if (flags & NDR_OUT) {
14782                 ndr_print_struct(ndr, "out", "drsuapi_DsUnbind");
14783                 ndr->depth++;
14784                 ndr_print_ptr(ndr, "bind_handle", r->out.bind_handle);
14785                 ndr->depth++;
14786                 ndr_print_policy_handle(ndr, "bind_handle", r->out.bind_handle);
14787                 ndr->depth--;
14788                 ndr_print_WERROR(ndr, "result", r->out.result);
14789                 ndr->depth--;
14790         }
14791         ndr->depth--;
14792 }
14793
14794 static enum ndr_err_code ndr_push_drsuapi_DsReplicaSync(struct ndr_push *ndr, int flags, const struct drsuapi_DsReplicaSync *r)
14795 {
14796         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
14797         if (flags & NDR_IN) {
14798                 if (r->in.bind_handle == NULL) {
14799                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14800                 }
14801                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
14802                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
14803                 if (r->in.req == NULL) {
14804                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14805                 }
14806                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.req, r->in.level));
14807                 NDR_CHECK(ndr_push_drsuapi_DsReplicaSyncRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
14808         }
14809         if (flags & NDR_OUT) {
14810                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14811         }
14812         return NDR_ERR_SUCCESS;
14813 }
14814
14815 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaSync(struct ndr_pull *ndr, int flags, struct drsuapi_DsReplicaSync *r)
14816 {
14817         TALLOC_CTX *_mem_save_bind_handle_0;
14818         TALLOC_CTX *_mem_save_req_0;
14819         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
14820         if (flags & NDR_IN) {
14821                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14822                         NDR_PULL_ALLOC(ndr, r->in.bind_handle);
14823                 }
14824                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
14825                 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
14826                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
14827                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
14828                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
14829                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14830                         NDR_PULL_ALLOC(ndr, r->in.req);
14831                 }
14832                 _mem_save_req_0 = NDR_PULL_GET_MEM_CTX(ndr);
14833                 NDR_PULL_SET_MEM_CTX(ndr, r->in.req, LIBNDR_FLAG_REF_ALLOC);
14834                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.req, r->in.level));
14835                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaSyncRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
14836                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_0, LIBNDR_FLAG_REF_ALLOC);
14837         }
14838         if (flags & NDR_OUT) {
14839                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14840         }
14841         return NDR_ERR_SUCCESS;
14842 }
14843
14844 _PUBLIC_ void ndr_print_drsuapi_DsReplicaSync(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsReplicaSync *r)
14845 {
14846         ndr_print_struct(ndr, name, "drsuapi_DsReplicaSync");
14847         if (r == NULL) { ndr_print_null(ndr); return; }
14848         ndr->depth++;
14849         if (flags & NDR_SET_VALUES) {
14850                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14851         }
14852         if (flags & NDR_IN) {
14853                 ndr_print_struct(ndr, "in", "drsuapi_DsReplicaSync");
14854                 ndr->depth++;
14855                 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
14856                 ndr->depth++;
14857                 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
14858                 ndr->depth--;
14859                 ndr_print_uint32(ndr, "level", r->in.level);
14860                 ndr_print_ptr(ndr, "req", r->in.req);
14861                 ndr->depth++;
14862                 ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
14863                 ndr_print_drsuapi_DsReplicaSyncRequest(ndr, "req", r->in.req);
14864                 ndr->depth--;
14865                 ndr->depth--;
14866         }
14867         if (flags & NDR_OUT) {
14868                 ndr_print_struct(ndr, "out", "drsuapi_DsReplicaSync");
14869                 ndr->depth++;
14870                 ndr_print_WERROR(ndr, "result", r->out.result);
14871                 ndr->depth--;
14872         }
14873         ndr->depth--;
14874 }
14875
14876 static enum ndr_err_code ndr_push_drsuapi_DsGetNCChanges(struct ndr_push *ndr, int flags, const struct drsuapi_DsGetNCChanges *r)
14877 {
14878         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
14879         if (flags & NDR_IN) {
14880                 if (r->in.bind_handle == NULL) {
14881                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14882                 }
14883                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
14884                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
14885                 if (r->in.req == NULL) {
14886                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14887                 }
14888                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.req, r->in.level));
14889                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
14890         }
14891         if (flags & NDR_OUT) {
14892                 if (r->out.level_out == NULL) {
14893                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14894                 }
14895                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.level_out));
14896                 if (r->out.ctr == NULL) {
14897                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14898                 }
14899                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
14900                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
14901                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14902         }
14903         return NDR_ERR_SUCCESS;
14904 }
14905
14906 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChanges(struct ndr_pull *ndr, int flags, struct drsuapi_DsGetNCChanges *r)
14907 {
14908         TALLOC_CTX *_mem_save_bind_handle_0;
14909         TALLOC_CTX *_mem_save_req_0;
14910         TALLOC_CTX *_mem_save_level_out_0;
14911         TALLOC_CTX *_mem_save_ctr_0;
14912         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
14913         if (flags & NDR_IN) {
14914                 ZERO_STRUCT(r->out);
14915
14916                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14917                         NDR_PULL_ALLOC(ndr, r->in.bind_handle);
14918                 }
14919                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
14920                 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
14921                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
14922                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
14923                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
14924                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14925                         NDR_PULL_ALLOC(ndr, r->in.req);
14926                 }
14927                 _mem_save_req_0 = NDR_PULL_GET_MEM_CTX(ndr);
14928                 NDR_PULL_SET_MEM_CTX(ndr, r->in.req, LIBNDR_FLAG_REF_ALLOC);
14929                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.req, r->in.level));
14930                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
14931                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_0, LIBNDR_FLAG_REF_ALLOC);
14932                 NDR_PULL_ALLOC(ndr, r->out.level_out);
14933                 ZERO_STRUCTP(r->out.level_out);
14934                 NDR_PULL_ALLOC(ndr, r->out.ctr);
14935                 ZERO_STRUCTP(r->out.ctr);
14936         }
14937         if (flags & NDR_OUT) {
14938                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14939                         NDR_PULL_ALLOC(ndr, r->out.level_out);
14940                 }
14941                 _mem_save_level_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
14942                 NDR_PULL_SET_MEM_CTX(ndr, r->out.level_out, LIBNDR_FLAG_REF_ALLOC);
14943                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.level_out));
14944                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_out_0, LIBNDR_FLAG_REF_ALLOC);
14945                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14946                         NDR_PULL_ALLOC(ndr, r->out.ctr);
14947                 }
14948                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
14949                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
14950                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
14951                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
14952                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
14953                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14954         }
14955         return NDR_ERR_SUCCESS;
14956 }
14957
14958 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChanges(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsGetNCChanges *r)
14959 {
14960         ndr_print_struct(ndr, name, "drsuapi_DsGetNCChanges");
14961         if (r == NULL) { ndr_print_null(ndr); return; }
14962         ndr->depth++;
14963         if (flags & NDR_SET_VALUES) {
14964                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14965         }
14966         if (flags & NDR_IN) {
14967                 ndr_print_struct(ndr, "in", "drsuapi_DsGetNCChanges");
14968                 ndr->depth++;
14969                 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
14970                 ndr->depth++;
14971                 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
14972                 ndr->depth--;
14973                 ndr_print_uint32(ndr, "level", r->in.level);
14974                 ndr_print_ptr(ndr, "req", r->in.req);
14975                 ndr->depth++;
14976                 ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
14977                 ndr_print_drsuapi_DsGetNCChangesRequest(ndr, "req", r->in.req);
14978                 ndr->depth--;
14979                 ndr->depth--;
14980         }
14981         if (flags & NDR_OUT) {
14982                 ndr_print_struct(ndr, "out", "drsuapi_DsGetNCChanges");
14983                 ndr->depth++;
14984                 ndr_print_ptr(ndr, "level_out", r->out.level_out);
14985                 ndr->depth++;
14986                 ndr_print_uint32(ndr, "level_out", *r->out.level_out);
14987                 ndr->depth--;
14988                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
14989                 ndr->depth++;
14990                 ndr_print_set_switch_value(ndr, r->out.ctr, *r->out.level_out);
14991                 ndr_print_drsuapi_DsGetNCChangesCtr(ndr, "ctr", r->out.ctr);
14992                 ndr->depth--;
14993                 ndr_print_WERROR(ndr, "result", r->out.result);
14994                 ndr->depth--;
14995         }
14996         ndr->depth--;
14997 }
14998
14999 static enum ndr_err_code ndr_push_drsuapi_DsReplicaUpdateRefs(struct ndr_push *ndr, int flags, const struct drsuapi_DsReplicaUpdateRefs *r)
15000 {
15001         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
15002         if (flags & NDR_IN) {
15003                 if (r->in.bind_handle == NULL) {
15004                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15005                 }
15006                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
15007                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15008                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.req, r->in.level));
15009                 NDR_CHECK(ndr_push_drsuapi_DsReplicaUpdateRefsRequest(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
15010         }
15011         if (flags & NDR_OUT) {
15012                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15013         }
15014         return NDR_ERR_SUCCESS;
15015 }
15016
15017 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaUpdateRefs(struct ndr_pull *ndr, int flags, struct drsuapi_DsReplicaUpdateRefs *r)
15018 {
15019         TALLOC_CTX *_mem_save_bind_handle_0;
15020         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
15021         if (flags & NDR_IN) {
15022                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15023                         NDR_PULL_ALLOC(ndr, r->in.bind_handle);
15024                 }
15025                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15026                 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
15027                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
15028                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
15029                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15030                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.req, r->in.level));
15031                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaUpdateRefsRequest(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
15032         }
15033         if (flags & NDR_OUT) {
15034                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15035         }
15036         return NDR_ERR_SUCCESS;
15037 }
15038
15039 _PUBLIC_ void ndr_print_drsuapi_DsReplicaUpdateRefs(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsReplicaUpdateRefs *r)
15040 {
15041         ndr_print_struct(ndr, name, "drsuapi_DsReplicaUpdateRefs");
15042         if (r == NULL) { ndr_print_null(ndr); return; }
15043         ndr->depth++;
15044         if (flags & NDR_SET_VALUES) {
15045                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15046         }
15047         if (flags & NDR_IN) {
15048                 ndr_print_struct(ndr, "in", "drsuapi_DsReplicaUpdateRefs");
15049                 ndr->depth++;
15050                 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
15051                 ndr->depth++;
15052                 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
15053                 ndr->depth--;
15054                 ndr_print_uint32(ndr, "level", r->in.level);
15055                 ndr_print_set_switch_value(ndr, &r->in.req, r->in.level);
15056                 ndr_print_drsuapi_DsReplicaUpdateRefsRequest(ndr, "req", &r->in.req);
15057                 ndr->depth--;
15058         }
15059         if (flags & NDR_OUT) {
15060                 ndr_print_struct(ndr, "out", "drsuapi_DsReplicaUpdateRefs");
15061                 ndr->depth++;
15062                 ndr_print_WERROR(ndr, "result", r->out.result);
15063                 ndr->depth--;
15064         }
15065         ndr->depth--;
15066 }
15067
15068 static enum ndr_err_code ndr_push_drsuapi_DsReplicaAdd(struct ndr_push *ndr, int flags, const struct drsuapi_DsReplicaAdd *r)
15069 {
15070         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
15071         if (flags & NDR_IN) {
15072                 if (r->in.bind_handle == NULL) {
15073                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15074                 }
15075                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
15076                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15077                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.req, r->in.level));
15078                 NDR_CHECK(ndr_push_drsuapi_DsReplicaAddRequest(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
15079         }
15080         if (flags & NDR_OUT) {
15081                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15082         }
15083         return NDR_ERR_SUCCESS;
15084 }
15085
15086 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaAdd(struct ndr_pull *ndr, int flags, struct drsuapi_DsReplicaAdd *r)
15087 {
15088         TALLOC_CTX *_mem_save_bind_handle_0;
15089         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
15090         if (flags & NDR_IN) {
15091                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15092                         NDR_PULL_ALLOC(ndr, r->in.bind_handle);
15093                 }
15094                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15095                 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
15096                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
15097                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
15098                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15099                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.req, r->in.level));
15100                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAddRequest(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
15101         }
15102         if (flags & NDR_OUT) {
15103                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15104         }
15105         return NDR_ERR_SUCCESS;
15106 }
15107
15108 _PUBLIC_ void ndr_print_drsuapi_DsReplicaAdd(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsReplicaAdd *r)
15109 {
15110         ndr_print_struct(ndr, name, "drsuapi_DsReplicaAdd");
15111         if (r == NULL) { ndr_print_null(ndr); return; }
15112         ndr->depth++;
15113         if (flags & NDR_SET_VALUES) {
15114                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15115         }
15116         if (flags & NDR_IN) {
15117                 ndr_print_struct(ndr, "in", "drsuapi_DsReplicaAdd");
15118                 ndr->depth++;
15119                 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
15120                 ndr->depth++;
15121                 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
15122                 ndr->depth--;
15123                 ndr_print_uint32(ndr, "level", r->in.level);
15124                 ndr_print_set_switch_value(ndr, &r->in.req, r->in.level);
15125                 ndr_print_drsuapi_DsReplicaAddRequest(ndr, "req", &r->in.req);
15126                 ndr->depth--;
15127         }
15128         if (flags & NDR_OUT) {
15129                 ndr_print_struct(ndr, "out", "drsuapi_DsReplicaAdd");
15130                 ndr->depth++;
15131                 ndr_print_WERROR(ndr, "result", r->out.result);
15132                 ndr->depth--;
15133         }
15134         ndr->depth--;
15135 }
15136
15137 static enum ndr_err_code ndr_push_drsuapi_DsReplicaDel(struct ndr_push *ndr, int flags, const struct drsuapi_DsReplicaDel *r)
15138 {
15139         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
15140         if (flags & NDR_IN) {
15141                 if (r->in.bind_handle == NULL) {
15142                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15143                 }
15144                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
15145                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15146                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.req, r->in.level));
15147                 NDR_CHECK(ndr_push_drsuapi_DsReplicaDelRequest(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
15148         }
15149         if (flags & NDR_OUT) {
15150                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15151         }
15152         return NDR_ERR_SUCCESS;
15153 }
15154
15155 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaDel(struct ndr_pull *ndr, int flags, struct drsuapi_DsReplicaDel *r)
15156 {
15157         TALLOC_CTX *_mem_save_bind_handle_0;
15158         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
15159         if (flags & NDR_IN) {
15160                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15161                         NDR_PULL_ALLOC(ndr, r->in.bind_handle);
15162                 }
15163                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15164                 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
15165                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
15166                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
15167                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15168                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.req, r->in.level));
15169                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaDelRequest(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
15170         }
15171         if (flags & NDR_OUT) {
15172                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15173         }
15174         return NDR_ERR_SUCCESS;
15175 }
15176
15177 _PUBLIC_ void ndr_print_drsuapi_DsReplicaDel(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsReplicaDel *r)
15178 {
15179         ndr_print_struct(ndr, name, "drsuapi_DsReplicaDel");
15180         if (r == NULL) { ndr_print_null(ndr); return; }
15181         ndr->depth++;
15182         if (flags & NDR_SET_VALUES) {
15183                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15184         }
15185         if (flags & NDR_IN) {
15186                 ndr_print_struct(ndr, "in", "drsuapi_DsReplicaDel");
15187                 ndr->depth++;
15188                 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
15189                 ndr->depth++;
15190                 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
15191                 ndr->depth--;
15192                 ndr_print_uint32(ndr, "level", r->in.level);
15193                 ndr_print_set_switch_value(ndr, &r->in.req, r->in.level);
15194                 ndr_print_drsuapi_DsReplicaDelRequest(ndr, "req", &r->in.req);
15195                 ndr->depth--;
15196         }
15197         if (flags & NDR_OUT) {
15198                 ndr_print_struct(ndr, "out", "drsuapi_DsReplicaDel");
15199                 ndr->depth++;
15200                 ndr_print_WERROR(ndr, "result", r->out.result);
15201                 ndr->depth--;
15202         }
15203         ndr->depth--;
15204 }
15205
15206 static enum ndr_err_code ndr_push_drsuapi_DsReplicaMod(struct ndr_push *ndr, int flags, const struct drsuapi_DsReplicaMod *r)
15207 {
15208         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
15209         if (flags & NDR_IN) {
15210                 if (r->in.bind_handle == NULL) {
15211                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15212                 }
15213                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
15214                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15215                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.req, r->in.level));
15216                 NDR_CHECK(ndr_push_drsuapi_DsReplicaModRequest(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
15217         }
15218         if (flags & NDR_OUT) {
15219                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15220         }
15221         return NDR_ERR_SUCCESS;
15222 }
15223
15224 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaMod(struct ndr_pull *ndr, int flags, struct drsuapi_DsReplicaMod *r)
15225 {
15226         TALLOC_CTX *_mem_save_bind_handle_0;
15227         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
15228         if (flags & NDR_IN) {
15229                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15230                         NDR_PULL_ALLOC(ndr, r->in.bind_handle);
15231                 }
15232                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15233                 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
15234                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
15235                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
15236                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15237                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.req, r->in.level));
15238                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaModRequest(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
15239         }
15240         if (flags & NDR_OUT) {
15241                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15242         }
15243         return NDR_ERR_SUCCESS;
15244 }
15245
15246 _PUBLIC_ void ndr_print_drsuapi_DsReplicaMod(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsReplicaMod *r)
15247 {
15248         ndr_print_struct(ndr, name, "drsuapi_DsReplicaMod");
15249         if (r == NULL) { ndr_print_null(ndr); return; }
15250         ndr->depth++;
15251         if (flags & NDR_SET_VALUES) {
15252                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15253         }
15254         if (flags & NDR_IN) {
15255                 ndr_print_struct(ndr, "in", "drsuapi_DsReplicaMod");
15256                 ndr->depth++;
15257                 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
15258                 ndr->depth++;
15259                 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
15260                 ndr->depth--;
15261                 ndr_print_uint32(ndr, "level", r->in.level);
15262                 ndr_print_set_switch_value(ndr, &r->in.req, r->in.level);
15263                 ndr_print_drsuapi_DsReplicaModRequest(ndr, "req", &r->in.req);
15264                 ndr->depth--;
15265         }
15266         if (flags & NDR_OUT) {
15267                 ndr_print_struct(ndr, "out", "drsuapi_DsReplicaMod");
15268                 ndr->depth++;
15269                 ndr_print_WERROR(ndr, "result", r->out.result);
15270                 ndr->depth--;
15271         }
15272         ndr->depth--;
15273 }
15274
15275 static enum ndr_err_code ndr_push_DRSUAPI_VERIFY_NAMES(struct ndr_push *ndr, int flags, const struct DRSUAPI_VERIFY_NAMES *r)
15276 {
15277         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
15278         if (flags & NDR_IN) {
15279         }
15280         if (flags & NDR_OUT) {
15281                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15282         }
15283         return NDR_ERR_SUCCESS;
15284 }
15285
15286 static enum ndr_err_code ndr_pull_DRSUAPI_VERIFY_NAMES(struct ndr_pull *ndr, int flags, struct DRSUAPI_VERIFY_NAMES *r)
15287 {
15288         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
15289         if (flags & NDR_IN) {
15290         }
15291         if (flags & NDR_OUT) {
15292                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15293         }
15294         return NDR_ERR_SUCCESS;
15295 }
15296
15297 _PUBLIC_ void ndr_print_DRSUAPI_VERIFY_NAMES(struct ndr_print *ndr, const char *name, int flags, const struct DRSUAPI_VERIFY_NAMES *r)
15298 {
15299         ndr_print_struct(ndr, name, "DRSUAPI_VERIFY_NAMES");
15300         if (r == NULL) { ndr_print_null(ndr); return; }
15301         ndr->depth++;
15302         if (flags & NDR_SET_VALUES) {
15303                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15304         }
15305         if (flags & NDR_IN) {
15306                 ndr_print_struct(ndr, "in", "DRSUAPI_VERIFY_NAMES");
15307                 ndr->depth++;
15308                 ndr->depth--;
15309         }
15310         if (flags & NDR_OUT) {
15311                 ndr_print_struct(ndr, "out", "DRSUAPI_VERIFY_NAMES");
15312                 ndr->depth++;
15313                 ndr_print_WERROR(ndr, "result", r->out.result);
15314                 ndr->depth--;
15315         }
15316         ndr->depth--;
15317 }
15318
15319 static enum ndr_err_code ndr_push_drsuapi_DsGetMemberships(struct ndr_push *ndr, int flags, const struct drsuapi_DsGetMemberships *r)
15320 {
15321         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
15322         if (flags & NDR_IN) {
15323                 if (r->in.bind_handle == NULL) {
15324                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15325                 }
15326                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
15327                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15328                 if (r->in.req == NULL) {
15329                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15330                 }
15331                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.req, r->in.level));
15332                 NDR_CHECK(ndr_push_drsuapi_DsGetMembershipsRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
15333         }
15334         if (flags & NDR_OUT) {
15335                 if (r->out.level_out == NULL) {
15336                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15337                 }
15338                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.level_out));
15339                 if (r->out.ctr == NULL) {
15340                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15341                 }
15342                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
15343                 NDR_CHECK(ndr_push_drsuapi_DsGetMembershipsCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
15344                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15345         }
15346         return NDR_ERR_SUCCESS;
15347 }
15348
15349 static enum ndr_err_code ndr_pull_drsuapi_DsGetMemberships(struct ndr_pull *ndr, int flags, struct drsuapi_DsGetMemberships *r)
15350 {
15351         TALLOC_CTX *_mem_save_bind_handle_0;
15352         TALLOC_CTX *_mem_save_req_0;
15353         TALLOC_CTX *_mem_save_level_out_0;
15354         TALLOC_CTX *_mem_save_ctr_0;
15355         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
15356         if (flags & NDR_IN) {
15357                 ZERO_STRUCT(r->out);
15358
15359                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15360                         NDR_PULL_ALLOC(ndr, r->in.bind_handle);
15361                 }
15362                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15363                 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
15364                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
15365                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
15366                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15367                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15368                         NDR_PULL_ALLOC(ndr, r->in.req);
15369                 }
15370                 _mem_save_req_0 = NDR_PULL_GET_MEM_CTX(ndr);
15371                 NDR_PULL_SET_MEM_CTX(ndr, r->in.req, LIBNDR_FLAG_REF_ALLOC);
15372                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.req, r->in.level));
15373                 NDR_CHECK(ndr_pull_drsuapi_DsGetMembershipsRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
15374                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_0, LIBNDR_FLAG_REF_ALLOC);
15375                 NDR_PULL_ALLOC(ndr, r->out.level_out);
15376                 ZERO_STRUCTP(r->out.level_out);
15377                 NDR_PULL_ALLOC(ndr, r->out.ctr);
15378                 ZERO_STRUCTP(r->out.ctr);
15379         }
15380         if (flags & NDR_OUT) {
15381                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15382                         NDR_PULL_ALLOC(ndr, r->out.level_out);
15383                 }
15384                 _mem_save_level_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
15385                 NDR_PULL_SET_MEM_CTX(ndr, r->out.level_out, LIBNDR_FLAG_REF_ALLOC);
15386                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.level_out));
15387                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_out_0, LIBNDR_FLAG_REF_ALLOC);
15388                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15389                         NDR_PULL_ALLOC(ndr, r->out.ctr);
15390                 }
15391                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
15392                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
15393                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
15394                 NDR_CHECK(ndr_pull_drsuapi_DsGetMembershipsCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
15395                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
15396                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15397         }
15398         return NDR_ERR_SUCCESS;
15399 }
15400
15401 _PUBLIC_ void ndr_print_drsuapi_DsGetMemberships(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsGetMemberships *r)
15402 {
15403         ndr_print_struct(ndr, name, "drsuapi_DsGetMemberships");
15404         if (r == NULL) { ndr_print_null(ndr); return; }
15405         ndr->depth++;
15406         if (flags & NDR_SET_VALUES) {
15407                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15408         }
15409         if (flags & NDR_IN) {
15410                 ndr_print_struct(ndr, "in", "drsuapi_DsGetMemberships");
15411                 ndr->depth++;
15412                 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
15413                 ndr->depth++;
15414                 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
15415                 ndr->depth--;
15416                 ndr_print_uint32(ndr, "level", r->in.level);
15417                 ndr_print_ptr(ndr, "req", r->in.req);
15418                 ndr->depth++;
15419                 ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
15420                 ndr_print_drsuapi_DsGetMembershipsRequest(ndr, "req", r->in.req);
15421                 ndr->depth--;
15422                 ndr->depth--;
15423         }
15424         if (flags & NDR_OUT) {
15425                 ndr_print_struct(ndr, "out", "drsuapi_DsGetMemberships");
15426                 ndr->depth++;
15427                 ndr_print_ptr(ndr, "level_out", r->out.level_out);
15428                 ndr->depth++;
15429                 ndr_print_uint32(ndr, "level_out", *r->out.level_out);
15430                 ndr->depth--;
15431                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
15432                 ndr->depth++;
15433                 ndr_print_set_switch_value(ndr, r->out.ctr, *r->out.level_out);
15434                 ndr_print_drsuapi_DsGetMembershipsCtr(ndr, "ctr", r->out.ctr);
15435                 ndr->depth--;
15436                 ndr_print_WERROR(ndr, "result", r->out.result);
15437                 ndr->depth--;
15438         }
15439         ndr->depth--;
15440 }
15441
15442 static enum ndr_err_code ndr_push_DRSUAPI_INTER_DOMAIN_MOVE(struct ndr_push *ndr, int flags, const struct DRSUAPI_INTER_DOMAIN_MOVE *r)
15443 {
15444         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
15445         if (flags & NDR_IN) {
15446         }
15447         if (flags & NDR_OUT) {
15448                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15449         }
15450         return NDR_ERR_SUCCESS;
15451 }
15452
15453 static enum ndr_err_code ndr_pull_DRSUAPI_INTER_DOMAIN_MOVE(struct ndr_pull *ndr, int flags, struct DRSUAPI_INTER_DOMAIN_MOVE *r)
15454 {
15455         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
15456         if (flags & NDR_IN) {
15457         }
15458         if (flags & NDR_OUT) {
15459                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15460         }
15461         return NDR_ERR_SUCCESS;
15462 }
15463
15464 _PUBLIC_ void ndr_print_DRSUAPI_INTER_DOMAIN_MOVE(struct ndr_print *ndr, const char *name, int flags, const struct DRSUAPI_INTER_DOMAIN_MOVE *r)
15465 {
15466         ndr_print_struct(ndr, name, "DRSUAPI_INTER_DOMAIN_MOVE");
15467         if (r == NULL) { ndr_print_null(ndr); return; }
15468         ndr->depth++;
15469         if (flags & NDR_SET_VALUES) {
15470                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15471         }
15472         if (flags & NDR_IN) {
15473                 ndr_print_struct(ndr, "in", "DRSUAPI_INTER_DOMAIN_MOVE");
15474                 ndr->depth++;
15475                 ndr->depth--;
15476         }
15477         if (flags & NDR_OUT) {
15478                 ndr_print_struct(ndr, "out", "DRSUAPI_INTER_DOMAIN_MOVE");
15479                 ndr->depth++;
15480                 ndr_print_WERROR(ndr, "result", r->out.result);
15481                 ndr->depth--;
15482         }
15483         ndr->depth--;
15484 }
15485
15486 static enum ndr_err_code ndr_push_drsuapi_DsGetNT4ChangeLog(struct ndr_push *ndr, int flags, const struct drsuapi_DsGetNT4ChangeLog *r)
15487 {
15488         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
15489         if (flags & NDR_IN) {
15490                 if (r->in.bind_handle == NULL) {
15491                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15492                 }
15493                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
15494                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15495                 if (r->in.req == NULL) {
15496                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15497                 }
15498                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.req, r->in.level));
15499                 NDR_CHECK(ndr_push_drsuapi_DsGetNT4ChangeLogRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
15500         }
15501         if (flags & NDR_OUT) {
15502                 if (r->out.level_out == NULL) {
15503                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15504                 }
15505                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.level_out));
15506                 if (r->out.info == NULL) {
15507                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15508                 }
15509                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, *r->out.level_out));
15510                 NDR_CHECK(ndr_push_drsuapi_DsGetNT4ChangeLogInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
15511                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15512         }
15513         return NDR_ERR_SUCCESS;
15514 }
15515
15516 static enum ndr_err_code ndr_pull_drsuapi_DsGetNT4ChangeLog(struct ndr_pull *ndr, int flags, struct drsuapi_DsGetNT4ChangeLog *r)
15517 {
15518         TALLOC_CTX *_mem_save_bind_handle_0;
15519         TALLOC_CTX *_mem_save_req_0;
15520         TALLOC_CTX *_mem_save_level_out_0;
15521         TALLOC_CTX *_mem_save_info_0;
15522         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
15523         if (flags & NDR_IN) {
15524                 ZERO_STRUCT(r->out);
15525
15526                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15527                         NDR_PULL_ALLOC(ndr, r->in.bind_handle);
15528                 }
15529                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15530                 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
15531                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
15532                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
15533                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15534                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15535                         NDR_PULL_ALLOC(ndr, r->in.req);
15536                 }
15537                 _mem_save_req_0 = NDR_PULL_GET_MEM_CTX(ndr);
15538                 NDR_PULL_SET_MEM_CTX(ndr, r->in.req, LIBNDR_FLAG_REF_ALLOC);
15539                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.req, r->in.level));
15540                 NDR_CHECK(ndr_pull_drsuapi_DsGetNT4ChangeLogRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
15541                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_0, LIBNDR_FLAG_REF_ALLOC);
15542                 NDR_PULL_ALLOC(ndr, r->out.level_out);
15543                 ZERO_STRUCTP(r->out.level_out);
15544                 NDR_PULL_ALLOC(ndr, r->out.info);
15545                 ZERO_STRUCTP(r->out.info);
15546         }
15547         if (flags & NDR_OUT) {
15548                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15549                         NDR_PULL_ALLOC(ndr, r->out.level_out);
15550                 }
15551                 _mem_save_level_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
15552                 NDR_PULL_SET_MEM_CTX(ndr, r->out.level_out, LIBNDR_FLAG_REF_ALLOC);
15553                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.level_out));
15554                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_out_0, LIBNDR_FLAG_REF_ALLOC);
15555                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15556                         NDR_PULL_ALLOC(ndr, r->out.info);
15557                 }
15558                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
15559                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
15560                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, *r->out.level_out));
15561                 NDR_CHECK(ndr_pull_drsuapi_DsGetNT4ChangeLogInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
15562                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
15563                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15564         }
15565         return NDR_ERR_SUCCESS;
15566 }
15567
15568 _PUBLIC_ void ndr_print_drsuapi_DsGetNT4ChangeLog(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsGetNT4ChangeLog *r)
15569 {
15570         ndr_print_struct(ndr, name, "drsuapi_DsGetNT4ChangeLog");
15571         if (r == NULL) { ndr_print_null(ndr); return; }
15572         ndr->depth++;
15573         if (flags & NDR_SET_VALUES) {
15574                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15575         }
15576         if (flags & NDR_IN) {
15577                 ndr_print_struct(ndr, "in", "drsuapi_DsGetNT4ChangeLog");
15578                 ndr->depth++;
15579                 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
15580                 ndr->depth++;
15581                 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
15582                 ndr->depth--;
15583                 ndr_print_uint32(ndr, "level", r->in.level);
15584                 ndr_print_ptr(ndr, "req", r->in.req);
15585                 ndr->depth++;
15586                 ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
15587                 ndr_print_drsuapi_DsGetNT4ChangeLogRequest(ndr, "req", r->in.req);
15588                 ndr->depth--;
15589                 ndr->depth--;
15590         }
15591         if (flags & NDR_OUT) {
15592                 ndr_print_struct(ndr, "out", "drsuapi_DsGetNT4ChangeLog");
15593                 ndr->depth++;
15594                 ndr_print_ptr(ndr, "level_out", r->out.level_out);
15595                 ndr->depth++;
15596                 ndr_print_uint32(ndr, "level_out", *r->out.level_out);
15597                 ndr->depth--;
15598                 ndr_print_ptr(ndr, "info", r->out.info);
15599                 ndr->depth++;
15600                 ndr_print_set_switch_value(ndr, r->out.info, *r->out.level_out);
15601                 ndr_print_drsuapi_DsGetNT4ChangeLogInfo(ndr, "info", r->out.info);
15602                 ndr->depth--;
15603                 ndr_print_WERROR(ndr, "result", r->out.result);
15604                 ndr->depth--;
15605         }
15606         ndr->depth--;
15607 }
15608
15609 static enum ndr_err_code ndr_push_drsuapi_DsCrackNames(struct ndr_push *ndr, int flags, const struct drsuapi_DsCrackNames *r)
15610 {
15611         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
15612         if (flags & NDR_IN) {
15613                 if (r->in.bind_handle == NULL) {
15614                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15615                 }
15616                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
15617                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15618                 if (r->in.req == NULL) {
15619                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15620                 }
15621                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.req, r->in.level));
15622                 NDR_CHECK(ndr_push_drsuapi_DsNameRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
15623         }
15624         if (flags & NDR_OUT) {
15625                 if (r->out.level_out == NULL) {
15626                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15627                 }
15628                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.level_out));
15629                 if (r->out.ctr == NULL) {
15630                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15631                 }
15632                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
15633                 NDR_CHECK(ndr_push_drsuapi_DsNameCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
15634                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15635         }
15636         return NDR_ERR_SUCCESS;
15637 }
15638
15639 static enum ndr_err_code ndr_pull_drsuapi_DsCrackNames(struct ndr_pull *ndr, int flags, struct drsuapi_DsCrackNames *r)
15640 {
15641         TALLOC_CTX *_mem_save_bind_handle_0;
15642         TALLOC_CTX *_mem_save_req_0;
15643         TALLOC_CTX *_mem_save_level_out_0;
15644         TALLOC_CTX *_mem_save_ctr_0;
15645         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
15646         if (flags & NDR_IN) {
15647                 ZERO_STRUCT(r->out);
15648
15649                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15650                         NDR_PULL_ALLOC(ndr, r->in.bind_handle);
15651                 }
15652                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15653                 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
15654                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
15655                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
15656                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15657                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15658                         NDR_PULL_ALLOC(ndr, r->in.req);
15659                 }
15660                 _mem_save_req_0 = NDR_PULL_GET_MEM_CTX(ndr);
15661                 NDR_PULL_SET_MEM_CTX(ndr, r->in.req, LIBNDR_FLAG_REF_ALLOC);
15662                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.req, r->in.level));
15663                 NDR_CHECK(ndr_pull_drsuapi_DsNameRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
15664                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_0, LIBNDR_FLAG_REF_ALLOC);
15665                 NDR_PULL_ALLOC(ndr, r->out.level_out);
15666                 ZERO_STRUCTP(r->out.level_out);
15667                 NDR_PULL_ALLOC(ndr, r->out.ctr);
15668                 ZERO_STRUCTP(r->out.ctr);
15669         }
15670         if (flags & NDR_OUT) {
15671                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15672                         NDR_PULL_ALLOC(ndr, r->out.level_out);
15673                 }
15674                 _mem_save_level_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
15675                 NDR_PULL_SET_MEM_CTX(ndr, r->out.level_out, LIBNDR_FLAG_REF_ALLOC);
15676                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.level_out));
15677                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_out_0, LIBNDR_FLAG_REF_ALLOC);
15678                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15679                         NDR_PULL_ALLOC(ndr, r->out.ctr);
15680                 }
15681                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
15682                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
15683                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
15684                 NDR_CHECK(ndr_pull_drsuapi_DsNameCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
15685                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
15686                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15687         }
15688         return NDR_ERR_SUCCESS;
15689 }
15690
15691 _PUBLIC_ void ndr_print_drsuapi_DsCrackNames(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsCrackNames *r)
15692 {
15693         ndr_print_struct(ndr, name, "drsuapi_DsCrackNames");
15694         if (r == NULL) { ndr_print_null(ndr); return; }
15695         ndr->depth++;
15696         if (flags & NDR_SET_VALUES) {
15697                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15698         }
15699         if (flags & NDR_IN) {
15700                 ndr_print_struct(ndr, "in", "drsuapi_DsCrackNames");
15701                 ndr->depth++;
15702                 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
15703                 ndr->depth++;
15704                 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
15705                 ndr->depth--;
15706                 ndr_print_uint32(ndr, "level", r->in.level);
15707                 ndr_print_ptr(ndr, "req", r->in.req);
15708                 ndr->depth++;
15709                 ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
15710                 ndr_print_drsuapi_DsNameRequest(ndr, "req", r->in.req);
15711                 ndr->depth--;
15712                 ndr->depth--;
15713         }
15714         if (flags & NDR_OUT) {
15715                 ndr_print_struct(ndr, "out", "drsuapi_DsCrackNames");
15716                 ndr->depth++;
15717                 ndr_print_ptr(ndr, "level_out", r->out.level_out);
15718                 ndr->depth++;
15719                 ndr_print_uint32(ndr, "level_out", *r->out.level_out);
15720                 ndr->depth--;
15721                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
15722                 ndr->depth++;
15723                 ndr_print_set_switch_value(ndr, r->out.ctr, *r->out.level_out);
15724                 ndr_print_drsuapi_DsNameCtr(ndr, "ctr", r->out.ctr);
15725                 ndr->depth--;
15726                 ndr_print_WERROR(ndr, "result", r->out.result);
15727                 ndr->depth--;
15728         }
15729         ndr->depth--;
15730 }
15731
15732 static enum ndr_err_code ndr_push_drsuapi_DsWriteAccountSpn(struct ndr_push *ndr, int flags, const struct drsuapi_DsWriteAccountSpn *r)
15733 {
15734         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
15735         if (flags & NDR_IN) {
15736                 if (r->in.bind_handle == NULL) {
15737                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15738                 }
15739                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
15740                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15741                 if (r->in.req == NULL) {
15742                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15743                 }
15744                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.req, r->in.level));
15745                 NDR_CHECK(ndr_push_drsuapi_DsWriteAccountSpnRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
15746         }
15747         if (flags & NDR_OUT) {
15748                 if (r->out.level_out == NULL) {
15749                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15750                 }
15751                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.level_out));
15752                 if (r->out.res == NULL) {
15753                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15754                 }
15755                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.res, *r->out.level_out));
15756                 NDR_CHECK(ndr_push_drsuapi_DsWriteAccountSpnResult(ndr, NDR_SCALARS, r->out.res));
15757                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15758         }
15759         return NDR_ERR_SUCCESS;
15760 }
15761
15762 static enum ndr_err_code ndr_pull_drsuapi_DsWriteAccountSpn(struct ndr_pull *ndr, int flags, struct drsuapi_DsWriteAccountSpn *r)
15763 {
15764         TALLOC_CTX *_mem_save_bind_handle_0;
15765         TALLOC_CTX *_mem_save_req_0;
15766         TALLOC_CTX *_mem_save_level_out_0;
15767         TALLOC_CTX *_mem_save_res_0;
15768         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
15769         if (flags & NDR_IN) {
15770                 ZERO_STRUCT(r->out);
15771
15772                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15773                         NDR_PULL_ALLOC(ndr, r->in.bind_handle);
15774                 }
15775                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15776                 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
15777                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
15778                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
15779                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15780                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15781                         NDR_PULL_ALLOC(ndr, r->in.req);
15782                 }
15783                 _mem_save_req_0 = NDR_PULL_GET_MEM_CTX(ndr);
15784                 NDR_PULL_SET_MEM_CTX(ndr, r->in.req, LIBNDR_FLAG_REF_ALLOC);
15785                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.req, r->in.level));
15786                 NDR_CHECK(ndr_pull_drsuapi_DsWriteAccountSpnRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
15787                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_0, LIBNDR_FLAG_REF_ALLOC);
15788                 NDR_PULL_ALLOC(ndr, r->out.level_out);
15789                 ZERO_STRUCTP(r->out.level_out);
15790                 NDR_PULL_ALLOC(ndr, r->out.res);
15791                 ZERO_STRUCTP(r->out.res);
15792         }
15793         if (flags & NDR_OUT) {
15794                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15795                         NDR_PULL_ALLOC(ndr, r->out.level_out);
15796                 }
15797                 _mem_save_level_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
15798                 NDR_PULL_SET_MEM_CTX(ndr, r->out.level_out, LIBNDR_FLAG_REF_ALLOC);
15799                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.level_out));
15800                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_out_0, LIBNDR_FLAG_REF_ALLOC);
15801                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15802                         NDR_PULL_ALLOC(ndr, r->out.res);
15803                 }
15804                 _mem_save_res_0 = NDR_PULL_GET_MEM_CTX(ndr);
15805                 NDR_PULL_SET_MEM_CTX(ndr, r->out.res, LIBNDR_FLAG_REF_ALLOC);
15806                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.res, *r->out.level_out));
15807                 NDR_CHECK(ndr_pull_drsuapi_DsWriteAccountSpnResult(ndr, NDR_SCALARS, r->out.res));
15808                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_res_0, LIBNDR_FLAG_REF_ALLOC);
15809                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15810         }
15811         return NDR_ERR_SUCCESS;
15812 }
15813
15814 _PUBLIC_ void ndr_print_drsuapi_DsWriteAccountSpn(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsWriteAccountSpn *r)
15815 {
15816         ndr_print_struct(ndr, name, "drsuapi_DsWriteAccountSpn");
15817         if (r == NULL) { ndr_print_null(ndr); return; }
15818         ndr->depth++;
15819         if (flags & NDR_SET_VALUES) {
15820                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15821         }
15822         if (flags & NDR_IN) {
15823                 ndr_print_struct(ndr, "in", "drsuapi_DsWriteAccountSpn");
15824                 ndr->depth++;
15825                 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
15826                 ndr->depth++;
15827                 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
15828                 ndr->depth--;
15829                 ndr_print_uint32(ndr, "level", r->in.level);
15830                 ndr_print_ptr(ndr, "req", r->in.req);
15831                 ndr->depth++;
15832                 ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
15833                 ndr_print_drsuapi_DsWriteAccountSpnRequest(ndr, "req", r->in.req);
15834                 ndr->depth--;
15835                 ndr->depth--;
15836         }
15837         if (flags & NDR_OUT) {
15838                 ndr_print_struct(ndr, "out", "drsuapi_DsWriteAccountSpn");
15839                 ndr->depth++;
15840                 ndr_print_ptr(ndr, "level_out", r->out.level_out);
15841                 ndr->depth++;
15842                 ndr_print_uint32(ndr, "level_out", *r->out.level_out);
15843                 ndr->depth--;
15844                 ndr_print_ptr(ndr, "res", r->out.res);
15845                 ndr->depth++;
15846                 ndr_print_set_switch_value(ndr, r->out.res, *r->out.level_out);
15847                 ndr_print_drsuapi_DsWriteAccountSpnResult(ndr, "res", r->out.res);
15848                 ndr->depth--;
15849                 ndr_print_WERROR(ndr, "result", r->out.result);
15850                 ndr->depth--;
15851         }
15852         ndr->depth--;
15853 }
15854
15855 static enum ndr_err_code ndr_push_drsuapi_DsRemoveDSServer(struct ndr_push *ndr, int flags, const struct drsuapi_DsRemoveDSServer *r)
15856 {
15857         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
15858         if (flags & NDR_IN) {
15859                 if (r->in.bind_handle == NULL) {
15860                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15861                 }
15862                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
15863                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15864                 if (r->in.req == NULL) {
15865                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15866                 }
15867                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.req, r->in.level));
15868                 NDR_CHECK(ndr_push_drsuapi_DsRemoveDSServerRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
15869         }
15870         if (flags & NDR_OUT) {
15871                 if (r->out.level_out == NULL) {
15872                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15873                 }
15874                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.level_out));
15875                 if (r->out.res == NULL) {
15876                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15877                 }
15878                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.res, *r->out.level_out));
15879                 NDR_CHECK(ndr_push_drsuapi_DsRemoveDSServerResult(ndr, NDR_SCALARS, r->out.res));
15880                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15881         }
15882         return NDR_ERR_SUCCESS;
15883 }
15884
15885 static enum ndr_err_code ndr_pull_drsuapi_DsRemoveDSServer(struct ndr_pull *ndr, int flags, struct drsuapi_DsRemoveDSServer *r)
15886 {
15887         TALLOC_CTX *_mem_save_bind_handle_0;
15888         TALLOC_CTX *_mem_save_req_0;
15889         TALLOC_CTX *_mem_save_level_out_0;
15890         TALLOC_CTX *_mem_save_res_0;
15891         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
15892         if (flags & NDR_IN) {
15893                 ZERO_STRUCT(r->out);
15894
15895                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15896                         NDR_PULL_ALLOC(ndr, r->in.bind_handle);
15897                 }
15898                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15899                 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
15900                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
15901                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
15902                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15903                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15904                         NDR_PULL_ALLOC(ndr, r->in.req);
15905                 }
15906                 _mem_save_req_0 = NDR_PULL_GET_MEM_CTX(ndr);
15907                 NDR_PULL_SET_MEM_CTX(ndr, r->in.req, LIBNDR_FLAG_REF_ALLOC);
15908                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.req, r->in.level));
15909                 NDR_CHECK(ndr_pull_drsuapi_DsRemoveDSServerRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
15910                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_0, LIBNDR_FLAG_REF_ALLOC);
15911                 NDR_PULL_ALLOC(ndr, r->out.level_out);
15912                 ZERO_STRUCTP(r->out.level_out);
15913                 NDR_PULL_ALLOC(ndr, r->out.res);
15914                 ZERO_STRUCTP(r->out.res);
15915         }
15916         if (flags & NDR_OUT) {
15917                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15918                         NDR_PULL_ALLOC(ndr, r->out.level_out);
15919                 }
15920                 _mem_save_level_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
15921                 NDR_PULL_SET_MEM_CTX(ndr, r->out.level_out, LIBNDR_FLAG_REF_ALLOC);
15922                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.level_out));
15923                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_out_0, LIBNDR_FLAG_REF_ALLOC);
15924                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15925                         NDR_PULL_ALLOC(ndr, r->out.res);
15926                 }
15927                 _mem_save_res_0 = NDR_PULL_GET_MEM_CTX(ndr);
15928                 NDR_PULL_SET_MEM_CTX(ndr, r->out.res, LIBNDR_FLAG_REF_ALLOC);
15929                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.res, *r->out.level_out));
15930                 NDR_CHECK(ndr_pull_drsuapi_DsRemoveDSServerResult(ndr, NDR_SCALARS, r->out.res));
15931                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_res_0, LIBNDR_FLAG_REF_ALLOC);
15932                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15933         }
15934         return NDR_ERR_SUCCESS;
15935 }
15936
15937 _PUBLIC_ void ndr_print_drsuapi_DsRemoveDSServer(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsRemoveDSServer *r)
15938 {
15939         ndr_print_struct(ndr, name, "drsuapi_DsRemoveDSServer");
15940         if (r == NULL) { ndr_print_null(ndr); return; }
15941         ndr->depth++;
15942         if (flags & NDR_SET_VALUES) {
15943                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15944         }
15945         if (flags & NDR_IN) {
15946                 ndr_print_struct(ndr, "in", "drsuapi_DsRemoveDSServer");
15947                 ndr->depth++;
15948                 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
15949                 ndr->depth++;
15950                 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
15951                 ndr->depth--;
15952                 ndr_print_uint32(ndr, "level", r->in.level);
15953                 ndr_print_ptr(ndr, "req", r->in.req);
15954                 ndr->depth++;
15955                 ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
15956                 ndr_print_drsuapi_DsRemoveDSServerRequest(ndr, "req", r->in.req);
15957                 ndr->depth--;
15958                 ndr->depth--;
15959         }
15960         if (flags & NDR_OUT) {
15961                 ndr_print_struct(ndr, "out", "drsuapi_DsRemoveDSServer");
15962                 ndr->depth++;
15963                 ndr_print_ptr(ndr, "level_out", r->out.level_out);
15964                 ndr->depth++;
15965                 ndr_print_uint32(ndr, "level_out", *r->out.level_out);
15966                 ndr->depth--;
15967                 ndr_print_ptr(ndr, "res", r->out.res);
15968                 ndr->depth++;
15969                 ndr_print_set_switch_value(ndr, r->out.res, *r->out.level_out);
15970                 ndr_print_drsuapi_DsRemoveDSServerResult(ndr, "res", r->out.res);
15971                 ndr->depth--;
15972                 ndr_print_WERROR(ndr, "result", r->out.result);
15973                 ndr->depth--;
15974         }
15975         ndr->depth--;
15976 }
15977
15978 static enum ndr_err_code ndr_push_DRSUAPI_REMOVE_DS_DOMAIN(struct ndr_push *ndr, int flags, const struct DRSUAPI_REMOVE_DS_DOMAIN *r)
15979 {
15980         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
15981         if (flags & NDR_IN) {
15982         }
15983         if (flags & NDR_OUT) {
15984                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15985         }
15986         return NDR_ERR_SUCCESS;
15987 }
15988
15989 static enum ndr_err_code ndr_pull_DRSUAPI_REMOVE_DS_DOMAIN(struct ndr_pull *ndr, int flags, struct DRSUAPI_REMOVE_DS_DOMAIN *r)
15990 {
15991         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
15992         if (flags & NDR_IN) {
15993         }
15994         if (flags & NDR_OUT) {
15995                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15996         }
15997         return NDR_ERR_SUCCESS;
15998 }
15999
16000 _PUBLIC_ void ndr_print_DRSUAPI_REMOVE_DS_DOMAIN(struct ndr_print *ndr, const char *name, int flags, const struct DRSUAPI_REMOVE_DS_DOMAIN *r)
16001 {
16002         ndr_print_struct(ndr, name, "DRSUAPI_REMOVE_DS_DOMAIN");
16003         if (r == NULL) { ndr_print_null(ndr); return; }
16004         ndr->depth++;
16005         if (flags & NDR_SET_VALUES) {
16006                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16007         }
16008         if (flags & NDR_IN) {
16009                 ndr_print_struct(ndr, "in", "DRSUAPI_REMOVE_DS_DOMAIN");
16010                 ndr->depth++;
16011                 ndr->depth--;
16012         }
16013         if (flags & NDR_OUT) {
16014                 ndr_print_struct(ndr, "out", "DRSUAPI_REMOVE_DS_DOMAIN");
16015                 ndr->depth++;
16016                 ndr_print_WERROR(ndr, "result", r->out.result);
16017                 ndr->depth--;
16018         }
16019         ndr->depth--;
16020 }
16021
16022 static enum ndr_err_code ndr_push_drsuapi_DsGetDomainControllerInfo(struct ndr_push *ndr, int flags, const struct drsuapi_DsGetDomainControllerInfo *r)
16023 {
16024         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
16025         if (flags & NDR_IN) {
16026                 if (r->in.bind_handle == NULL) {
16027                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16028                 }
16029                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
16030                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.level));
16031                 if (r->in.req == NULL) {
16032                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16033                 }
16034                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.req, r->in.level));
16035                 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfoRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
16036         }
16037         if (flags & NDR_OUT) {
16038                 if (r->out.level_out == NULL) {
16039                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16040                 }
16041                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, *r->out.level_out));
16042                 if (r->out.ctr == NULL) {
16043                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16044                 }
16045                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
16046                 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
16047                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16048         }
16049         return NDR_ERR_SUCCESS;
16050 }
16051
16052 static enum ndr_err_code ndr_pull_drsuapi_DsGetDomainControllerInfo(struct ndr_pull *ndr, int flags, struct drsuapi_DsGetDomainControllerInfo *r)
16053 {
16054         TALLOC_CTX *_mem_save_bind_handle_0;
16055         TALLOC_CTX *_mem_save_req_0;
16056         TALLOC_CTX *_mem_save_level_out_0;
16057         TALLOC_CTX *_mem_save_ctr_0;
16058         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
16059         if (flags & NDR_IN) {
16060                 ZERO_STRUCT(r->out);
16061
16062                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16063                         NDR_PULL_ALLOC(ndr, r->in.bind_handle);
16064                 }
16065                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
16066                 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
16067                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
16068                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
16069                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.level));
16070                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16071                         NDR_PULL_ALLOC(ndr, r->in.req);
16072                 }
16073                 _mem_save_req_0 = NDR_PULL_GET_MEM_CTX(ndr);
16074                 NDR_PULL_SET_MEM_CTX(ndr, r->in.req, LIBNDR_FLAG_REF_ALLOC);
16075                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.req, r->in.level));
16076                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfoRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
16077                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_0, LIBNDR_FLAG_REF_ALLOC);
16078                 NDR_PULL_ALLOC(ndr, r->out.level_out);
16079                 ZERO_STRUCTP(r->out.level_out);
16080                 NDR_PULL_ALLOC(ndr, r->out.ctr);
16081                 ZERO_STRUCTP(r->out.ctr);
16082         }
16083         if (flags & NDR_OUT) {
16084                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16085                         NDR_PULL_ALLOC(ndr, r->out.level_out);
16086                 }
16087                 _mem_save_level_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
16088                 NDR_PULL_SET_MEM_CTX(ndr, r->out.level_out, LIBNDR_FLAG_REF_ALLOC);
16089                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, r->out.level_out));
16090                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_out_0, LIBNDR_FLAG_REF_ALLOC);
16091                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16092                         NDR_PULL_ALLOC(ndr, r->out.ctr);
16093                 }
16094                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
16095                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
16096                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
16097                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
16098                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
16099                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16100         }
16101         return NDR_ERR_SUCCESS;
16102 }
16103
16104 _PUBLIC_ void ndr_print_drsuapi_DsGetDomainControllerInfo(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsGetDomainControllerInfo *r)
16105 {
16106         ndr_print_struct(ndr, name, "drsuapi_DsGetDomainControllerInfo");
16107         if (r == NULL) { ndr_print_null(ndr); return; }
16108         ndr->depth++;
16109         if (flags & NDR_SET_VALUES) {
16110                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16111         }
16112         if (flags & NDR_IN) {
16113                 ndr_print_struct(ndr, "in", "drsuapi_DsGetDomainControllerInfo");
16114                 ndr->depth++;
16115                 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
16116                 ndr->depth++;
16117                 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
16118                 ndr->depth--;
16119                 ndr_print_int32(ndr, "level", r->in.level);
16120                 ndr_print_ptr(ndr, "req", r->in.req);
16121                 ndr->depth++;
16122                 ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
16123                 ndr_print_drsuapi_DsGetDCInfoRequest(ndr, "req", r->in.req);
16124                 ndr->depth--;
16125                 ndr->depth--;
16126         }
16127         if (flags & NDR_OUT) {
16128                 ndr_print_struct(ndr, "out", "drsuapi_DsGetDomainControllerInfo");
16129                 ndr->depth++;
16130                 ndr_print_ptr(ndr, "level_out", r->out.level_out);
16131                 ndr->depth++;
16132                 ndr_print_int32(ndr, "level_out", *r->out.level_out);
16133                 ndr->depth--;
16134                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
16135                 ndr->depth++;
16136                 ndr_print_set_switch_value(ndr, r->out.ctr, *r->out.level_out);
16137                 ndr_print_drsuapi_DsGetDCInfoCtr(ndr, "ctr", r->out.ctr);
16138                 ndr->depth--;
16139                 ndr_print_WERROR(ndr, "result", r->out.result);
16140                 ndr->depth--;
16141         }
16142         ndr->depth--;
16143 }
16144
16145 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsAddEntry(struct ndr_push *ndr, int flags, const struct drsuapi_DsAddEntry *r)
16146 {
16147         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
16148         if (flags & NDR_IN) {
16149                 if (r->in.bind_handle == NULL) {
16150                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16151                 }
16152                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
16153                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
16154                 if (r->in.req == NULL) {
16155                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16156                 }
16157                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.req, r->in.level));
16158                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
16159         }
16160         if (flags & NDR_OUT) {
16161                 if (r->out.level_out == NULL) {
16162                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16163                 }
16164                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.level_out));
16165                 if (r->out.ctr == NULL) {
16166                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16167                 }
16168                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
16169                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
16170                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16171         }
16172         return NDR_ERR_SUCCESS;
16173 }
16174
16175 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsAddEntry(struct ndr_pull *ndr, int flags, struct drsuapi_DsAddEntry *r)
16176 {
16177         TALLOC_CTX *_mem_save_bind_handle_0;
16178         TALLOC_CTX *_mem_save_req_0;
16179         TALLOC_CTX *_mem_save_level_out_0;
16180         TALLOC_CTX *_mem_save_ctr_0;
16181         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
16182         if (flags & NDR_IN) {
16183                 ZERO_STRUCT(r->out);
16184
16185                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16186                         NDR_PULL_ALLOC(ndr, r->in.bind_handle);
16187                 }
16188                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
16189                 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
16190                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
16191                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
16192                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
16193                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16194                         NDR_PULL_ALLOC(ndr, r->in.req);
16195                 }
16196                 _mem_save_req_0 = NDR_PULL_GET_MEM_CTX(ndr);
16197                 NDR_PULL_SET_MEM_CTX(ndr, r->in.req, LIBNDR_FLAG_REF_ALLOC);
16198                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.req, r->in.level));
16199                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
16200                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_0, LIBNDR_FLAG_REF_ALLOC);
16201                 NDR_PULL_ALLOC(ndr, r->out.level_out);
16202                 ZERO_STRUCTP(r->out.level_out);
16203                 NDR_PULL_ALLOC(ndr, r->out.ctr);
16204                 ZERO_STRUCTP(r->out.ctr);
16205         }
16206         if (flags & NDR_OUT) {
16207                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16208                         NDR_PULL_ALLOC(ndr, r->out.level_out);
16209                 }
16210                 _mem_save_level_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
16211                 NDR_PULL_SET_MEM_CTX(ndr, r->out.level_out, LIBNDR_FLAG_REF_ALLOC);
16212                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.level_out));
16213                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_out_0, LIBNDR_FLAG_REF_ALLOC);
16214                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16215                         NDR_PULL_ALLOC(ndr, r->out.ctr);
16216                 }
16217                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
16218                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
16219                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
16220                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
16221                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
16222                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16223         }
16224         return NDR_ERR_SUCCESS;
16225 }
16226
16227 _PUBLIC_ void ndr_print_drsuapi_DsAddEntry(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsAddEntry *r)
16228 {
16229         ndr_print_struct(ndr, name, "drsuapi_DsAddEntry");
16230         if (r == NULL) { ndr_print_null(ndr); return; }
16231         ndr->depth++;
16232         if (flags & NDR_SET_VALUES) {
16233                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16234         }
16235         if (flags & NDR_IN) {
16236                 ndr_print_struct(ndr, "in", "drsuapi_DsAddEntry");
16237                 ndr->depth++;
16238                 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
16239                 ndr->depth++;
16240                 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
16241                 ndr->depth--;
16242                 ndr_print_uint32(ndr, "level", r->in.level);
16243                 ndr_print_ptr(ndr, "req", r->in.req);
16244                 ndr->depth++;
16245                 ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
16246                 ndr_print_drsuapi_DsAddEntryRequest(ndr, "req", r->in.req);
16247                 ndr->depth--;
16248                 ndr->depth--;
16249         }
16250         if (flags & NDR_OUT) {
16251                 ndr_print_struct(ndr, "out", "drsuapi_DsAddEntry");
16252                 ndr->depth++;
16253                 ndr_print_ptr(ndr, "level_out", r->out.level_out);
16254                 ndr->depth++;
16255                 ndr_print_uint32(ndr, "level_out", *r->out.level_out);
16256                 ndr->depth--;
16257                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
16258                 ndr->depth++;
16259                 ndr_print_set_switch_value(ndr, r->out.ctr, *r->out.level_out);
16260                 ndr_print_drsuapi_DsAddEntryCtr(ndr, "ctr", r->out.ctr);
16261                 ndr->depth--;
16262                 ndr_print_WERROR(ndr, "result", r->out.result);
16263                 ndr->depth--;
16264         }
16265         ndr->depth--;
16266 }
16267
16268 static enum ndr_err_code ndr_push_drsuapi_DsExecuteKCC(struct ndr_push *ndr, int flags, const struct drsuapi_DsExecuteKCC *r)
16269 {
16270         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
16271         if (flags & NDR_IN) {
16272                 if (r->in.bind_handle == NULL) {
16273                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16274                 }
16275                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
16276                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
16277                 if (r->in.req == NULL) {
16278                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16279                 }
16280                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.req, r->in.level));
16281                 NDR_CHECK(ndr_push_drsuapi_DsExecuteKCCRequest(ndr, NDR_SCALARS, r->in.req));
16282         }
16283         if (flags & NDR_OUT) {
16284                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16285         }
16286         return NDR_ERR_SUCCESS;
16287 }
16288
16289 static enum ndr_err_code ndr_pull_drsuapi_DsExecuteKCC(struct ndr_pull *ndr, int flags, struct drsuapi_DsExecuteKCC *r)
16290 {
16291         TALLOC_CTX *_mem_save_bind_handle_0;
16292         TALLOC_CTX *_mem_save_req_0;
16293         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
16294         if (flags & NDR_IN) {
16295                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16296                         NDR_PULL_ALLOC(ndr, r->in.bind_handle);
16297                 }
16298                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
16299                 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
16300                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
16301                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
16302                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
16303                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16304                         NDR_PULL_ALLOC(ndr, r->in.req);
16305                 }
16306                 _mem_save_req_0 = NDR_PULL_GET_MEM_CTX(ndr);
16307                 NDR_PULL_SET_MEM_CTX(ndr, r->in.req, LIBNDR_FLAG_REF_ALLOC);
16308                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.req, r->in.level));
16309                 NDR_CHECK(ndr_pull_drsuapi_DsExecuteKCCRequest(ndr, NDR_SCALARS, r->in.req));
16310                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_0, LIBNDR_FLAG_REF_ALLOC);
16311         }
16312         if (flags & NDR_OUT) {
16313                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16314         }
16315         return NDR_ERR_SUCCESS;
16316 }
16317
16318 _PUBLIC_ void ndr_print_drsuapi_DsExecuteKCC(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsExecuteKCC *r)
16319 {
16320         ndr_print_struct(ndr, name, "drsuapi_DsExecuteKCC");
16321         if (r == NULL) { ndr_print_null(ndr); return; }
16322         ndr->depth++;
16323         if (flags & NDR_SET_VALUES) {
16324                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16325         }
16326         if (flags & NDR_IN) {
16327                 ndr_print_struct(ndr, "in", "drsuapi_DsExecuteKCC");
16328                 ndr->depth++;
16329                 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
16330                 ndr->depth++;
16331                 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
16332                 ndr->depth--;
16333                 ndr_print_uint32(ndr, "level", r->in.level);
16334                 ndr_print_ptr(ndr, "req", r->in.req);
16335                 ndr->depth++;
16336                 ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
16337                 ndr_print_drsuapi_DsExecuteKCCRequest(ndr, "req", r->in.req);
16338                 ndr->depth--;
16339                 ndr->depth--;
16340         }
16341         if (flags & NDR_OUT) {
16342                 ndr_print_struct(ndr, "out", "drsuapi_DsExecuteKCC");
16343                 ndr->depth++;
16344                 ndr_print_WERROR(ndr, "result", r->out.result);
16345                 ndr->depth--;
16346         }
16347         ndr->depth--;
16348 }
16349
16350 static enum ndr_err_code ndr_push_drsuapi_DsReplicaGetInfo(struct ndr_push *ndr, int flags, const struct drsuapi_DsReplicaGetInfo *r)
16351 {
16352         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
16353         if (flags & NDR_IN) {
16354                 if (r->in.bind_handle == NULL) {
16355                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16356                 }
16357                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
16358                 NDR_CHECK(ndr_push_drsuapi_DsReplicaGetInfoLevel(ndr, NDR_SCALARS, r->in.level));
16359                 if (r->in.req == NULL) {
16360                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16361                 }
16362                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.req, r->in.level));
16363                 NDR_CHECK(ndr_push_drsuapi_DsReplicaGetInfoRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
16364         }
16365         if (flags & NDR_OUT) {
16366                 if (r->out.info_type == NULL) {
16367                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16368                 }
16369                 NDR_CHECK(ndr_push_drsuapi_DsReplicaInfoType(ndr, NDR_SCALARS, *r->out.info_type));
16370                 if (r->out.info == NULL) {
16371                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16372                 }
16373                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, *r->out.info_type));
16374                 NDR_CHECK(ndr_push_drsuapi_DsReplicaInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
16375                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16376         }
16377         return NDR_ERR_SUCCESS;
16378 }
16379
16380 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaGetInfo(struct ndr_pull *ndr, int flags, struct drsuapi_DsReplicaGetInfo *r)
16381 {
16382         TALLOC_CTX *_mem_save_bind_handle_0;
16383         TALLOC_CTX *_mem_save_req_0;
16384         TALLOC_CTX *_mem_save_info_type_0;
16385         TALLOC_CTX *_mem_save_info_0;
16386         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
16387         if (flags & NDR_IN) {
16388                 ZERO_STRUCT(r->out);
16389
16390                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16391                         NDR_PULL_ALLOC(ndr, r->in.bind_handle);
16392                 }
16393                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
16394                 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
16395                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
16396                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
16397                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaGetInfoLevel(ndr, NDR_SCALARS, &r->in.level));
16398                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16399                         NDR_PULL_ALLOC(ndr, r->in.req);
16400                 }
16401                 _mem_save_req_0 = NDR_PULL_GET_MEM_CTX(ndr);
16402                 NDR_PULL_SET_MEM_CTX(ndr, r->in.req, LIBNDR_FLAG_REF_ALLOC);
16403                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.req, r->in.level));
16404                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaGetInfoRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
16405                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_0, LIBNDR_FLAG_REF_ALLOC);
16406                 NDR_PULL_ALLOC(ndr, r->out.info_type);
16407                 ZERO_STRUCTP(r->out.info_type);
16408                 NDR_PULL_ALLOC(ndr, r->out.info);
16409                 ZERO_STRUCTP(r->out.info);
16410         }
16411         if (flags & NDR_OUT) {
16412                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16413                         NDR_PULL_ALLOC(ndr, r->out.info_type);
16414                 }
16415                 _mem_save_info_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
16416                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info_type, LIBNDR_FLAG_REF_ALLOC);
16417                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaInfoType(ndr, NDR_SCALARS, r->out.info_type));
16418                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_type_0, LIBNDR_FLAG_REF_ALLOC);
16419                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16420                         NDR_PULL_ALLOC(ndr, r->out.info);
16421                 }
16422                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
16423                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
16424                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, *r->out.info_type));
16425                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
16426                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
16427                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16428         }
16429         return NDR_ERR_SUCCESS;
16430 }
16431
16432 _PUBLIC_ void ndr_print_drsuapi_DsReplicaGetInfo(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsReplicaGetInfo *r)
16433 {
16434         ndr_print_struct(ndr, name, "drsuapi_DsReplicaGetInfo");
16435         if (r == NULL) { ndr_print_null(ndr); return; }
16436         ndr->depth++;
16437         if (flags & NDR_SET_VALUES) {
16438                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16439         }
16440         if (flags & NDR_IN) {
16441                 ndr_print_struct(ndr, "in", "drsuapi_DsReplicaGetInfo");
16442                 ndr->depth++;
16443                 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
16444                 ndr->depth++;
16445                 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
16446                 ndr->depth--;
16447                 ndr_print_drsuapi_DsReplicaGetInfoLevel(ndr, "level", r->in.level);
16448                 ndr_print_ptr(ndr, "req", r->in.req);
16449                 ndr->depth++;
16450                 ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
16451                 ndr_print_drsuapi_DsReplicaGetInfoRequest(ndr, "req", r->in.req);
16452                 ndr->depth--;
16453                 ndr->depth--;
16454         }
16455         if (flags & NDR_OUT) {
16456                 ndr_print_struct(ndr, "out", "drsuapi_DsReplicaGetInfo");
16457                 ndr->depth++;
16458                 ndr_print_ptr(ndr, "info_type", r->out.info_type);
16459                 ndr->depth++;
16460                 ndr_print_drsuapi_DsReplicaInfoType(ndr, "info_type", *r->out.info_type);
16461                 ndr->depth--;
16462                 ndr_print_ptr(ndr, "info", r->out.info);
16463                 ndr->depth++;
16464                 ndr_print_set_switch_value(ndr, r->out.info, *r->out.info_type);
16465                 ndr_print_drsuapi_DsReplicaInfo(ndr, "info", r->out.info);
16466                 ndr->depth--;
16467                 ndr_print_WERROR(ndr, "result", r->out.result);
16468                 ndr->depth--;
16469         }
16470         ndr->depth--;
16471 }
16472
16473 static enum ndr_err_code ndr_push_DRSUAPI_ADD_SID_HISTORY(struct ndr_push *ndr, int flags, const struct DRSUAPI_ADD_SID_HISTORY *r)
16474 {
16475         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
16476         if (flags & NDR_IN) {
16477         }
16478         if (flags & NDR_OUT) {
16479                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16480         }
16481         return NDR_ERR_SUCCESS;
16482 }
16483
16484 static enum ndr_err_code ndr_pull_DRSUAPI_ADD_SID_HISTORY(struct ndr_pull *ndr, int flags, struct DRSUAPI_ADD_SID_HISTORY *r)
16485 {
16486         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
16487         if (flags & NDR_IN) {
16488         }
16489         if (flags & NDR_OUT) {
16490                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16491         }
16492         return NDR_ERR_SUCCESS;
16493 }
16494
16495 _PUBLIC_ void ndr_print_DRSUAPI_ADD_SID_HISTORY(struct ndr_print *ndr, const char *name, int flags, const struct DRSUAPI_ADD_SID_HISTORY *r)
16496 {
16497         ndr_print_struct(ndr, name, "DRSUAPI_ADD_SID_HISTORY");
16498         if (r == NULL) { ndr_print_null(ndr); return; }
16499         ndr->depth++;
16500         if (flags & NDR_SET_VALUES) {
16501                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16502         }
16503         if (flags & NDR_IN) {
16504                 ndr_print_struct(ndr, "in", "DRSUAPI_ADD_SID_HISTORY");
16505                 ndr->depth++;
16506                 ndr->depth--;
16507         }
16508         if (flags & NDR_OUT) {
16509                 ndr_print_struct(ndr, "out", "DRSUAPI_ADD_SID_HISTORY");
16510                 ndr->depth++;
16511                 ndr_print_WERROR(ndr, "result", r->out.result);
16512                 ndr->depth--;
16513         }
16514         ndr->depth--;
16515 }
16516
16517 static enum ndr_err_code ndr_push_drsuapi_DsGetMemberships2(struct ndr_push *ndr, int flags, const struct drsuapi_DsGetMemberships2 *r)
16518 {
16519         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
16520         if (flags & NDR_IN) {
16521                 if (r->in.bind_handle == NULL) {
16522                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16523                 }
16524                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
16525                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
16526                 if (r->in.req == NULL) {
16527                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16528                 }
16529                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.req, r->in.level));
16530                 NDR_CHECK(ndr_push_drsuapi_DsGetMemberships2Request(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
16531         }
16532         if (flags & NDR_OUT) {
16533                 if (r->out.level_out == NULL) {
16534                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16535                 }
16536                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.level_out));
16537                 if (r->out.ctr == NULL) {
16538                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16539                 }
16540                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
16541                 NDR_CHECK(ndr_push_drsuapi_DsGetMemberships2Ctr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
16542                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16543         }
16544         return NDR_ERR_SUCCESS;
16545 }
16546
16547 static enum ndr_err_code ndr_pull_drsuapi_DsGetMemberships2(struct ndr_pull *ndr, int flags, struct drsuapi_DsGetMemberships2 *r)
16548 {
16549         TALLOC_CTX *_mem_save_bind_handle_0;
16550         TALLOC_CTX *_mem_save_req_0;
16551         TALLOC_CTX *_mem_save_level_out_0;
16552         TALLOC_CTX *_mem_save_ctr_0;
16553         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
16554         if (flags & NDR_IN) {
16555                 ZERO_STRUCT(r->out);
16556
16557                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16558                         NDR_PULL_ALLOC(ndr, r->in.bind_handle);
16559                 }
16560                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
16561                 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
16562                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
16563                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
16564                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
16565                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16566                         NDR_PULL_ALLOC(ndr, r->in.req);
16567                 }
16568                 _mem_save_req_0 = NDR_PULL_GET_MEM_CTX(ndr);
16569                 NDR_PULL_SET_MEM_CTX(ndr, r->in.req, LIBNDR_FLAG_REF_ALLOC);
16570                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.req, r->in.level));
16571                 NDR_CHECK(ndr_pull_drsuapi_DsGetMemberships2Request(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
16572                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_0, LIBNDR_FLAG_REF_ALLOC);
16573                 NDR_PULL_ALLOC(ndr, r->out.level_out);
16574                 ZERO_STRUCTP(r->out.level_out);
16575                 NDR_PULL_ALLOC(ndr, r->out.ctr);
16576                 ZERO_STRUCTP(r->out.ctr);
16577         }
16578         if (flags & NDR_OUT) {
16579                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16580                         NDR_PULL_ALLOC(ndr, r->out.level_out);
16581                 }
16582                 _mem_save_level_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
16583                 NDR_PULL_SET_MEM_CTX(ndr, r->out.level_out, LIBNDR_FLAG_REF_ALLOC);
16584                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.level_out));
16585                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_out_0, LIBNDR_FLAG_REF_ALLOC);
16586                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16587                         NDR_PULL_ALLOC(ndr, r->out.ctr);
16588                 }
16589                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
16590                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
16591                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
16592                 NDR_CHECK(ndr_pull_drsuapi_DsGetMemberships2Ctr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
16593                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
16594                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16595         }
16596         return NDR_ERR_SUCCESS;
16597 }
16598
16599 _PUBLIC_ void ndr_print_drsuapi_DsGetMemberships2(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsGetMemberships2 *r)
16600 {
16601         ndr_print_struct(ndr, name, "drsuapi_DsGetMemberships2");
16602         if (r == NULL) { ndr_print_null(ndr); return; }
16603         ndr->depth++;
16604         if (flags & NDR_SET_VALUES) {
16605                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16606         }
16607         if (flags & NDR_IN) {
16608                 ndr_print_struct(ndr, "in", "drsuapi_DsGetMemberships2");
16609                 ndr->depth++;
16610                 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
16611                 ndr->depth++;
16612                 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
16613                 ndr->depth--;
16614                 ndr_print_uint32(ndr, "level", r->in.level);
16615                 ndr_print_ptr(ndr, "req", r->in.req);
16616                 ndr->depth++;
16617                 ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
16618                 ndr_print_drsuapi_DsGetMemberships2Request(ndr, "req", r->in.req);
16619                 ndr->depth--;
16620                 ndr->depth--;
16621         }
16622         if (flags & NDR_OUT) {
16623                 ndr_print_struct(ndr, "out", "drsuapi_DsGetMemberships2");
16624                 ndr->depth++;
16625                 ndr_print_ptr(ndr, "level_out", r->out.level_out);
16626                 ndr->depth++;
16627                 ndr_print_uint32(ndr, "level_out", *r->out.level_out);
16628                 ndr->depth--;
16629                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
16630                 ndr->depth++;
16631                 ndr_print_set_switch_value(ndr, r->out.ctr, *r->out.level_out);
16632                 ndr_print_drsuapi_DsGetMemberships2Ctr(ndr, "ctr", r->out.ctr);
16633                 ndr->depth--;
16634                 ndr_print_WERROR(ndr, "result", r->out.result);
16635                 ndr->depth--;
16636         }
16637         ndr->depth--;
16638 }
16639
16640 static enum ndr_err_code ndr_push_DRSUAPI_REPLICA_VERIFY_OBJECTS(struct ndr_push *ndr, int flags, const struct DRSUAPI_REPLICA_VERIFY_OBJECTS *r)
16641 {
16642         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
16643         if (flags & NDR_IN) {
16644         }
16645         if (flags & NDR_OUT) {
16646                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16647         }
16648         return NDR_ERR_SUCCESS;
16649 }
16650
16651 static enum ndr_err_code ndr_pull_DRSUAPI_REPLICA_VERIFY_OBJECTS(struct ndr_pull *ndr, int flags, struct DRSUAPI_REPLICA_VERIFY_OBJECTS *r)
16652 {
16653         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
16654         if (flags & NDR_IN) {
16655         }
16656         if (flags & NDR_OUT) {
16657                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16658         }
16659         return NDR_ERR_SUCCESS;
16660 }
16661
16662 _PUBLIC_ void ndr_print_DRSUAPI_REPLICA_VERIFY_OBJECTS(struct ndr_print *ndr, const char *name, int flags, const struct DRSUAPI_REPLICA_VERIFY_OBJECTS *r)
16663 {
16664         ndr_print_struct(ndr, name, "DRSUAPI_REPLICA_VERIFY_OBJECTS");
16665         if (r == NULL) { ndr_print_null(ndr); return; }
16666         ndr->depth++;
16667         if (flags & NDR_SET_VALUES) {
16668                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16669         }
16670         if (flags & NDR_IN) {
16671                 ndr_print_struct(ndr, "in", "DRSUAPI_REPLICA_VERIFY_OBJECTS");
16672                 ndr->depth++;
16673                 ndr->depth--;
16674         }
16675         if (flags & NDR_OUT) {
16676                 ndr_print_struct(ndr, "out", "DRSUAPI_REPLICA_VERIFY_OBJECTS");
16677                 ndr->depth++;
16678                 ndr_print_WERROR(ndr, "result", r->out.result);
16679                 ndr->depth--;
16680         }
16681         ndr->depth--;
16682 }
16683
16684 static enum ndr_err_code ndr_push_DRSUAPI_GET_OBJECT_EXISTENCE(struct ndr_push *ndr, int flags, const struct DRSUAPI_GET_OBJECT_EXISTENCE *r)
16685 {
16686         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
16687         if (flags & NDR_IN) {
16688         }
16689         if (flags & NDR_OUT) {
16690                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16691         }
16692         return NDR_ERR_SUCCESS;
16693 }
16694
16695 static enum ndr_err_code ndr_pull_DRSUAPI_GET_OBJECT_EXISTENCE(struct ndr_pull *ndr, int flags, struct DRSUAPI_GET_OBJECT_EXISTENCE *r)
16696 {
16697         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
16698         if (flags & NDR_IN) {
16699         }
16700         if (flags & NDR_OUT) {
16701                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16702         }
16703         return NDR_ERR_SUCCESS;
16704 }
16705
16706 _PUBLIC_ void ndr_print_DRSUAPI_GET_OBJECT_EXISTENCE(struct ndr_print *ndr, const char *name, int flags, const struct DRSUAPI_GET_OBJECT_EXISTENCE *r)
16707 {
16708         ndr_print_struct(ndr, name, "DRSUAPI_GET_OBJECT_EXISTENCE");
16709         if (r == NULL) { ndr_print_null(ndr); return; }
16710         ndr->depth++;
16711         if (flags & NDR_SET_VALUES) {
16712                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16713         }
16714         if (flags & NDR_IN) {
16715                 ndr_print_struct(ndr, "in", "DRSUAPI_GET_OBJECT_EXISTENCE");
16716                 ndr->depth++;
16717                 ndr->depth--;
16718         }
16719         if (flags & NDR_OUT) {
16720                 ndr_print_struct(ndr, "out", "DRSUAPI_GET_OBJECT_EXISTENCE");
16721                 ndr->depth++;
16722                 ndr_print_WERROR(ndr, "result", r->out.result);
16723                 ndr->depth--;
16724         }
16725         ndr->depth--;
16726 }
16727
16728 static enum ndr_err_code ndr_push_drsuapi_QuerySitesByCost(struct ndr_push *ndr, int flags, const struct drsuapi_QuerySitesByCost *r)
16729 {
16730         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
16731         if (flags & NDR_IN) {
16732                 if (r->in.bind_handle == NULL) {
16733                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16734                 }
16735                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
16736                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
16737                 if (r->in.req == NULL) {
16738                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16739                 }
16740                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.req, r->in.level));
16741                 NDR_CHECK(ndr_push_drsuapi_QuerySitesByCostRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
16742         }
16743         if (flags & NDR_OUT) {
16744                 if (r->out.level_out == NULL) {
16745                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16746                 }
16747                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.level_out));
16748                 if (r->out.ctr == NULL) {
16749                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16750                 }
16751                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
16752                 NDR_CHECK(ndr_push_drsuapi_QuerySitesByCostCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
16753                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16754         }
16755         return NDR_ERR_SUCCESS;
16756 }
16757
16758 static enum ndr_err_code ndr_pull_drsuapi_QuerySitesByCost(struct ndr_pull *ndr, int flags, struct drsuapi_QuerySitesByCost *r)
16759 {
16760         TALLOC_CTX *_mem_save_bind_handle_0;
16761         TALLOC_CTX *_mem_save_req_0;
16762         TALLOC_CTX *_mem_save_level_out_0;
16763         TALLOC_CTX *_mem_save_ctr_0;
16764         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
16765         if (flags & NDR_IN) {
16766                 ZERO_STRUCT(r->out);
16767
16768                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16769                         NDR_PULL_ALLOC(ndr, r->in.bind_handle);
16770                 }
16771                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
16772                 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
16773                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
16774                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
16775                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
16776                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16777                         NDR_PULL_ALLOC(ndr, r->in.req);
16778                 }
16779                 _mem_save_req_0 = NDR_PULL_GET_MEM_CTX(ndr);
16780                 NDR_PULL_SET_MEM_CTX(ndr, r->in.req, LIBNDR_FLAG_REF_ALLOC);
16781                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.req, r->in.level));
16782                 NDR_CHECK(ndr_pull_drsuapi_QuerySitesByCostRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
16783                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_0, LIBNDR_FLAG_REF_ALLOC);
16784                 NDR_PULL_ALLOC(ndr, r->out.level_out);
16785                 ZERO_STRUCTP(r->out.level_out);
16786                 NDR_PULL_ALLOC(ndr, r->out.ctr);
16787                 ZERO_STRUCTP(r->out.ctr);
16788         }
16789         if (flags & NDR_OUT) {
16790                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16791                         NDR_PULL_ALLOC(ndr, r->out.level_out);
16792                 }
16793                 _mem_save_level_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
16794                 NDR_PULL_SET_MEM_CTX(ndr, r->out.level_out, LIBNDR_FLAG_REF_ALLOC);
16795                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.level_out));
16796                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_out_0, LIBNDR_FLAG_REF_ALLOC);
16797                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16798                         NDR_PULL_ALLOC(ndr, r->out.ctr);
16799                 }
16800                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
16801                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
16802                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
16803                 NDR_CHECK(ndr_pull_drsuapi_QuerySitesByCostCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
16804                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
16805                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16806         }
16807         return NDR_ERR_SUCCESS;
16808 }
16809
16810 _PUBLIC_ void ndr_print_drsuapi_QuerySitesByCost(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_QuerySitesByCost *r)
16811 {
16812         ndr_print_struct(ndr, name, "drsuapi_QuerySitesByCost");
16813         if (r == NULL) { ndr_print_null(ndr); return; }
16814         ndr->depth++;
16815         if (flags & NDR_SET_VALUES) {
16816                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16817         }
16818         if (flags & NDR_IN) {
16819                 ndr_print_struct(ndr, "in", "drsuapi_QuerySitesByCost");
16820                 ndr->depth++;
16821                 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
16822                 ndr->depth++;
16823                 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
16824                 ndr->depth--;
16825                 ndr_print_uint32(ndr, "level", r->in.level);
16826                 ndr_print_ptr(ndr, "req", r->in.req);
16827                 ndr->depth++;
16828                 ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
16829                 ndr_print_drsuapi_QuerySitesByCostRequest(ndr, "req", r->in.req);
16830                 ndr->depth--;
16831                 ndr->depth--;
16832         }
16833         if (flags & NDR_OUT) {
16834                 ndr_print_struct(ndr, "out", "drsuapi_QuerySitesByCost");
16835                 ndr->depth++;
16836                 ndr_print_ptr(ndr, "level_out", r->out.level_out);
16837                 ndr->depth++;
16838                 ndr_print_uint32(ndr, "level_out", *r->out.level_out);
16839                 ndr->depth--;
16840                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
16841                 ndr->depth++;
16842                 ndr_print_set_switch_value(ndr, r->out.ctr, *r->out.level_out);
16843                 ndr_print_drsuapi_QuerySitesByCostCtr(ndr, "ctr", r->out.ctr);
16844                 ndr->depth--;
16845                 ndr_print_WERROR(ndr, "result", r->out.result);
16846                 ndr->depth--;
16847         }
16848         ndr->depth--;
16849 }
16850
16851 static const struct ndr_interface_call drsuapi_calls[] = {
16852         {
16853                 "drsuapi_DsBind",
16854                 sizeof(struct drsuapi_DsBind),
16855                 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsBind,
16856                 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsBind,
16857                 (ndr_print_function_t) ndr_print_drsuapi_DsBind,
16858                 { 0, NULL },
16859                 { 0, NULL },
16860         },
16861         {
16862                 "drsuapi_DsUnbind",
16863                 sizeof(struct drsuapi_DsUnbind),
16864                 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsUnbind,
16865                 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsUnbind,
16866                 (ndr_print_function_t) ndr_print_drsuapi_DsUnbind,
16867                 { 0, NULL },
16868                 { 0, NULL },
16869         },
16870         {
16871                 "drsuapi_DsReplicaSync",
16872                 sizeof(struct drsuapi_DsReplicaSync),
16873                 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsReplicaSync,
16874                 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsReplicaSync,
16875                 (ndr_print_function_t) ndr_print_drsuapi_DsReplicaSync,
16876                 { 0, NULL },
16877                 { 0, NULL },
16878         },
16879         {
16880                 "drsuapi_DsGetNCChanges",
16881                 sizeof(struct drsuapi_DsGetNCChanges),
16882                 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsGetNCChanges,
16883                 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsGetNCChanges,
16884                 (ndr_print_function_t) ndr_print_drsuapi_DsGetNCChanges,
16885                 { 0, NULL },
16886                 { 0, NULL },
16887         },
16888         {
16889                 "drsuapi_DsReplicaUpdateRefs",
16890                 sizeof(struct drsuapi_DsReplicaUpdateRefs),
16891                 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsReplicaUpdateRefs,
16892                 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsReplicaUpdateRefs,
16893                 (ndr_print_function_t) ndr_print_drsuapi_DsReplicaUpdateRefs,
16894                 { 0, NULL },
16895                 { 0, NULL },
16896         },
16897         {
16898                 "drsuapi_DsReplicaAdd",
16899                 sizeof(struct drsuapi_DsReplicaAdd),
16900                 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsReplicaAdd,
16901                 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsReplicaAdd,
16902                 (ndr_print_function_t) ndr_print_drsuapi_DsReplicaAdd,
16903                 { 0, NULL },
16904                 { 0, NULL },
16905         },
16906         {
16907                 "drsuapi_DsReplicaDel",
16908                 sizeof(struct drsuapi_DsReplicaDel),
16909                 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsReplicaDel,
16910                 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsReplicaDel,
16911                 (ndr_print_function_t) ndr_print_drsuapi_DsReplicaDel,
16912                 { 0, NULL },
16913                 { 0, NULL },
16914         },
16915         {
16916                 "drsuapi_DsReplicaMod",
16917                 sizeof(struct drsuapi_DsReplicaMod),
16918                 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsReplicaMod,
16919                 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsReplicaMod,
16920                 (ndr_print_function_t) ndr_print_drsuapi_DsReplicaMod,
16921                 { 0, NULL },
16922                 { 0, NULL },
16923         },
16924         {
16925                 "DRSUAPI_VERIFY_NAMES",
16926                 sizeof(struct DRSUAPI_VERIFY_NAMES),
16927                 (ndr_push_flags_fn_t) ndr_push_DRSUAPI_VERIFY_NAMES,
16928                 (ndr_pull_flags_fn_t) ndr_pull_DRSUAPI_VERIFY_NAMES,
16929                 (ndr_print_function_t) ndr_print_DRSUAPI_VERIFY_NAMES,
16930                 { 0, NULL },
16931                 { 0, NULL },
16932         },
16933         {
16934                 "drsuapi_DsGetMemberships",
16935                 sizeof(struct drsuapi_DsGetMemberships),
16936                 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsGetMemberships,
16937                 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsGetMemberships,
16938                 (ndr_print_function_t) ndr_print_drsuapi_DsGetMemberships,
16939                 { 0, NULL },
16940                 { 0, NULL },
16941         },
16942         {
16943                 "DRSUAPI_INTER_DOMAIN_MOVE",
16944                 sizeof(struct DRSUAPI_INTER_DOMAIN_MOVE),
16945                 (ndr_push_flags_fn_t) ndr_push_DRSUAPI_INTER_DOMAIN_MOVE,
16946                 (ndr_pull_flags_fn_t) ndr_pull_DRSUAPI_INTER_DOMAIN_MOVE,
16947                 (ndr_print_function_t) ndr_print_DRSUAPI_INTER_DOMAIN_MOVE,
16948                 { 0, NULL },
16949                 { 0, NULL },
16950         },
16951         {
16952                 "drsuapi_DsGetNT4ChangeLog",
16953                 sizeof(struct drsuapi_DsGetNT4ChangeLog),
16954                 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsGetNT4ChangeLog,
16955                 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsGetNT4ChangeLog,
16956                 (ndr_print_function_t) ndr_print_drsuapi_DsGetNT4ChangeLog,
16957                 { 0, NULL },
16958                 { 0, NULL },
16959         },
16960         {
16961                 "drsuapi_DsCrackNames",
16962                 sizeof(struct drsuapi_DsCrackNames),
16963                 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsCrackNames,
16964                 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsCrackNames,
16965                 (ndr_print_function_t) ndr_print_drsuapi_DsCrackNames,
16966                 { 0, NULL },
16967                 { 0, NULL },
16968         },
16969         {
16970                 "drsuapi_DsWriteAccountSpn",
16971                 sizeof(struct drsuapi_DsWriteAccountSpn),
16972                 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsWriteAccountSpn,
16973                 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsWriteAccountSpn,
16974                 (ndr_print_function_t) ndr_print_drsuapi_DsWriteAccountSpn,
16975                 { 0, NULL },
16976                 { 0, NULL },
16977         },
16978         {
16979                 "drsuapi_DsRemoveDSServer",
16980                 sizeof(struct drsuapi_DsRemoveDSServer),
16981                 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsRemoveDSServer,
16982                 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsRemoveDSServer,
16983                 (ndr_print_function_t) ndr_print_drsuapi_DsRemoveDSServer,
16984                 { 0, NULL },
16985                 { 0, NULL },
16986         },
16987         {
16988                 "DRSUAPI_REMOVE_DS_DOMAIN",
16989                 sizeof(struct DRSUAPI_REMOVE_DS_DOMAIN),
16990                 (ndr_push_flags_fn_t) ndr_push_DRSUAPI_REMOVE_DS_DOMAIN,
16991                 (ndr_pull_flags_fn_t) ndr_pull_DRSUAPI_REMOVE_DS_DOMAIN,
16992                 (ndr_print_function_t) ndr_print_DRSUAPI_REMOVE_DS_DOMAIN,
16993                 { 0, NULL },
16994                 { 0, NULL },
16995         },
16996         {
16997                 "drsuapi_DsGetDomainControllerInfo",
16998                 sizeof(struct drsuapi_DsGetDomainControllerInfo),
16999                 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsGetDomainControllerInfo,
17000                 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsGetDomainControllerInfo,
17001                 (ndr_print_function_t) ndr_print_drsuapi_DsGetDomainControllerInfo,
17002                 { 0, NULL },
17003                 { 0, NULL },
17004         },
17005         {
17006                 "drsuapi_DsAddEntry",
17007                 sizeof(struct drsuapi_DsAddEntry),
17008                 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsAddEntry,
17009                 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsAddEntry,
17010                 (ndr_print_function_t) ndr_print_drsuapi_DsAddEntry,
17011                 { 0, NULL },
17012                 { 0, NULL },
17013         },
17014         {
17015                 "drsuapi_DsExecuteKCC",
17016                 sizeof(struct drsuapi_DsExecuteKCC),
17017                 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsExecuteKCC,
17018                 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsExecuteKCC,
17019                 (ndr_print_function_t) ndr_print_drsuapi_DsExecuteKCC,
17020                 { 0, NULL },
17021                 { 0, NULL },
17022         },
17023         {
17024                 "drsuapi_DsReplicaGetInfo",
17025                 sizeof(struct drsuapi_DsReplicaGetInfo),
17026                 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsReplicaGetInfo,
17027                 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsReplicaGetInfo,
17028                 (ndr_print_function_t) ndr_print_drsuapi_DsReplicaGetInfo,
17029                 { 0, NULL },
17030                 { 0, NULL },
17031         },
17032         {
17033                 "DRSUAPI_ADD_SID_HISTORY",
17034                 sizeof(struct DRSUAPI_ADD_SID_HISTORY),
17035                 (ndr_push_flags_fn_t) ndr_push_DRSUAPI_ADD_SID_HISTORY,
17036                 (ndr_pull_flags_fn_t) ndr_pull_DRSUAPI_ADD_SID_HISTORY,
17037                 (ndr_print_function_t) ndr_print_DRSUAPI_ADD_SID_HISTORY,
17038                 { 0, NULL },
17039                 { 0, NULL },
17040         },
17041         {
17042                 "drsuapi_DsGetMemberships2",
17043                 sizeof(struct drsuapi_DsGetMemberships2),
17044                 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsGetMemberships2,
17045                 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsGetMemberships2,
17046                 (ndr_print_function_t) ndr_print_drsuapi_DsGetMemberships2,
17047                 { 0, NULL },
17048                 { 0, NULL },
17049         },
17050         {
17051                 "DRSUAPI_REPLICA_VERIFY_OBJECTS",
17052                 sizeof(struct DRSUAPI_REPLICA_VERIFY_OBJECTS),
17053                 (ndr_push_flags_fn_t) ndr_push_DRSUAPI_REPLICA_VERIFY_OBJECTS,
17054                 (ndr_pull_flags_fn_t) ndr_pull_DRSUAPI_REPLICA_VERIFY_OBJECTS,
17055                 (ndr_print_function_t) ndr_print_DRSUAPI_REPLICA_VERIFY_OBJECTS,
17056                 { 0, NULL },
17057                 { 0, NULL },
17058         },
17059         {
17060                 "DRSUAPI_GET_OBJECT_EXISTENCE",
17061                 sizeof(struct DRSUAPI_GET_OBJECT_EXISTENCE),
17062                 (ndr_push_flags_fn_t) ndr_push_DRSUAPI_GET_OBJECT_EXISTENCE,
17063                 (ndr_pull_flags_fn_t) ndr_pull_DRSUAPI_GET_OBJECT_EXISTENCE,
17064                 (ndr_print_function_t) ndr_print_DRSUAPI_GET_OBJECT_EXISTENCE,
17065                 { 0, NULL },
17066                 { 0, NULL },
17067         },
17068         {
17069                 "drsuapi_QuerySitesByCost",
17070                 sizeof(struct drsuapi_QuerySitesByCost),
17071                 (ndr_push_flags_fn_t) ndr_push_drsuapi_QuerySitesByCost,
17072                 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_QuerySitesByCost,
17073                 (ndr_print_function_t) ndr_print_drsuapi_QuerySitesByCost,
17074                 { 0, NULL },
17075                 { 0, NULL },
17076         },
17077         { NULL, 0, NULL, NULL, NULL }
17078 };
17079
17080 static const char * const drsuapi_endpoint_strings[] = {
17081         "ncacn_np:[\\pipe\\lsass]", 
17082         "ncacn_np:[\\pipe\\protected_storage]", 
17083         "ncacn_ip_tcp:", 
17084         "ncalrpc:", 
17085 };
17086
17087 static const struct ndr_interface_string_array drsuapi_endpoints = {
17088         .count  = 4,
17089         .names  = drsuapi_endpoint_strings
17090 };
17091
17092 static const char * const drsuapi_authservice_strings[] = {
17093         "ldap", 
17094 };
17095
17096 static const struct ndr_interface_string_array drsuapi_authservices = {
17097         .count  = 1,
17098         .names  = drsuapi_authservice_strings
17099 };
17100
17101
17102 const struct ndr_interface_table ndr_table_drsuapi = {
17103         .name           = "drsuapi",
17104         .syntax_id      = {
17105                 {0xe3514235,0x4b06,0x11d1,{0xab,0x04},{0x00,0xc0,0x4f,0xc2,0xdc,0xd2}},
17106                 NDR_DRSUAPI_VERSION
17107         },
17108         .helpstring     = NDR_DRSUAPI_HELPSTRING,
17109         .num_calls      = 25,
17110         .calls          = drsuapi_calls,
17111         .endpoints      = &drsuapi_endpoints,
17112         .authservices   = &drsuapi_authservices
17113 };
17114