rap: add rap_NetPrintQGetInfo to IDL.
[samba.git] / librpc / gen_ndr / ndr_drsuapi.c
1 /* parser auto-generated by pidl */
2
3 #include "includes.h"
4 #include "../librpc/gen_ndr/ndr_drsuapi.h"
5
6 #include "librpc/gen_ndr/ndr_security.h"
7 #include "librpc/gen_ndr/ndr_misc.h"
8 #include "librpc/gen_ndr/ndr_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 static enum ndr_err_code ndr_push_drsuapi_SupportedExtensions(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 static enum ndr_err_code ndr_pull_drsuapi_SupportedExtensions(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_SupportedExtensions(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_SUPPORTED_EXTENSION_BASE", DRSUAPI_SUPPORTED_EXTENSION_BASE, r);
90         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_ASYNC_REPLICATION", DRSUAPI_SUPPORTED_EXTENSION_ASYNC_REPLICATION, r);
91         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_REMOVEAPI", DRSUAPI_SUPPORTED_EXTENSION_REMOVEAPI, r);
92         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_MOVEREQ_V2", DRSUAPI_SUPPORTED_EXTENSION_MOVEREQ_V2, r);
93         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_GETCHG_COMPRESS", DRSUAPI_SUPPORTED_EXTENSION_GETCHG_COMPRESS, r);
94         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V1", DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V1, r);
95         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_RESTORE_USN_OPTIMIZATION", DRSUAPI_SUPPORTED_EXTENSION_RESTORE_USN_OPTIMIZATION, r);
96         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY", DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY, r);
97         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_KCC_EXECUTE", DRSUAPI_SUPPORTED_EXTENSION_KCC_EXECUTE, r);
98         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_V2", DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_V2, r);
99         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_LINKED_VALUE_REPLICATION", DRSUAPI_SUPPORTED_EXTENSION_LINKED_VALUE_REPLICATION, r);
100         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V2", DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V2, r);
101         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);
102         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_CRYPTO_BIND", DRSUAPI_SUPPORTED_EXTENSION_CRYPTO_BIND, r);
103         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_GET_REPL_INFO", DRSUAPI_SUPPORTED_EXTENSION_GET_REPL_INFO, r);
104         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_STRONG_ENCRYPTION", DRSUAPI_SUPPORTED_EXTENSION_STRONG_ENCRYPTION, r);
105         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V01", DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V01, r);
106         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_TRANSITIVE_MEMBERSHIP", DRSUAPI_SUPPORTED_EXTENSION_TRANSITIVE_MEMBERSHIP, r);
107         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_ADD_SID_HISTORY", DRSUAPI_SUPPORTED_EXTENSION_ADD_SID_HISTORY, r);
108         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_POST_BETA3", DRSUAPI_SUPPORTED_EXTENSION_POST_BETA3, r);
109         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V5", DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V5, r);
110         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_GET_MEMBERSHIPS2", DRSUAPI_SUPPORTED_EXTENSION_GET_MEMBERSHIPS2, r);
111         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V6", DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V6, r);
112         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_NONDOMAIN_NCS", DRSUAPI_SUPPORTED_EXTENSION_NONDOMAIN_NCS, r);
113         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V8", DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V8, r);
114         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V5", DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V5, r);
115         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V6", DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V6, r);
116         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_ADDENTRYREPLY_V3", DRSUAPI_SUPPORTED_EXTENSION_ADDENTRYREPLY_V3, r);
117         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V7", DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V7, r);
118         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_VERIFY_OBJECT", DRSUAPI_SUPPORTED_EXTENSION_VERIFY_OBJECT, r);
119         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_XPRESS_COMPRESS", DRSUAPI_SUPPORTED_EXTENSION_XPRESS_COMPRESS, r);
120         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V10", DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V10, r);
121         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART2", DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART2, r);
122         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART3", DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART3, r);
123         ndr->depth--;
124 }
125
126 static enum ndr_err_code ndr_push_drsuapi_SupportedExtensionsExt(struct ndr_push *ndr, int ndr_flags, uint32_t r)
127 {
128         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
129         return NDR_ERR_SUCCESS;
130 }
131
132 static enum ndr_err_code ndr_pull_drsuapi_SupportedExtensionsExt(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
133 {
134         uint32_t v;
135         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
136         *r = v;
137         return NDR_ERR_SUCCESS;
138 }
139
140 _PUBLIC_ void ndr_print_drsuapi_SupportedExtensionsExt(struct ndr_print *ndr, const char *name, uint32_t r)
141 {
142         ndr_print_uint32(ndr, name, r);
143         ndr->depth++;
144         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_ADAM", DRSUAPI_SUPPORTED_EXTENSION_ADAM, r);
145         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_LH_BETA2", DRSUAPI_SUPPORTED_EXTENSION_LH_BETA2, r);
146         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_RECYCLE_BIN", DRSUAPI_SUPPORTED_EXTENSION_RECYCLE_BIN, r);
147         ndr->depth--;
148 }
149
150 static enum ndr_err_code ndr_push_drsuapi_DsBindInfo24(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsBindInfo24 *r)
151 {
152         if (ndr_flags & NDR_SCALARS) {
153                 NDR_CHECK(ndr_push_align(ndr, 4));
154                 NDR_CHECK(ndr_push_drsuapi_SupportedExtensions(ndr, NDR_SCALARS, r->supported_extensions));
155                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->site_guid));
156                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pid));
157                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
158         }
159         if (ndr_flags & NDR_BUFFERS) {
160         }
161         return NDR_ERR_SUCCESS;
162 }
163
164 static enum ndr_err_code ndr_pull_drsuapi_DsBindInfo24(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsBindInfo24 *r)
165 {
166         if (ndr_flags & NDR_SCALARS) {
167                 NDR_CHECK(ndr_pull_align(ndr, 4));
168                 NDR_CHECK(ndr_pull_drsuapi_SupportedExtensions(ndr, NDR_SCALARS, &r->supported_extensions));
169                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->site_guid));
170                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pid));
171                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
172         }
173         if (ndr_flags & NDR_BUFFERS) {
174         }
175         return NDR_ERR_SUCCESS;
176 }
177
178 _PUBLIC_ void ndr_print_drsuapi_DsBindInfo24(struct ndr_print *ndr, const char *name, const struct drsuapi_DsBindInfo24 *r)
179 {
180         ndr_print_struct(ndr, name, "drsuapi_DsBindInfo24");
181         ndr->depth++;
182         ndr_print_drsuapi_SupportedExtensions(ndr, "supported_extensions", r->supported_extensions);
183         ndr_print_GUID(ndr, "site_guid", &r->site_guid);
184         ndr_print_uint32(ndr, "pid", r->pid);
185         ndr->depth--;
186 }
187
188 static enum ndr_err_code ndr_push_drsuapi_DsBindInfo28(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsBindInfo28 *r)
189 {
190         if (ndr_flags & NDR_SCALARS) {
191                 NDR_CHECK(ndr_push_align(ndr, 4));
192                 NDR_CHECK(ndr_push_drsuapi_SupportedExtensions(ndr, NDR_SCALARS, r->supported_extensions));
193                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->site_guid));
194                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pid));
195                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->repl_epoch));
196                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
197         }
198         if (ndr_flags & NDR_BUFFERS) {
199         }
200         return NDR_ERR_SUCCESS;
201 }
202
203 static enum ndr_err_code ndr_pull_drsuapi_DsBindInfo28(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsBindInfo28 *r)
204 {
205         if (ndr_flags & NDR_SCALARS) {
206                 NDR_CHECK(ndr_pull_align(ndr, 4));
207                 NDR_CHECK(ndr_pull_drsuapi_SupportedExtensions(ndr, NDR_SCALARS, &r->supported_extensions));
208                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->site_guid));
209                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pid));
210                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->repl_epoch));
211                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
212         }
213         if (ndr_flags & NDR_BUFFERS) {
214         }
215         return NDR_ERR_SUCCESS;
216 }
217
218 _PUBLIC_ void ndr_print_drsuapi_DsBindInfo28(struct ndr_print *ndr, const char *name, const struct drsuapi_DsBindInfo28 *r)
219 {
220         ndr_print_struct(ndr, name, "drsuapi_DsBindInfo28");
221         ndr->depth++;
222         ndr_print_drsuapi_SupportedExtensions(ndr, "supported_extensions", r->supported_extensions);
223         ndr_print_GUID(ndr, "site_guid", &r->site_guid);
224         ndr_print_uint32(ndr, "pid", r->pid);
225         ndr_print_uint32(ndr, "repl_epoch", r->repl_epoch);
226         ndr->depth--;
227 }
228
229 static enum ndr_err_code ndr_push_drsuapi_DsBindInfo48(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsBindInfo48 *r)
230 {
231         if (ndr_flags & NDR_SCALARS) {
232                 NDR_CHECK(ndr_push_align(ndr, 4));
233                 NDR_CHECK(ndr_push_drsuapi_SupportedExtensions(ndr, NDR_SCALARS, r->supported_extensions));
234                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->site_guid));
235                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pid));
236                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->repl_epoch));
237                 NDR_CHECK(ndr_push_drsuapi_SupportedExtensionsExt(ndr, NDR_SCALARS, r->supported_extensions_ext));
238                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->config_dn_guid));
239                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
240         }
241         if (ndr_flags & NDR_BUFFERS) {
242         }
243         return NDR_ERR_SUCCESS;
244 }
245
246 static enum ndr_err_code ndr_pull_drsuapi_DsBindInfo48(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsBindInfo48 *r)
247 {
248         if (ndr_flags & NDR_SCALARS) {
249                 NDR_CHECK(ndr_pull_align(ndr, 4));
250                 NDR_CHECK(ndr_pull_drsuapi_SupportedExtensions(ndr, NDR_SCALARS, &r->supported_extensions));
251                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->site_guid));
252                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pid));
253                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->repl_epoch));
254                 NDR_CHECK(ndr_pull_drsuapi_SupportedExtensionsExt(ndr, NDR_SCALARS, &r->supported_extensions_ext));
255                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->config_dn_guid));
256                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
257         }
258         if (ndr_flags & NDR_BUFFERS) {
259         }
260         return NDR_ERR_SUCCESS;
261 }
262
263 _PUBLIC_ void ndr_print_drsuapi_DsBindInfo48(struct ndr_print *ndr, const char *name, const struct drsuapi_DsBindInfo48 *r)
264 {
265         ndr_print_struct(ndr, name, "drsuapi_DsBindInfo48");
266         ndr->depth++;
267         ndr_print_drsuapi_SupportedExtensions(ndr, "supported_extensions", r->supported_extensions);
268         ndr_print_GUID(ndr, "site_guid", &r->site_guid);
269         ndr_print_uint32(ndr, "pid", r->pid);
270         ndr_print_uint32(ndr, "repl_epoch", r->repl_epoch);
271         ndr_print_drsuapi_SupportedExtensionsExt(ndr, "supported_extensions_ext", r->supported_extensions_ext);
272         ndr_print_GUID(ndr, "config_dn_guid", &r->config_dn_guid);
273         ndr->depth--;
274 }
275
276 static enum ndr_err_code ndr_push_drsuapi_DsBindInfoFallBack(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsBindInfoFallBack *r)
277 {
278         if (ndr_flags & NDR_SCALARS) {
279                 NDR_CHECK(ndr_push_align(ndr, 4));
280                 {
281                         uint32_t _flags_save_DATA_BLOB = ndr->flags;
282                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
283                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->info));
284                         ndr->flags = _flags_save_DATA_BLOB;
285                 }
286                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
287         }
288         if (ndr_flags & NDR_BUFFERS) {
289         }
290         return NDR_ERR_SUCCESS;
291 }
292
293 static enum ndr_err_code ndr_pull_drsuapi_DsBindInfoFallBack(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsBindInfoFallBack *r)
294 {
295         if (ndr_flags & NDR_SCALARS) {
296                 NDR_CHECK(ndr_pull_align(ndr, 4));
297                 {
298                         uint32_t _flags_save_DATA_BLOB = ndr->flags;
299                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
300                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->info));
301                         ndr->flags = _flags_save_DATA_BLOB;
302                 }
303                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
304         }
305         if (ndr_flags & NDR_BUFFERS) {
306         }
307         return NDR_ERR_SUCCESS;
308 }
309
310 _PUBLIC_ void ndr_print_drsuapi_DsBindInfoFallBack(struct ndr_print *ndr, const char *name, const struct drsuapi_DsBindInfoFallBack *r)
311 {
312         ndr_print_struct(ndr, name, "drsuapi_DsBindInfoFallBack");
313         ndr->depth++;
314         ndr_print_DATA_BLOB(ndr, "info", r->info);
315         ndr->depth--;
316 }
317
318 static enum ndr_err_code ndr_push_drsuapi_DsBindInfo(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsBindInfo *r)
319 {
320         if (ndr_flags & NDR_SCALARS) {
321                 int level = ndr_push_get_switch_value(ndr, r);
322                 NDR_CHECK(ndr_push_union_align(ndr, 1));
323                 switch (level) {
324                         case 24: {
325                                 {
326                                         struct ndr_push *_ndr_info24;
327                                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info24, 4, -1));
328                                         NDR_CHECK(ndr_push_drsuapi_DsBindInfo24(_ndr_info24, NDR_SCALARS, &r->info24));
329                                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info24, 4, -1));
330                                 }
331                         break; }
332
333                         case 28: {
334                                 {
335                                         struct ndr_push *_ndr_info28;
336                                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info28, 4, -1));
337                                         NDR_CHECK(ndr_push_drsuapi_DsBindInfo28(_ndr_info28, NDR_SCALARS, &r->info28));
338                                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info28, 4, -1));
339                                 }
340                         break; }
341
342                         case 48: {
343                                 {
344                                         struct ndr_push *_ndr_info48;
345                                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info48, 4, -1));
346                                         NDR_CHECK(ndr_push_drsuapi_DsBindInfo48(_ndr_info48, NDR_SCALARS, &r->info48));
347                                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info48, 4, -1));
348                                 }
349                         break; }
350
351                         default: {
352                                 {
353                                         struct ndr_push *_ndr_FallBack;
354                                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_FallBack, 4, -1));
355                                         NDR_CHECK(ndr_push_drsuapi_DsBindInfoFallBack(_ndr_FallBack, NDR_SCALARS, &r->FallBack));
356                                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_FallBack, 4, -1));
357                                 }
358                         break; }
359
360                 }
361         }
362         if (ndr_flags & NDR_BUFFERS) {
363                 int level = ndr_push_get_switch_value(ndr, r);
364                 switch (level) {
365                         case 24:
366                         break;
367
368                         case 28:
369                         break;
370
371                         case 48:
372                         break;
373
374                         default:
375                         break;
376
377                 }
378         }
379         return NDR_ERR_SUCCESS;
380 }
381
382 static enum ndr_err_code ndr_pull_drsuapi_DsBindInfo(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsBindInfo *r)
383 {
384         int level;
385         level = ndr_pull_get_switch_value(ndr, r);
386         if (ndr_flags & NDR_SCALARS) {
387                 NDR_CHECK(ndr_pull_union_align(ndr, 1));
388                 switch (level) {
389                         case 24: {
390                                 {
391                                         struct ndr_pull *_ndr_info24;
392                                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info24, 4, -1));
393                                         NDR_CHECK(ndr_pull_drsuapi_DsBindInfo24(_ndr_info24, NDR_SCALARS, &r->info24));
394                                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info24, 4, -1));
395                                 }
396                         break; }
397
398                         case 28: {
399                                 {
400                                         struct ndr_pull *_ndr_info28;
401                                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info28, 4, -1));
402                                         NDR_CHECK(ndr_pull_drsuapi_DsBindInfo28(_ndr_info28, NDR_SCALARS, &r->info28));
403                                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info28, 4, -1));
404                                 }
405                         break; }
406
407                         case 48: {
408                                 {
409                                         struct ndr_pull *_ndr_info48;
410                                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info48, 4, -1));
411                                         NDR_CHECK(ndr_pull_drsuapi_DsBindInfo48(_ndr_info48, NDR_SCALARS, &r->info48));
412                                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info48, 4, -1));
413                                 }
414                         break; }
415
416                         default: {
417                                 {
418                                         struct ndr_pull *_ndr_FallBack;
419                                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_FallBack, 4, -1));
420                                         NDR_CHECK(ndr_pull_drsuapi_DsBindInfoFallBack(_ndr_FallBack, NDR_SCALARS, &r->FallBack));
421                                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_FallBack, 4, -1));
422                                 }
423                         break; }
424
425                 }
426         }
427         if (ndr_flags & NDR_BUFFERS) {
428                 switch (level) {
429                         case 24:
430                         break;
431
432                         case 28:
433                         break;
434
435                         case 48:
436                         break;
437
438                         default:
439                         break;
440
441                 }
442         }
443         return NDR_ERR_SUCCESS;
444 }
445
446 _PUBLIC_ void ndr_print_drsuapi_DsBindInfo(struct ndr_print *ndr, const char *name, const union drsuapi_DsBindInfo *r)
447 {
448         int level;
449         level = ndr_print_get_switch_value(ndr, r);
450         ndr_print_union(ndr, name, level, "drsuapi_DsBindInfo");
451         switch (level) {
452                 case 24:
453                         ndr_print_drsuapi_DsBindInfo24(ndr, "info24", &r->info24);
454                 break;
455
456                 case 28:
457                         ndr_print_drsuapi_DsBindInfo28(ndr, "info28", &r->info28);
458                 break;
459
460                 case 48:
461                         ndr_print_drsuapi_DsBindInfo48(ndr, "info48", &r->info48);
462                 break;
463
464                 default:
465                         ndr_print_drsuapi_DsBindInfoFallBack(ndr, "FallBack", &r->FallBack);
466                 break;
467
468         }
469 }
470
471 static enum ndr_err_code ndr_push_drsuapi_DsBindInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsBindInfoCtr *r)
472 {
473         if (ndr_flags & NDR_SCALARS) {
474                 NDR_CHECK(ndr_push_align(ndr, 4));
475                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
476                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->length));
477                 NDR_CHECK(ndr_push_drsuapi_DsBindInfo(ndr, NDR_SCALARS, &r->info));
478                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
479         }
480         if (ndr_flags & NDR_BUFFERS) {
481         }
482         return NDR_ERR_SUCCESS;
483 }
484
485 static enum ndr_err_code ndr_pull_drsuapi_DsBindInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsBindInfoCtr *r)
486 {
487         if (ndr_flags & NDR_SCALARS) {
488                 NDR_CHECK(ndr_pull_align(ndr, 4));
489                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
490                 if (r->length < 1 || r->length > 10000) {
491                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
492                 }
493                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->length));
494                 NDR_CHECK(ndr_pull_drsuapi_DsBindInfo(ndr, NDR_SCALARS, &r->info));
495                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
496         }
497         if (ndr_flags & NDR_BUFFERS) {
498         }
499         return NDR_ERR_SUCCESS;
500 }
501
502 _PUBLIC_ void ndr_print_drsuapi_DsBindInfoCtr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsBindInfoCtr *r)
503 {
504         ndr_print_struct(ndr, name, "drsuapi_DsBindInfoCtr");
505         ndr->depth++;
506         ndr_print_uint32(ndr, "length", r->length);
507         ndr_print_set_switch_value(ndr, &r->info, r->length);
508         ndr_print_drsuapi_DsBindInfo(ndr, "info", &r->info);
509         ndr->depth--;
510 }
511
512 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaObjectIdentifier(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaObjectIdentifier *r)
513 {
514         if (ndr_flags & NDR_SCALARS) {
515                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, strlen_m(r->dn) + 1));
516                 NDR_CHECK(ndr_push_align(ndr, 4));
517                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_drsuapi_DsReplicaObjectIdentifier(r, ndr->iconv_convenience, ndr->flags) - 4));
518                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_dom_sid28(&r->sid, ndr->flags)));
519                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
520                 NDR_CHECK(ndr_push_dom_sid28(ndr, NDR_SCALARS, &r->sid));
521                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, strlen_m(r->dn)));
522                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dn, strlen_m(r->dn) + 1, sizeof(uint16_t), CH_UTF16));
523                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
524         }
525         if (ndr_flags & NDR_BUFFERS) {
526                 NDR_CHECK(ndr_push_dom_sid28(ndr, NDR_BUFFERS, &r->sid));
527         }
528         return NDR_ERR_SUCCESS;
529 }
530
531 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaObjectIdentifier(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaObjectIdentifier *r)
532 {
533         if (ndr_flags & NDR_SCALARS) {
534                 NDR_CHECK(ndr_pull_array_size(ndr, &r->dn));
535                 NDR_CHECK(ndr_pull_align(ndr, 4));
536                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size));
537                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size_sid));
538                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
539                 NDR_CHECK(ndr_pull_dom_sid28(ndr, NDR_SCALARS, &r->sid));
540                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size_dn));
541                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dn, ndr_get_array_size(ndr, &r->dn), sizeof(uint16_t), CH_UTF16));
542                 if (r->dn) {
543                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->dn, r->__ndr_size_dn + 1));
544                 }
545                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
546         }
547         if (ndr_flags & NDR_BUFFERS) {
548                 NDR_CHECK(ndr_pull_dom_sid28(ndr, NDR_BUFFERS, &r->sid));
549         }
550         return NDR_ERR_SUCCESS;
551 }
552
553 _PUBLIC_ void ndr_print_drsuapi_DsReplicaObjectIdentifier(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaObjectIdentifier *r)
554 {
555         ndr_print_struct(ndr, name, "drsuapi_DsReplicaObjectIdentifier");
556         ndr->depth++;
557         ndr_print_uint32(ndr, "__ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_drsuapi_DsReplicaObjectIdentifier(r, ndr->iconv_convenience, ndr->flags) - 4:r->__ndr_size);
558         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);
559         ndr_print_GUID(ndr, "guid", &r->guid);
560         ndr_print_dom_sid28(ndr, "sid", &r->sid);
561         ndr_print_uint32(ndr, "__ndr_size_dn", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?strlen_m(r->dn):r->__ndr_size_dn);
562         ndr_print_string(ndr, "dn", r->dn);
563         ndr->depth--;
564 }
565
566 _PUBLIC_ size_t ndr_size_drsuapi_DsReplicaObjectIdentifier(const struct drsuapi_DsReplicaObjectIdentifier *r, struct smb_iconv_convenience *ic, int flags)
567 {
568         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_drsuapi_DsReplicaObjectIdentifier, ic);
569 }
570
571 static enum ndr_err_code ndr_push_drsuapi_DsReplicaSyncRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaSyncRequest1 *r)
572 {
573         if (ndr_flags & NDR_SCALARS) {
574                 NDR_CHECK(ndr_push_align(ndr, 5));
575                 if (r->naming_context == NULL) {
576                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
577                 }
578                 NDR_CHECK(ndr_push_ref_ptr(ndr));
579                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_guid));
580                 {
581                         uint32_t _flags_save_string = ndr->flags;
582                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
583                         NDR_CHECK(ndr_push_unique_ptr(ndr, r->source_dsa_dns));
584                         ndr->flags = _flags_save_string;
585                 }
586                 NDR_CHECK(ndr_push_drsuapi_DrsOptions(ndr, NDR_SCALARS, r->options));
587                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
588         }
589         if (ndr_flags & NDR_BUFFERS) {
590                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
591                 {
592                         uint32_t _flags_save_string = ndr->flags;
593                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
594                         if (r->source_dsa_dns) {
595                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->source_dsa_dns));
596                         }
597                         ndr->flags = _flags_save_string;
598                 }
599         }
600         return NDR_ERR_SUCCESS;
601 }
602
603 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaSyncRequest1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaSyncRequest1 *r)
604 {
605         uint32_t _ptr_naming_context;
606         TALLOC_CTX *_mem_save_naming_context_0;
607         uint32_t _ptr_source_dsa_dns;
608         TALLOC_CTX *_mem_save_source_dsa_dns_0;
609         if (ndr_flags & NDR_SCALARS) {
610                 NDR_CHECK(ndr_pull_align(ndr, 5));
611                 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_naming_context));
612                 if (_ptr_naming_context) {
613                         NDR_PULL_ALLOC(ndr, r->naming_context);
614                 } else {
615                         r->naming_context = NULL;
616                 }
617                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_guid));
618                 {
619                         uint32_t _flags_save_string = ndr->flags;
620                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
621                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_source_dsa_dns));
622                         if (_ptr_source_dsa_dns) {
623                                 NDR_PULL_ALLOC(ndr, r->source_dsa_dns);
624                         } else {
625                                 r->source_dsa_dns = NULL;
626                         }
627                         ndr->flags = _flags_save_string;
628                 }
629                 NDR_CHECK(ndr_pull_drsuapi_DrsOptions(ndr, NDR_SCALARS, &r->options));
630                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
631         }
632         if (ndr_flags & NDR_BUFFERS) {
633                 _mem_save_naming_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
634                 NDR_PULL_SET_MEM_CTX(ndr, r->naming_context, 0);
635                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
636                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_naming_context_0, 0);
637                 {
638                         uint32_t _flags_save_string = ndr->flags;
639                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
640                         if (r->source_dsa_dns) {
641                                 _mem_save_source_dsa_dns_0 = NDR_PULL_GET_MEM_CTX(ndr);
642                                 NDR_PULL_SET_MEM_CTX(ndr, r->source_dsa_dns, 0);
643                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->source_dsa_dns));
644                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_source_dsa_dns_0, 0);
645                         }
646                         ndr->flags = _flags_save_string;
647                 }
648         }
649         return NDR_ERR_SUCCESS;
650 }
651
652 _PUBLIC_ void ndr_print_drsuapi_DsReplicaSyncRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaSyncRequest1 *r)
653 {
654         ndr_print_struct(ndr, name, "drsuapi_DsReplicaSyncRequest1");
655         ndr->depth++;
656         ndr_print_ptr(ndr, "naming_context", r->naming_context);
657         ndr->depth++;
658         ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "naming_context", r->naming_context);
659         ndr->depth--;
660         ndr_print_GUID(ndr, "source_dsa_guid", &r->source_dsa_guid);
661         ndr_print_ptr(ndr, "source_dsa_dns", r->source_dsa_dns);
662         ndr->depth++;
663         if (r->source_dsa_dns) {
664                 ndr_print_string(ndr, "source_dsa_dns", r->source_dsa_dns);
665         }
666         ndr->depth--;
667         ndr_print_drsuapi_DrsOptions(ndr, "options", r->options);
668         ndr->depth--;
669 }
670
671 static enum ndr_err_code ndr_push_drsuapi_DsReplicaSyncRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsReplicaSyncRequest *r)
672 {
673         if (ndr_flags & NDR_SCALARS) {
674                 int level = ndr_push_get_switch_value(ndr, r);
675                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
676                 NDR_CHECK(ndr_push_union_align(ndr, 5));
677                 switch (level) {
678                         case 1: {
679                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaSyncRequest1(ndr, NDR_SCALARS, &r->req1));
680                         break; }
681
682                         default:
683                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
684                 }
685         }
686         if (ndr_flags & NDR_BUFFERS) {
687                 int level = ndr_push_get_switch_value(ndr, r);
688                 switch (level) {
689                         case 1:
690                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaSyncRequest1(ndr, NDR_BUFFERS, &r->req1));
691                         break;
692
693                         default:
694                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
695                 }
696         }
697         return NDR_ERR_SUCCESS;
698 }
699
700 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaSyncRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsReplicaSyncRequest *r)
701 {
702         int level;
703         uint32_t _level;
704         level = ndr_pull_get_switch_value(ndr, r);
705         if (ndr_flags & NDR_SCALARS) {
706                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
707                 if (_level != level) {
708                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
709                 }
710                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
711                 switch (level) {
712                         case 1: {
713                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaSyncRequest1(ndr, NDR_SCALARS, &r->req1));
714                         break; }
715
716                         default:
717                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
718                 }
719         }
720         if (ndr_flags & NDR_BUFFERS) {
721                 switch (level) {
722                         case 1:
723                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaSyncRequest1(ndr, NDR_BUFFERS, &r->req1));
724                         break;
725
726                         default:
727                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
728                 }
729         }
730         return NDR_ERR_SUCCESS;
731 }
732
733 _PUBLIC_ void ndr_print_drsuapi_DsReplicaSyncRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsReplicaSyncRequest *r)
734 {
735         int level;
736         level = ndr_print_get_switch_value(ndr, r);
737         ndr_print_union(ndr, name, level, "drsuapi_DsReplicaSyncRequest");
738         switch (level) {
739                 case 1:
740                         ndr_print_drsuapi_DsReplicaSyncRequest1(ndr, "req1", &r->req1);
741                 break;
742
743                 default:
744                         ndr_print_bad_level(ndr, name, level);
745         }
746 }
747
748 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaHighWaterMark(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaHighWaterMark *r)
749 {
750         if (ndr_flags & NDR_SCALARS) {
751                 NDR_CHECK(ndr_push_align(ndr, 8));
752                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->tmp_highest_usn));
753                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->reserved_usn));
754                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->highest_usn));
755                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
756         }
757         if (ndr_flags & NDR_BUFFERS) {
758         }
759         return NDR_ERR_SUCCESS;
760 }
761
762 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaHighWaterMark(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaHighWaterMark *r)
763 {
764         if (ndr_flags & NDR_SCALARS) {
765                 NDR_CHECK(ndr_pull_align(ndr, 8));
766                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->tmp_highest_usn));
767                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->reserved_usn));
768                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->highest_usn));
769                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
770         }
771         if (ndr_flags & NDR_BUFFERS) {
772         }
773         return NDR_ERR_SUCCESS;
774 }
775
776 _PUBLIC_ void ndr_print_drsuapi_DsReplicaHighWaterMark(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaHighWaterMark *r)
777 {
778         ndr_print_struct(ndr, name, "drsuapi_DsReplicaHighWaterMark");
779         ndr->depth++;
780         ndr_print_hyper(ndr, "tmp_highest_usn", r->tmp_highest_usn);
781         ndr_print_hyper(ndr, "reserved_usn", r->reserved_usn);
782         ndr_print_hyper(ndr, "highest_usn", r->highest_usn);
783         ndr->depth--;
784 }
785
786 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaCursor(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaCursor *r)
787 {
788         if (ndr_flags & NDR_SCALARS) {
789                 NDR_CHECK(ndr_push_align(ndr, 8));
790                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
791                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->highest_usn));
792                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
793         }
794         if (ndr_flags & NDR_BUFFERS) {
795         }
796         return NDR_ERR_SUCCESS;
797 }
798
799 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaCursor(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaCursor *r)
800 {
801         if (ndr_flags & NDR_SCALARS) {
802                 NDR_CHECK(ndr_pull_align(ndr, 8));
803                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
804                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->highest_usn));
805                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
806         }
807         if (ndr_flags & NDR_BUFFERS) {
808         }
809         return NDR_ERR_SUCCESS;
810 }
811
812 _PUBLIC_ void ndr_print_drsuapi_DsReplicaCursor(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaCursor *r)
813 {
814         ndr_print_struct(ndr, name, "drsuapi_DsReplicaCursor");
815         ndr->depth++;
816         ndr_print_GUID(ndr, "source_dsa_invocation_id", &r->source_dsa_invocation_id);
817         ndr_print_hyper(ndr, "highest_usn", r->highest_usn);
818         ndr->depth--;
819 }
820
821 static enum ndr_err_code ndr_push_drsuapi_DsReplicaCursorCtrEx(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaCursorCtrEx *r)
822 {
823         uint32_t cntr_cursors_0;
824         if (ndr_flags & NDR_SCALARS) {
825                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
826                 NDR_CHECK(ndr_push_align(ndr, 8));
827                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 1));
828                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
829                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
830                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
831                 for (cntr_cursors_0 = 0; cntr_cursors_0 < r->count; cntr_cursors_0++) {
832                         NDR_CHECK(ndr_push_drsuapi_DsReplicaCursor(ndr, NDR_SCALARS, &r->cursors[cntr_cursors_0]));
833                 }
834                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
835         }
836         if (ndr_flags & NDR_BUFFERS) {
837         }
838         return NDR_ERR_SUCCESS;
839 }
840
841 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaCursorCtrEx(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaCursorCtrEx *r)
842 {
843         uint32_t cntr_cursors_0;
844         TALLOC_CTX *_mem_save_cursors_0;
845         if (ndr_flags & NDR_SCALARS) {
846                 NDR_CHECK(ndr_pull_array_size(ndr, &r->cursors));
847                 NDR_CHECK(ndr_pull_align(ndr, 8));
848                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
849                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved1));
850                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
851                 if (r->count > 0x100000) {
852                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
853                 }
854                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
855                 NDR_PULL_ALLOC_N(ndr, r->cursors, ndr_get_array_size(ndr, &r->cursors));
856                 _mem_save_cursors_0 = NDR_PULL_GET_MEM_CTX(ndr);
857                 NDR_PULL_SET_MEM_CTX(ndr, r->cursors, 0);
858                 for (cntr_cursors_0 = 0; cntr_cursors_0 < r->count; cntr_cursors_0++) {
859                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursor(ndr, NDR_SCALARS, &r->cursors[cntr_cursors_0]));
860                 }
861                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_cursors_0, 0);
862                 if (r->cursors) {
863                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->cursors, r->count));
864                 }
865                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
866         }
867         if (ndr_flags & NDR_BUFFERS) {
868         }
869         return NDR_ERR_SUCCESS;
870 }
871
872 _PUBLIC_ void ndr_print_drsuapi_DsReplicaCursorCtrEx(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaCursorCtrEx *r)
873 {
874         uint32_t cntr_cursors_0;
875         ndr_print_struct(ndr, name, "drsuapi_DsReplicaCursorCtrEx");
876         ndr->depth++;
877         ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?1:r->version);
878         ndr_print_uint32(ndr, "reserved1", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->reserved1);
879         ndr_print_uint32(ndr, "count", r->count);
880         ndr_print_uint32(ndr, "reserved2", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->reserved2);
881         ndr->print(ndr, "%s: ARRAY(%d)", "cursors", (int)r->count);
882         ndr->depth++;
883         for (cntr_cursors_0=0;cntr_cursors_0<r->count;cntr_cursors_0++) {
884                 char *idx_0=NULL;
885                 if (asprintf(&idx_0, "[%d]", cntr_cursors_0) != -1) {
886                         ndr_print_drsuapi_DsReplicaCursor(ndr, "cursors", &r->cursors[cntr_cursors_0]);
887                         free(idx_0);
888                 }
889         }
890         ndr->depth--;
891         ndr->depth--;
892 }
893
894 static enum ndr_err_code ndr_push_drsuapi_DsExtendedOperation(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsExtendedOperation r)
895 {
896         {
897                 uint32_t _flags_save_ENUM = ndr->flags;
898                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
899                 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
900                 ndr->flags = _flags_save_ENUM;
901         }
902         return NDR_ERR_SUCCESS;
903 }
904
905 static enum ndr_err_code ndr_pull_drsuapi_DsExtendedOperation(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsExtendedOperation *r)
906 {
907         uint32_t v;
908         {
909                 uint32_t _flags_save_ENUM = ndr->flags;
910                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
911                 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
912                 *r = v;
913                 ndr->flags = _flags_save_ENUM;
914         }
915         return NDR_ERR_SUCCESS;
916 }
917
918 _PUBLIC_ void ndr_print_drsuapi_DsExtendedOperation(struct ndr_print *ndr, const char *name, enum drsuapi_DsExtendedOperation r)
919 {
920         const char *val = NULL;
921
922         {
923                 uint32_t _flags_save_ENUM = ndr->flags;
924                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
925                 switch (r) {
926                         case DRSUAPI_EXOP_NONE: val = "DRSUAPI_EXOP_NONE"; break;
927                         case DRSUAPI_EXOP_FSMO_REQ_ROLE: val = "DRSUAPI_EXOP_FSMO_REQ_ROLE"; break;
928                         case DRSUAPI_EXOP_FSMO_RID_ALLOC: val = "DRSUAPI_EXOP_FSMO_RID_ALLOC"; break;
929                         case DRSUAPI_EXOP_FSMO_RID_REQ_ROLE: val = "DRSUAPI_EXOP_FSMO_RID_REQ_ROLE"; break;
930                         case DRSUAPI_EXOP_FSMO_REQ_PDC: val = "DRSUAPI_EXOP_FSMO_REQ_PDC"; break;
931                         case DRSUAPI_EXOP_FSMO_ABANDON_ROLE: val = "DRSUAPI_EXOP_FSMO_ABANDON_ROLE"; break;
932                         case DRSUAPI_EXOP_REPL_OBJ: val = "DRSUAPI_EXOP_REPL_OBJ"; break;
933                         case DRSUAPI_EXOP_REPL_SECRET: val = "DRSUAPI_EXOP_REPL_SECRET"; break;
934                 }
935                 ndr_print_enum(ndr, name, "ENUM", val, r);
936                 ndr->flags = _flags_save_ENUM;
937         }
938 }
939
940 static enum ndr_err_code ndr_push_drsuapi_DsExtendedError(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsExtendedError r)
941 {
942         {
943                 uint32_t _flags_save_ENUM = ndr->flags;
944                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
945                 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
946                 ndr->flags = _flags_save_ENUM;
947         }
948         return NDR_ERR_SUCCESS;
949 }
950
951 static enum ndr_err_code ndr_pull_drsuapi_DsExtendedError(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsExtendedError *r)
952 {
953         uint32_t v;
954         {
955                 uint32_t _flags_save_ENUM = ndr->flags;
956                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
957                 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
958                 *r = v;
959                 ndr->flags = _flags_save_ENUM;
960         }
961         return NDR_ERR_SUCCESS;
962 }
963
964 _PUBLIC_ void ndr_print_drsuapi_DsExtendedError(struct ndr_print *ndr, const char *name, enum drsuapi_DsExtendedError r)
965 {
966         const char *val = NULL;
967
968         {
969                 uint32_t _flags_save_ENUM = ndr->flags;
970                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
971                 switch (r) {
972                         case DRSUAPI_EXOP_ERR_NONE: val = "DRSUAPI_EXOP_ERR_NONE"; break;
973                         case DRSUAPI_EXOP_ERR_SUCCESS: val = "DRSUAPI_EXOP_ERR_SUCCESS"; break;
974                         case DRSUAPI_EXOP_ERR_UNKNOWN_OP: val = "DRSUAPI_EXOP_ERR_UNKNOWN_OP"; break;
975                         case DRSUAPI_EXOP_ERR_FSMO_NOT_OWNER: val = "DRSUAPI_EXOP_ERR_FSMO_NOT_OWNER"; break;
976                         case DRSUAPI_EXOP_ERR_UPDATE_ERR: val = "DRSUAPI_EXOP_ERR_UPDATE_ERR"; break;
977                         case DRSUAPI_EXOP_ERR_EXCEPTION: val = "DRSUAPI_EXOP_ERR_EXCEPTION"; break;
978                         case DRSUAPI_EXOP_ERR_UNKNOWN_CALLER: val = "DRSUAPI_EXOP_ERR_UNKNOWN_CALLER"; break;
979                         case DRSUAPI_EXOP_ERR_RID_ALLOC: val = "DRSUAPI_EXOP_ERR_RID_ALLOC"; break;
980                         case DRSUAPI_EXOP_ERR_FSMO_OWNER_DELETED: val = "DRSUAPI_EXOP_ERR_FSMO_OWNER_DELETED"; break;
981                         case DRSUAPI_EXOP_ERR_FMSO_PENDING_OP: val = "DRSUAPI_EXOP_ERR_FMSO_PENDING_OP"; break;
982                         case DRSUAPI_EXOP_ERR_MISMATCH: val = "DRSUAPI_EXOP_ERR_MISMATCH"; break;
983                         case DRSUAPI_EXOP_ERR_COULDNT_CONTACT: val = "DRSUAPI_EXOP_ERR_COULDNT_CONTACT"; break;
984                         case DRSUAPI_EXOP_ERR_FSMO_REFUSING_ROLES: val = "DRSUAPI_EXOP_ERR_FSMO_REFUSING_ROLES"; break;
985                         case DRSUAPI_EXOP_ERR_DIR_ERROR: val = "DRSUAPI_EXOP_ERR_DIR_ERROR"; break;
986                         case DRSUAPI_EXOP_ERR_FSMO_MISSING_SETTINGS: val = "DRSUAPI_EXOP_ERR_FSMO_MISSING_SETTINGS"; break;
987                         case DRSUAPI_EXOP_ERR_ACCESS_DENIED: val = "DRSUAPI_EXOP_ERR_ACCESS_DENIED"; break;
988                         case DRSUAPI_EXOP_ERR_PARAM_ERROR: val = "DRSUAPI_EXOP_ERR_PARAM_ERROR"; break;
989                 }
990                 ndr_print_enum(ndr, name, "ENUM", val, r);
991                 ndr->flags = _flags_save_ENUM;
992         }
993 }
994
995 static enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesRequest5(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetNCChangesRequest5 *r)
996 {
997         if (ndr_flags & NDR_SCALARS) {
998                 NDR_CHECK(ndr_push_align(ndr, 8));
999                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->destination_dsa_guid));
1000                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
1001                 if (r->naming_context == NULL) {
1002                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1003                 }
1004                 NDR_CHECK(ndr_push_ref_ptr(ndr));
1005                 NDR_CHECK(ndr_push_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->highwatermark));
1006                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->uptodateness_vector));
1007                 NDR_CHECK(ndr_push_drsuapi_DrsOptions(ndr, NDR_SCALARS, r->replica_flags));
1008                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_object_count));
1009                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_ndr_size));
1010                 NDR_CHECK(ndr_push_drsuapi_DsExtendedOperation(ndr, NDR_SCALARS, r->extended_op));
1011                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->fsmo_info));
1012                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
1013         }
1014         if (ndr_flags & NDR_BUFFERS) {
1015                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
1016                 if (r->uptodateness_vector) {
1017                         NDR_CHECK(ndr_push_drsuapi_DsReplicaCursorCtrEx(ndr, NDR_SCALARS, r->uptodateness_vector));
1018                 }
1019         }
1020         return NDR_ERR_SUCCESS;
1021 }
1022
1023 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesRequest5(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNCChangesRequest5 *r)
1024 {
1025         uint32_t _ptr_naming_context;
1026         TALLOC_CTX *_mem_save_naming_context_0;
1027         uint32_t _ptr_uptodateness_vector;
1028         TALLOC_CTX *_mem_save_uptodateness_vector_0;
1029         if (ndr_flags & NDR_SCALARS) {
1030                 NDR_CHECK(ndr_pull_align(ndr, 8));
1031                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->destination_dsa_guid));
1032                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
1033                 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_naming_context));
1034                 if (_ptr_naming_context) {
1035                         NDR_PULL_ALLOC(ndr, r->naming_context);
1036                 } else {
1037                         r->naming_context = NULL;
1038                 }
1039                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->highwatermark));
1040                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_uptodateness_vector));
1041                 if (_ptr_uptodateness_vector) {
1042                         NDR_PULL_ALLOC(ndr, r->uptodateness_vector);
1043                 } else {
1044                         r->uptodateness_vector = NULL;
1045                 }
1046                 NDR_CHECK(ndr_pull_drsuapi_DrsOptions(ndr, NDR_SCALARS, &r->replica_flags));
1047                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_object_count));
1048                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_ndr_size));
1049                 NDR_CHECK(ndr_pull_drsuapi_DsExtendedOperation(ndr, NDR_SCALARS, &r->extended_op));
1050                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->fsmo_info));
1051                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
1052         }
1053         if (ndr_flags & NDR_BUFFERS) {
1054                 _mem_save_naming_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
1055                 NDR_PULL_SET_MEM_CTX(ndr, r->naming_context, 0);
1056                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
1057                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_naming_context_0, 0);
1058                 if (r->uptodateness_vector) {
1059                         _mem_save_uptodateness_vector_0 = NDR_PULL_GET_MEM_CTX(ndr);
1060                         NDR_PULL_SET_MEM_CTX(ndr, r->uptodateness_vector, 0);
1061                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursorCtrEx(ndr, NDR_SCALARS, r->uptodateness_vector));
1062                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_uptodateness_vector_0, 0);
1063                 }
1064         }
1065         return NDR_ERR_SUCCESS;
1066 }
1067
1068 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesRequest5(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesRequest5 *r)
1069 {
1070         ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesRequest5");
1071         ndr->depth++;
1072         ndr_print_GUID(ndr, "destination_dsa_guid", &r->destination_dsa_guid);
1073         ndr_print_GUID(ndr, "source_dsa_invocation_id", &r->source_dsa_invocation_id);
1074         ndr_print_ptr(ndr, "naming_context", r->naming_context);
1075         ndr->depth++;
1076         ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "naming_context", r->naming_context);
1077         ndr->depth--;
1078         ndr_print_drsuapi_DsReplicaHighWaterMark(ndr, "highwatermark", &r->highwatermark);
1079         ndr_print_ptr(ndr, "uptodateness_vector", r->uptodateness_vector);
1080         ndr->depth++;
1081         if (r->uptodateness_vector) {
1082                 ndr_print_drsuapi_DsReplicaCursorCtrEx(ndr, "uptodateness_vector", r->uptodateness_vector);
1083         }
1084         ndr->depth--;
1085         ndr_print_drsuapi_DrsOptions(ndr, "replica_flags", r->replica_flags);
1086         ndr_print_uint32(ndr, "max_object_count", r->max_object_count);
1087         ndr_print_uint32(ndr, "max_ndr_size", r->max_ndr_size);
1088         ndr_print_drsuapi_DsExtendedOperation(ndr, "extended_op", r->extended_op);
1089         ndr_print_hyper(ndr, "fsmo_info", r->fsmo_info);
1090         ndr->depth--;
1091 }
1092
1093 static enum ndr_err_code ndr_push_drsuapi_DsReplicaOID(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaOID *r)
1094 {
1095         if (ndr_flags & NDR_SCALARS) {
1096                 NDR_CHECK(ndr_push_align(ndr, 5));
1097                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
1098                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->binary_oid));
1099                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1100         }
1101         if (ndr_flags & NDR_BUFFERS) {
1102                 if (r->binary_oid) {
1103                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->length));
1104                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->binary_oid, r->length));
1105                 }
1106         }
1107         return NDR_ERR_SUCCESS;
1108 }
1109
1110 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaOID(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaOID *r)
1111 {
1112         uint32_t _ptr_binary_oid;
1113         TALLOC_CTX *_mem_save_binary_oid_0;
1114         if (ndr_flags & NDR_SCALARS) {
1115                 NDR_CHECK(ndr_pull_align(ndr, 5));
1116                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
1117                 if (r->length > 10000) {
1118                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
1119                 }
1120                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_binary_oid));
1121                 if (_ptr_binary_oid) {
1122                         NDR_PULL_ALLOC(ndr, r->binary_oid);
1123                 } else {
1124                         r->binary_oid = NULL;
1125                 }
1126                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1127         }
1128         if (ndr_flags & NDR_BUFFERS) {
1129                 if (r->binary_oid) {
1130                         _mem_save_binary_oid_0 = NDR_PULL_GET_MEM_CTX(ndr);
1131                         NDR_PULL_SET_MEM_CTX(ndr, r->binary_oid, 0);
1132                         NDR_CHECK(ndr_pull_array_size(ndr, &r->binary_oid));
1133                         NDR_PULL_ALLOC_N(ndr, r->binary_oid, ndr_get_array_size(ndr, &r->binary_oid));
1134                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->binary_oid, ndr_get_array_size(ndr, &r->binary_oid)));
1135                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_binary_oid_0, 0);
1136                 }
1137                 if (r->binary_oid) {
1138                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->binary_oid, r->length));
1139                 }
1140         }
1141         return NDR_ERR_SUCCESS;
1142 }
1143
1144 static enum ndr_err_code ndr_push_drsuapi_DsReplicaOIDMapping(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaOIDMapping *r)
1145 {
1146         if (ndr_flags & NDR_SCALARS) {
1147                 NDR_CHECK(ndr_push_align(ndr, 5));
1148                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->id_prefix));
1149                 NDR_CHECK(ndr_push_drsuapi_DsReplicaOID(ndr, NDR_SCALARS, &r->oid));
1150                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1151         }
1152         if (ndr_flags & NDR_BUFFERS) {
1153                 NDR_CHECK(ndr_push_drsuapi_DsReplicaOID(ndr, NDR_BUFFERS, &r->oid));
1154         }
1155         return NDR_ERR_SUCCESS;
1156 }
1157
1158 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaOIDMapping(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaOIDMapping *r)
1159 {
1160         if (ndr_flags & NDR_SCALARS) {
1161                 NDR_CHECK(ndr_pull_align(ndr, 5));
1162                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->id_prefix));
1163                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOID(ndr, NDR_SCALARS, &r->oid));
1164                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1165         }
1166         if (ndr_flags & NDR_BUFFERS) {
1167                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOID(ndr, NDR_BUFFERS, &r->oid));
1168         }
1169         return NDR_ERR_SUCCESS;
1170 }
1171
1172 _PUBLIC_ void ndr_print_drsuapi_DsReplicaOIDMapping(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaOIDMapping *r)
1173 {
1174         ndr_print_struct(ndr, name, "drsuapi_DsReplicaOIDMapping");
1175         ndr->depth++;
1176         ndr_print_uint32(ndr, "id_prefix", r->id_prefix);
1177         ndr_print_drsuapi_DsReplicaOID(ndr, "oid", &r->oid);
1178         ndr->depth--;
1179 }
1180
1181 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaOIDMapping_Ctr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaOIDMapping_Ctr *r)
1182 {
1183         uint32_t cntr_mappings_1;
1184         if (ndr_flags & NDR_SCALARS) {
1185                 NDR_CHECK(ndr_push_align(ndr, 5));
1186                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_mappings));
1187                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->mappings));
1188                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1189         }
1190         if (ndr_flags & NDR_BUFFERS) {
1191                 if (r->mappings) {
1192                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->num_mappings));
1193                         for (cntr_mappings_1 = 0; cntr_mappings_1 < r->num_mappings; cntr_mappings_1++) {
1194                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaOIDMapping(ndr, NDR_SCALARS, &r->mappings[cntr_mappings_1]));
1195                         }
1196                         for (cntr_mappings_1 = 0; cntr_mappings_1 < r->num_mappings; cntr_mappings_1++) {
1197                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaOIDMapping(ndr, NDR_BUFFERS, &r->mappings[cntr_mappings_1]));
1198                         }
1199                 }
1200         }
1201         return NDR_ERR_SUCCESS;
1202 }
1203
1204 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaOIDMapping_Ctr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaOIDMapping_Ctr *r)
1205 {
1206         uint32_t _ptr_mappings;
1207         uint32_t cntr_mappings_1;
1208         TALLOC_CTX *_mem_save_mappings_0;
1209         TALLOC_CTX *_mem_save_mappings_1;
1210         if (ndr_flags & NDR_SCALARS) {
1211                 NDR_CHECK(ndr_pull_align(ndr, 5));
1212                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_mappings));
1213                 if (r->num_mappings > 0x100000) {
1214                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
1215                 }
1216                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mappings));
1217                 if (_ptr_mappings) {
1218                         NDR_PULL_ALLOC(ndr, r->mappings);
1219                 } else {
1220                         r->mappings = NULL;
1221                 }
1222                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1223         }
1224         if (ndr_flags & NDR_BUFFERS) {
1225                 if (r->mappings) {
1226                         _mem_save_mappings_0 = NDR_PULL_GET_MEM_CTX(ndr);
1227                         NDR_PULL_SET_MEM_CTX(ndr, r->mappings, 0);
1228                         NDR_CHECK(ndr_pull_array_size(ndr, &r->mappings));
1229                         NDR_PULL_ALLOC_N(ndr, r->mappings, ndr_get_array_size(ndr, &r->mappings));
1230                         _mem_save_mappings_1 = NDR_PULL_GET_MEM_CTX(ndr);
1231                         NDR_PULL_SET_MEM_CTX(ndr, r->mappings, 0);
1232                         for (cntr_mappings_1 = 0; cntr_mappings_1 < r->num_mappings; cntr_mappings_1++) {
1233                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOIDMapping(ndr, NDR_SCALARS, &r->mappings[cntr_mappings_1]));
1234                         }
1235                         for (cntr_mappings_1 = 0; cntr_mappings_1 < r->num_mappings; cntr_mappings_1++) {
1236                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOIDMapping(ndr, NDR_BUFFERS, &r->mappings[cntr_mappings_1]));
1237                         }
1238                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mappings_1, 0);
1239                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mappings_0, 0);
1240                 }
1241                 if (r->mappings) {
1242                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->mappings, r->num_mappings));
1243                 }
1244         }
1245         return NDR_ERR_SUCCESS;
1246 }
1247
1248 _PUBLIC_ void ndr_print_drsuapi_DsReplicaOIDMapping_Ctr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaOIDMapping_Ctr *r)
1249 {
1250         uint32_t cntr_mappings_1;
1251         ndr_print_struct(ndr, name, "drsuapi_DsReplicaOIDMapping_Ctr");
1252         ndr->depth++;
1253         ndr_print_uint32(ndr, "num_mappings", r->num_mappings);
1254         ndr_print_ptr(ndr, "mappings", r->mappings);
1255         ndr->depth++;
1256         if (r->mappings) {
1257                 ndr->print(ndr, "%s: ARRAY(%d)", "mappings", (int)r->num_mappings);
1258                 ndr->depth++;
1259                 for (cntr_mappings_1=0;cntr_mappings_1<r->num_mappings;cntr_mappings_1++) {
1260                         char *idx_1=NULL;
1261                         if (asprintf(&idx_1, "[%d]", cntr_mappings_1) != -1) {
1262                                 ndr_print_drsuapi_DsReplicaOIDMapping(ndr, "mappings", &r->mappings[cntr_mappings_1]);
1263                                 free(idx_1);
1264                         }
1265                 }
1266                 ndr->depth--;
1267         }
1268         ndr->depth--;
1269         ndr->depth--;
1270 }
1271
1272 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsAttributeId(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsAttributeId r)
1273 {
1274         {
1275                 uint32_t _flags_save_ENUM = ndr->flags;
1276                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1277                 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
1278                 ndr->flags = _flags_save_ENUM;
1279         }
1280         return NDR_ERR_SUCCESS;
1281 }
1282
1283 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsAttributeId(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsAttributeId *r)
1284 {
1285         uint32_t v;
1286         {
1287                 uint32_t _flags_save_ENUM = ndr->flags;
1288                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1289                 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
1290                 *r = v;
1291                 ndr->flags = _flags_save_ENUM;
1292         }
1293         return NDR_ERR_SUCCESS;
1294 }
1295
1296 _PUBLIC_ void ndr_print_drsuapi_DsAttributeId(struct ndr_print *ndr, const char *name, enum drsuapi_DsAttributeId r)
1297 {
1298         const char *val = NULL;
1299
1300         {
1301                 uint32_t _flags_save_ENUM = ndr->flags;
1302                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1303                 switch (r) {
1304                         case DRSUAPI_ATTRIBUTE_objectClass: val = "DRSUAPI_ATTRIBUTE_objectClass"; break;
1305                         case DRSUAPI_ATTRIBUTE_cn: val = "DRSUAPI_ATTRIBUTE_cn"; break;
1306                         case DRSUAPI_ATTRIBUTE_description: val = "DRSUAPI_ATTRIBUTE_description"; break;
1307                         case DRSUAPI_ATTRIBUTE_member: val = "DRSUAPI_ATTRIBUTE_member"; break;
1308                         case DRSUAPI_ATTRIBUTE_instanceType: val = "DRSUAPI_ATTRIBUTE_instanceType"; break;
1309                         case DRSUAPI_ATTRIBUTE_whenCreated: val = "DRSUAPI_ATTRIBUTE_whenCreated"; break;
1310                         case DRSUAPI_ATTRIBUTE_possSuperiors: val = "DRSUAPI_ATTRIBUTE_possSuperiors"; break;
1311                         case DRSUAPI_ATTRIBUTE_hasMasterNCs: val = "DRSUAPI_ATTRIBUTE_hasMasterNCs"; break;
1312                         case DRSUAPI_ATTRIBUTE_subClassOf: val = "DRSUAPI_ATTRIBUTE_subClassOf"; break;
1313                         case DRSUAPI_ATTRIBUTE_governsID: val = "DRSUAPI_ATTRIBUTE_governsID"; break;
1314                         case DRSUAPI_ATTRIBUTE_mustContain: val = "DRSUAPI_ATTRIBUTE_mustContain"; break;
1315                         case DRSUAPI_ATTRIBUTE_mayContain: val = "DRSUAPI_ATTRIBUTE_mayContain"; break;
1316                         case DRSUAPI_ATTRIBUTE_rDNAttId: val = "DRSUAPI_ATTRIBUTE_rDNAttId"; break;
1317                         case DRSUAPI_ATTRIBUTE_attributeID: val = "DRSUAPI_ATTRIBUTE_attributeID"; break;
1318                         case DRSUAPI_ATTRIBUTE_attributeSyntax: val = "DRSUAPI_ATTRIBUTE_attributeSyntax"; break;
1319                         case DRSUAPI_ATTRIBUTE_isSingleValued: val = "DRSUAPI_ATTRIBUTE_isSingleValued"; break;
1320                         case DRSUAPI_ATTRIBUTE_rangeLower: val = "DRSUAPI_ATTRIBUTE_rangeLower"; break;
1321                         case DRSUAPI_ATTRIBUTE_rangeUpper: val = "DRSUAPI_ATTRIBUTE_rangeUpper"; break;
1322                         case DRSUAPI_ATTRIBUTE_dMDLocation: val = "DRSUAPI_ATTRIBUTE_dMDLocation"; break;
1323                         case DRSUAPI_ATTRIBUTE_objectVersion: val = "DRSUAPI_ATTRIBUTE_objectVersion"; break;
1324                         case DRSUAPI_ATTRIBUTE_invocationId: val = "DRSUAPI_ATTRIBUTE_invocationId"; break;
1325                         case DRSUAPI_ATTRIBUTE_showInAdvancedViewOnly: val = "DRSUAPI_ATTRIBUTE_showInAdvancedViewOnly"; break;
1326                         case DRSUAPI_ATTRIBUTE_adminDisplayName: val = "DRSUAPI_ATTRIBUTE_adminDisplayName"; break;
1327                         case DRSUAPI_ATTRIBUTE_adminDescription: val = "DRSUAPI_ATTRIBUTE_adminDescription"; break;
1328                         case DRSUAPI_ATTRIBUTE_oMSyntax: val = "DRSUAPI_ATTRIBUTE_oMSyntax"; break;
1329                         case DRSUAPI_ATTRIBUTE_ntSecurityDescriptor: val = "DRSUAPI_ATTRIBUTE_ntSecurityDescriptor"; break;
1330                         case DRSUAPI_ATTRIBUTE_searchFlags: val = "DRSUAPI_ATTRIBUTE_searchFlags"; break;
1331                         case DRSUAPI_ATTRIBUTE_auxiliaryClass: val = "DRSUAPI_ATTRIBUTE_auxiliaryClass"; break;
1332                         case DRSUAPI_ATTRIBUTE_lDAPDisplayName: val = "DRSUAPI_ATTRIBUTE_lDAPDisplayName"; break;
1333                         case DRSUAPI_ATTRIBUTE_name: val = "DRSUAPI_ATTRIBUTE_name"; break;
1334                         case DRSUAPI_ATTRIBUTE_userAccountControl: val = "DRSUAPI_ATTRIBUTE_userAccountControl"; break;
1335                         case DRSUAPI_ATTRIBUTE_currentValue: val = "DRSUAPI_ATTRIBUTE_currentValue"; break;
1336                         case DRSUAPI_ATTRIBUTE_homeDirectory: val = "DRSUAPI_ATTRIBUTE_homeDirectory"; break;
1337                         case DRSUAPI_ATTRIBUTE_homeDrive: val = "DRSUAPI_ATTRIBUTE_homeDrive"; break;
1338                         case DRSUAPI_ATTRIBUTE_scriptPath: val = "DRSUAPI_ATTRIBUTE_scriptPath"; break;
1339                         case DRSUAPI_ATTRIBUTE_profilePath: val = "DRSUAPI_ATTRIBUTE_profilePath"; break;
1340                         case DRSUAPI_ATTRIBUTE_objectSid: val = "DRSUAPI_ATTRIBUTE_objectSid"; break;
1341                         case DRSUAPI_ATTRIBUTE_schemaIDGUID: val = "DRSUAPI_ATTRIBUTE_schemaIDGUID"; break;
1342                         case DRSUAPI_ATTRIBUTE_dBCSPwd: val = "DRSUAPI_ATTRIBUTE_dBCSPwd"; break;
1343                         case DRSUAPI_ATTRIBUTE_logonHours: val = "DRSUAPI_ATTRIBUTE_logonHours"; break;
1344                         case DRSUAPI_ATTRIBUTE_userWorkstations: val = "DRSUAPI_ATTRIBUTE_userWorkstations"; break;
1345                         case DRSUAPI_ATTRIBUTE_unicodePwd: val = "DRSUAPI_ATTRIBUTE_unicodePwd"; break;
1346                         case DRSUAPI_ATTRIBUTE_ntPwdHistory: val = "DRSUAPI_ATTRIBUTE_ntPwdHistory"; break;
1347                         case DRSUAPI_ATTRIBUTE_priorValue: val = "DRSUAPI_ATTRIBUTE_priorValue"; break;
1348                         case DRSUAPI_ATTRIBUTE_supplementalCredentials: val = "DRSUAPI_ATTRIBUTE_supplementalCredentials"; break;
1349                         case DRSUAPI_ATTRIBUTE_trustAuthIncoming: val = "DRSUAPI_ATTRIBUTE_trustAuthIncoming"; break;
1350                         case DRSUAPI_ATTRIBUTE_trustAuthOutgoing: val = "DRSUAPI_ATTRIBUTE_trustAuthOutgoing"; break;
1351                         case DRSUAPI_ATTRIBUTE_lmPwdHistory: val = "DRSUAPI_ATTRIBUTE_lmPwdHistory"; break;
1352                         case DRSUAPI_ATTRIBUTE_systemPossSuperiors: val = "DRSUAPI_ATTRIBUTE_systemPossSuperiors"; break;
1353                         case DRSUAPI_ATTRIBUTE_systemMayContain: val = "DRSUAPI_ATTRIBUTE_systemMayContain"; break;
1354                         case DRSUAPI_ATTRIBUTE_systemMustContain: val = "DRSUAPI_ATTRIBUTE_systemMustContain"; break;
1355                         case DRSUAPI_ATTRIBUTE_systemAuxiliaryClass: val = "DRSUAPI_ATTRIBUTE_systemAuxiliaryClass"; break;
1356                         case DRSUAPI_ATTRIBUTE_sAMAccountName: val = "DRSUAPI_ATTRIBUTE_sAMAccountName"; break;
1357                         case DRSUAPI_ATTRIBUTE_sAMAccountType: val = "DRSUAPI_ATTRIBUTE_sAMAccountType"; break;
1358                         case DRSUAPI_ATTRIBUTE_options: val = "DRSUAPI_ATTRIBUTE_options"; break;
1359                         case DRSUAPI_ATTRIBUTE_fSMORoleOwner: val = "DRSUAPI_ATTRIBUTE_fSMORoleOwner"; break;
1360                         case DRSUAPI_ATTRIBUTE_systemFlags: val = "DRSUAPI_ATTRIBUTE_systemFlags"; break;
1361                         case DRSUAPI_ATTRIBUTE_serverReference: val = "DRSUAPI_ATTRIBUTE_serverReference"; break;
1362                         case DRSUAPI_ATTRIBUTE_serverReferenceBL: val = "DRSUAPI_ATTRIBUTE_serverReferenceBL"; break;
1363                         case DRSUAPI_ATTRIBUTE_initialAuthIncoming: val = "DRSUAPI_ATTRIBUTE_initialAuthIncoming"; break;
1364                         case DRSUAPI_ATTRIBUTE_initialAuthOutgoing: val = "DRSUAPI_ATTRIBUTE_initialAuthOutgoing"; break;
1365                         case DRSUAPI_ATTRIBUTE_wellKnownObjects: val = "DRSUAPI_ATTRIBUTE_wellKnownObjects"; break;
1366                         case DRSUAPI_ATTRIBUTE_dNSHostName: val = "DRSUAPI_ATTRIBUTE_dNSHostName"; break;
1367                         case DRSUAPI_ATTRIBUTE_isMemberOfPartialAttributeSet: val = "DRSUAPI_ATTRIBUTE_isMemberOfPartialAttributeSet"; break;
1368                         case DRSUAPI_ATTRIBUTE_userPrincipalName: val = "DRSUAPI_ATTRIBUTE_userPrincipalName"; break;
1369                         case DRSUAPI_ATTRIBUTE_groupType: val = "DRSUAPI_ATTRIBUTE_groupType"; break;
1370                         case DRSUAPI_ATTRIBUTE_servicePrincipalName: val = "DRSUAPI_ATTRIBUTE_servicePrincipalName"; break;
1371                         case DRSUAPI_ATTRIBUTE_objectCategory: val = "DRSUAPI_ATTRIBUTE_objectCategory"; break;
1372                         case DRSUAPI_ATTRIBUTE_gPLink: val = "DRSUAPI_ATTRIBUTE_gPLink"; break;
1373                         case DRSUAPI_ATTRIBUTE_transportAddressAttribute: val = "DRSUAPI_ATTRIBUTE_transportAddressAttribute"; break;
1374                         case DRSUAPI_ATTRIBUTE_msDS_Behavior_Version: val = "DRSUAPI_ATTRIBUTE_msDS_Behavior_Version"; break;
1375                         case DRSUAPI_ATTRIBUTE_msDS_KeyVersionNumber: val = "DRSUAPI_ATTRIBUTE_msDS_KeyVersionNumber"; break;
1376                         case DRSUAPI_ATTRIBUTE_msDS_HasDomainNCs: val = "DRSUAPI_ATTRIBUTE_msDS_HasDomainNCs"; break;
1377                         case DRSUAPI_ATTRIBUTE_msDS_hasMasterNCs: val = "DRSUAPI_ATTRIBUTE_msDS_hasMasterNCs"; break;
1378                         case DRSUAPI_ATTRIBUTE_NONE: val = "DRSUAPI_ATTRIBUTE_NONE"; break;
1379                 }
1380                 ndr_print_enum(ndr, name, "ENUM", val, r);
1381                 ndr->flags = _flags_save_ENUM;
1382         }
1383 }
1384
1385 static enum ndr_err_code ndr_push_drsuapi_DsPartialAttributeSet(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsPartialAttributeSet *r)
1386 {
1387         uint32_t cntr_attids_0;
1388         if (ndr_flags & NDR_SCALARS) {
1389                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->num_attids));
1390                 NDR_CHECK(ndr_push_align(ndr, 4));
1391                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 1));
1392                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
1393                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_attids));
1394                 for (cntr_attids_0 = 0; cntr_attids_0 < r->num_attids; cntr_attids_0++) {
1395                         NDR_CHECK(ndr_push_drsuapi_DsAttributeId(ndr, NDR_SCALARS, r->attids[cntr_attids_0]));
1396                 }
1397                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
1398         }
1399         if (ndr_flags & NDR_BUFFERS) {
1400         }
1401         return NDR_ERR_SUCCESS;
1402 }
1403
1404 static enum ndr_err_code ndr_pull_drsuapi_DsPartialAttributeSet(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsPartialAttributeSet *r)
1405 {
1406         uint32_t cntr_attids_0;
1407         TALLOC_CTX *_mem_save_attids_0;
1408         if (ndr_flags & NDR_SCALARS) {
1409                 NDR_CHECK(ndr_pull_array_size(ndr, &r->attids));
1410                 NDR_CHECK(ndr_pull_align(ndr, 4));
1411                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
1412                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved1));
1413                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_attids));
1414                 if (r->num_attids < 1 || r->num_attids > 0x100000) {
1415                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
1416                 }
1417                 NDR_PULL_ALLOC_N(ndr, r->attids, ndr_get_array_size(ndr, &r->attids));
1418                 _mem_save_attids_0 = NDR_PULL_GET_MEM_CTX(ndr);
1419                 NDR_PULL_SET_MEM_CTX(ndr, r->attids, 0);
1420                 for (cntr_attids_0 = 0; cntr_attids_0 < r->num_attids; cntr_attids_0++) {
1421                         NDR_CHECK(ndr_pull_drsuapi_DsAttributeId(ndr, NDR_SCALARS, &r->attids[cntr_attids_0]));
1422                 }
1423                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attids_0, 0);
1424                 if (r->attids) {
1425                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->attids, r->num_attids));
1426                 }
1427                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
1428         }
1429         if (ndr_flags & NDR_BUFFERS) {
1430         }
1431         return NDR_ERR_SUCCESS;
1432 }
1433
1434 _PUBLIC_ void ndr_print_drsuapi_DsPartialAttributeSet(struct ndr_print *ndr, const char *name, const struct drsuapi_DsPartialAttributeSet *r)
1435 {
1436         uint32_t cntr_attids_0;
1437         ndr_print_struct(ndr, name, "drsuapi_DsPartialAttributeSet");
1438         ndr->depth++;
1439         ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?1:r->version);
1440         ndr_print_uint32(ndr, "reserved1", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->reserved1);
1441         ndr_print_uint32(ndr, "num_attids", r->num_attids);
1442         ndr->print(ndr, "%s: ARRAY(%d)", "attids", (int)r->num_attids);
1443         ndr->depth++;
1444         for (cntr_attids_0=0;cntr_attids_0<r->num_attids;cntr_attids_0++) {
1445                 char *idx_0=NULL;
1446                 if (asprintf(&idx_0, "[%d]", cntr_attids_0) != -1) {
1447                         ndr_print_drsuapi_DsAttributeId(ndr, "attids", r->attids[cntr_attids_0]);
1448                         free(idx_0);
1449                 }
1450         }
1451         ndr->depth--;
1452         ndr->depth--;
1453 }
1454
1455 static enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesRequest8(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetNCChangesRequest8 *r)
1456 {
1457         if (ndr_flags & NDR_SCALARS) {
1458                 NDR_CHECK(ndr_push_align(ndr, 8));
1459                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->destination_dsa_guid));
1460                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
1461                 if (r->naming_context == NULL) {
1462                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1463                 }
1464                 NDR_CHECK(ndr_push_ref_ptr(ndr));
1465                 NDR_CHECK(ndr_push_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->highwatermark));
1466                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->uptodateness_vector));
1467                 NDR_CHECK(ndr_push_drsuapi_DrsOptions(ndr, NDR_SCALARS, r->replica_flags));
1468                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_object_count));
1469                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_ndr_size));
1470                 NDR_CHECK(ndr_push_drsuapi_DsExtendedOperation(ndr, NDR_SCALARS, r->extended_op));
1471                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->fsmo_info));
1472                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->partial_attribute_set));
1473                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->partial_attribute_set_ex));
1474                 NDR_CHECK(ndr_push_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_SCALARS, &r->mapping_ctr));
1475                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
1476         }
1477         if (ndr_flags & NDR_BUFFERS) {
1478                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
1479                 if (r->uptodateness_vector) {
1480                         NDR_CHECK(ndr_push_drsuapi_DsReplicaCursorCtrEx(ndr, NDR_SCALARS, r->uptodateness_vector));
1481                 }
1482                 if (r->partial_attribute_set) {
1483                         NDR_CHECK(ndr_push_drsuapi_DsPartialAttributeSet(ndr, NDR_SCALARS, r->partial_attribute_set));
1484                 }
1485                 if (r->partial_attribute_set_ex) {
1486                         NDR_CHECK(ndr_push_drsuapi_DsPartialAttributeSet(ndr, NDR_SCALARS, r->partial_attribute_set_ex));
1487                 }
1488                 NDR_CHECK(ndr_push_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_BUFFERS, &r->mapping_ctr));
1489         }
1490         return NDR_ERR_SUCCESS;
1491 }
1492
1493 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesRequest8(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNCChangesRequest8 *r)
1494 {
1495         uint32_t _ptr_naming_context;
1496         TALLOC_CTX *_mem_save_naming_context_0;
1497         uint32_t _ptr_uptodateness_vector;
1498         TALLOC_CTX *_mem_save_uptodateness_vector_0;
1499         uint32_t _ptr_partial_attribute_set;
1500         TALLOC_CTX *_mem_save_partial_attribute_set_0;
1501         uint32_t _ptr_partial_attribute_set_ex;
1502         TALLOC_CTX *_mem_save_partial_attribute_set_ex_0;
1503         if (ndr_flags & NDR_SCALARS) {
1504                 NDR_CHECK(ndr_pull_align(ndr, 8));
1505                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->destination_dsa_guid));
1506                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
1507                 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_naming_context));
1508                 if (_ptr_naming_context) {
1509                         NDR_PULL_ALLOC(ndr, r->naming_context);
1510                 } else {
1511                         r->naming_context = NULL;
1512                 }
1513                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->highwatermark));
1514                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_uptodateness_vector));
1515                 if (_ptr_uptodateness_vector) {
1516                         NDR_PULL_ALLOC(ndr, r->uptodateness_vector);
1517                 } else {
1518                         r->uptodateness_vector = NULL;
1519                 }
1520                 NDR_CHECK(ndr_pull_drsuapi_DrsOptions(ndr, NDR_SCALARS, &r->replica_flags));
1521                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_object_count));
1522                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_ndr_size));
1523                 NDR_CHECK(ndr_pull_drsuapi_DsExtendedOperation(ndr, NDR_SCALARS, &r->extended_op));
1524                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->fsmo_info));
1525                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_partial_attribute_set));
1526                 if (_ptr_partial_attribute_set) {
1527                         NDR_PULL_ALLOC(ndr, r->partial_attribute_set);
1528                 } else {
1529                         r->partial_attribute_set = NULL;
1530                 }
1531                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_partial_attribute_set_ex));
1532                 if (_ptr_partial_attribute_set_ex) {
1533                         NDR_PULL_ALLOC(ndr, r->partial_attribute_set_ex);
1534                 } else {
1535                         r->partial_attribute_set_ex = NULL;
1536                 }
1537                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_SCALARS, &r->mapping_ctr));
1538                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
1539         }
1540         if (ndr_flags & NDR_BUFFERS) {
1541                 _mem_save_naming_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
1542                 NDR_PULL_SET_MEM_CTX(ndr, r->naming_context, 0);
1543                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
1544                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_naming_context_0, 0);
1545                 if (r->uptodateness_vector) {
1546                         _mem_save_uptodateness_vector_0 = NDR_PULL_GET_MEM_CTX(ndr);
1547                         NDR_PULL_SET_MEM_CTX(ndr, r->uptodateness_vector, 0);
1548                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursorCtrEx(ndr, NDR_SCALARS, r->uptodateness_vector));
1549                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_uptodateness_vector_0, 0);
1550                 }
1551                 if (r->partial_attribute_set) {
1552                         _mem_save_partial_attribute_set_0 = NDR_PULL_GET_MEM_CTX(ndr);
1553                         NDR_PULL_SET_MEM_CTX(ndr, r->partial_attribute_set, 0);
1554                         NDR_CHECK(ndr_pull_drsuapi_DsPartialAttributeSet(ndr, NDR_SCALARS, r->partial_attribute_set));
1555                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_partial_attribute_set_0, 0);
1556                 }
1557                 if (r->partial_attribute_set_ex) {
1558                         _mem_save_partial_attribute_set_ex_0 = NDR_PULL_GET_MEM_CTX(ndr);
1559                         NDR_PULL_SET_MEM_CTX(ndr, r->partial_attribute_set_ex, 0);
1560                         NDR_CHECK(ndr_pull_drsuapi_DsPartialAttributeSet(ndr, NDR_SCALARS, r->partial_attribute_set_ex));
1561                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_partial_attribute_set_ex_0, 0);
1562                 }
1563                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_BUFFERS, &r->mapping_ctr));
1564         }
1565         return NDR_ERR_SUCCESS;
1566 }
1567
1568 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesRequest8(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesRequest8 *r)
1569 {
1570         ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesRequest8");
1571         ndr->depth++;
1572         ndr_print_GUID(ndr, "destination_dsa_guid", &r->destination_dsa_guid);
1573         ndr_print_GUID(ndr, "source_dsa_invocation_id", &r->source_dsa_invocation_id);
1574         ndr_print_ptr(ndr, "naming_context", r->naming_context);
1575         ndr->depth++;
1576         ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "naming_context", r->naming_context);
1577         ndr->depth--;
1578         ndr_print_drsuapi_DsReplicaHighWaterMark(ndr, "highwatermark", &r->highwatermark);
1579         ndr_print_ptr(ndr, "uptodateness_vector", r->uptodateness_vector);
1580         ndr->depth++;
1581         if (r->uptodateness_vector) {
1582                 ndr_print_drsuapi_DsReplicaCursorCtrEx(ndr, "uptodateness_vector", r->uptodateness_vector);
1583         }
1584         ndr->depth--;
1585         ndr_print_drsuapi_DrsOptions(ndr, "replica_flags", r->replica_flags);
1586         ndr_print_uint32(ndr, "max_object_count", r->max_object_count);
1587         ndr_print_uint32(ndr, "max_ndr_size", r->max_ndr_size);
1588         ndr_print_drsuapi_DsExtendedOperation(ndr, "extended_op", r->extended_op);
1589         ndr_print_hyper(ndr, "fsmo_info", r->fsmo_info);
1590         ndr_print_ptr(ndr, "partial_attribute_set", r->partial_attribute_set);
1591         ndr->depth++;
1592         if (r->partial_attribute_set) {
1593                 ndr_print_drsuapi_DsPartialAttributeSet(ndr, "partial_attribute_set", r->partial_attribute_set);
1594         }
1595         ndr->depth--;
1596         ndr_print_ptr(ndr, "partial_attribute_set_ex", r->partial_attribute_set_ex);
1597         ndr->depth++;
1598         if (r->partial_attribute_set_ex) {
1599                 ndr_print_drsuapi_DsPartialAttributeSet(ndr, "partial_attribute_set_ex", r->partial_attribute_set_ex);
1600         }
1601         ndr->depth--;
1602         ndr_print_drsuapi_DsReplicaOIDMapping_Ctr(ndr, "mapping_ctr", &r->mapping_ctr);
1603         ndr->depth--;
1604 }
1605
1606 static enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesRequest10(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetNCChangesRequest10 *r)
1607 {
1608         if (ndr_flags & NDR_SCALARS) {
1609                 NDR_CHECK(ndr_push_align(ndr, 8));
1610                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->destination_dsa_guid));
1611                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
1612                 if (r->naming_context == NULL) {
1613                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1614                 }
1615                 NDR_CHECK(ndr_push_ref_ptr(ndr));
1616                 NDR_CHECK(ndr_push_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->highwatermark));
1617                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->uptodateness_vector));
1618                 NDR_CHECK(ndr_push_drsuapi_DrsOptions(ndr, NDR_SCALARS, r->replica_flags));
1619                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_object_count));
1620                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_ndr_size));
1621                 NDR_CHECK(ndr_push_drsuapi_DsExtendedOperation(ndr, NDR_SCALARS, r->extended_op));
1622                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->fsmo_info));
1623                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->partial_attribute_set));
1624                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->partial_attribute_set_ex));
1625                 NDR_CHECK(ndr_push_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_SCALARS, &r->mapping_ctr));
1626                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->more_flags));
1627                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
1628         }
1629         if (ndr_flags & NDR_BUFFERS) {
1630                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
1631                 if (r->uptodateness_vector) {
1632                         NDR_CHECK(ndr_push_drsuapi_DsReplicaCursorCtrEx(ndr, NDR_SCALARS, r->uptodateness_vector));
1633                 }
1634                 if (r->partial_attribute_set) {
1635                         NDR_CHECK(ndr_push_drsuapi_DsPartialAttributeSet(ndr, NDR_SCALARS, r->partial_attribute_set));
1636                 }
1637                 if (r->partial_attribute_set_ex) {
1638                         NDR_CHECK(ndr_push_drsuapi_DsPartialAttributeSet(ndr, NDR_SCALARS, r->partial_attribute_set_ex));
1639                 }
1640                 NDR_CHECK(ndr_push_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_BUFFERS, &r->mapping_ctr));
1641         }
1642         return NDR_ERR_SUCCESS;
1643 }
1644
1645 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesRequest10(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNCChangesRequest10 *r)
1646 {
1647         uint32_t _ptr_naming_context;
1648         TALLOC_CTX *_mem_save_naming_context_0;
1649         uint32_t _ptr_uptodateness_vector;
1650         TALLOC_CTX *_mem_save_uptodateness_vector_0;
1651         uint32_t _ptr_partial_attribute_set;
1652         TALLOC_CTX *_mem_save_partial_attribute_set_0;
1653         uint32_t _ptr_partial_attribute_set_ex;
1654         TALLOC_CTX *_mem_save_partial_attribute_set_ex_0;
1655         if (ndr_flags & NDR_SCALARS) {
1656                 NDR_CHECK(ndr_pull_align(ndr, 8));
1657                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->destination_dsa_guid));
1658                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
1659                 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_naming_context));
1660                 if (_ptr_naming_context) {
1661                         NDR_PULL_ALLOC(ndr, r->naming_context);
1662                 } else {
1663                         r->naming_context = NULL;
1664                 }
1665                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->highwatermark));
1666                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_uptodateness_vector));
1667                 if (_ptr_uptodateness_vector) {
1668                         NDR_PULL_ALLOC(ndr, r->uptodateness_vector);
1669                 } else {
1670                         r->uptodateness_vector = NULL;
1671                 }
1672                 NDR_CHECK(ndr_pull_drsuapi_DrsOptions(ndr, NDR_SCALARS, &r->replica_flags));
1673                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_object_count));
1674                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_ndr_size));
1675                 NDR_CHECK(ndr_pull_drsuapi_DsExtendedOperation(ndr, NDR_SCALARS, &r->extended_op));
1676                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->fsmo_info));
1677                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_partial_attribute_set));
1678                 if (_ptr_partial_attribute_set) {
1679                         NDR_PULL_ALLOC(ndr, r->partial_attribute_set);
1680                 } else {
1681                         r->partial_attribute_set = NULL;
1682                 }
1683                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_partial_attribute_set_ex));
1684                 if (_ptr_partial_attribute_set_ex) {
1685                         NDR_PULL_ALLOC(ndr, r->partial_attribute_set_ex);
1686                 } else {
1687                         r->partial_attribute_set_ex = NULL;
1688                 }
1689                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_SCALARS, &r->mapping_ctr));
1690                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->more_flags));
1691                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
1692         }
1693         if (ndr_flags & NDR_BUFFERS) {
1694                 _mem_save_naming_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
1695                 NDR_PULL_SET_MEM_CTX(ndr, r->naming_context, 0);
1696                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
1697                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_naming_context_0, 0);
1698                 if (r->uptodateness_vector) {
1699                         _mem_save_uptodateness_vector_0 = NDR_PULL_GET_MEM_CTX(ndr);
1700                         NDR_PULL_SET_MEM_CTX(ndr, r->uptodateness_vector, 0);
1701                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursorCtrEx(ndr, NDR_SCALARS, r->uptodateness_vector));
1702                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_uptodateness_vector_0, 0);
1703                 }
1704                 if (r->partial_attribute_set) {
1705                         _mem_save_partial_attribute_set_0 = NDR_PULL_GET_MEM_CTX(ndr);
1706                         NDR_PULL_SET_MEM_CTX(ndr, r->partial_attribute_set, 0);
1707                         NDR_CHECK(ndr_pull_drsuapi_DsPartialAttributeSet(ndr, NDR_SCALARS, r->partial_attribute_set));
1708                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_partial_attribute_set_0, 0);
1709                 }
1710                 if (r->partial_attribute_set_ex) {
1711                         _mem_save_partial_attribute_set_ex_0 = NDR_PULL_GET_MEM_CTX(ndr);
1712                         NDR_PULL_SET_MEM_CTX(ndr, r->partial_attribute_set_ex, 0);
1713                         NDR_CHECK(ndr_pull_drsuapi_DsPartialAttributeSet(ndr, NDR_SCALARS, r->partial_attribute_set_ex));
1714                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_partial_attribute_set_ex_0, 0);
1715                 }
1716                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_BUFFERS, &r->mapping_ctr));
1717         }
1718         return NDR_ERR_SUCCESS;
1719 }
1720
1721 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesRequest10(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesRequest10 *r)
1722 {
1723         ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesRequest10");
1724         ndr->depth++;
1725         ndr_print_GUID(ndr, "destination_dsa_guid", &r->destination_dsa_guid);
1726         ndr_print_GUID(ndr, "source_dsa_invocation_id", &r->source_dsa_invocation_id);
1727         ndr_print_ptr(ndr, "naming_context", r->naming_context);
1728         ndr->depth++;
1729         ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "naming_context", r->naming_context);
1730         ndr->depth--;
1731         ndr_print_drsuapi_DsReplicaHighWaterMark(ndr, "highwatermark", &r->highwatermark);
1732         ndr_print_ptr(ndr, "uptodateness_vector", r->uptodateness_vector);
1733         ndr->depth++;
1734         if (r->uptodateness_vector) {
1735                 ndr_print_drsuapi_DsReplicaCursorCtrEx(ndr, "uptodateness_vector", r->uptodateness_vector);
1736         }
1737         ndr->depth--;
1738         ndr_print_drsuapi_DrsOptions(ndr, "replica_flags", r->replica_flags);
1739         ndr_print_uint32(ndr, "max_object_count", r->max_object_count);
1740         ndr_print_uint32(ndr, "max_ndr_size", r->max_ndr_size);
1741         ndr_print_drsuapi_DsExtendedOperation(ndr, "extended_op", r->extended_op);
1742         ndr_print_hyper(ndr, "fsmo_info", r->fsmo_info);
1743         ndr_print_ptr(ndr, "partial_attribute_set", r->partial_attribute_set);
1744         ndr->depth++;
1745         if (r->partial_attribute_set) {
1746                 ndr_print_drsuapi_DsPartialAttributeSet(ndr, "partial_attribute_set", r->partial_attribute_set);
1747         }
1748         ndr->depth--;
1749         ndr_print_ptr(ndr, "partial_attribute_set_ex", r->partial_attribute_set_ex);
1750         ndr->depth++;
1751         if (r->partial_attribute_set_ex) {
1752                 ndr_print_drsuapi_DsPartialAttributeSet(ndr, "partial_attribute_set_ex", r->partial_attribute_set_ex);
1753         }
1754         ndr->depth--;
1755         ndr_print_drsuapi_DsReplicaOIDMapping_Ctr(ndr, "mapping_ctr", &r->mapping_ctr);
1756         ndr_print_uint32(ndr, "more_flags", r->more_flags);
1757         ndr->depth--;
1758 }
1759
1760 static enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsGetNCChangesRequest *r)
1761 {
1762         if (ndr_flags & NDR_SCALARS) {
1763                 int level = ndr_push_get_switch_value(ndr, r);
1764                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
1765                 NDR_CHECK(ndr_push_union_align(ndr, 8));
1766                 switch (level) {
1767                         case 5: {
1768                                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesRequest5(ndr, NDR_SCALARS, &r->req5));
1769                         break; }
1770
1771                         case 8: {
1772                                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesRequest8(ndr, NDR_SCALARS, &r->req8));
1773                         break; }
1774
1775                         case 10: {
1776                                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesRequest10(ndr, NDR_SCALARS, &r->req10));
1777                         break; }
1778
1779                         default:
1780                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1781                 }
1782         }
1783         if (ndr_flags & NDR_BUFFERS) {
1784                 int level = ndr_push_get_switch_value(ndr, r);
1785                 switch (level) {
1786                         case 5:
1787                                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesRequest5(ndr, NDR_BUFFERS, &r->req5));
1788                         break;
1789
1790                         case 8:
1791                                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesRequest8(ndr, NDR_BUFFERS, &r->req8));
1792                         break;
1793
1794                         case 10:
1795                                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesRequest10(ndr, NDR_BUFFERS, &r->req10));
1796                         break;
1797
1798                         default:
1799                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1800                 }
1801         }
1802         return NDR_ERR_SUCCESS;
1803 }
1804
1805 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsGetNCChangesRequest *r)
1806 {
1807         int level;
1808         uint32_t _level;
1809         level = ndr_pull_get_switch_value(ndr, r);
1810         if (ndr_flags & NDR_SCALARS) {
1811                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
1812                 if (_level != level) {
1813                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
1814                 }
1815                 NDR_CHECK(ndr_pull_union_align(ndr, 8));
1816                 switch (level) {
1817                         case 5: {
1818                                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesRequest5(ndr, NDR_SCALARS, &r->req5));
1819                         break; }
1820
1821                         case 8: {
1822                                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesRequest8(ndr, NDR_SCALARS, &r->req8));
1823                         break; }
1824
1825                         case 10: {
1826                                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesRequest10(ndr, NDR_SCALARS, &r->req10));
1827                         break; }
1828
1829                         default:
1830                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1831                 }
1832         }
1833         if (ndr_flags & NDR_BUFFERS) {
1834                 switch (level) {
1835                         case 5:
1836                                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesRequest5(ndr, NDR_BUFFERS, &r->req5));
1837                         break;
1838
1839                         case 8:
1840                                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesRequest8(ndr, NDR_BUFFERS, &r->req8));
1841                         break;
1842
1843                         case 10:
1844                                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesRequest10(ndr, NDR_BUFFERS, &r->req10));
1845                         break;
1846
1847                         default:
1848                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1849                 }
1850         }
1851         return NDR_ERR_SUCCESS;
1852 }
1853
1854 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsGetNCChangesRequest *r)
1855 {
1856         int level;
1857         level = ndr_print_get_switch_value(ndr, r);
1858         ndr_print_union(ndr, name, level, "drsuapi_DsGetNCChangesRequest");
1859         switch (level) {
1860                 case 5:
1861                         ndr_print_drsuapi_DsGetNCChangesRequest5(ndr, "req5", &r->req5);
1862                 break;
1863
1864                 case 8:
1865                         ndr_print_drsuapi_DsGetNCChangesRequest8(ndr, "req8", &r->req8);
1866                 break;
1867
1868                 case 10:
1869                         ndr_print_drsuapi_DsGetNCChangesRequest10(ndr, "req10", &r->req10);
1870                 break;
1871
1872                 default:
1873                         ndr_print_bad_level(ndr, name, level);
1874         }
1875 }
1876
1877 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaCursor2(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaCursor2 *r)
1878 {
1879         if (ndr_flags & NDR_SCALARS) {
1880                 NDR_CHECK(ndr_push_align(ndr, 8));
1881                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
1882                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->highest_usn));
1883                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_sync_success));
1884                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
1885         }
1886         if (ndr_flags & NDR_BUFFERS) {
1887         }
1888         return NDR_ERR_SUCCESS;
1889 }
1890
1891 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaCursor2(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaCursor2 *r)
1892 {
1893         if (ndr_flags & NDR_SCALARS) {
1894                 NDR_CHECK(ndr_pull_align(ndr, 8));
1895                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
1896                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->highest_usn));
1897                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_sync_success));
1898                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
1899         }
1900         if (ndr_flags & NDR_BUFFERS) {
1901         }
1902         return NDR_ERR_SUCCESS;
1903 }
1904
1905 _PUBLIC_ void ndr_print_drsuapi_DsReplicaCursor2(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaCursor2 *r)
1906 {
1907         ndr_print_struct(ndr, name, "drsuapi_DsReplicaCursor2");
1908         ndr->depth++;
1909         ndr_print_GUID(ndr, "source_dsa_invocation_id", &r->source_dsa_invocation_id);
1910         ndr_print_hyper(ndr, "highest_usn", r->highest_usn);
1911         ndr_print_NTTIME(ndr, "last_sync_success", r->last_sync_success);
1912         ndr->depth--;
1913 }
1914
1915 static enum ndr_err_code ndr_push_drsuapi_DsReplicaCursor2CtrEx(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaCursor2CtrEx *r)
1916 {
1917         uint32_t cntr_cursors_0;
1918         if (ndr_flags & NDR_SCALARS) {
1919                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
1920                 NDR_CHECK(ndr_push_align(ndr, 8));
1921                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
1922                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
1923                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
1924                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
1925                 for (cntr_cursors_0 = 0; cntr_cursors_0 < r->count; cntr_cursors_0++) {
1926                         NDR_CHECK(ndr_push_drsuapi_DsReplicaCursor2(ndr, NDR_SCALARS, &r->cursors[cntr_cursors_0]));
1927                 }
1928                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
1929         }
1930         if (ndr_flags & NDR_BUFFERS) {
1931         }
1932         return NDR_ERR_SUCCESS;
1933 }
1934
1935 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaCursor2CtrEx(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaCursor2CtrEx *r)
1936 {
1937         uint32_t cntr_cursors_0;
1938         TALLOC_CTX *_mem_save_cursors_0;
1939         if (ndr_flags & NDR_SCALARS) {
1940                 NDR_CHECK(ndr_pull_array_size(ndr, &r->cursors));
1941                 NDR_CHECK(ndr_pull_align(ndr, 8));
1942                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
1943                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved1));
1944                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
1945                 if (r->count > 0x100000) {
1946                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
1947                 }
1948                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
1949                 NDR_PULL_ALLOC_N(ndr, r->cursors, ndr_get_array_size(ndr, &r->cursors));
1950                 _mem_save_cursors_0 = NDR_PULL_GET_MEM_CTX(ndr);
1951                 NDR_PULL_SET_MEM_CTX(ndr, r->cursors, 0);
1952                 for (cntr_cursors_0 = 0; cntr_cursors_0 < r->count; cntr_cursors_0++) {
1953                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursor2(ndr, NDR_SCALARS, &r->cursors[cntr_cursors_0]));
1954                 }
1955                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_cursors_0, 0);
1956                 if (r->cursors) {
1957                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->cursors, r->count));
1958                 }
1959                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
1960         }
1961         if (ndr_flags & NDR_BUFFERS) {
1962         }
1963         return NDR_ERR_SUCCESS;
1964 }
1965
1966 _PUBLIC_ void ndr_print_drsuapi_DsReplicaCursor2CtrEx(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaCursor2CtrEx *r)
1967 {
1968         uint32_t cntr_cursors_0;
1969         ndr_print_struct(ndr, name, "drsuapi_DsReplicaCursor2CtrEx");
1970         ndr->depth++;
1971         ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
1972         ndr_print_uint32(ndr, "reserved1", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->reserved1);
1973         ndr_print_uint32(ndr, "count", r->count);
1974         ndr_print_uint32(ndr, "reserved2", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->reserved2);
1975         ndr->print(ndr, "%s: ARRAY(%d)", "cursors", (int)r->count);
1976         ndr->depth++;
1977         for (cntr_cursors_0=0;cntr_cursors_0<r->count;cntr_cursors_0++) {
1978                 char *idx_0=NULL;
1979                 if (asprintf(&idx_0, "[%d]", cntr_cursors_0) != -1) {
1980                         ndr_print_drsuapi_DsReplicaCursor2(ndr, "cursors", &r->cursors[cntr_cursors_0]);
1981                         free(idx_0);
1982                 }
1983         }
1984         ndr->depth--;
1985         ndr->depth--;
1986 }
1987
1988 static enum ndr_err_code ndr_push_drsuapi_DsAttributeValue(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAttributeValue *r)
1989 {
1990         if (ndr_flags & NDR_SCALARS) {
1991                 NDR_CHECK(ndr_push_align(ndr, 5));
1992                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_DATA_BLOB(0, r->blob, 0)));
1993                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->blob));
1994                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1995         }
1996         if (ndr_flags & NDR_BUFFERS) {
1997                 if (r->blob) {
1998                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->blob));
1999                 }
2000         }
2001         return NDR_ERR_SUCCESS;
2002 }
2003
2004 static enum ndr_err_code ndr_pull_drsuapi_DsAttributeValue(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAttributeValue *r)
2005 {
2006         uint32_t _ptr_blob;
2007         TALLOC_CTX *_mem_save_blob_0;
2008         if (ndr_flags & NDR_SCALARS) {
2009                 NDR_CHECK(ndr_pull_align(ndr, 5));
2010                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size));
2011                 if (r->__ndr_size > 10485760) {
2012                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
2013                 }
2014                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_blob));
2015                 if (_ptr_blob) {
2016                         NDR_PULL_ALLOC(ndr, r->blob);
2017                 } else {
2018                         r->blob = NULL;
2019                 }
2020                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2021         }
2022         if (ndr_flags & NDR_BUFFERS) {
2023                 if (r->blob) {
2024                         _mem_save_blob_0 = NDR_PULL_GET_MEM_CTX(ndr);
2025                         NDR_PULL_SET_MEM_CTX(ndr, r->blob, 0);
2026                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->blob));
2027                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_blob_0, 0);
2028                 }
2029         }
2030         return NDR_ERR_SUCCESS;
2031 }
2032
2033 _PUBLIC_ void ndr_print_drsuapi_DsAttributeValue(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAttributeValue *r)
2034 {
2035         ndr_print_struct(ndr, name, "drsuapi_DsAttributeValue");
2036         ndr->depth++;
2037         ndr_print_uint32(ndr, "__ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_DATA_BLOB(0, r->blob, 0):r->__ndr_size);
2038         ndr_print_ptr(ndr, "blob", r->blob);
2039         ndr->depth++;
2040         if (r->blob) {
2041                 ndr_print_DATA_BLOB(ndr, "blob", *r->blob);
2042         }
2043         ndr->depth--;
2044         ndr->depth--;
2045 }
2046
2047 static enum ndr_err_code ndr_push_drsuapi_DsAttributeValueCtr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAttributeValueCtr *r)
2048 {
2049         uint32_t cntr_values_1;
2050         if (ndr_flags & NDR_SCALARS) {
2051                 NDR_CHECK(ndr_push_align(ndr, 5));
2052                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_values));
2053                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->values));
2054                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2055         }
2056         if (ndr_flags & NDR_BUFFERS) {
2057                 if (r->values) {
2058                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->num_values));
2059                         for (cntr_values_1 = 0; cntr_values_1 < r->num_values; cntr_values_1++) {
2060                                 NDR_CHECK(ndr_push_drsuapi_DsAttributeValue(ndr, NDR_SCALARS, &r->values[cntr_values_1]));
2061                         }
2062                         for (cntr_values_1 = 0; cntr_values_1 < r->num_values; cntr_values_1++) {
2063                                 NDR_CHECK(ndr_push_drsuapi_DsAttributeValue(ndr, NDR_BUFFERS, &r->values[cntr_values_1]));
2064                         }
2065                 }
2066         }
2067         return NDR_ERR_SUCCESS;
2068 }
2069
2070 static enum ndr_err_code ndr_pull_drsuapi_DsAttributeValueCtr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAttributeValueCtr *r)
2071 {
2072         uint32_t _ptr_values;
2073         uint32_t cntr_values_1;
2074         TALLOC_CTX *_mem_save_values_0;
2075         TALLOC_CTX *_mem_save_values_1;
2076         if (ndr_flags & NDR_SCALARS) {
2077                 NDR_CHECK(ndr_pull_align(ndr, 5));
2078                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_values));
2079                 if (r->num_values > 10485760) {
2080                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
2081                 }
2082                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_values));
2083                 if (_ptr_values) {
2084                         NDR_PULL_ALLOC(ndr, r->values);
2085                 } else {
2086                         r->values = NULL;
2087                 }
2088                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2089         }
2090         if (ndr_flags & NDR_BUFFERS) {
2091                 if (r->values) {
2092                         _mem_save_values_0 = NDR_PULL_GET_MEM_CTX(ndr);
2093                         NDR_PULL_SET_MEM_CTX(ndr, r->values, 0);
2094                         NDR_CHECK(ndr_pull_array_size(ndr, &r->values));
2095                         NDR_PULL_ALLOC_N(ndr, r->values, ndr_get_array_size(ndr, &r->values));
2096                         _mem_save_values_1 = NDR_PULL_GET_MEM_CTX(ndr);
2097                         NDR_PULL_SET_MEM_CTX(ndr, r->values, 0);
2098                         for (cntr_values_1 = 0; cntr_values_1 < r->num_values; cntr_values_1++) {
2099                                 NDR_CHECK(ndr_pull_drsuapi_DsAttributeValue(ndr, NDR_SCALARS, &r->values[cntr_values_1]));
2100                         }
2101                         for (cntr_values_1 = 0; cntr_values_1 < r->num_values; cntr_values_1++) {
2102                                 NDR_CHECK(ndr_pull_drsuapi_DsAttributeValue(ndr, NDR_BUFFERS, &r->values[cntr_values_1]));
2103                         }
2104                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_values_1, 0);
2105                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_values_0, 0);
2106                 }
2107                 if (r->values) {
2108                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->values, r->num_values));
2109                 }
2110         }
2111         return NDR_ERR_SUCCESS;
2112 }
2113
2114 _PUBLIC_ void ndr_print_drsuapi_DsAttributeValueCtr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAttributeValueCtr *r)
2115 {
2116         uint32_t cntr_values_1;
2117         ndr_print_struct(ndr, name, "drsuapi_DsAttributeValueCtr");
2118         ndr->depth++;
2119         ndr_print_uint32(ndr, "num_values", r->num_values);
2120         ndr_print_ptr(ndr, "values", r->values);
2121         ndr->depth++;
2122         if (r->values) {
2123                 ndr->print(ndr, "%s: ARRAY(%d)", "values", (int)r->num_values);
2124                 ndr->depth++;
2125                 for (cntr_values_1=0;cntr_values_1<r->num_values;cntr_values_1++) {
2126                         char *idx_1=NULL;
2127                         if (asprintf(&idx_1, "[%d]", cntr_values_1) != -1) {
2128                                 ndr_print_drsuapi_DsAttributeValue(ndr, "values", &r->values[cntr_values_1]);
2129                                 free(idx_1);
2130                         }
2131                 }
2132                 ndr->depth--;
2133         }
2134         ndr->depth--;
2135         ndr->depth--;
2136 }
2137
2138 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaObjectIdentifier3(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaObjectIdentifier3 *r)
2139 {
2140         if (ndr_flags & NDR_SCALARS) {
2141                 NDR_CHECK(ndr_push_align(ndr, 4));
2142                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_drsuapi_DsReplicaObjectIdentifier3(r, ndr->iconv_convenience, ndr->flags)));
2143                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_dom_sid28(&r->sid, ndr->flags)));
2144                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
2145                 NDR_CHECK(ndr_push_dom_sid28(ndr, NDR_SCALARS, &r->sid));
2146                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, strlen_m(r->dn)));
2147                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dn, strlen_m(r->dn) + 1, sizeof(uint16_t), CH_UTF16));
2148                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
2149         }
2150         if (ndr_flags & NDR_BUFFERS) {
2151                 NDR_CHECK(ndr_push_dom_sid28(ndr, NDR_BUFFERS, &r->sid));
2152         }
2153         return NDR_ERR_SUCCESS;
2154 }
2155
2156 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaObjectIdentifier3(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaObjectIdentifier3 *r)
2157 {
2158         if (ndr_flags & NDR_SCALARS) {
2159                 NDR_CHECK(ndr_pull_align(ndr, 4));
2160                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size));
2161                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size_sid));
2162                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
2163                 NDR_CHECK(ndr_pull_dom_sid28(ndr, NDR_SCALARS, &r->sid));
2164                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size_dn));
2165                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dn, r->__ndr_size_dn + 1, sizeof(uint16_t), CH_UTF16));
2166                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
2167         }
2168         if (ndr_flags & NDR_BUFFERS) {
2169                 NDR_CHECK(ndr_pull_dom_sid28(ndr, NDR_BUFFERS, &r->sid));
2170         }
2171         return NDR_ERR_SUCCESS;
2172 }
2173
2174 _PUBLIC_ void ndr_print_drsuapi_DsReplicaObjectIdentifier3(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaObjectIdentifier3 *r)
2175 {
2176         ndr_print_struct(ndr, name, "drsuapi_DsReplicaObjectIdentifier3");
2177         ndr->depth++;
2178         ndr_print_uint32(ndr, "__ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_drsuapi_DsReplicaObjectIdentifier3(r, ndr->iconv_convenience, ndr->flags):r->__ndr_size);
2179         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);
2180         ndr_print_GUID(ndr, "guid", &r->guid);
2181         ndr_print_dom_sid28(ndr, "sid", &r->sid);
2182         ndr_print_uint32(ndr, "__ndr_size_dn", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?strlen_m(r->dn):r->__ndr_size_dn);
2183         ndr_print_string(ndr, "dn", r->dn);
2184         ndr->depth--;
2185 }
2186
2187 _PUBLIC_ size_t ndr_size_drsuapi_DsReplicaObjectIdentifier3(const struct drsuapi_DsReplicaObjectIdentifier3 *r, struct smb_iconv_convenience *ic, int flags)
2188 {
2189         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_drsuapi_DsReplicaObjectIdentifier3, ic);
2190 }
2191
2192 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaObjectIdentifier3Binary(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaObjectIdentifier3Binary *r)
2193 {
2194         if (ndr_flags & NDR_SCALARS) {
2195                 NDR_CHECK(ndr_push_align(ndr, 4));
2196                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_drsuapi_DsReplicaObjectIdentifier3Binary_without_Binary(r, ndr->iconv_convenience, ndr->flags)));
2197                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_dom_sid28(&r->sid, ndr->flags)));
2198                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
2199                 NDR_CHECK(ndr_push_dom_sid28(ndr, NDR_SCALARS, &r->sid));
2200                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, strlen_m(r->dn)));
2201                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dn, strlen_m(r->dn) + 1, sizeof(uint16_t), CH_UTF16));
2202                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->binary.length + 4));
2203                 {
2204                         uint32_t _flags_save_DATA_BLOB = ndr->flags;
2205                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
2206                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->binary));
2207                         ndr->flags = _flags_save_DATA_BLOB;
2208                 }
2209                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
2210         }
2211         if (ndr_flags & NDR_BUFFERS) {
2212                 NDR_CHECK(ndr_push_dom_sid28(ndr, NDR_BUFFERS, &r->sid));
2213         }
2214         return NDR_ERR_SUCCESS;
2215 }
2216
2217 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaObjectIdentifier3Binary(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaObjectIdentifier3Binary *r)
2218 {
2219         if (ndr_flags & NDR_SCALARS) {
2220                 NDR_CHECK(ndr_pull_align(ndr, 4));
2221                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size));
2222                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size_sid));
2223                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
2224                 NDR_CHECK(ndr_pull_dom_sid28(ndr, NDR_SCALARS, &r->sid));
2225                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size_dn));
2226                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dn, r->__ndr_size_dn + 1, sizeof(uint16_t), CH_UTF16));
2227                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size_binary));
2228                 {
2229                         uint32_t _flags_save_DATA_BLOB = ndr->flags;
2230                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
2231                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->binary));
2232                         ndr->flags = _flags_save_DATA_BLOB;
2233                 }
2234                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
2235         }
2236         if (ndr_flags & NDR_BUFFERS) {
2237                 NDR_CHECK(ndr_pull_dom_sid28(ndr, NDR_BUFFERS, &r->sid));
2238         }
2239         return NDR_ERR_SUCCESS;
2240 }
2241
2242 _PUBLIC_ void ndr_print_drsuapi_DsReplicaObjectIdentifier3Binary(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaObjectIdentifier3Binary *r)
2243 {
2244         ndr_print_struct(ndr, name, "drsuapi_DsReplicaObjectIdentifier3Binary");
2245         ndr->depth++;
2246         ndr_print_uint32(ndr, "__ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_drsuapi_DsReplicaObjectIdentifier3Binary_without_Binary(r, ndr->iconv_convenience, ndr->flags):r->__ndr_size);
2247         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);
2248         ndr_print_GUID(ndr, "guid", &r->guid);
2249         ndr_print_dom_sid28(ndr, "sid", &r->sid);
2250         ndr_print_uint32(ndr, "__ndr_size_dn", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?strlen_m(r->dn):r->__ndr_size_dn);
2251         ndr_print_string(ndr, "dn", r->dn);
2252         ndr_print_uint32(ndr, "__ndr_size_binary", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->binary.length + 4:r->__ndr_size_binary);
2253         ndr_print_DATA_BLOB(ndr, "binary", r->binary);
2254         ndr->depth--;
2255 }
2256
2257 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaAttribute(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaAttribute *r)
2258 {
2259         if (ndr_flags & NDR_SCALARS) {
2260                 NDR_CHECK(ndr_push_align(ndr, 5));
2261                 NDR_CHECK(ndr_push_drsuapi_DsAttributeId(ndr, NDR_SCALARS, r->attid));
2262                 NDR_CHECK(ndr_push_drsuapi_DsAttributeValueCtr(ndr, NDR_SCALARS, &r->value_ctr));
2263                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2264         }
2265         if (ndr_flags & NDR_BUFFERS) {
2266                 NDR_CHECK(ndr_push_drsuapi_DsAttributeValueCtr(ndr, NDR_BUFFERS, &r->value_ctr));
2267         }
2268         return NDR_ERR_SUCCESS;
2269 }
2270
2271 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaAttribute(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaAttribute *r)
2272 {
2273         if (ndr_flags & NDR_SCALARS) {
2274                 NDR_CHECK(ndr_pull_align(ndr, 5));
2275                 NDR_CHECK(ndr_pull_drsuapi_DsAttributeId(ndr, NDR_SCALARS, &r->attid));
2276                 NDR_CHECK(ndr_pull_drsuapi_DsAttributeValueCtr(ndr, NDR_SCALARS, &r->value_ctr));
2277                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2278         }
2279         if (ndr_flags & NDR_BUFFERS) {
2280                 NDR_CHECK(ndr_pull_drsuapi_DsAttributeValueCtr(ndr, NDR_BUFFERS, &r->value_ctr));
2281         }
2282         return NDR_ERR_SUCCESS;
2283 }
2284
2285 _PUBLIC_ void ndr_print_drsuapi_DsReplicaAttribute(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaAttribute *r)
2286 {
2287         ndr_print_struct(ndr, name, "drsuapi_DsReplicaAttribute");
2288         ndr->depth++;
2289         ndr_print_drsuapi_DsAttributeId(ndr, "attid", r->attid);
2290         ndr_print_drsuapi_DsAttributeValueCtr(ndr, "value_ctr", &r->value_ctr);
2291         ndr->depth--;
2292 }
2293
2294 static enum ndr_err_code ndr_push_drsuapi_DsReplicaAttributeCtr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaAttributeCtr *r)
2295 {
2296         uint32_t cntr_attributes_1;
2297         if (ndr_flags & NDR_SCALARS) {
2298                 NDR_CHECK(ndr_push_align(ndr, 5));
2299                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_attributes));
2300                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->attributes));
2301                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2302         }
2303         if (ndr_flags & NDR_BUFFERS) {
2304                 if (r->attributes) {
2305                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->num_attributes));
2306                         for (cntr_attributes_1 = 0; cntr_attributes_1 < r->num_attributes; cntr_attributes_1++) {
2307                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaAttribute(ndr, NDR_SCALARS, &r->attributes[cntr_attributes_1]));
2308                         }
2309                         for (cntr_attributes_1 = 0; cntr_attributes_1 < r->num_attributes; cntr_attributes_1++) {
2310                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaAttribute(ndr, NDR_BUFFERS, &r->attributes[cntr_attributes_1]));
2311                         }
2312                 }
2313         }
2314         return NDR_ERR_SUCCESS;
2315 }
2316
2317 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaAttributeCtr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaAttributeCtr *r)
2318 {
2319         uint32_t _ptr_attributes;
2320         uint32_t cntr_attributes_1;
2321         TALLOC_CTX *_mem_save_attributes_0;
2322         TALLOC_CTX *_mem_save_attributes_1;
2323         if (ndr_flags & NDR_SCALARS) {
2324                 NDR_CHECK(ndr_pull_align(ndr, 5));
2325                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_attributes));
2326                 if (r->num_attributes > 1048576) {
2327                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
2328                 }
2329                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_attributes));
2330                 if (_ptr_attributes) {
2331                         NDR_PULL_ALLOC(ndr, r->attributes);
2332                 } else {
2333                         r->attributes = NULL;
2334                 }
2335                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2336         }
2337         if (ndr_flags & NDR_BUFFERS) {
2338                 if (r->attributes) {
2339                         _mem_save_attributes_0 = NDR_PULL_GET_MEM_CTX(ndr);
2340                         NDR_PULL_SET_MEM_CTX(ndr, r->attributes, 0);
2341                         NDR_CHECK(ndr_pull_array_size(ndr, &r->attributes));
2342                         NDR_PULL_ALLOC_N(ndr, r->attributes, ndr_get_array_size(ndr, &r->attributes));
2343                         _mem_save_attributes_1 = NDR_PULL_GET_MEM_CTX(ndr);
2344                         NDR_PULL_SET_MEM_CTX(ndr, r->attributes, 0);
2345                         for (cntr_attributes_1 = 0; cntr_attributes_1 < r->num_attributes; cntr_attributes_1++) {
2346                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAttribute(ndr, NDR_SCALARS, &r->attributes[cntr_attributes_1]));
2347                         }
2348                         for (cntr_attributes_1 = 0; cntr_attributes_1 < r->num_attributes; cntr_attributes_1++) {
2349                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAttribute(ndr, NDR_BUFFERS, &r->attributes[cntr_attributes_1]));
2350                         }
2351                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attributes_1, 0);
2352                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attributes_0, 0);
2353                 }
2354                 if (r->attributes) {
2355                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->attributes, r->num_attributes));
2356                 }
2357         }
2358         return NDR_ERR_SUCCESS;
2359 }
2360
2361 _PUBLIC_ void ndr_print_drsuapi_DsReplicaAttributeCtr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaAttributeCtr *r)
2362 {
2363         uint32_t cntr_attributes_1;
2364         ndr_print_struct(ndr, name, "drsuapi_DsReplicaAttributeCtr");
2365         ndr->depth++;
2366         ndr_print_uint32(ndr, "num_attributes", r->num_attributes);
2367         ndr_print_ptr(ndr, "attributes", r->attributes);
2368         ndr->depth++;
2369         if (r->attributes) {
2370                 ndr->print(ndr, "%s: ARRAY(%d)", "attributes", (int)r->num_attributes);
2371                 ndr->depth++;
2372                 for (cntr_attributes_1=0;cntr_attributes_1<r->num_attributes;cntr_attributes_1++) {
2373                         char *idx_1=NULL;
2374                         if (asprintf(&idx_1, "[%d]", cntr_attributes_1) != -1) {
2375                                 ndr_print_drsuapi_DsReplicaAttribute(ndr, "attributes", &r->attributes[cntr_attributes_1]);
2376                                 free(idx_1);
2377                         }
2378                 }
2379                 ndr->depth--;
2380         }
2381         ndr->depth--;
2382         ndr->depth--;
2383 }
2384
2385 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaObjectFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
2386 {
2387         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
2388         return NDR_ERR_SUCCESS;
2389 }
2390
2391 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaObjectFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
2392 {
2393         uint32_t v;
2394         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
2395         *r = v;
2396         return NDR_ERR_SUCCESS;
2397 }
2398
2399 _PUBLIC_ void ndr_print_drsuapi_DsReplicaObjectFlags(struct ndr_print *ndr, const char *name, uint32_t r)
2400 {
2401         ndr_print_uint32(ndr, name, r);
2402         ndr->depth++;
2403         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_OBJECT_FROM_MASTER", DRSUAPI_DS_REPLICA_OBJECT_FROM_MASTER, r);
2404         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_OBJECT_DYNAMIC", DRSUAPI_DS_REPLICA_OBJECT_DYNAMIC, r);
2405         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_OBJECT_REMOTE_MODIFY", DRSUAPI_DS_REPLICA_OBJECT_REMOTE_MODIFY, r);
2406         ndr->depth--;
2407 }
2408
2409 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaObject(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaObject *r)
2410 {
2411         if (ndr_flags & NDR_SCALARS) {
2412                 NDR_CHECK(ndr_push_align(ndr, 5));
2413                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->identifier));
2414                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectFlags(ndr, NDR_SCALARS, r->flags));
2415                 NDR_CHECK(ndr_push_drsuapi_DsReplicaAttributeCtr(ndr, NDR_SCALARS, &r->attribute_ctr));
2416                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2417         }
2418         if (ndr_flags & NDR_BUFFERS) {
2419                 if (r->identifier) {
2420                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->identifier));
2421                 }
2422                 NDR_CHECK(ndr_push_drsuapi_DsReplicaAttributeCtr(ndr, NDR_BUFFERS, &r->attribute_ctr));
2423         }
2424         return NDR_ERR_SUCCESS;
2425 }
2426
2427 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaObject(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaObject *r)
2428 {
2429         uint32_t _ptr_identifier;
2430         TALLOC_CTX *_mem_save_identifier_0;
2431         if (ndr_flags & NDR_SCALARS) {
2432                 NDR_CHECK(ndr_pull_align(ndr, 5));
2433                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_identifier));
2434                 if (_ptr_identifier) {
2435                         NDR_PULL_ALLOC(ndr, r->identifier);
2436                 } else {
2437                         r->identifier = NULL;
2438                 }
2439                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectFlags(ndr, NDR_SCALARS, &r->flags));
2440                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAttributeCtr(ndr, NDR_SCALARS, &r->attribute_ctr));
2441                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2442         }
2443         if (ndr_flags & NDR_BUFFERS) {
2444                 if (r->identifier) {
2445                         _mem_save_identifier_0 = NDR_PULL_GET_MEM_CTX(ndr);
2446                         NDR_PULL_SET_MEM_CTX(ndr, r->identifier, 0);
2447                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->identifier));
2448                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_identifier_0, 0);
2449                 }
2450                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAttributeCtr(ndr, NDR_BUFFERS, &r->attribute_ctr));
2451         }
2452         return NDR_ERR_SUCCESS;
2453 }
2454
2455 _PUBLIC_ void ndr_print_drsuapi_DsReplicaObject(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaObject *r)
2456 {
2457         ndr_print_struct(ndr, name, "drsuapi_DsReplicaObject");
2458         ndr->depth++;
2459         ndr_print_ptr(ndr, "identifier", r->identifier);
2460         ndr->depth++;
2461         if (r->identifier) {
2462                 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "identifier", r->identifier);
2463         }
2464         ndr->depth--;
2465         ndr_print_drsuapi_DsReplicaObjectFlags(ndr, "flags", r->flags);
2466         ndr_print_drsuapi_DsReplicaAttributeCtr(ndr, "attribute_ctr", &r->attribute_ctr);
2467         ndr->depth--;
2468 }
2469
2470 static enum ndr_err_code ndr_push_drsuapi_DsReplicaMetaData(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaMetaData *r)
2471 {
2472         if (ndr_flags & NDR_SCALARS) {
2473                 NDR_CHECK(ndr_push_align(ndr, 8));
2474                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
2475                 NDR_CHECK(ndr_push_NTTIME_1sec(ndr, NDR_SCALARS, r->originating_change_time));
2476                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->originating_invocation_id));
2477                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->originating_usn));
2478                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
2479         }
2480         if (ndr_flags & NDR_BUFFERS) {
2481         }
2482         return NDR_ERR_SUCCESS;
2483 }
2484
2485 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaMetaData(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaMetaData *r)
2486 {
2487         if (ndr_flags & NDR_SCALARS) {
2488                 NDR_CHECK(ndr_pull_align(ndr, 8));
2489                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
2490                 NDR_CHECK(ndr_pull_NTTIME_1sec(ndr, NDR_SCALARS, &r->originating_change_time));
2491                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->originating_invocation_id));
2492                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->originating_usn));
2493                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
2494         }
2495         if (ndr_flags & NDR_BUFFERS) {
2496         }
2497         return NDR_ERR_SUCCESS;
2498 }
2499
2500 _PUBLIC_ void ndr_print_drsuapi_DsReplicaMetaData(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaMetaData *r)
2501 {
2502         ndr_print_struct(ndr, name, "drsuapi_DsReplicaMetaData");
2503         ndr->depth++;
2504         ndr_print_uint32(ndr, "version", r->version);
2505         ndr_print_NTTIME_1sec(ndr, "originating_change_time", r->originating_change_time);
2506         ndr_print_GUID(ndr, "originating_invocation_id", &r->originating_invocation_id);
2507         ndr_print_hyper(ndr, "originating_usn", r->originating_usn);
2508         ndr->depth--;
2509 }
2510
2511 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaMetaDataCtr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaMetaDataCtr *r)
2512 {
2513         uint32_t cntr_meta_data_0;
2514         if (ndr_flags & NDR_SCALARS) {
2515                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
2516                 NDR_CHECK(ndr_push_align(ndr, 8));
2517                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
2518                 for (cntr_meta_data_0 = 0; cntr_meta_data_0 < r->count; cntr_meta_data_0++) {
2519                         NDR_CHECK(ndr_push_drsuapi_DsReplicaMetaData(ndr, NDR_SCALARS, &r->meta_data[cntr_meta_data_0]));
2520                 }
2521                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
2522         }
2523         if (ndr_flags & NDR_BUFFERS) {
2524         }
2525         return NDR_ERR_SUCCESS;
2526 }
2527
2528 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaMetaDataCtr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaMetaDataCtr *r)
2529 {
2530         uint32_t cntr_meta_data_0;
2531         TALLOC_CTX *_mem_save_meta_data_0;
2532         if (ndr_flags & NDR_SCALARS) {
2533                 NDR_CHECK(ndr_pull_array_size(ndr, &r->meta_data));
2534                 NDR_CHECK(ndr_pull_align(ndr, 8));
2535                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
2536                 if (r->count > 1048576) {
2537                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
2538                 }
2539                 NDR_PULL_ALLOC_N(ndr, r->meta_data, ndr_get_array_size(ndr, &r->meta_data));
2540                 _mem_save_meta_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
2541                 NDR_PULL_SET_MEM_CTX(ndr, r->meta_data, 0);
2542                 for (cntr_meta_data_0 = 0; cntr_meta_data_0 < r->count; cntr_meta_data_0++) {
2543                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaMetaData(ndr, NDR_SCALARS, &r->meta_data[cntr_meta_data_0]));
2544                 }
2545                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_meta_data_0, 0);
2546                 if (r->meta_data) {
2547                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->meta_data, r->count));
2548                 }
2549                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
2550         }
2551         if (ndr_flags & NDR_BUFFERS) {
2552         }
2553         return NDR_ERR_SUCCESS;
2554 }
2555
2556 _PUBLIC_ void ndr_print_drsuapi_DsReplicaMetaDataCtr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaMetaDataCtr *r)
2557 {
2558         uint32_t cntr_meta_data_0;
2559         ndr_print_struct(ndr, name, "drsuapi_DsReplicaMetaDataCtr");
2560         ndr->depth++;
2561         ndr_print_uint32(ndr, "count", r->count);
2562         ndr->print(ndr, "%s: ARRAY(%d)", "meta_data", (int)r->count);
2563         ndr->depth++;
2564         for (cntr_meta_data_0=0;cntr_meta_data_0<r->count;cntr_meta_data_0++) {
2565                 char *idx_0=NULL;
2566                 if (asprintf(&idx_0, "[%d]", cntr_meta_data_0) != -1) {
2567                         ndr_print_drsuapi_DsReplicaMetaData(ndr, "meta_data", &r->meta_data[cntr_meta_data_0]);
2568                         free(idx_0);
2569                 }
2570         }
2571         ndr->depth--;
2572         ndr->depth--;
2573 }
2574
2575 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaObjectListItemEx(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaObjectListItemEx *r)
2576 {
2577         if (ndr_flags & NDR_SCALARS) {
2578                 NDR_CHECK(ndr_push_align(ndr, 5));
2579                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->next_object));
2580                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObject(ndr, NDR_SCALARS, &r->object));
2581                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_nc_prefix));
2582                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parent_object_guid));
2583                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->meta_data_ctr));
2584                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2585         }
2586         if (ndr_flags & NDR_BUFFERS) {
2587                 if (r->next_object) {
2588                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectListItemEx(ndr, NDR_SCALARS|NDR_BUFFERS, r->next_object));
2589                 }
2590                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObject(ndr, NDR_BUFFERS, &r->object));
2591                 if (r->parent_object_guid) {
2592                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->parent_object_guid));
2593                 }
2594                 if (r->meta_data_ctr) {
2595                         NDR_CHECK(ndr_push_drsuapi_DsReplicaMetaDataCtr(ndr, NDR_SCALARS, r->meta_data_ctr));
2596                 }
2597         }
2598         return NDR_ERR_SUCCESS;
2599 }
2600
2601 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaObjectListItemEx(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaObjectListItemEx *r)
2602 {
2603         uint32_t _ptr_next_object;
2604         TALLOC_CTX *_mem_save_next_object_0;
2605         uint32_t _ptr_parent_object_guid;
2606         TALLOC_CTX *_mem_save_parent_object_guid_0;
2607         uint32_t _ptr_meta_data_ctr;
2608         TALLOC_CTX *_mem_save_meta_data_ctr_0;
2609         if (ndr_flags & NDR_SCALARS) {
2610                 NDR_CHECK(ndr_pull_align(ndr, 5));
2611                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_next_object));
2612                 if (_ptr_next_object) {
2613                         NDR_PULL_ALLOC(ndr, r->next_object);
2614                 } else {
2615                         r->next_object = NULL;
2616                 }
2617                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObject(ndr, NDR_SCALARS, &r->object));
2618                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_nc_prefix));
2619                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parent_object_guid));
2620                 if (_ptr_parent_object_guid) {
2621                         NDR_PULL_ALLOC(ndr, r->parent_object_guid);
2622                 } else {
2623                         r->parent_object_guid = NULL;
2624                 }
2625                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_meta_data_ctr));
2626                 if (_ptr_meta_data_ctr) {
2627                         NDR_PULL_ALLOC(ndr, r->meta_data_ctr);
2628                 } else {
2629                         r->meta_data_ctr = NULL;
2630                 }
2631                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2632         }
2633         if (ndr_flags & NDR_BUFFERS) {
2634                 if (r->next_object) {
2635                         _mem_save_next_object_0 = NDR_PULL_GET_MEM_CTX(ndr);
2636                         NDR_PULL_SET_MEM_CTX(ndr, r->next_object, 0);
2637                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectListItemEx(ndr, NDR_SCALARS|NDR_BUFFERS, r->next_object));
2638                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_next_object_0, 0);
2639                 }
2640                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObject(ndr, NDR_BUFFERS, &r->object));
2641                 if (r->parent_object_guid) {
2642                         _mem_save_parent_object_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
2643                         NDR_PULL_SET_MEM_CTX(ndr, r->parent_object_guid, 0);
2644                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->parent_object_guid));
2645                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parent_object_guid_0, 0);
2646                 }
2647                 if (r->meta_data_ctr) {
2648                         _mem_save_meta_data_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
2649                         NDR_PULL_SET_MEM_CTX(ndr, r->meta_data_ctr, 0);
2650                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaMetaDataCtr(ndr, NDR_SCALARS, r->meta_data_ctr));
2651                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_meta_data_ctr_0, 0);
2652                 }
2653         }
2654         return NDR_ERR_SUCCESS;
2655 }
2656
2657 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesCtr1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetNCChangesCtr1 *r)
2658 {
2659         if (ndr_flags & NDR_SCALARS) {
2660                 NDR_CHECK(ndr_push_align(ndr, 8));
2661                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_guid));
2662                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
2663                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->naming_context));
2664                 NDR_CHECK(ndr_push_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->old_highwatermark));
2665                 NDR_CHECK(ndr_push_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->new_highwatermark));
2666                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->uptodateness_vector));
2667                 NDR_CHECK(ndr_push_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_SCALARS, &r->mapping_ctr));
2668                 NDR_CHECK(ndr_push_drsuapi_DsExtendedError(ndr, NDR_SCALARS, r->extended_ret));
2669                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->object_count));
2670                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_drsuapi_DsGetNCChangesCtr1(r, ndr->iconv_convenience, ndr->flags) + 55));
2671                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->first_object));
2672                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->more_data));
2673                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
2674         }
2675         if (ndr_flags & NDR_BUFFERS) {
2676                 if (r->naming_context) {
2677                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
2678                 }
2679                 if (r->uptodateness_vector) {
2680                         NDR_CHECK(ndr_push_drsuapi_DsReplicaCursorCtrEx(ndr, NDR_SCALARS, r->uptodateness_vector));
2681                 }
2682                 NDR_CHECK(ndr_push_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_BUFFERS, &r->mapping_ctr));
2683                 if (r->first_object) {
2684                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectListItemEx(ndr, NDR_SCALARS|NDR_BUFFERS, r->first_object));
2685                 }
2686         }
2687         return NDR_ERR_SUCCESS;
2688 }
2689
2690 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesCtr1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNCChangesCtr1 *r)
2691 {
2692         uint32_t _ptr_naming_context;
2693         TALLOC_CTX *_mem_save_naming_context_0;
2694         uint32_t _ptr_uptodateness_vector;
2695         TALLOC_CTX *_mem_save_uptodateness_vector_0;
2696         uint32_t _ptr_first_object;
2697         TALLOC_CTX *_mem_save_first_object_0;
2698         if (ndr_flags & NDR_SCALARS) {
2699                 NDR_CHECK(ndr_pull_align(ndr, 8));
2700                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_guid));
2701                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
2702                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_naming_context));
2703                 if (_ptr_naming_context) {
2704                         NDR_PULL_ALLOC(ndr, r->naming_context);
2705                 } else {
2706                         r->naming_context = NULL;
2707                 }
2708                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->old_highwatermark));
2709                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->new_highwatermark));
2710                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_uptodateness_vector));
2711                 if (_ptr_uptodateness_vector) {
2712                         NDR_PULL_ALLOC(ndr, r->uptodateness_vector);
2713                 } else {
2714                         r->uptodateness_vector = NULL;
2715                 }
2716                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_SCALARS, &r->mapping_ctr));
2717                 NDR_CHECK(ndr_pull_drsuapi_DsExtendedError(ndr, NDR_SCALARS, &r->extended_ret));
2718                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->object_count));
2719                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size));
2720                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_first_object));
2721                 if (_ptr_first_object) {
2722                         NDR_PULL_ALLOC(ndr, r->first_object);
2723                 } else {
2724                         r->first_object = NULL;
2725                 }
2726                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->more_data));
2727                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
2728         }
2729         if (ndr_flags & NDR_BUFFERS) {
2730                 if (r->naming_context) {
2731                         _mem_save_naming_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
2732                         NDR_PULL_SET_MEM_CTX(ndr, r->naming_context, 0);
2733                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
2734                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_naming_context_0, 0);
2735                 }
2736                 if (r->uptodateness_vector) {
2737                         _mem_save_uptodateness_vector_0 = NDR_PULL_GET_MEM_CTX(ndr);
2738                         NDR_PULL_SET_MEM_CTX(ndr, r->uptodateness_vector, 0);
2739                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursorCtrEx(ndr, NDR_SCALARS, r->uptodateness_vector));
2740                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_uptodateness_vector_0, 0);
2741                 }
2742                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_BUFFERS, &r->mapping_ctr));
2743                 if (r->first_object) {
2744                         _mem_save_first_object_0 = NDR_PULL_GET_MEM_CTX(ndr);
2745                         NDR_PULL_SET_MEM_CTX(ndr, r->first_object, 0);
2746                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectListItemEx(ndr, NDR_SCALARS|NDR_BUFFERS, r->first_object));
2747                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_first_object_0, 0);
2748                 }
2749         }
2750         return NDR_ERR_SUCCESS;
2751 }
2752
2753 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesCtr1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesCtr1 *r)
2754 {
2755         ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesCtr1");
2756         ndr->depth++;
2757         ndr_print_GUID(ndr, "source_dsa_guid", &r->source_dsa_guid);
2758         ndr_print_GUID(ndr, "source_dsa_invocation_id", &r->source_dsa_invocation_id);
2759         ndr_print_ptr(ndr, "naming_context", r->naming_context);
2760         ndr->depth++;
2761         if (r->naming_context) {
2762                 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "naming_context", r->naming_context);
2763         }
2764         ndr->depth--;
2765         ndr_print_drsuapi_DsReplicaHighWaterMark(ndr, "old_highwatermark", &r->old_highwatermark);
2766         ndr_print_drsuapi_DsReplicaHighWaterMark(ndr, "new_highwatermark", &r->new_highwatermark);
2767         ndr_print_ptr(ndr, "uptodateness_vector", r->uptodateness_vector);
2768         ndr->depth++;
2769         if (r->uptodateness_vector) {
2770                 ndr_print_drsuapi_DsReplicaCursorCtrEx(ndr, "uptodateness_vector", r->uptodateness_vector);
2771         }
2772         ndr->depth--;
2773         ndr_print_drsuapi_DsReplicaOIDMapping_Ctr(ndr, "mapping_ctr", &r->mapping_ctr);
2774         ndr_print_drsuapi_DsExtendedError(ndr, "extended_ret", r->extended_ret);
2775         ndr_print_uint32(ndr, "object_count", r->object_count);
2776         ndr_print_uint32(ndr, "__ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_drsuapi_DsGetNCChangesCtr1(r, ndr->iconv_convenience, ndr->flags) + 55:r->__ndr_size);
2777         ndr_print_ptr(ndr, "first_object", r->first_object);
2778         ndr->depth++;
2779         if (r->first_object) {
2780                 ndr_print_drsuapi_DsReplicaObjectListItemEx(ndr, "first_object", r->first_object);
2781         }
2782         ndr->depth--;
2783         ndr_print_uint32(ndr, "more_data", r->more_data);
2784         ndr->depth--;
2785 }
2786
2787 _PUBLIC_ size_t ndr_size_drsuapi_DsGetNCChangesCtr1(const struct drsuapi_DsGetNCChangesCtr1 *r, struct smb_iconv_convenience *ic, int flags)
2788 {
2789         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_drsuapi_DsGetNCChangesCtr1, ic);
2790 }
2791
2792 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsLinkedAttributeFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
2793 {
2794         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
2795         return NDR_ERR_SUCCESS;
2796 }
2797
2798 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsLinkedAttributeFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
2799 {
2800         uint32_t v;
2801         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
2802         *r = v;
2803         return NDR_ERR_SUCCESS;
2804 }
2805
2806 _PUBLIC_ void ndr_print_drsuapi_DsLinkedAttributeFlags(struct ndr_print *ndr, const char *name, uint32_t r)
2807 {
2808         ndr_print_uint32(ndr, name, r);
2809         ndr->depth++;
2810         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_LINKED_ATTRIBUTE_FLAG_ACTIVE", DRSUAPI_DS_LINKED_ATTRIBUTE_FLAG_ACTIVE, r);
2811         ndr->depth--;
2812 }
2813
2814 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaLinkedAttribute(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaLinkedAttribute *r)
2815 {
2816         if (ndr_flags & NDR_SCALARS) {
2817                 NDR_CHECK(ndr_push_align(ndr, 8));
2818                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->identifier));
2819                 NDR_CHECK(ndr_push_drsuapi_DsAttributeId(ndr, NDR_SCALARS, r->attid));
2820                 NDR_CHECK(ndr_push_drsuapi_DsAttributeValue(ndr, NDR_SCALARS, &r->value));
2821                 NDR_CHECK(ndr_push_drsuapi_DsLinkedAttributeFlags(ndr, NDR_SCALARS, r->flags));
2822                 NDR_CHECK(ndr_push_NTTIME_1sec(ndr, NDR_SCALARS, r->originating_add_time));
2823                 NDR_CHECK(ndr_push_drsuapi_DsReplicaMetaData(ndr, NDR_SCALARS, &r->meta_data));
2824                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
2825         }
2826         if (ndr_flags & NDR_BUFFERS) {
2827                 if (r->identifier) {
2828                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->identifier));
2829                 }
2830                 NDR_CHECK(ndr_push_drsuapi_DsAttributeValue(ndr, NDR_BUFFERS, &r->value));
2831         }
2832         return NDR_ERR_SUCCESS;
2833 }
2834
2835 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaLinkedAttribute(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaLinkedAttribute *r)
2836 {
2837         uint32_t _ptr_identifier;
2838         TALLOC_CTX *_mem_save_identifier_0;
2839         if (ndr_flags & NDR_SCALARS) {
2840                 NDR_CHECK(ndr_pull_align(ndr, 8));
2841                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_identifier));
2842                 if (_ptr_identifier) {
2843                         NDR_PULL_ALLOC(ndr, r->identifier);
2844                 } else {
2845                         r->identifier = NULL;
2846                 }
2847                 NDR_CHECK(ndr_pull_drsuapi_DsAttributeId(ndr, NDR_SCALARS, &r->attid));
2848                 NDR_CHECK(ndr_pull_drsuapi_DsAttributeValue(ndr, NDR_SCALARS, &r->value));
2849                 NDR_CHECK(ndr_pull_drsuapi_DsLinkedAttributeFlags(ndr, NDR_SCALARS, &r->flags));
2850                 NDR_CHECK(ndr_pull_NTTIME_1sec(ndr, NDR_SCALARS, &r->originating_add_time));
2851                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaMetaData(ndr, NDR_SCALARS, &r->meta_data));
2852                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
2853         }
2854         if (ndr_flags & NDR_BUFFERS) {
2855                 if (r->identifier) {
2856                         _mem_save_identifier_0 = NDR_PULL_GET_MEM_CTX(ndr);
2857                         NDR_PULL_SET_MEM_CTX(ndr, r->identifier, 0);
2858                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->identifier));
2859                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_identifier_0, 0);
2860                 }
2861                 NDR_CHECK(ndr_pull_drsuapi_DsAttributeValue(ndr, NDR_BUFFERS, &r->value));
2862         }
2863         return NDR_ERR_SUCCESS;
2864 }
2865
2866 _PUBLIC_ void ndr_print_drsuapi_DsReplicaLinkedAttribute(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaLinkedAttribute *r)
2867 {
2868         ndr_print_struct(ndr, name, "drsuapi_DsReplicaLinkedAttribute");
2869         ndr->depth++;
2870         ndr_print_ptr(ndr, "identifier", r->identifier);
2871         ndr->depth++;
2872         if (r->identifier) {
2873                 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "identifier", r->identifier);
2874         }
2875         ndr->depth--;
2876         ndr_print_drsuapi_DsAttributeId(ndr, "attid", r->attid);
2877         ndr_print_drsuapi_DsAttributeValue(ndr, "value", &r->value);
2878         ndr_print_drsuapi_DsLinkedAttributeFlags(ndr, "flags", r->flags);
2879         ndr_print_NTTIME_1sec(ndr, "originating_add_time", r->originating_add_time);
2880         ndr_print_drsuapi_DsReplicaMetaData(ndr, "meta_data", &r->meta_data);
2881         ndr->depth--;
2882 }
2883
2884 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesCtr6(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetNCChangesCtr6 *r)
2885 {
2886         uint32_t cntr_linked_attributes_1;
2887         if (ndr_flags & NDR_SCALARS) {
2888                 NDR_CHECK(ndr_push_align(ndr, 8));
2889                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_guid));
2890                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
2891                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->naming_context));
2892                 NDR_CHECK(ndr_push_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->old_highwatermark));
2893                 NDR_CHECK(ndr_push_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->new_highwatermark));
2894                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->uptodateness_vector));
2895                 NDR_CHECK(ndr_push_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_SCALARS, &r->mapping_ctr));
2896                 NDR_CHECK(ndr_push_drsuapi_DsExtendedError(ndr, NDR_SCALARS, r->extended_ret));
2897                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->object_count));
2898                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_drsuapi_DsGetNCChangesCtr6(r, ndr->iconv_convenience, ndr->flags) + 55));
2899                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->first_object));
2900                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->more_data));
2901                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nc_object_count));
2902                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nc_linked_attributes_count));
2903                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->linked_attributes_count));
2904                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->linked_attributes));
2905                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->drs_error));
2906                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
2907         }
2908         if (ndr_flags & NDR_BUFFERS) {
2909                 if (r->naming_context) {
2910                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
2911                 }
2912                 if (r->uptodateness_vector) {
2913                         NDR_CHECK(ndr_push_drsuapi_DsReplicaCursor2CtrEx(ndr, NDR_SCALARS, r->uptodateness_vector));
2914                 }
2915                 NDR_CHECK(ndr_push_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_BUFFERS, &r->mapping_ctr));
2916                 if (r->first_object) {
2917                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectListItemEx(ndr, NDR_SCALARS|NDR_BUFFERS, r->first_object));
2918                 }
2919                 if (r->linked_attributes) {
2920                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->linked_attributes_count));
2921                         for (cntr_linked_attributes_1 = 0; cntr_linked_attributes_1 < r->linked_attributes_count; cntr_linked_attributes_1++) {
2922                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaLinkedAttribute(ndr, NDR_SCALARS, &r->linked_attributes[cntr_linked_attributes_1]));
2923                         }
2924                         for (cntr_linked_attributes_1 = 0; cntr_linked_attributes_1 < r->linked_attributes_count; cntr_linked_attributes_1++) {
2925                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaLinkedAttribute(ndr, NDR_BUFFERS, &r->linked_attributes[cntr_linked_attributes_1]));
2926                         }
2927                 }
2928         }
2929         return NDR_ERR_SUCCESS;
2930 }
2931
2932 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesCtr6(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNCChangesCtr6 *r)
2933 {
2934         uint32_t _ptr_naming_context;
2935         TALLOC_CTX *_mem_save_naming_context_0;
2936         uint32_t _ptr_uptodateness_vector;
2937         TALLOC_CTX *_mem_save_uptodateness_vector_0;
2938         uint32_t _ptr_first_object;
2939         TALLOC_CTX *_mem_save_first_object_0;
2940         uint32_t _ptr_linked_attributes;
2941         uint32_t cntr_linked_attributes_1;
2942         TALLOC_CTX *_mem_save_linked_attributes_0;
2943         TALLOC_CTX *_mem_save_linked_attributes_1;
2944         if (ndr_flags & NDR_SCALARS) {
2945                 NDR_CHECK(ndr_pull_align(ndr, 8));
2946                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_guid));
2947                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
2948                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_naming_context));
2949                 if (_ptr_naming_context) {
2950                         NDR_PULL_ALLOC(ndr, r->naming_context);
2951                 } else {
2952                         r->naming_context = NULL;
2953                 }
2954                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->old_highwatermark));
2955                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->new_highwatermark));
2956                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_uptodateness_vector));
2957                 if (_ptr_uptodateness_vector) {
2958                         NDR_PULL_ALLOC(ndr, r->uptodateness_vector);
2959                 } else {
2960                         r->uptodateness_vector = NULL;
2961                 }
2962                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_SCALARS, &r->mapping_ctr));
2963                 NDR_CHECK(ndr_pull_drsuapi_DsExtendedError(ndr, NDR_SCALARS, &r->extended_ret));
2964                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->object_count));
2965                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size));
2966                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_first_object));
2967                 if (_ptr_first_object) {
2968                         NDR_PULL_ALLOC(ndr, r->first_object);
2969                 } else {
2970                         r->first_object = NULL;
2971                 }
2972                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->more_data));
2973                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nc_object_count));
2974                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nc_linked_attributes_count));
2975                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->linked_attributes_count));
2976                 if (r->linked_attributes_count > 1048576) {
2977                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
2978                 }
2979                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_linked_attributes));
2980                 if (_ptr_linked_attributes) {
2981                         NDR_PULL_ALLOC(ndr, r->linked_attributes);
2982                 } else {
2983                         r->linked_attributes = NULL;
2984                 }
2985                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->drs_error));
2986                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
2987         }
2988         if (ndr_flags & NDR_BUFFERS) {
2989                 if (r->naming_context) {
2990                         _mem_save_naming_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
2991                         NDR_PULL_SET_MEM_CTX(ndr, r->naming_context, 0);
2992                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
2993                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_naming_context_0, 0);
2994                 }
2995                 if (r->uptodateness_vector) {
2996                         _mem_save_uptodateness_vector_0 = NDR_PULL_GET_MEM_CTX(ndr);
2997                         NDR_PULL_SET_MEM_CTX(ndr, r->uptodateness_vector, 0);
2998                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursor2CtrEx(ndr, NDR_SCALARS, r->uptodateness_vector));
2999                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_uptodateness_vector_0, 0);
3000                 }
3001                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_BUFFERS, &r->mapping_ctr));
3002                 if (r->first_object) {
3003                         _mem_save_first_object_0 = NDR_PULL_GET_MEM_CTX(ndr);
3004                         NDR_PULL_SET_MEM_CTX(ndr, r->first_object, 0);
3005                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectListItemEx(ndr, NDR_SCALARS|NDR_BUFFERS, r->first_object));
3006                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_first_object_0, 0);
3007                 }
3008                 if (r->linked_attributes) {
3009                         _mem_save_linked_attributes_0 = NDR_PULL_GET_MEM_CTX(ndr);
3010                         NDR_PULL_SET_MEM_CTX(ndr, r->linked_attributes, 0);
3011                         NDR_CHECK(ndr_pull_array_size(ndr, &r->linked_attributes));
3012                         NDR_PULL_ALLOC_N(ndr, r->linked_attributes, ndr_get_array_size(ndr, &r->linked_attributes));
3013                         _mem_save_linked_attributes_1 = NDR_PULL_GET_MEM_CTX(ndr);
3014                         NDR_PULL_SET_MEM_CTX(ndr, r->linked_attributes, 0);
3015                         for (cntr_linked_attributes_1 = 0; cntr_linked_attributes_1 < r->linked_attributes_count; cntr_linked_attributes_1++) {
3016                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaLinkedAttribute(ndr, NDR_SCALARS, &r->linked_attributes[cntr_linked_attributes_1]));
3017                         }
3018                         for (cntr_linked_attributes_1 = 0; cntr_linked_attributes_1 < r->linked_attributes_count; cntr_linked_attributes_1++) {
3019                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaLinkedAttribute(ndr, NDR_BUFFERS, &r->linked_attributes[cntr_linked_attributes_1]));
3020                         }
3021                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_linked_attributes_1, 0);
3022                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_linked_attributes_0, 0);
3023                 }
3024                 if (r->linked_attributes) {
3025                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->linked_attributes, r->linked_attributes_count));
3026                 }
3027         }
3028         return NDR_ERR_SUCCESS;
3029 }
3030
3031 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesCtr6(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesCtr6 *r)
3032 {
3033         uint32_t cntr_linked_attributes_1;
3034         ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesCtr6");
3035         ndr->depth++;
3036         ndr_print_GUID(ndr, "source_dsa_guid", &r->source_dsa_guid);
3037         ndr_print_GUID(ndr, "source_dsa_invocation_id", &r->source_dsa_invocation_id);
3038         ndr_print_ptr(ndr, "naming_context", r->naming_context);
3039         ndr->depth++;
3040         if (r->naming_context) {
3041                 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "naming_context", r->naming_context);
3042         }
3043         ndr->depth--;
3044         ndr_print_drsuapi_DsReplicaHighWaterMark(ndr, "old_highwatermark", &r->old_highwatermark);
3045         ndr_print_drsuapi_DsReplicaHighWaterMark(ndr, "new_highwatermark", &r->new_highwatermark);
3046         ndr_print_ptr(ndr, "uptodateness_vector", r->uptodateness_vector);
3047         ndr->depth++;
3048         if (r->uptodateness_vector) {
3049                 ndr_print_drsuapi_DsReplicaCursor2CtrEx(ndr, "uptodateness_vector", r->uptodateness_vector);
3050         }
3051         ndr->depth--;
3052         ndr_print_drsuapi_DsReplicaOIDMapping_Ctr(ndr, "mapping_ctr", &r->mapping_ctr);
3053         ndr_print_drsuapi_DsExtendedError(ndr, "extended_ret", r->extended_ret);
3054         ndr_print_uint32(ndr, "object_count", r->object_count);
3055         ndr_print_uint32(ndr, "__ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_drsuapi_DsGetNCChangesCtr6(r, ndr->iconv_convenience, ndr->flags) + 55:r->__ndr_size);
3056         ndr_print_ptr(ndr, "first_object", r->first_object);
3057         ndr->depth++;
3058         if (r->first_object) {
3059                 ndr_print_drsuapi_DsReplicaObjectListItemEx(ndr, "first_object", r->first_object);
3060         }
3061         ndr->depth--;
3062         ndr_print_uint32(ndr, "more_data", r->more_data);
3063         ndr_print_uint32(ndr, "nc_object_count", r->nc_object_count);
3064         ndr_print_uint32(ndr, "nc_linked_attributes_count", r->nc_linked_attributes_count);
3065         ndr_print_uint32(ndr, "linked_attributes_count", r->linked_attributes_count);
3066         ndr_print_ptr(ndr, "linked_attributes", r->linked_attributes);
3067         ndr->depth++;
3068         if (r->linked_attributes) {
3069                 ndr->print(ndr, "%s: ARRAY(%d)", "linked_attributes", (int)r->linked_attributes_count);
3070                 ndr->depth++;
3071                 for (cntr_linked_attributes_1=0;cntr_linked_attributes_1<r->linked_attributes_count;cntr_linked_attributes_1++) {
3072                         char *idx_1=NULL;
3073                         if (asprintf(&idx_1, "[%d]", cntr_linked_attributes_1) != -1) {
3074                                 ndr_print_drsuapi_DsReplicaLinkedAttribute(ndr, "linked_attributes", &r->linked_attributes[cntr_linked_attributes_1]);
3075                                 free(idx_1);
3076                         }
3077                 }
3078                 ndr->depth--;
3079         }
3080         ndr->depth--;
3081         ndr_print_WERROR(ndr, "drs_error", r->drs_error);
3082         ndr->depth--;
3083 }
3084
3085 _PUBLIC_ size_t ndr_size_drsuapi_DsGetNCChangesCtr6(const struct drsuapi_DsGetNCChangesCtr6 *r, struct smb_iconv_convenience *ic, int flags)
3086 {
3087         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_drsuapi_DsGetNCChangesCtr6, ic);
3088 }
3089
3090 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesCtr1TS(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetNCChangesCtr1TS *r)
3091 {
3092         if (ndr_flags & NDR_SCALARS) {
3093                 NDR_CHECK(ndr_push_align(ndr, 1));
3094                 {
3095                         struct ndr_push *_ndr_ctr1;
3096                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_ctr1, 0xFFFFFC01, -1));
3097                         NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr1(_ndr_ctr1, NDR_SCALARS|NDR_BUFFERS, &r->ctr1));
3098                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_ctr1, 0xFFFFFC01, -1));
3099                 }
3100                 NDR_CHECK(ndr_push_trailer_align(ndr, 1));
3101         }
3102         if (ndr_flags & NDR_BUFFERS) {
3103         }
3104         return NDR_ERR_SUCCESS;
3105 }
3106
3107 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesCtr1TS(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNCChangesCtr1TS *r)
3108 {
3109         if (ndr_flags & NDR_SCALARS) {
3110                 NDR_CHECK(ndr_pull_align(ndr, 1));
3111                 {
3112                         struct ndr_pull *_ndr_ctr1;
3113                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_ctr1, 0xFFFFFC01, -1));
3114                         NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr1(_ndr_ctr1, NDR_SCALARS|NDR_BUFFERS, &r->ctr1));
3115                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_ctr1, 0xFFFFFC01, -1));
3116                 }
3117                 NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
3118         }
3119         if (ndr_flags & NDR_BUFFERS) {
3120         }
3121         return NDR_ERR_SUCCESS;
3122 }
3123
3124 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesCtr1TS(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesCtr1TS *r)
3125 {
3126         ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesCtr1TS");
3127         ndr->depth++;
3128         ndr_print_drsuapi_DsGetNCChangesCtr1(ndr, "ctr1", &r->ctr1);
3129         ndr->depth--;
3130 }
3131
3132 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesCtr6TS(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetNCChangesCtr6TS *r)
3133 {
3134         if (ndr_flags & NDR_SCALARS) {
3135                 NDR_CHECK(ndr_push_align(ndr, 1));
3136                 {
3137                         struct ndr_push *_ndr_ctr6;
3138                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_ctr6, 0xFFFFFC01, -1));
3139                         NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr6(_ndr_ctr6, NDR_SCALARS|NDR_BUFFERS, &r->ctr6));
3140                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_ctr6, 0xFFFFFC01, -1));
3141                 }
3142                 NDR_CHECK(ndr_push_trailer_align(ndr, 1));
3143         }
3144         if (ndr_flags & NDR_BUFFERS) {
3145         }
3146         return NDR_ERR_SUCCESS;
3147 }
3148
3149 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesCtr6TS(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNCChangesCtr6TS *r)
3150 {
3151         if (ndr_flags & NDR_SCALARS) {
3152                 NDR_CHECK(ndr_pull_align(ndr, 1));
3153                 {
3154                         struct ndr_pull *_ndr_ctr6;
3155                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_ctr6, 0xFFFFFC01, -1));
3156                         NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr6(_ndr_ctr6, NDR_SCALARS|NDR_BUFFERS, &r->ctr6));
3157                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_ctr6, 0xFFFFFC01, -1));
3158                 }
3159                 NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
3160         }
3161         if (ndr_flags & NDR_BUFFERS) {
3162         }
3163         return NDR_ERR_SUCCESS;
3164 }
3165
3166 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesCtr6TS(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesCtr6TS *r)
3167 {
3168         ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesCtr6TS");
3169         ndr->depth++;
3170         ndr_print_drsuapi_DsGetNCChangesCtr6(ndr, "ctr6", &r->ctr6);
3171         ndr->depth--;
3172 }
3173
3174 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesMSZIPCtr1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNCChangesMSZIPCtr1 *r)
3175 {
3176         uint32_t _ptr_ts;
3177         TALLOC_CTX *_mem_save_ts_0;
3178         if (ndr_flags & NDR_SCALARS) {
3179                 NDR_CHECK(ndr_pull_align(ndr, 5));
3180                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->decompressed_length));
3181                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->compressed_length));
3182                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ts));
3183                 if (_ptr_ts) {
3184                         NDR_PULL_ALLOC(ndr, r->ts);
3185                 } else {
3186                         r->ts = NULL;
3187                 }
3188                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3189         }
3190         if (ndr_flags & NDR_BUFFERS) {
3191                 if (r->ts) {
3192                         _mem_save_ts_0 = NDR_PULL_GET_MEM_CTX(ndr);
3193                         NDR_PULL_SET_MEM_CTX(ndr, r->ts, 0);
3194                         {
3195                                 struct ndr_pull *_ndr_ts;
3196                                 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_ts, 4, r->compressed_length));
3197                                 {
3198                                         struct ndr_pull *_ndr_ts_compressed;
3199                                         NDR_CHECK(ndr_pull_compression_start(_ndr_ts, &_ndr_ts_compressed, NDR_COMPRESSION_MSZIP, r->decompressed_length));
3200                                         NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr1TS(_ndr_ts_compressed, NDR_SCALARS|NDR_BUFFERS, r->ts));
3201                                         NDR_CHECK(ndr_pull_compression_end(_ndr_ts, _ndr_ts_compressed, NDR_COMPRESSION_MSZIP, r->decompressed_length));
3202                                 }
3203                                 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_ts, 4, r->compressed_length));
3204                         }
3205                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ts_0, 0);
3206                 }
3207         }
3208         return NDR_ERR_SUCCESS;
3209 }
3210
3211 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesMSZIPCtr1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesMSZIPCtr1 *r)
3212 {
3213         ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesMSZIPCtr1");
3214         ndr->depth++;
3215         ndr_print_uint32(ndr, "decompressed_length", r->decompressed_length);
3216         ndr_print_uint32(ndr, "compressed_length", r->compressed_length);
3217         ndr_print_ptr(ndr, "ts", r->ts);
3218         ndr->depth++;
3219         if (r->ts) {
3220                 ndr_print_drsuapi_DsGetNCChangesCtr1TS(ndr, "ts", r->ts);
3221         }
3222         ndr->depth--;
3223         ndr->depth--;
3224 }
3225
3226 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesMSZIPCtr6(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNCChangesMSZIPCtr6 *r)
3227 {
3228         uint32_t _ptr_ts;
3229         TALLOC_CTX *_mem_save_ts_0;
3230         if (ndr_flags & NDR_SCALARS) {
3231                 NDR_CHECK(ndr_pull_align(ndr, 5));
3232                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->decompressed_length));
3233                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->compressed_length));
3234                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ts));
3235                 if (_ptr_ts) {
3236                         NDR_PULL_ALLOC(ndr, r->ts);
3237                 } else {
3238                         r->ts = NULL;
3239                 }
3240                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3241         }
3242         if (ndr_flags & NDR_BUFFERS) {
3243                 if (r->ts) {
3244                         _mem_save_ts_0 = NDR_PULL_GET_MEM_CTX(ndr);
3245                         NDR_PULL_SET_MEM_CTX(ndr, r->ts, 0);
3246                         {
3247                                 struct ndr_pull *_ndr_ts;
3248                                 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_ts, 4, r->compressed_length));
3249                                 {
3250                                         struct ndr_pull *_ndr_ts_compressed;
3251                                         NDR_CHECK(ndr_pull_compression_start(_ndr_ts, &_ndr_ts_compressed, NDR_COMPRESSION_MSZIP, r->decompressed_length));
3252                                         NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr6TS(_ndr_ts_compressed, NDR_SCALARS|NDR_BUFFERS, r->ts));
3253                                         NDR_CHECK(ndr_pull_compression_end(_ndr_ts, _ndr_ts_compressed, NDR_COMPRESSION_MSZIP, r->decompressed_length));
3254                                 }
3255                                 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_ts, 4, r->compressed_length));
3256                         }
3257                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ts_0, 0);
3258                 }
3259         }
3260         return NDR_ERR_SUCCESS;
3261 }
3262
3263 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesMSZIPCtr6(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesMSZIPCtr6 *r)
3264 {
3265         ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesMSZIPCtr6");
3266         ndr->depth++;
3267         ndr_print_uint32(ndr, "decompressed_length", r->decompressed_length);
3268         ndr_print_uint32(ndr, "compressed_length", r->compressed_length);
3269         ndr_print_ptr(ndr, "ts", r->ts);
3270         ndr->depth++;
3271         if (r->ts) {
3272                 ndr_print_drsuapi_DsGetNCChangesCtr6TS(ndr, "ts", r->ts);
3273         }
3274         ndr->depth--;
3275         ndr->depth--;
3276 }
3277
3278 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesXPRESSCtr1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNCChangesXPRESSCtr1 *r)
3279 {
3280         uint32_t _ptr_ts;
3281         TALLOC_CTX *_mem_save_ts_0;
3282         if (ndr_flags & NDR_SCALARS) {
3283                 NDR_CHECK(ndr_pull_align(ndr, 5));
3284                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->decompressed_length));
3285                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->compressed_length));
3286                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ts));
3287                 if (_ptr_ts) {
3288                         NDR_PULL_ALLOC(ndr, r->ts);
3289                 } else {
3290                         r->ts = NULL;
3291                 }
3292                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3293         }
3294         if (ndr_flags & NDR_BUFFERS) {
3295                 if (r->ts) {
3296                         _mem_save_ts_0 = NDR_PULL_GET_MEM_CTX(ndr);
3297                         NDR_PULL_SET_MEM_CTX(ndr, r->ts, 0);
3298                         {
3299                                 struct ndr_pull *_ndr_ts;
3300                                 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_ts, 4, r->compressed_length));
3301                                 {
3302                                         struct ndr_pull *_ndr_ts_compressed;
3303                                         NDR_CHECK(ndr_pull_compression_start(_ndr_ts, &_ndr_ts_compressed, NDR_COMPRESSION_XPRESS, r->decompressed_length));
3304                                         NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr1TS(_ndr_ts_compressed, NDR_SCALARS|NDR_BUFFERS, r->ts));
3305                                         NDR_CHECK(ndr_pull_compression_end(_ndr_ts, _ndr_ts_compressed, NDR_COMPRESSION_XPRESS, r->decompressed_length));
3306                                 }
3307                                 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_ts, 4, r->compressed_length));
3308                         }
3309                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ts_0, 0);
3310                 }
3311         }
3312         return NDR_ERR_SUCCESS;
3313 }
3314
3315 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesXPRESSCtr1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesXPRESSCtr1 *r)
3316 {
3317         ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesXPRESSCtr1");
3318         ndr->depth++;
3319         ndr_print_uint32(ndr, "decompressed_length", r->decompressed_length);
3320         ndr_print_uint32(ndr, "compressed_length", r->compressed_length);
3321         ndr_print_ptr(ndr, "ts", r->ts);
3322         ndr->depth++;
3323         if (r->ts) {
3324                 ndr_print_drsuapi_DsGetNCChangesCtr1TS(ndr, "ts", r->ts);
3325         }
3326         ndr->depth--;
3327         ndr->depth--;
3328 }
3329
3330 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesXPRESSCtr6(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNCChangesXPRESSCtr6 *r)
3331 {
3332         uint32_t _ptr_ts;
3333         TALLOC_CTX *_mem_save_ts_0;
3334         if (ndr_flags & NDR_SCALARS) {
3335                 NDR_CHECK(ndr_pull_align(ndr, 5));
3336                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->decompressed_length));
3337                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->compressed_length));
3338                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ts));
3339                 if (_ptr_ts) {
3340                         NDR_PULL_ALLOC(ndr, r->ts);
3341                 } else {
3342                         r->ts = NULL;
3343                 }
3344                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3345         }
3346         if (ndr_flags & NDR_BUFFERS) {
3347                 if (r->ts) {
3348                         _mem_save_ts_0 = NDR_PULL_GET_MEM_CTX(ndr);
3349                         NDR_PULL_SET_MEM_CTX(ndr, r->ts, 0);
3350                         {
3351                                 struct ndr_pull *_ndr_ts;
3352                                 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_ts, 4, r->compressed_length));
3353                                 {
3354                                         struct ndr_pull *_ndr_ts_compressed;
3355                                         NDR_CHECK(ndr_pull_compression_start(_ndr_ts, &_ndr_ts_compressed, NDR_COMPRESSION_XPRESS, r->decompressed_length));
3356                                         NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr6TS(_ndr_ts_compressed, NDR_SCALARS|NDR_BUFFERS, r->ts));
3357                                         NDR_CHECK(ndr_pull_compression_end(_ndr_ts, _ndr_ts_compressed, NDR_COMPRESSION_XPRESS, r->decompressed_length));
3358                                 }
3359                                 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_ts, 4, r->compressed_length));
3360                         }
3361                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ts_0, 0);
3362                 }
3363         }
3364         return NDR_ERR_SUCCESS;
3365 }
3366
3367 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesXPRESSCtr6(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesXPRESSCtr6 *r)
3368 {
3369         ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesXPRESSCtr6");
3370         ndr->depth++;
3371         ndr_print_uint32(ndr, "decompressed_length", r->decompressed_length);
3372         ndr_print_uint32(ndr, "compressed_length", r->compressed_length);
3373         ndr_print_ptr(ndr, "ts", r->ts);
3374         ndr->depth++;
3375         if (r->ts) {
3376                 ndr_print_drsuapi_DsGetNCChangesCtr6TS(ndr, "ts", r->ts);
3377         }
3378         ndr->depth--;
3379         ndr->depth--;
3380 }
3381
3382 static enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesCompressionType(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsGetNCChangesCompressionType r)
3383 {
3384         NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
3385         return NDR_ERR_SUCCESS;
3386 }
3387
3388 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesCompressionType(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsGetNCChangesCompressionType *r)
3389 {
3390         uint16_t v;
3391         NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
3392         *r = v;
3393         return NDR_ERR_SUCCESS;
3394 }
3395
3396 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesCompressionType(struct ndr_print *ndr, const char *name, enum drsuapi_DsGetNCChangesCompressionType r)
3397 {
3398         const char *val = NULL;
3399
3400         switch (r) {
3401                 case DRSUAPI_COMPRESSION_TYPE_MSZIP: val = "DRSUAPI_COMPRESSION_TYPE_MSZIP"; break;
3402                 case DRSUAPI_COMPRESSION_TYPE_XPRESS: val = "DRSUAPI_COMPRESSION_TYPE_XPRESS"; break;
3403         }
3404         ndr_print_enum(ndr, name, "ENUM", val, r);
3405 }
3406
3407 static enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesCompressedCtr(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsGetNCChangesCompressedCtr *r)
3408 {
3409         {
3410                 uint32_t _flags_save_UNION = ndr->flags;
3411                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
3412                 if (ndr_flags & NDR_SCALARS) {
3413                         int level = ndr_push_get_switch_value(ndr, r);
3414                         NDR_CHECK(ndr_push_union_align(ndr, 5));
3415                         switch (level) {
3416                                 case 1|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16): {
3417                                         NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesMSZIPCtr1(ndr, NDR_SCALARS, &r->mszip1));
3418                                 break; }
3419
3420                                 case 6|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16): {
3421                                         NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesMSZIPCtr6(ndr, NDR_SCALARS, &r->mszip6));
3422                                 break; }
3423
3424                                 case 1|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16): {
3425                                         NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesXPRESSCtr1(ndr, NDR_SCALARS, &r->xpress1));
3426                                 break; }
3427
3428                                 case 6|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16): {
3429                                         NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesXPRESSCtr6(ndr, NDR_SCALARS, &r->xpress6));
3430                                 break; }
3431
3432                                 default:
3433                                         return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
3434                         }
3435                 }
3436                 if (ndr_flags & NDR_BUFFERS) {
3437                         int level = ndr_push_get_switch_value(ndr, r);
3438                         switch (level) {
3439                                 case 1|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16):
3440                                         NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesMSZIPCtr1(ndr, NDR_BUFFERS, &r->mszip1));
3441                                 break;
3442
3443                                 case 6|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16):
3444                                         NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesMSZIPCtr6(ndr, NDR_BUFFERS, &r->mszip6));
3445                                 break;
3446
3447                                 case 1|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16):
3448                                         NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesXPRESSCtr1(ndr, NDR_BUFFERS, &r->xpress1));
3449                                 break;
3450
3451                                 case 6|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16):
3452                                         NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesXPRESSCtr6(ndr, NDR_BUFFERS, &r->xpress6));
3453                                 break;
3454
3455                                 default:
3456                                         return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
3457                         }
3458                 }
3459                 ndr->flags = _flags_save_UNION;
3460         }
3461         return NDR_ERR_SUCCESS;
3462 }
3463
3464 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesCompressedCtr(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsGetNCChangesCompressedCtr *r)
3465 {
3466         int level;
3467         {
3468                 uint32_t _flags_save_UNION = ndr->flags;
3469                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
3470                 level = ndr_pull_get_switch_value(ndr, r);
3471                 if (ndr_flags & NDR_SCALARS) {
3472                         NDR_CHECK(ndr_pull_union_align(ndr, 5));
3473                         switch (level) {
3474                                 case 1|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16): {
3475                                         NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesMSZIPCtr1(ndr, NDR_SCALARS, &r->mszip1));
3476                                 break; }
3477
3478                                 case 6|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16): {
3479                                         NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesMSZIPCtr6(ndr, NDR_SCALARS, &r->mszip6));
3480                                 break; }
3481
3482                                 case 1|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16): {
3483                                         NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesXPRESSCtr1(ndr, NDR_SCALARS, &r->xpress1));
3484                                 break; }
3485
3486                                 case 6|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16): {
3487                                         NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesXPRESSCtr6(ndr, NDR_SCALARS, &r->xpress6));
3488                                 break; }
3489
3490                                 default:
3491                                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
3492                         }
3493                 }
3494                 if (ndr_flags & NDR_BUFFERS) {
3495                         switch (level) {
3496                                 case 1|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16):
3497                                         NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesMSZIPCtr1(ndr, NDR_BUFFERS, &r->mszip1));
3498                                 break;
3499
3500                                 case 6|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16):
3501                                         NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesMSZIPCtr6(ndr, NDR_BUFFERS, &r->mszip6));
3502                                 break;
3503
3504                                 case 1|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16):
3505                                         NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesXPRESSCtr1(ndr, NDR_BUFFERS, &r->xpress1));
3506                                 break;
3507
3508                                 case 6|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16):
3509                                         NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesXPRESSCtr6(ndr, NDR_BUFFERS, &r->xpress6));
3510                                 break;
3511
3512                                 default:
3513                                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
3514                         }
3515                 }
3516                 ndr->flags = _flags_save_UNION;
3517         }
3518         return NDR_ERR_SUCCESS;
3519 }
3520
3521 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesCompressedCtr(struct ndr_print *ndr, const char *name, const union drsuapi_DsGetNCChangesCompressedCtr *r)
3522 {
3523         int level;
3524         {
3525                 uint32_t _flags_save_UNION = ndr->flags;
3526                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
3527                 level = ndr_print_get_switch_value(ndr, r);
3528                 ndr_print_union(ndr, name, level, "drsuapi_DsGetNCChangesCompressedCtr");
3529                 switch (level) {
3530                         case 1|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16):
3531                                 ndr_print_drsuapi_DsGetNCChangesMSZIPCtr1(ndr, "mszip1", &r->mszip1);
3532                         break;
3533
3534                         case 6|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16):
3535                                 ndr_print_drsuapi_DsGetNCChangesMSZIPCtr6(ndr, "mszip6", &r->mszip6);
3536                         break;
3537
3538                         case 1|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16):
3539                                 ndr_print_drsuapi_DsGetNCChangesXPRESSCtr1(ndr, "xpress1", &r->xpress1);
3540                         break;
3541
3542                         case 6|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16):
3543                                 ndr_print_drsuapi_DsGetNCChangesXPRESSCtr6(ndr, "xpress6", &r->xpress6);
3544                         break;
3545
3546                         default:
3547                                 ndr_print_bad_level(ndr, name, level);
3548                 }
3549                 ndr->flags = _flags_save_UNION;
3550         }
3551 }
3552
3553 static enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesCtr2(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetNCChangesCtr2 *r)
3554 {
3555         if (ndr_flags & NDR_SCALARS) {
3556                 NDR_CHECK(ndr_push_align(ndr, 5));
3557                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesMSZIPCtr1(ndr, NDR_SCALARS, &r->mszip1));
3558                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
3559         }
3560         if (ndr_flags & NDR_BUFFERS) {
3561                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesMSZIPCtr1(ndr, NDR_BUFFERS, &r->mszip1));
3562         }
3563         return NDR_ERR_SUCCESS;
3564 }
3565
3566 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesCtr2(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNCChangesCtr2 *r)
3567 {
3568         if (ndr_flags & NDR_SCALARS) {
3569                 NDR_CHECK(ndr_pull_align(ndr, 5));
3570                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesMSZIPCtr1(ndr, NDR_SCALARS, &r->mszip1));
3571                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3572         }
3573         if (ndr_flags & NDR_BUFFERS) {
3574                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesMSZIPCtr1(ndr, NDR_BUFFERS, &r->mszip1));
3575         }
3576         return NDR_ERR_SUCCESS;
3577 }
3578
3579 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesCtr2(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesCtr2 *r)
3580 {
3581         ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesCtr2");
3582         ndr->depth++;
3583         ndr_print_drsuapi_DsGetNCChangesMSZIPCtr1(ndr, "mszip1", &r->mszip1);
3584         ndr->depth--;
3585 }
3586
3587 static enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesCtr7(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetNCChangesCtr7 *r)
3588 {
3589         if (ndr_flags & NDR_SCALARS) {
3590                 NDR_CHECK(ndr_push_align(ndr, 5));
3591                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
3592                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCompressionType(ndr, NDR_SCALARS, r->type));
3593                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->ctr, r->level | (r->type << 16)));
3594                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCompressedCtr(ndr, NDR_SCALARS, &r->ctr));
3595                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
3596         }
3597         if (ndr_flags & NDR_BUFFERS) {
3598                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCompressedCtr(ndr, NDR_BUFFERS, &r->ctr));
3599         }
3600         return NDR_ERR_SUCCESS;
3601 }
3602
3603 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesCtr7(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNCChangesCtr7 *r)
3604 {
3605         if (ndr_flags & NDR_SCALARS) {
3606                 NDR_CHECK(ndr_pull_align(ndr, 5));
3607                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
3608                 if (r->level > 6) {
3609                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
3610                 }
3611                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCompressionType(ndr, NDR_SCALARS, &r->type));
3612                 if (r->type < 2 || r->type > 3) {
3613                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
3614                 }
3615                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->ctr, r->level | (r->type << 16)));
3616                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCompressedCtr(ndr, NDR_SCALARS, &r->ctr));
3617                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3618         }
3619         if (ndr_flags & NDR_BUFFERS) {
3620                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCompressedCtr(ndr, NDR_BUFFERS, &r->ctr));
3621         }
3622         return NDR_ERR_SUCCESS;
3623 }
3624
3625 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesCtr7(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesCtr7 *r)
3626 {
3627         ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesCtr7");
3628         ndr->depth++;
3629         ndr_print_uint32(ndr, "level", r->level);
3630         ndr_print_drsuapi_DsGetNCChangesCompressionType(ndr, "type", r->type);
3631         ndr_print_set_switch_value(ndr, &r->ctr, r->level | (r->type << 16));
3632         ndr_print_drsuapi_DsGetNCChangesCompressedCtr(ndr, "ctr", &r->ctr);
3633         ndr->depth--;
3634 }
3635
3636 static enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesCtr(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsGetNCChangesCtr *r)
3637 {
3638         if (ndr_flags & NDR_SCALARS) {
3639                 int level = ndr_push_get_switch_value(ndr, r);
3640                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
3641                 NDR_CHECK(ndr_push_union_align(ndr, 8));
3642                 switch (level) {
3643                         case 1: {
3644                                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr1(ndr, NDR_SCALARS, &r->ctr1));
3645                         break; }
3646
3647                         case 2: {
3648                                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr2(ndr, NDR_SCALARS, &r->ctr2));
3649                         break; }
3650
3651                         case 6: {
3652                                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr6(ndr, NDR_SCALARS, &r->ctr6));
3653                         break; }
3654
3655                         case 7: {
3656                                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr7(ndr, NDR_SCALARS, &r->ctr7));
3657                         break; }
3658
3659                         default:
3660                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
3661                 }
3662         }
3663         if (ndr_flags & NDR_BUFFERS) {
3664                 int level = ndr_push_get_switch_value(ndr, r);
3665                 switch (level) {
3666                         case 1:
3667                                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr1(ndr, NDR_BUFFERS, &r->ctr1));
3668                         break;
3669
3670                         case 2:
3671                                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr2(ndr, NDR_BUFFERS, &r->ctr2));
3672                         break;
3673
3674                         case 6:
3675                                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr6(ndr, NDR_BUFFERS, &r->ctr6));
3676                         break;
3677
3678                         case 7:
3679                                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr7(ndr, NDR_BUFFERS, &r->ctr7));
3680                         break;
3681
3682                         default:
3683                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
3684                 }
3685         }
3686         return NDR_ERR_SUCCESS;
3687 }
3688
3689 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesCtr(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsGetNCChangesCtr *r)
3690 {
3691         int level;
3692         uint32_t _level;
3693         level = ndr_pull_get_switch_value(ndr, r);
3694         if (ndr_flags & NDR_SCALARS) {
3695                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
3696                 if (_level != level) {
3697                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
3698                 }
3699                 NDR_CHECK(ndr_pull_union_align(ndr, 8));
3700                 switch (level) {
3701                         case 1: {
3702                                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr1(ndr, NDR_SCALARS, &r->ctr1));
3703                         break; }
3704
3705                         case 2: {
3706                                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr2(ndr, NDR_SCALARS, &r->ctr2));
3707                         break; }
3708
3709                         case 6: {
3710                                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr6(ndr, NDR_SCALARS, &r->ctr6));
3711                         break; }
3712
3713                         case 7: {
3714                                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr7(ndr, NDR_SCALARS, &r->ctr7));
3715                         break; }
3716
3717                         default:
3718                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
3719                 }
3720         }
3721         if (ndr_flags & NDR_BUFFERS) {
3722                 switch (level) {
3723                         case 1:
3724                                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr1(ndr, NDR_BUFFERS, &r->ctr1));
3725                         break;
3726
3727                         case 2:
3728                                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr2(ndr, NDR_BUFFERS, &r->ctr2));
3729                         break;
3730
3731                         case 6:
3732                                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr6(ndr, NDR_BUFFERS, &r->ctr6));
3733                         break;
3734
3735                         case 7:
3736                                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr7(ndr, NDR_BUFFERS, &r->ctr7));
3737                         break;
3738
3739                         default:
3740                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
3741                 }
3742         }
3743         return NDR_ERR_SUCCESS;
3744 }
3745
3746 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesCtr(struct ndr_print *ndr, const char *name, const union drsuapi_DsGetNCChangesCtr *r)
3747 {
3748         int level;
3749         level = ndr_print_get_switch_value(ndr, r);
3750         ndr_print_union(ndr, name, level, "drsuapi_DsGetNCChangesCtr");
3751         switch (level) {
3752                 case 1:
3753                         ndr_print_drsuapi_DsGetNCChangesCtr1(ndr, "ctr1", &r->ctr1);
3754                 break;
3755
3756                 case 2:
3757                         ndr_print_drsuapi_DsGetNCChangesCtr2(ndr, "ctr2", &r->ctr2);
3758                 break;
3759
3760                 case 6:
3761                         ndr_print_drsuapi_DsGetNCChangesCtr6(ndr, "ctr6", &r->ctr6);
3762                 break;
3763
3764                 case 7:
3765                         ndr_print_drsuapi_DsGetNCChangesCtr7(ndr, "ctr7", &r->ctr7);
3766                 break;
3767
3768                 default:
3769                         ndr_print_bad_level(ndr, name, level);
3770         }
3771 }
3772
3773 static enum ndr_err_code ndr_push_drsuapi_DsReplicaUpdateRefsRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaUpdateRefsRequest1 *r)
3774 {
3775         if (ndr_flags & NDR_SCALARS) {
3776                 NDR_CHECK(ndr_push_align(ndr, 5));
3777                 if (r->naming_context == NULL) {
3778                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3779                 }
3780                 NDR_CHECK(ndr_push_ref_ptr(ndr));
3781                 if (r->dest_dsa_dns_name == NULL) {
3782                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3783                 }
3784                 NDR_CHECK(ndr_push_ref_ptr(ndr));
3785                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->dest_dsa_guid));
3786                 NDR_CHECK(ndr_push_drsuapi_DrsOptions(ndr, NDR_SCALARS, r->options));
3787                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
3788         }
3789         if (ndr_flags & NDR_BUFFERS) {
3790                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
3791                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dest_dsa_dns_name, CH_DOS)));
3792                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
3793                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dest_dsa_dns_name, CH_DOS)));
3794                 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));
3795         }
3796         return NDR_ERR_SUCCESS;
3797 }
3798
3799 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaUpdateRefsRequest1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaUpdateRefsRequest1 *r)
3800 {
3801         uint32_t _ptr_naming_context;
3802         TALLOC_CTX *_mem_save_naming_context_0;
3803         uint32_t _ptr_dest_dsa_dns_name;
3804         if (ndr_flags & NDR_SCALARS) {
3805                 NDR_CHECK(ndr_pull_align(ndr, 5));
3806                 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_naming_context));
3807                 if (_ptr_naming_context) {
3808                         NDR_PULL_ALLOC(ndr, r->naming_context);
3809                 } else {
3810                         r->naming_context = NULL;
3811                 }
3812                 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_dest_dsa_dns_name));
3813                 if (_ptr_dest_dsa_dns_name) {
3814                         NDR_PULL_ALLOC(ndr, r->dest_dsa_dns_name);
3815                 } else {
3816                         r->dest_dsa_dns_name = NULL;
3817                 }
3818                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->dest_dsa_guid));
3819                 NDR_CHECK(ndr_pull_drsuapi_DrsOptions(ndr, NDR_SCALARS, &r->options));
3820                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3821         }
3822         if (ndr_flags & NDR_BUFFERS) {
3823                 _mem_save_naming_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
3824                 NDR_PULL_SET_MEM_CTX(ndr, r->naming_context, 0);
3825                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
3826                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_naming_context_0, 0);
3827                 NDR_CHECK(ndr_pull_array_size(ndr, &r->dest_dsa_dns_name));
3828                 NDR_CHECK(ndr_pull_array_length(ndr, &r->dest_dsa_dns_name));
3829                 if (ndr_get_array_length(ndr, &r->dest_dsa_dns_name) > ndr_get_array_size(ndr, &r->dest_dsa_dns_name)) {
3830                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dest_dsa_dns_name), ndr_get_array_length(ndr, &r->dest_dsa_dns_name));
3831                 }
3832                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dest_dsa_dns_name), sizeof(uint8_t)));
3833                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dest_dsa_dns_name, ndr_get_array_length(ndr, &r->dest_dsa_dns_name), sizeof(uint8_t), CH_DOS));
3834         }
3835         return NDR_ERR_SUCCESS;
3836 }
3837
3838 _PUBLIC_ void ndr_print_drsuapi_DsReplicaUpdateRefsRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaUpdateRefsRequest1 *r)
3839 {
3840         ndr_print_struct(ndr, name, "drsuapi_DsReplicaUpdateRefsRequest1");
3841         ndr->depth++;
3842         ndr_print_ptr(ndr, "naming_context", r->naming_context);
3843         ndr->depth++;
3844         ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "naming_context", r->naming_context);
3845         ndr->depth--;
3846         ndr_print_ptr(ndr, "dest_dsa_dns_name", r->dest_dsa_dns_name);
3847         ndr->depth++;
3848         ndr_print_string(ndr, "dest_dsa_dns_name", r->dest_dsa_dns_name);
3849         ndr->depth--;
3850         ndr_print_GUID(ndr, "dest_dsa_guid", &r->dest_dsa_guid);
3851         ndr_print_drsuapi_DrsOptions(ndr, "options", r->options);
3852         ndr->depth--;
3853 }
3854
3855 static enum ndr_err_code ndr_push_drsuapi_DsReplicaUpdateRefsRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsReplicaUpdateRefsRequest *r)
3856 {
3857         if (ndr_flags & NDR_SCALARS) {
3858                 int level = ndr_push_get_switch_value(ndr, r);
3859                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
3860                 NDR_CHECK(ndr_push_union_align(ndr, 5));
3861                 switch (level) {
3862                         case 1: {
3863                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaUpdateRefsRequest1(ndr, NDR_SCALARS, &r->req1));
3864                         break; }
3865
3866                         default:
3867                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
3868                 }
3869         }
3870         if (ndr_flags & NDR_BUFFERS) {
3871                 int level = ndr_push_get_switch_value(ndr, r);
3872                 switch (level) {
3873                         case 1:
3874                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaUpdateRefsRequest1(ndr, NDR_BUFFERS, &r->req1));
3875                         break;
3876
3877                         default:
3878                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
3879                 }
3880         }
3881         return NDR_ERR_SUCCESS;
3882 }
3883
3884 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaUpdateRefsRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsReplicaUpdateRefsRequest *r)
3885 {
3886         int level;
3887         uint32_t _level;
3888         level = ndr_pull_get_switch_value(ndr, r);
3889         if (ndr_flags & NDR_SCALARS) {
3890                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
3891                 if (_level != level) {
3892                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
3893                 }
3894                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
3895                 switch (level) {
3896                         case 1: {
3897                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaUpdateRefsRequest1(ndr, NDR_SCALARS, &r->req1));
3898                         break; }
3899
3900                         default:
3901                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
3902                 }
3903         }
3904         if (ndr_flags & NDR_BUFFERS) {
3905                 switch (level) {
3906                         case 1:
3907                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaUpdateRefsRequest1(ndr, NDR_BUFFERS, &r->req1));
3908                         break;
3909
3910                         default:
3911                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
3912                 }
3913         }
3914         return NDR_ERR_SUCCESS;
3915 }
3916
3917 _PUBLIC_ void ndr_print_drsuapi_DsReplicaUpdateRefsRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsReplicaUpdateRefsRequest *r)
3918 {
3919         int level;
3920         level = ndr_print_get_switch_value(ndr, r);
3921         ndr_print_union(ndr, name, level, "drsuapi_DsReplicaUpdateRefsRequest");
3922         switch (level) {
3923                 case 1:
3924                         ndr_print_drsuapi_DsReplicaUpdateRefsRequest1(ndr, "req1", &r->req1);
3925                 break;
3926
3927                 default:
3928                         ndr_print_bad_level(ndr, name, level);
3929         }
3930 }
3931
3932 static enum ndr_err_code ndr_push_drsuapi_DsReplicaAddRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaAddRequest1 *r)
3933 {
3934         if (ndr_flags & NDR_SCALARS) {
3935                 NDR_CHECK(ndr_push_align(ndr, 5));
3936                 if (r->naming_context == NULL) {
3937                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3938                 }
3939                 NDR_CHECK(ndr_push_ref_ptr(ndr));
3940                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->source_dsa_address));
3941                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->schedule, 84));
3942                 NDR_CHECK(ndr_push_drsuapi_DrsOptions(ndr, NDR_SCALARS, r->options));
3943                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
3944         }
3945         if (ndr_flags & NDR_BUFFERS) {
3946                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
3947                 if (r->source_dsa_address) {
3948                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->source_dsa_address, CH_UTF16)));
3949                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
3950                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->source_dsa_address, CH_UTF16)));
3951                         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));
3952                 }
3953         }
3954         return NDR_ERR_SUCCESS;
3955 }
3956
3957 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaAddRequest1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaAddRequest1 *r)
3958 {
3959         uint32_t _ptr_naming_context;
3960         TALLOC_CTX *_mem_save_naming_context_0;
3961         uint32_t _ptr_source_dsa_address;
3962         TALLOC_CTX *_mem_save_source_dsa_address_0;
3963         if (ndr_flags & NDR_SCALARS) {
3964                 NDR_CHECK(ndr_pull_align(ndr, 5));
3965                 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_naming_context));
3966                 if (_ptr_naming_context) {
3967                         NDR_PULL_ALLOC(ndr, r->naming_context);
3968                 } else {
3969                         r->naming_context = NULL;
3970                 }
3971                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_source_dsa_address));
3972                 if (_ptr_source_dsa_address) {
3973                         NDR_PULL_ALLOC(ndr, r->source_dsa_address);
3974                 } else {
3975                         r->source_dsa_address = NULL;
3976                 }
3977                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->schedule, 84));
3978                 NDR_CHECK(ndr_pull_drsuapi_DrsOptions(ndr, NDR_SCALARS, &r->options));
3979                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3980         }
3981         if (ndr_flags & NDR_BUFFERS) {
3982                 _mem_save_naming_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
3983                 NDR_PULL_SET_MEM_CTX(ndr, r->naming_context, 0);
3984                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
3985                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_naming_context_0, 0);
3986                 if (r->source_dsa_address) {
3987                         _mem_save_source_dsa_address_0 = NDR_PULL_GET_MEM_CTX(ndr);
3988                         NDR_PULL_SET_MEM_CTX(ndr, r->source_dsa_address, 0);
3989                         NDR_CHECK(ndr_pull_array_size(ndr, &r->source_dsa_address));
3990                         NDR_CHECK(ndr_pull_array_length(ndr, &r->source_dsa_address));
3991                         if (ndr_get_array_length(ndr, &r->source_dsa_address) > ndr_get_array_size(ndr, &r->source_dsa_address)) {
3992                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->source_dsa_address), ndr_get_array_length(ndr, &r->source_dsa_address));
3993                         }
3994                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->source_dsa_address), sizeof(uint16_t)));
3995                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->source_dsa_address, ndr_get_array_length(ndr, &r->source_dsa_address), sizeof(uint16_t), CH_UTF16));
3996                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_source_dsa_address_0, 0);
3997                 }
3998         }
3999         return NDR_ERR_SUCCESS;
4000 }
4001
4002 _PUBLIC_ void ndr_print_drsuapi_DsReplicaAddRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaAddRequest1 *r)
4003 {
4004         ndr_print_struct(ndr, name, "drsuapi_DsReplicaAddRequest1");
4005         ndr->depth++;
4006         ndr_print_ptr(ndr, "naming_context", r->naming_context);
4007         ndr->depth++;
4008         ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "naming_context", r->naming_context);
4009         ndr->depth--;
4010         ndr_print_ptr(ndr, "source_dsa_address", r->source_dsa_address);
4011         ndr->depth++;
4012         if (r->source_dsa_address) {
4013                 ndr_print_string(ndr, "source_dsa_address", r->source_dsa_address);
4014         }
4015         ndr->depth--;
4016         ndr_print_array_uint8(ndr, "schedule", r->schedule, 84);
4017         ndr_print_drsuapi_DrsOptions(ndr, "options", r->options);
4018         ndr->depth--;
4019 }
4020
4021 static enum ndr_err_code ndr_push_drsuapi_DsReplicaAddRequest2(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaAddRequest2 *r)
4022 {
4023         if (ndr_flags & NDR_SCALARS) {
4024                 NDR_CHECK(ndr_push_align(ndr, 5));
4025                 if (r->naming_context == NULL) {
4026                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
4027                 }
4028                 NDR_CHECK(ndr_push_ref_ptr(ndr));
4029                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->source_dsa_dn));
4030                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->transport_dn));
4031                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->source_dsa_address));
4032                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->schedule, 84));
4033                 NDR_CHECK(ndr_push_drsuapi_DrsOptions(ndr, NDR_SCALARS, r->options));
4034                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
4035         }
4036         if (ndr_flags & NDR_BUFFERS) {
4037                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
4038                 if (r->source_dsa_dn) {
4039                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->source_dsa_dn));
4040                 }
4041                 if (r->transport_dn) {
4042                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->transport_dn));
4043                 }
4044                 if (r->source_dsa_address) {
4045                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->source_dsa_address, CH_UTF16)));
4046                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
4047                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->source_dsa_address, CH_UTF16)));
4048                         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));
4049                 }
4050         }
4051         return NDR_ERR_SUCCESS;
4052 }
4053
4054 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaAddRequest2(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaAddRequest2 *r)
4055 {
4056         uint32_t _ptr_naming_context;
4057         TALLOC_CTX *_mem_save_naming_context_0;
4058         uint32_t _ptr_source_dsa_dn;
4059         TALLOC_CTX *_mem_save_source_dsa_dn_0;
4060         uint32_t _ptr_transport_dn;
4061         TALLOC_CTX *_mem_save_transport_dn_0;
4062         uint32_t _ptr_source_dsa_address;
4063         TALLOC_CTX *_mem_save_source_dsa_address_0;
4064         if (ndr_flags & NDR_SCALARS) {
4065                 NDR_CHECK(ndr_pull_align(ndr, 5));
4066                 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_naming_context));
4067                 if (_ptr_naming_context) {
4068                         NDR_PULL_ALLOC(ndr, r->naming_context);
4069                 } else {
4070                         r->naming_context = NULL;
4071                 }
4072                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_source_dsa_dn));
4073                 if (_ptr_source_dsa_dn) {
4074                         NDR_PULL_ALLOC(ndr, r->source_dsa_dn);
4075                 } else {
4076                         r->source_dsa_dn = NULL;
4077                 }
4078                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_transport_dn));
4079                 if (_ptr_transport_dn) {
4080                         NDR_PULL_ALLOC(ndr, r->transport_dn);
4081                 } else {
4082                         r->transport_dn = NULL;
4083                 }
4084                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_source_dsa_address));
4085                 if (_ptr_source_dsa_address) {
4086                         NDR_PULL_ALLOC(ndr, r->source_dsa_address);
4087                 } else {
4088                         r->source_dsa_address = NULL;
4089                 }
4090                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->schedule, 84));
4091                 NDR_CHECK(ndr_pull_drsuapi_DrsOptions(ndr, NDR_SCALARS, &r->options));
4092                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
4093         }
4094         if (ndr_flags & NDR_BUFFERS) {
4095                 _mem_save_naming_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
4096                 NDR_PULL_SET_MEM_CTX(ndr, r->naming_context, 0);
4097                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
4098                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_naming_context_0, 0);
4099                 if (r->source_dsa_dn) {
4100                         _mem_save_source_dsa_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
4101                         NDR_PULL_SET_MEM_CTX(ndr, r->source_dsa_dn, 0);
4102                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->source_dsa_dn));
4103                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_source_dsa_dn_0, 0);
4104                 }
4105                 if (r->transport_dn) {
4106                         _mem_save_transport_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
4107                         NDR_PULL_SET_MEM_CTX(ndr, r->transport_dn, 0);
4108                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->transport_dn));
4109                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_transport_dn_0, 0);
4110                 }
4111                 if (r->source_dsa_address) {
4112                         _mem_save_source_dsa_address_0 = NDR_PULL_GET_MEM_CTX(ndr);
4113                         NDR_PULL_SET_MEM_CTX(ndr, r->source_dsa_address, 0);
4114                         NDR_CHECK(ndr_pull_array_size(ndr, &r->source_dsa_address));
4115                         NDR_CHECK(ndr_pull_array_length(ndr, &r->source_dsa_address));
4116                         if (ndr_get_array_length(ndr, &r->source_dsa_address) > ndr_get_array_size(ndr, &r->source_dsa_address)) {
4117                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->source_dsa_address), ndr_get_array_length(ndr, &r->source_dsa_address));
4118                         }
4119                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->source_dsa_address), sizeof(uint16_t)));
4120                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->source_dsa_address, ndr_get_array_length(ndr, &r->source_dsa_address), sizeof(uint16_t), CH_UTF16));
4121                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_source_dsa_address_0, 0);
4122                 }
4123         }
4124         return NDR_ERR_SUCCESS;
4125 }
4126
4127 _PUBLIC_ void ndr_print_drsuapi_DsReplicaAddRequest2(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaAddRequest2 *r)
4128 {
4129         ndr_print_struct(ndr, name, "drsuapi_DsReplicaAddRequest2");
4130         ndr->depth++;
4131         ndr_print_ptr(ndr, "naming_context", r->naming_context);
4132         ndr->depth++;
4133         ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "naming_context", r->naming_context);
4134         ndr->depth--;
4135         ndr_print_ptr(ndr, "source_dsa_dn", r->source_dsa_dn);
4136         ndr->depth++;
4137         if (r->source_dsa_dn) {
4138                 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "source_dsa_dn", r->source_dsa_dn);
4139         }
4140         ndr->depth--;
4141         ndr_print_ptr(ndr, "transport_dn", r->transport_dn);
4142         ndr->depth++;
4143         if (r->transport_dn) {
4144                 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "transport_dn", r->transport_dn);
4145         }
4146         ndr->depth--;
4147         ndr_print_ptr(ndr, "source_dsa_address", r->source_dsa_address);
4148         ndr->depth++;
4149         if (r->source_dsa_address) {
4150                 ndr_print_string(ndr, "source_dsa_address", r->source_dsa_address);
4151         }
4152         ndr->depth--;
4153         ndr_print_array_uint8(ndr, "schedule", r->schedule, 84);
4154         ndr_print_drsuapi_DrsOptions(ndr, "options", r->options);
4155         ndr->depth--;
4156 }
4157
4158 static enum ndr_err_code ndr_push_drsuapi_DsReplicaAddRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsReplicaAddRequest *r)
4159 {
4160         if (ndr_flags & NDR_SCALARS) {
4161                 int level = ndr_push_get_switch_value(ndr, r);
4162                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
4163                 NDR_CHECK(ndr_push_union_align(ndr, 5));
4164                 switch (level) {
4165                         case 1: {
4166                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaAddRequest1(ndr, NDR_SCALARS, &r->req1));
4167                         break; }
4168
4169                         case 2: {
4170                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaAddRequest2(ndr, NDR_SCALARS, &r->req2));
4171                         break; }
4172
4173                         default:
4174                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4175                 }
4176         }
4177         if (ndr_flags & NDR_BUFFERS) {
4178                 int level = ndr_push_get_switch_value(ndr, r);
4179                 switch (level) {
4180                         case 1:
4181                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaAddRequest1(ndr, NDR_BUFFERS, &r->req1));
4182                         break;
4183
4184                         case 2:
4185                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaAddRequest2(ndr, NDR_BUFFERS, &r->req2));
4186                         break;
4187
4188                         default:
4189                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4190                 }
4191         }
4192         return NDR_ERR_SUCCESS;
4193 }
4194
4195 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaAddRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsReplicaAddRequest *r)
4196 {
4197         int level;
4198         uint32_t _level;
4199         level = ndr_pull_get_switch_value(ndr, r);
4200         if (ndr_flags & NDR_SCALARS) {
4201                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
4202                 if (_level != level) {
4203                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
4204                 }
4205                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
4206                 switch (level) {
4207                         case 1: {
4208                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAddRequest1(ndr, NDR_SCALARS, &r->req1));
4209                         break; }
4210
4211                         case 2: {
4212                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAddRequest2(ndr, NDR_SCALARS, &r->req2));
4213                         break; }
4214
4215                         default:
4216                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4217                 }
4218         }
4219         if (ndr_flags & NDR_BUFFERS) {
4220                 switch (level) {
4221                         case 1:
4222                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAddRequest1(ndr, NDR_BUFFERS, &r->req1));
4223                         break;
4224
4225                         case 2:
4226                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAddRequest2(ndr, NDR_BUFFERS, &r->req2));
4227                         break;
4228
4229                         default:
4230                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4231                 }
4232         }
4233         return NDR_ERR_SUCCESS;
4234 }
4235
4236 _PUBLIC_ void ndr_print_drsuapi_DsReplicaAddRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsReplicaAddRequest *r)
4237 {
4238         int level;
4239         level = ndr_print_get_switch_value(ndr, r);
4240         ndr_print_union(ndr, name, level, "drsuapi_DsReplicaAddRequest");
4241         switch (level) {
4242                 case 1:
4243                         ndr_print_drsuapi_DsReplicaAddRequest1(ndr, "req1", &r->req1);
4244                 break;
4245
4246                 case 2:
4247                         ndr_print_drsuapi_DsReplicaAddRequest2(ndr, "req2", &r->req2);
4248                 break;
4249
4250                 default:
4251                         ndr_print_bad_level(ndr, name, level);
4252         }
4253 }
4254
4255 static enum ndr_err_code ndr_push_drsuapi_DsReplicaDelRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaDelRequest1 *r)
4256 {
4257         if (ndr_flags & NDR_SCALARS) {
4258                 NDR_CHECK(ndr_push_align(ndr, 5));
4259                 if (r->naming_context == NULL) {
4260                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
4261                 }
4262                 NDR_CHECK(ndr_push_ref_ptr(ndr));
4263                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->source_dsa_address));
4264                 NDR_CHECK(ndr_push_drsuapi_DrsOptions(ndr, NDR_SCALARS, r->options));
4265                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
4266         }
4267         if (ndr_flags & NDR_BUFFERS) {
4268                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
4269                 if (r->source_dsa_address) {
4270                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->source_dsa_address, CH_UTF16)));
4271                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
4272                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->source_dsa_address, CH_UTF16)));
4273                         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));
4274                 }
4275         }
4276         return NDR_ERR_SUCCESS;
4277 }
4278
4279 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaDelRequest1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaDelRequest1 *r)
4280 {
4281         uint32_t _ptr_naming_context;
4282         TALLOC_CTX *_mem_save_naming_context_0;
4283         uint32_t _ptr_source_dsa_address;
4284         TALLOC_CTX *_mem_save_source_dsa_address_0;
4285         if (ndr_flags & NDR_SCALARS) {
4286                 NDR_CHECK(ndr_pull_align(ndr, 5));
4287                 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_naming_context));
4288                 if (_ptr_naming_context) {
4289                         NDR_PULL_ALLOC(ndr, r->naming_context);
4290                 } else {
4291                         r->naming_context = NULL;
4292                 }
4293                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_source_dsa_address));
4294                 if (_ptr_source_dsa_address) {
4295                         NDR_PULL_ALLOC(ndr, r->source_dsa_address);
4296                 } else {
4297                         r->source_dsa_address = NULL;
4298                 }
4299                 NDR_CHECK(ndr_pull_drsuapi_DrsOptions(ndr, NDR_SCALARS, &r->options));
4300                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
4301         }
4302         if (ndr_flags & NDR_BUFFERS) {
4303                 _mem_save_naming_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
4304                 NDR_PULL_SET_MEM_CTX(ndr, r->naming_context, 0);
4305                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
4306                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_naming_context_0, 0);
4307                 if (r->source_dsa_address) {
4308                         _mem_save_source_dsa_address_0 = NDR_PULL_GET_MEM_CTX(ndr);
4309                         NDR_PULL_SET_MEM_CTX(ndr, r->source_dsa_address, 0);
4310                         NDR_CHECK(ndr_pull_array_size(ndr, &r->source_dsa_address));
4311                         NDR_CHECK(ndr_pull_array_length(ndr, &r->source_dsa_address));
4312                         if (ndr_get_array_length(ndr, &r->source_dsa_address) > ndr_get_array_size(ndr, &r->source_dsa_address)) {
4313                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->source_dsa_address), ndr_get_array_length(ndr, &r->source_dsa_address));
4314                         }
4315                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->source_dsa_address), sizeof(uint16_t)));
4316                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->source_dsa_address, ndr_get_array_length(ndr, &r->source_dsa_address), sizeof(uint16_t), CH_UTF16));
4317                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_source_dsa_address_0, 0);
4318                 }
4319         }
4320         return NDR_ERR_SUCCESS;
4321 }
4322
4323 _PUBLIC_ void ndr_print_drsuapi_DsReplicaDelRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaDelRequest1 *r)
4324 {
4325         ndr_print_struct(ndr, name, "drsuapi_DsReplicaDelRequest1");
4326         ndr->depth++;
4327         ndr_print_ptr(ndr, "naming_context", r->naming_context);
4328         ndr->depth++;
4329         ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "naming_context", r->naming_context);
4330         ndr->depth--;
4331         ndr_print_ptr(ndr, "source_dsa_address", r->source_dsa_address);
4332         ndr->depth++;
4333         if (r->source_dsa_address) {
4334                 ndr_print_string(ndr, "source_dsa_address", r->source_dsa_address);
4335         }
4336         ndr->depth--;
4337         ndr_print_drsuapi_DrsOptions(ndr, "options", r->options);
4338         ndr->depth--;
4339 }
4340
4341 static enum ndr_err_code ndr_push_drsuapi_DsReplicaDelRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsReplicaDelRequest *r)
4342 {
4343         if (ndr_flags & NDR_SCALARS) {
4344                 int level = ndr_push_get_switch_value(ndr, r);
4345                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
4346                 NDR_CHECK(ndr_push_union_align(ndr, 5));
4347                 switch (level) {
4348                         case 1: {
4349                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaDelRequest1(ndr, NDR_SCALARS, &r->req1));
4350                         break; }
4351
4352                         default:
4353                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4354                 }
4355         }
4356         if (ndr_flags & NDR_BUFFERS) {
4357                 int level = ndr_push_get_switch_value(ndr, r);
4358                 switch (level) {
4359                         case 1:
4360                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaDelRequest1(ndr, NDR_BUFFERS, &r->req1));
4361                         break;
4362
4363                         default:
4364                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4365                 }
4366         }
4367         return NDR_ERR_SUCCESS;
4368 }
4369
4370 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaDelRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsReplicaDelRequest *r)
4371 {
4372         int level;
4373         uint32_t _level;
4374         level = ndr_pull_get_switch_value(ndr, r);
4375         if (ndr_flags & NDR_SCALARS) {
4376                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
4377                 if (_level != level) {
4378                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
4379                 }
4380                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
4381                 switch (level) {
4382                         case 1: {
4383                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaDelRequest1(ndr, NDR_SCALARS, &r->req1));
4384                         break; }
4385
4386                         default:
4387                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4388                 }
4389         }
4390         if (ndr_flags & NDR_BUFFERS) {
4391                 switch (level) {
4392                         case 1:
4393                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaDelRequest1(ndr, NDR_BUFFERS, &r->req1));
4394                         break;
4395
4396                         default:
4397                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4398                 }
4399         }
4400         return NDR_ERR_SUCCESS;
4401 }
4402
4403 _PUBLIC_ void ndr_print_drsuapi_DsReplicaDelRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsReplicaDelRequest *r)
4404 {
4405         int level;
4406         level = ndr_print_get_switch_value(ndr, r);
4407         ndr_print_union(ndr, name, level, "drsuapi_DsReplicaDelRequest");
4408         switch (level) {
4409                 case 1:
4410                         ndr_print_drsuapi_DsReplicaDelRequest1(ndr, "req1", &r->req1);
4411                 break;
4412
4413                 default:
4414                         ndr_print_bad_level(ndr, name, level);
4415         }
4416 }
4417
4418 static enum ndr_err_code ndr_push_drsuapi_DsReplicaModRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaModRequest1 *r)
4419 {
4420         if (ndr_flags & NDR_SCALARS) {
4421                 NDR_CHECK(ndr_push_align(ndr, 5));
4422                 if (r->naming_context == NULL) {
4423                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
4424                 }
4425                 NDR_CHECK(ndr_push_ref_ptr(ndr));
4426                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dra));
4427                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->source_dra_address));
4428                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->schedule, 84));
4429                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->replica_flags));
4430                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->modify_fields));
4431                 NDR_CHECK(ndr_push_drsuapi_DrsOptions(ndr, NDR_SCALARS, r->options));
4432                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
4433         }
4434         if (ndr_flags & NDR_BUFFERS) {
4435                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
4436                 if (r->source_dra_address) {
4437                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->source_dra_address, CH_UTF16)));
4438                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
4439                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->source_dra_address, CH_UTF16)));
4440                         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));
4441                 }
4442         }
4443         return NDR_ERR_SUCCESS;
4444 }
4445
4446 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaModRequest1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaModRequest1 *r)
4447 {
4448         uint32_t _ptr_naming_context;
4449         TALLOC_CTX *_mem_save_naming_context_0;
4450         uint32_t _ptr_source_dra_address;
4451         TALLOC_CTX *_mem_save_source_dra_address_0;
4452         if (ndr_flags & NDR_SCALARS) {
4453                 NDR_CHECK(ndr_pull_align(ndr, 5));
4454                 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_naming_context));
4455                 if (_ptr_naming_context) {
4456                         NDR_PULL_ALLOC(ndr, r->naming_context);
4457                 } else {
4458                         r->naming_context = NULL;
4459                 }
4460                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dra));
4461                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_source_dra_address));
4462                 if (_ptr_source_dra_address) {
4463                         NDR_PULL_ALLOC(ndr, r->source_dra_address);
4464                 } else {
4465                         r->source_dra_address = NULL;
4466                 }
4467                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->schedule, 84));
4468                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->replica_flags));
4469                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->modify_fields));
4470                 NDR_CHECK(ndr_pull_drsuapi_DrsOptions(ndr, NDR_SCALARS, &r->options));
4471                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
4472         }
4473         if (ndr_flags & NDR_BUFFERS) {
4474                 _mem_save_naming_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
4475                 NDR_PULL_SET_MEM_CTX(ndr, r->naming_context, 0);
4476                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
4477                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_naming_context_0, 0);
4478                 if (r->source_dra_address) {
4479                         _mem_save_source_dra_address_0 = NDR_PULL_GET_MEM_CTX(ndr);
4480                         NDR_PULL_SET_MEM_CTX(ndr, r->source_dra_address, 0);
4481                         NDR_CHECK(ndr_pull_array_size(ndr, &r->source_dra_address));
4482                         NDR_CHECK(ndr_pull_array_length(ndr, &r->source_dra_address));
4483                         if (ndr_get_array_length(ndr, &r->source_dra_address) > ndr_get_array_size(ndr, &r->source_dra_address)) {
4484                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->source_dra_address), ndr_get_array_length(ndr, &r->source_dra_address));
4485                         }
4486                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->source_dra_address), sizeof(uint16_t)));
4487                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->source_dra_address, ndr_get_array_length(ndr, &r->source_dra_address), sizeof(uint16_t), CH_UTF16));
4488                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_source_dra_address_0, 0);
4489                 }
4490         }
4491         return NDR_ERR_SUCCESS;
4492 }
4493
4494 _PUBLIC_ void ndr_print_drsuapi_DsReplicaModRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaModRequest1 *r)
4495 {
4496         ndr_print_struct(ndr, name, "drsuapi_DsReplicaModRequest1");
4497         ndr->depth++;
4498         ndr_print_ptr(ndr, "naming_context", r->naming_context);
4499         ndr->depth++;
4500         ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "naming_context", r->naming_context);
4501         ndr->depth--;
4502         ndr_print_GUID(ndr, "source_dra", &r->source_dra);
4503         ndr_print_ptr(ndr, "source_dra_address", r->source_dra_address);
4504         ndr->depth++;
4505         if (r->source_dra_address) {
4506                 ndr_print_string(ndr, "source_dra_address", r->source_dra_address);
4507         }
4508         ndr->depth--;
4509         ndr_print_array_uint8(ndr, "schedule", r->schedule, 84);
4510         ndr_print_uint32(ndr, "replica_flags", r->replica_flags);
4511         ndr_print_uint32(ndr, "modify_fields", r->modify_fields);
4512         ndr_print_drsuapi_DrsOptions(ndr, "options", r->options);
4513         ndr->depth--;
4514 }
4515
4516 static enum ndr_err_code ndr_push_drsuapi_DsReplicaModRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsReplicaModRequest *r)
4517 {
4518         if (ndr_flags & NDR_SCALARS) {
4519                 int level = ndr_push_get_switch_value(ndr, r);
4520                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
4521                 NDR_CHECK(ndr_push_union_align(ndr, 5));
4522                 switch (level) {
4523                         case 1: {
4524                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaModRequest1(ndr, NDR_SCALARS, &r->req1));
4525                         break; }
4526
4527                         default:
4528                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4529                 }
4530         }
4531         if (ndr_flags & NDR_BUFFERS) {
4532                 int level = ndr_push_get_switch_value(ndr, r);
4533                 switch (level) {
4534                         case 1:
4535                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaModRequest1(ndr, NDR_BUFFERS, &r->req1));
4536                         break;
4537
4538                         default:
4539                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4540                 }
4541         }
4542         return NDR_ERR_SUCCESS;
4543 }
4544
4545 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaModRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsReplicaModRequest *r)
4546 {
4547         int level;
4548         uint32_t _level;
4549         level = ndr_pull_get_switch_value(ndr, r);
4550         if (ndr_flags & NDR_SCALARS) {
4551                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
4552                 if (_level != level) {
4553                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
4554                 }
4555                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
4556                 switch (level) {
4557                         case 1: {
4558                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaModRequest1(ndr, NDR_SCALARS, &r->req1));
4559                         break; }
4560
4561                         default:
4562                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4563                 }
4564         }
4565         if (ndr_flags & NDR_BUFFERS) {
4566                 switch (level) {
4567                         case 1:
4568                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaModRequest1(ndr, NDR_BUFFERS, &r->req1));
4569                         break;
4570
4571                         default:
4572                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4573                 }
4574         }
4575         return NDR_ERR_SUCCESS;
4576 }
4577
4578 _PUBLIC_ void ndr_print_drsuapi_DsReplicaModRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsReplicaModRequest *r)
4579 {
4580         int level;
4581         level = ndr_print_get_switch_value(ndr, r);
4582         ndr_print_union(ndr, name, level, "drsuapi_DsReplicaModRequest");
4583         switch (level) {
4584                 case 1:
4585                         ndr_print_drsuapi_DsReplicaModRequest1(ndr, "req1", &r->req1);
4586                 break;
4587
4588                 default:
4589                         ndr_print_bad_level(ndr, name, level);
4590         }
4591 }
4592
4593 static enum ndr_err_code ndr_push_drsuapi_DsMembershipType(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsMembershipType r)
4594 {
4595         NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
4596         return NDR_ERR_SUCCESS;
4597 }
4598
4599 static enum ndr_err_code ndr_pull_drsuapi_DsMembershipType(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsMembershipType *r)
4600 {
4601         uint32_t v;
4602         NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
4603         *r = v;
4604         return NDR_ERR_SUCCESS;
4605 }
4606
4607 _PUBLIC_ void ndr_print_drsuapi_DsMembershipType(struct ndr_print *ndr, const char *name, enum drsuapi_DsMembershipType r)
4608 {
4609         const char *val = NULL;
4610
4611         switch (r) {
4612                 case DRSUAPI_DS_MEMBERSHIP_TYPE_UNIVERSAL_AND_DOMAIN_GROUPS: val = "DRSUAPI_DS_MEMBERSHIP_TYPE_UNIVERSAL_AND_DOMAIN_GROUPS"; break;
4613                 case DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_LOCAL_GROUPS: val = "DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_LOCAL_GROUPS"; break;
4614                 case DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_GROUPS: val = "DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_GROUPS"; break;
4615                 case DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_LOCAL_GROUPS2: val = "DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_LOCAL_GROUPS2"; break;
4616                 case DRSUAPI_DS_MEMBERSHIP_TYPE_UNIVERSAL_GROUPS: val = "DRSUAPI_DS_MEMBERSHIP_TYPE_UNIVERSAL_GROUPS"; break;
4617                 case DRSUAPI_DS_MEMBERSHIP_TYPE_GROUPMEMBERS: val = "DRSUAPI_DS_MEMBERSHIP_TYPE_GROUPMEMBERS"; break;
4618                 case DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_GROUPS2: val = "DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_GROUPS2"; break;
4619         }
4620         ndr_print_enum(ndr, name, "ENUM", val, r);
4621 }
4622
4623 static enum ndr_err_code ndr_push_drsuapi_DsGetMembershipsCtr1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetMembershipsCtr1 *r)
4624 {
4625         uint32_t cntr_info_array_1;
4626         uint32_t cntr_group_attrs_1;
4627         uint32_t cntr_sids_1;
4628         if (ndr_flags & NDR_SCALARS) {
4629                 NDR_CHECK(ndr_push_align(ndr, 5));
4630                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->status));
4631                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_memberships));
4632                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_sids));
4633                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info_array));
4634                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->group_attrs));
4635                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sids));
4636                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
4637         }
4638         if (ndr_flags & NDR_BUFFERS) {
4639                 if (r->info_array) {
4640                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->num_memberships));
4641                         for (cntr_info_array_1 = 0; cntr_info_array_1 < r->num_memberships; cntr_info_array_1++) {
4642                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info_array[cntr_info_array_1]));
4643                         }
4644                         for (cntr_info_array_1 = 0; cntr_info_array_1 < r->num_memberships; cntr_info_array_1++) {
4645                                 if (r->info_array[cntr_info_array_1]) {
4646                                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->info_array[cntr_info_array_1]));
4647                                 }
4648                         }
4649                 }
4650                 if (r->group_attrs) {
4651                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->num_memberships));
4652                         for (cntr_group_attrs_1 = 0; cntr_group_attrs_1 < r->num_memberships; cntr_group_attrs_1++) {
4653                                 NDR_CHECK(ndr_push_samr_GroupAttrs(ndr, NDR_SCALARS, r->group_attrs[cntr_group_attrs_1]));
4654                         }
4655                 }
4656                 if (r->sids) {
4657                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->num_sids));
4658                         for (cntr_sids_1 = 0; cntr_sids_1 < r->num_sids; cntr_sids_1++) {
4659                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sids[cntr_sids_1]));
4660                         }
4661                         for (cntr_sids_1 = 0; cntr_sids_1 < r->num_sids; cntr_sids_1++) {
4662                                 if (r->sids[cntr_sids_1]) {
4663                                         NDR_CHECK(ndr_push_dom_sid28(ndr, NDR_SCALARS|NDR_BUFFERS, r->sids[cntr_sids_1]));
4664                                 }
4665                         }
4666                 }
4667         }
4668         return NDR_ERR_SUCCESS;
4669 }
4670
4671 static enum ndr_err_code ndr_pull_drsuapi_DsGetMembershipsCtr1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetMembershipsCtr1 *r)
4672 {
4673         uint32_t _ptr_info_array;
4674         uint32_t cntr_info_array_1;
4675         TALLOC_CTX *_mem_save_info_array_0;
4676         TALLOC_CTX *_mem_save_info_array_1;
4677         TALLOC_CTX *_mem_save_info_array_2;
4678         uint32_t _ptr_group_attrs;
4679         uint32_t cntr_group_attrs_1;
4680         TALLOC_CTX *_mem_save_group_attrs_0;
4681         TALLOC_CTX *_mem_save_group_attrs_1;
4682         uint32_t _ptr_sids;
4683         uint32_t cntr_sids_1;
4684         TALLOC_CTX *_mem_save_sids_0;
4685         TALLOC_CTX *_mem_save_sids_1;
4686         TALLOC_CTX *_mem_save_sids_2;
4687         if (ndr_flags & NDR_SCALARS) {
4688                 NDR_CHECK(ndr_pull_align(ndr, 5));
4689                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->status));
4690                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_memberships));
4691                 if (r->num_memberships > 10000) {
4692                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
4693                 }
4694                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_sids));
4695                 if (r->num_sids > 10000) {
4696                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
4697                 }
4698                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info_array));
4699                 if (_ptr_info_array) {
4700                         NDR_PULL_ALLOC(ndr, r->info_array);
4701                 } else {
4702                         r->info_array = NULL;
4703                 }
4704                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_group_attrs));
4705                 if (_ptr_group_attrs) {
4706                         NDR_PULL_ALLOC(ndr, r->group_attrs);
4707                 } else {
4708                         r->group_attrs = NULL;
4709                 }
4710                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sids));
4711                 if (_ptr_sids) {
4712                         NDR_PULL_ALLOC(ndr, r->sids);
4713                 } else {
4714                         r->sids = NULL;
4715                 }
4716                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
4717         }
4718         if (ndr_flags & NDR_BUFFERS) {
4719                 if (r->info_array) {
4720                         _mem_save_info_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
4721                         NDR_PULL_SET_MEM_CTX(ndr, r->info_array, 0);
4722                         NDR_CHECK(ndr_pull_array_size(ndr, &r->info_array));
4723                         NDR_PULL_ALLOC_N(ndr, r->info_array, ndr_get_array_size(ndr, &r->info_array));
4724                         _mem_save_info_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
4725                         NDR_PULL_SET_MEM_CTX(ndr, r->info_array, 0);
4726                         for (cntr_info_array_1 = 0; cntr_info_array_1 < r->num_memberships; cntr_info_array_1++) {
4727                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info_array));
4728                                 if (_ptr_info_array) {
4729                                         NDR_PULL_ALLOC(ndr, r->info_array[cntr_info_array_1]);
4730                                 } else {
4731                                         r->info_array[cntr_info_array_1] = NULL;
4732                                 }
4733                         }
4734                         for (cntr_info_array_1 = 0; cntr_info_array_1 < r->num_memberships; cntr_info_array_1++) {
4735                                 if (r->info_array[cntr_info_array_1]) {
4736                                         _mem_save_info_array_2 = NDR_PULL_GET_MEM_CTX(ndr);
4737                                         NDR_PULL_SET_MEM_CTX(ndr, r->info_array[cntr_info_array_1], 0);
4738                                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->info_array[cntr_info_array_1]));
4739                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_array_2, 0);
4740                                 }
4741                         }
4742                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_array_1, 0);
4743                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_array_0, 0);
4744                 }
4745                 if (r->group_attrs) {
4746                         _mem_save_group_attrs_0 = NDR_PULL_GET_MEM_CTX(ndr);
4747                         NDR_PULL_SET_MEM_CTX(ndr, r->group_attrs, 0);
4748                         NDR_CHECK(ndr_pull_array_size(ndr, &r->group_attrs));
4749                         NDR_PULL_ALLOC_N(ndr, r->group_attrs, ndr_get_array_size(ndr, &r->group_attrs));
4750                         _mem_save_group_attrs_1 = NDR_PULL_GET_MEM_CTX(ndr);
4751                         NDR_PULL_SET_MEM_CTX(ndr, r->group_attrs, 0);
4752                         for (cntr_group_attrs_1 = 0; cntr_group_attrs_1 < r->num_memberships; cntr_group_attrs_1++) {
4753                                 NDR_CHECK(ndr_pull_samr_GroupAttrs(ndr, NDR_SCALARS, &r->group_attrs[cntr_group_attrs_1]));
4754                         }
4755                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_attrs_1, 0);
4756                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_attrs_0, 0);
4757                 }
4758                 if (r->sids) {
4759                         _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
4760                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
4761                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sids));
4762                         NDR_PULL_ALLOC_N(ndr, r->sids, ndr_get_array_size(ndr, &r->sids));
4763                         _mem_save_sids_1 = NDR_PULL_GET_MEM_CTX(ndr);
4764                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
4765                         for (cntr_sids_1 = 0; cntr_sids_1 < r->num_sids; cntr_sids_1++) {
4766                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sids));
4767                                 if (_ptr_sids) {
4768                                         NDR_PULL_ALLOC(ndr, r->sids[cntr_sids_1]);
4769                                 } else {
4770                                         r->sids[cntr_sids_1] = NULL;
4771                                 }
4772                         }
4773                         for (cntr_sids_1 = 0; cntr_sids_1 < r->num_sids; cntr_sids_1++) {
4774                                 if (r->sids[cntr_sids_1]) {
4775                                         _mem_save_sids_2 = NDR_PULL_GET_MEM_CTX(ndr);
4776                                         NDR_PULL_SET_MEM_CTX(ndr, r->sids[cntr_sids_1], 0);
4777                                         NDR_CHECK(ndr_pull_dom_sid28(ndr, NDR_SCALARS|NDR_BUFFERS, r->sids[cntr_sids_1]));
4778                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_2, 0);
4779                                 }
4780                         }
4781                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_1, 0);
4782                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, 0);
4783                 }
4784                 if (r->info_array) {
4785                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->info_array, r->num_memberships));
4786                 }
4787                 if (r->group_attrs) {
4788                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->group_attrs, r->num_memberships));
4789                 }
4790                 if (r->sids) {
4791                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sids, r->num_sids));
4792                 }
4793         }
4794         return NDR_ERR_SUCCESS;
4795 }
4796
4797 _PUBLIC_ void ndr_print_drsuapi_DsGetMembershipsCtr1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetMembershipsCtr1 *r)
4798 {
4799         uint32_t cntr_info_array_1;
4800         uint32_t cntr_group_attrs_1;
4801         uint32_t cntr_sids_1;
4802         ndr_print_struct(ndr, name, "drsuapi_DsGetMembershipsCtr1");
4803         ndr->depth++;
4804         ndr_print_NTSTATUS(ndr, "status", r->status);
4805         ndr_print_uint32(ndr, "num_memberships", r->num_memberships);
4806         ndr_print_uint32(ndr, "num_sids", r->num_sids);
4807         ndr_print_ptr(ndr, "info_array", r->info_array);
4808         ndr->depth++;
4809         if (r->info_array) {
4810                 ndr->print(ndr, "%s: ARRAY(%d)", "info_array", (int)r->num_memberships);
4811                 ndr->depth++;
4812                 for (cntr_info_array_1=0;cntr_info_array_1<r->num_memberships;cntr_info_array_1++) {
4813                         char *idx_1=NULL;
4814                         if (asprintf(&idx_1, "[%d]", cntr_info_array_1) != -1) {
4815                                 ndr_print_ptr(ndr, "info_array", r->info_array[cntr_info_array_1]);
4816                                 ndr->depth++;
4817                                 if (r->info_array[cntr_info_array_1]) {
4818                                         ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "info_array", r->info_array[cntr_info_array_1]);
4819                                 }
4820                                 ndr->depth--;
4821                                 free(idx_1);
4822                         }
4823                 }
4824                 ndr->depth--;
4825         }
4826         ndr->depth--;
4827         ndr_print_ptr(ndr, "group_attrs", r->group_attrs);
4828         ndr->depth++;
4829         if (r->group_attrs) {
4830                 ndr->print(ndr, "%s: ARRAY(%d)", "group_attrs", (int)r->num_memberships);
4831                 ndr->depth++;
4832                 for (cntr_group_attrs_1=0;cntr_group_attrs_1<r->num_memberships;cntr_group_attrs_1++) {
4833                         char *idx_1=NULL;
4834                         if (asprintf(&idx_1, "[%d]", cntr_group_attrs_1) != -1) {
4835                                 ndr_print_samr_GroupAttrs(ndr, "group_attrs", r->group_attrs[cntr_group_attrs_1]);
4836                                 free(idx_1);
4837                         }
4838                 }
4839                 ndr->depth--;
4840         }
4841         ndr->depth--;
4842         ndr_print_ptr(ndr, "sids", r->sids);
4843         ndr->depth++;
4844         if (r->sids) {
4845                 ndr->print(ndr, "%s: ARRAY(%d)", "sids", (int)r->num_sids);
4846                 ndr->depth++;
4847                 for (cntr_sids_1=0;cntr_sids_1<r->num_sids;cntr_sids_1++) {
4848                         char *idx_1=NULL;
4849                         if (asprintf(&idx_1, "[%d]", cntr_sids_1) != -1) {
4850                                 ndr_print_ptr(ndr, "sids", r->sids[cntr_sids_1]);
4851                                 ndr->depth++;
4852                                 if (r->sids[cntr_sids_1]) {
4853                                         ndr_print_dom_sid28(ndr, "sids", r->sids[cntr_sids_1]);
4854                                 }
4855                                 ndr->depth--;
4856                                 free(idx_1);
4857                         }
4858                 }
4859                 ndr->depth--;
4860         }
4861         ndr->depth--;
4862         ndr->depth--;
4863 }
4864
4865 static enum ndr_err_code ndr_push_drsuapi_DsGetMembershipsCtr(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsGetMembershipsCtr *r)
4866 {
4867         if (ndr_flags & NDR_SCALARS) {
4868                 int level = ndr_push_get_switch_value(ndr, r);
4869                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
4870                 NDR_CHECK(ndr_push_union_align(ndr, 5));
4871                 switch (level) {
4872                         case 1: {
4873                                 NDR_CHECK(ndr_push_drsuapi_DsGetMembershipsCtr1(ndr, NDR_SCALARS, &r->ctr1));
4874                         break; }
4875
4876                         default:
4877                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4878                 }
4879         }
4880         if (ndr_flags & NDR_BUFFERS) {
4881                 int level = ndr_push_get_switch_value(ndr, r);
4882                 switch (level) {
4883                         case 1:
4884                                 NDR_CHECK(ndr_push_drsuapi_DsGetMembershipsCtr1(ndr, NDR_BUFFERS, &r->ctr1));
4885                         break;
4886
4887                         default:
4888                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4889                 }
4890         }
4891         return NDR_ERR_SUCCESS;
4892 }
4893
4894 static enum ndr_err_code ndr_pull_drsuapi_DsGetMembershipsCtr(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsGetMembershipsCtr *r)
4895 {
4896         int level;
4897         uint32_t _level;
4898         level = ndr_pull_get_switch_value(ndr, r);
4899         if (ndr_flags & NDR_SCALARS) {
4900                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
4901                 if (_level != level) {
4902                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
4903                 }
4904                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
4905                 switch (level) {
4906                         case 1: {
4907                                 NDR_CHECK(ndr_pull_drsuapi_DsGetMembershipsCtr1(ndr, NDR_SCALARS, &r->ctr1));
4908                         break; }
4909
4910                         default:
4911                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4912                 }
4913         }
4914         if (ndr_flags & NDR_BUFFERS) {
4915                 switch (level) {
4916                         case 1:
4917                                 NDR_CHECK(ndr_pull_drsuapi_DsGetMembershipsCtr1(ndr, NDR_BUFFERS, &r->ctr1));
4918                         break;
4919
4920                         default:
4921                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4922                 }
4923         }
4924         return NDR_ERR_SUCCESS;
4925 }
4926
4927 _PUBLIC_ void ndr_print_drsuapi_DsGetMembershipsCtr(struct ndr_print *ndr, const char *name, const union drsuapi_DsGetMembershipsCtr *r)
4928 {
4929         int level;
4930         level = ndr_print_get_switch_value(ndr, r);
4931         ndr_print_union(ndr, name, level, "drsuapi_DsGetMembershipsCtr");
4932         switch (level) {
4933                 case 1:
4934                         ndr_print_drsuapi_DsGetMembershipsCtr1(ndr, "ctr1", &r->ctr1);
4935                 break;
4936
4937                 default:
4938                         ndr_print_bad_level(ndr, name, level);
4939         }
4940 }
4941
4942 static enum ndr_err_code ndr_push_drsuapi_DsGetMembershipsRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetMembershipsRequest1 *r)
4943 {
4944         uint32_t cntr_info_array_1;
4945         if (ndr_flags & NDR_SCALARS) {
4946                 NDR_CHECK(ndr_push_align(ndr, 5));
4947                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
4948                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info_array));
4949                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
4950                 NDR_CHECK(ndr_push_drsuapi_DsMembershipType(ndr, NDR_SCALARS, r->type));
4951                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
4952                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
4953         }
4954         if (ndr_flags & NDR_BUFFERS) {
4955                 if (r->info_array) {
4956                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
4957                         for (cntr_info_array_1 = 0; cntr_info_array_1 < r->count; cntr_info_array_1++) {
4958                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info_array[cntr_info_array_1]));
4959                         }
4960                         for (cntr_info_array_1 = 0; cntr_info_array_1 < r->count; cntr_info_array_1++) {
4961                                 if (r->info_array[cntr_info_array_1]) {
4962                                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->info_array[cntr_info_array_1]));
4963                                 }
4964                         }
4965                 }
4966                 if (r->domain) {
4967                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain));
4968                 }
4969         }
4970         return NDR_ERR_SUCCESS;
4971 }
4972
4973 static enum ndr_err_code ndr_pull_drsuapi_DsGetMembershipsRequest1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetMembershipsRequest1 *r)
4974 {
4975         uint32_t _ptr_info_array;
4976         uint32_t cntr_info_array_1;
4977         TALLOC_CTX *_mem_save_info_array_0;
4978         TALLOC_CTX *_mem_save_info_array_1;
4979         TALLOC_CTX *_mem_save_info_array_2;
4980         uint32_t _ptr_domain;
4981         TALLOC_CTX *_mem_save_domain_0;
4982         if (ndr_flags & NDR_SCALARS) {
4983                 NDR_CHECK(ndr_pull_align(ndr, 5));
4984                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
4985                 if (r->count < 1 || r->count > 10000) {
4986                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
4987                 }
4988                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info_array));
4989                 if (_ptr_info_array) {
4990                         NDR_PULL_ALLOC(ndr, r->info_array);
4991                 } else {
4992                         r->info_array = NULL;
4993                 }
4994                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
4995                 NDR_CHECK(ndr_pull_drsuapi_DsMembershipType(ndr, NDR_SCALARS, &r->type));
4996                 if (r->type < 1 || r->type > 7) {
4997                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
4998                 }
4999                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
5000                 if (_ptr_domain) {
5001                         NDR_PULL_ALLOC(ndr, r->domain);
5002                 } else {
5003                         r->domain = NULL;
5004                 }
5005                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
5006         }
5007         if (ndr_flags & NDR_BUFFERS) {
5008                 if (r->info_array) {
5009                         _mem_save_info_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
5010                         NDR_PULL_SET_MEM_CTX(ndr, r->info_array, 0);
5011                         NDR_CHECK(ndr_pull_array_size(ndr, &r->info_array));
5012                         NDR_PULL_ALLOC_N(ndr, r->info_array, ndr_get_array_size(ndr, &r->info_array));
5013                         _mem_save_info_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
5014                         NDR_PULL_SET_MEM_CTX(ndr, r->info_array, 0);
5015                         for (cntr_info_array_1 = 0; cntr_info_array_1 < r->count; cntr_info_array_1++) {
5016                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info_array));
5017                                 if (_ptr_info_array) {
5018                                         NDR_PULL_ALLOC(ndr, r->info_array[cntr_info_array_1]);
5019                                 } else {
5020                                         r->info_array[cntr_info_array_1] = NULL;
5021                                 }
5022                         }
5023                         for (cntr_info_array_1 = 0; cntr_info_array_1 < r->count; cntr_info_array_1++) {
5024                                 if (r->info_array[cntr_info_array_1]) {
5025                                         _mem_save_info_array_2 = NDR_PULL_GET_MEM_CTX(ndr);
5026                                         NDR_PULL_SET_MEM_CTX(ndr, r->info_array[cntr_info_array_1], 0);
5027                                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->info_array[cntr_info_array_1]));
5028                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_array_2, 0);
5029                                 }
5030                         }
5031                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_array_1, 0);
5032                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_array_0, 0);
5033                 }
5034                 if (r->domain) {
5035                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
5036                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
5037                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain));
5038                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
5039                 }
5040                 if (r->info_array) {
5041                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->info_array, r->count));
5042                 }
5043         }
5044         return NDR_ERR_SUCCESS;
5045 }
5046
5047 _PUBLIC_ void ndr_print_drsuapi_DsGetMembershipsRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetMembershipsRequest1 *r)
5048 {
5049         uint32_t cntr_info_array_1;
5050         ndr_print_struct(ndr, name, "drsuapi_DsGetMembershipsRequest1");
5051         ndr->depth++;
5052         ndr_print_uint32(ndr, "count", r->count);
5053         ndr_print_ptr(ndr, "info_array", r->info_array);
5054         ndr->depth++;
5055         if (r->info_array) {
5056                 ndr->print(ndr, "%s: ARRAY(%d)", "info_array", (int)r->count);
5057                 ndr->depth++;
5058                 for (cntr_info_array_1=0;cntr_info_array_1<r->count;cntr_info_array_1++) {
5059                         char *idx_1=NULL;
5060                         if (asprintf(&idx_1, "[%d]", cntr_info_array_1) != -1) {
5061                                 ndr_print_ptr(ndr, "info_array", r->info_array[cntr_info_array_1]);
5062                                 ndr->depth++;
5063                                 if (r->info_array[cntr_info_array_1]) {
5064                                         ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "info_array", r->info_array[cntr_info_array_1]);
5065                                 }
5066                                 ndr->depth--;
5067                                 free(idx_1);
5068                         }
5069                 }
5070                 ndr->depth--;
5071         }
5072         ndr->depth--;
5073         ndr_print_uint32(ndr, "flags", r->flags);
5074         ndr_print_drsuapi_DsMembershipType(ndr, "type", r->type);
5075         ndr_print_ptr(ndr, "domain", r->domain);
5076         ndr->depth++;
5077         if (r->domain) {
5078                 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "domain", r->domain);
5079         }
5080         ndr->depth--;
5081         ndr->depth--;
5082 }
5083
5084 static enum ndr_err_code ndr_push_drsuapi_DsGetMembershipsRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsGetMembershipsRequest *r)
5085 {
5086         if (ndr_flags & NDR_SCALARS) {
5087                 int level = ndr_push_get_switch_value(ndr, r);
5088                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
5089                 NDR_CHECK(ndr_push_union_align(ndr, 5));
5090                 switch (level) {
5091                         case 1: {
5092                                 NDR_CHECK(ndr_push_drsuapi_DsGetMembershipsRequest1(ndr, NDR_SCALARS, &r->req1));
5093                         break; }
5094
5095                         default:
5096                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5097                 }
5098         }
5099         if (ndr_flags & NDR_BUFFERS) {
5100                 int level = ndr_push_get_switch_value(ndr, r);
5101                 switch (level) {
5102                         case 1:
5103                                 NDR_CHECK(ndr_push_drsuapi_DsGetMembershipsRequest1(ndr, NDR_BUFFERS, &r->req1));
5104                         break;
5105
5106                         default:
5107                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5108                 }
5109         }
5110         return NDR_ERR_SUCCESS;
5111 }
5112
5113 static enum ndr_err_code ndr_pull_drsuapi_DsGetMembershipsRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsGetMembershipsRequest *r)
5114 {
5115         int level;
5116         uint32_t _level;
5117         level = ndr_pull_get_switch_value(ndr, r);
5118         if (ndr_flags & NDR_SCALARS) {
5119                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
5120                 if (_level != level) {
5121                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
5122                 }
5123                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
5124                 switch (level) {
5125                         case 1: {
5126                                 NDR_CHECK(ndr_pull_drsuapi_DsGetMembershipsRequest1(ndr, NDR_SCALARS, &r->req1));
5127                         break; }
5128
5129                         default:
5130                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5131                 }
5132         }
5133         if (ndr_flags & NDR_BUFFERS) {
5134                 switch (level) {
5135                         case 1:
5136                                 NDR_CHECK(ndr_pull_drsuapi_DsGetMembershipsRequest1(ndr, NDR_BUFFERS, &r->req1));
5137                         break;
5138
5139                         default:
5140                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5141                 }
5142         }
5143         return NDR_ERR_SUCCESS;
5144 }
5145
5146 _PUBLIC_ void ndr_print_drsuapi_DsGetMembershipsRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsGetMembershipsRequest *r)
5147 {
5148         int level;
5149         level = ndr_print_get_switch_value(ndr, r);
5150         ndr_print_union(ndr, name, level, "drsuapi_DsGetMembershipsRequest");
5151         switch (level) {
5152                 case 1:
5153                         ndr_print_drsuapi_DsGetMembershipsRequest1(ndr, "req1", &r->req1);
5154                 break;
5155
5156                 default:
5157                         ndr_print_bad_level(ndr, name, level);
5158         }
5159 }
5160
5161 static enum ndr_err_code ndr_push_drsuapi_DsGetNT4ChangeLogFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
5162 {
5163         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
5164         return NDR_ERR_SUCCESS;
5165 }
5166
5167 static enum ndr_err_code ndr_pull_drsuapi_DsGetNT4ChangeLogFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
5168 {
5169         uint32_t v;
5170         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
5171         *r = v;
5172         return NDR_ERR_SUCCESS;
5173 }
5174
5175 _PUBLIC_ void ndr_print_drsuapi_DsGetNT4ChangeLogFlags(struct ndr_print *ndr, const char *name, uint32_t r)
5176 {
5177         ndr_print_uint32(ndr, name, r);
5178         ndr->depth++;
5179         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_NT4_CHANGELOG_GET_CHANGELOG", DRSUAPI_NT4_CHANGELOG_GET_CHANGELOG, r);
5180         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_NT4_CHANGELOG_GET_SERIAL_NUMBERS", DRSUAPI_NT4_CHANGELOG_GET_SERIAL_NUMBERS, r);
5181         ndr->depth--;
5182 }
5183
5184 static enum ndr_err_code ndr_push_drsuapi_DsGetNT4ChangeLogRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetNT4ChangeLogRequest1 *r)
5185 {
5186         if (ndr_flags & NDR_SCALARS) {
5187                 NDR_CHECK(ndr_push_align(ndr, 5));
5188                 NDR_CHECK(ndr_push_drsuapi_DsGetNT4ChangeLogFlags(ndr, NDR_SCALARS, r->flags));
5189                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->preferred_maximum_length));
5190                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->restart_length));
5191                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->restart_data));
5192                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
5193         }
5194         if (ndr_flags & NDR_BUFFERS) {
5195                 if (r->restart_data) {
5196                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->restart_length));
5197                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->restart_data, r->restart_length));
5198                 }
5199         }
5200         return NDR_ERR_SUCCESS;
5201 }
5202
5203 static enum ndr_err_code ndr_pull_drsuapi_DsGetNT4ChangeLogRequest1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNT4ChangeLogRequest1 *r)
5204 {
5205         uint32_t _ptr_restart_data;
5206         TALLOC_CTX *_mem_save_restart_data_0;
5207         if (ndr_flags & NDR_SCALARS) {
5208                 NDR_CHECK(ndr_pull_align(ndr, 5));
5209                 NDR_CHECK(ndr_pull_drsuapi_DsGetNT4ChangeLogFlags(ndr, NDR_SCALARS, &r->flags));
5210                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->preferred_maximum_length));
5211                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->restart_length));
5212                 if (r->restart_length > 0x00A00000) {
5213                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
5214                 }
5215                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_restart_data));
5216                 if (_ptr_restart_data) {
5217                         NDR_PULL_ALLOC(ndr, r->restart_data);
5218                 } else {
5219                         r->restart_data = NULL;
5220                 }
5221                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
5222         }
5223         if (ndr_flags & NDR_BUFFERS) {
5224                 if (r->restart_data) {
5225                         _mem_save_restart_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
5226                         NDR_PULL_SET_MEM_CTX(ndr, r->restart_data, 0);
5227                         NDR_CHECK(ndr_pull_array_size(ndr, &r->restart_data));
5228                         NDR_PULL_ALLOC_N(ndr, r->restart_data, ndr_get_array_size(ndr, &r->restart_data));
5229                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->restart_data, ndr_get_array_size(ndr, &r->restart_data)));
5230                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_restart_data_0, 0);
5231                 }
5232                 if (r->restart_data) {
5233                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->restart_data, r->restart_length));
5234                 }
5235         }
5236         return NDR_ERR_SUCCESS;
5237 }
5238
5239 _PUBLIC_ void ndr_print_drsuapi_DsGetNT4ChangeLogRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNT4ChangeLogRequest1 *r)
5240 {
5241         ndr_print_struct(ndr, name, "drsuapi_DsGetNT4ChangeLogRequest1");
5242         ndr->depth++;
5243         ndr_print_drsuapi_DsGetNT4ChangeLogFlags(ndr, "flags", r->flags);
5244         ndr_print_uint32(ndr, "preferred_maximum_length", r->preferred_maximum_length);
5245         ndr_print_uint32(ndr, "restart_length", r->restart_length);
5246         ndr_print_ptr(ndr, "restart_data", r->restart_data);
5247         ndr->depth++;
5248         if (r->restart_data) {
5249                 ndr_print_array_uint8(ndr, "restart_data", r->restart_data, r->restart_length);
5250         }
5251         ndr->depth--;
5252         ndr->depth--;
5253 }
5254
5255 static enum ndr_err_code ndr_push_drsuapi_DsGetNT4ChangeLogRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsGetNT4ChangeLogRequest *r)
5256 {
5257         if (ndr_flags & NDR_SCALARS) {
5258                 int level = ndr_push_get_switch_value(ndr, r);
5259                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
5260                 NDR_CHECK(ndr_push_union_align(ndr, 5));
5261                 switch (level) {
5262                         case 1: {
5263                                 NDR_CHECK(ndr_push_drsuapi_DsGetNT4ChangeLogRequest1(ndr, NDR_SCALARS, &r->req1));
5264                         break; }
5265
5266                         default:
5267                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5268                 }
5269         }
5270         if (ndr_flags & NDR_BUFFERS) {
5271                 int level = ndr_push_get_switch_value(ndr, r);
5272                 switch (level) {
5273                         case 1:
5274                                 NDR_CHECK(ndr_push_drsuapi_DsGetNT4ChangeLogRequest1(ndr, NDR_BUFFERS, &r->req1));
5275                         break;
5276
5277                         default:
5278                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5279                 }
5280         }
5281         return NDR_ERR_SUCCESS;
5282 }
5283
5284 static enum ndr_err_code ndr_pull_drsuapi_DsGetNT4ChangeLogRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsGetNT4ChangeLogRequest *r)
5285 {
5286         int level;
5287         uint32_t _level;
5288         level = ndr_pull_get_switch_value(ndr, r);
5289         if (ndr_flags & NDR_SCALARS) {
5290                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
5291                 if (_level != level) {
5292                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
5293                 }
5294                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
5295                 switch (level) {
5296                         case 1: {
5297                                 NDR_CHECK(ndr_pull_drsuapi_DsGetNT4ChangeLogRequest1(ndr, NDR_SCALARS, &r->req1));
5298                         break; }
5299
5300                         default:
5301                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5302                 }
5303         }
5304         if (ndr_flags & NDR_BUFFERS) {
5305                 switch (level) {
5306                         case 1:
5307                                 NDR_CHECK(ndr_pull_drsuapi_DsGetNT4ChangeLogRequest1(ndr, NDR_BUFFERS, &r->req1));
5308                         break;
5309
5310                         default:
5311                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5312                 }
5313         }
5314         return NDR_ERR_SUCCESS;
5315 }
5316
5317 _PUBLIC_ void ndr_print_drsuapi_DsGetNT4ChangeLogRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsGetNT4ChangeLogRequest *r)
5318 {
5319         int level;
5320         level = ndr_print_get_switch_value(ndr, r);
5321         ndr_print_union(ndr, name, level, "drsuapi_DsGetNT4ChangeLogRequest");
5322         switch (level) {
5323                 case 1:
5324                         ndr_print_drsuapi_DsGetNT4ChangeLogRequest1(ndr, "req1", &r->req1);
5325                 break;
5326
5327                 default:
5328                         ndr_print_bad_level(ndr, name, level);
5329         }
5330 }
5331
5332 static enum ndr_err_code ndr_push_drsuapi_DsGetNT4ChangeLogInfo1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetNT4ChangeLogInfo1 *r)
5333 {
5334         if (ndr_flags & NDR_SCALARS) {
5335                 NDR_CHECK(ndr_push_align(ndr, 8));
5336                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->restart_length));
5337                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->log_length));
5338                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->sam_serial_number));
5339                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->sam_creation_time));
5340                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->builtin_serial_number));
5341                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->builtin_creation_time));
5342                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->lsa_serial_number));
5343                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->lsa_creation_time));
5344                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->status));
5345                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->restart_data));
5346                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->log_data));
5347                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
5348         }
5349         if (ndr_flags & NDR_BUFFERS) {
5350                 if (r->restart_data) {
5351                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->restart_length));
5352                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->restart_data, r->restart_length));
5353                 }
5354                 if (r->log_data) {
5355                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->log_length));
5356                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->log_data, r->log_length));
5357                 }
5358         }
5359         return NDR_ERR_SUCCESS;
5360 }
5361
5362 static enum ndr_err_code ndr_pull_drsuapi_DsGetNT4ChangeLogInfo1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNT4ChangeLogInfo1 *r)
5363 {
5364         uint32_t _ptr_restart_data;
5365         TALLOC_CTX *_mem_save_restart_data_0;
5366         uint32_t _ptr_log_data;
5367         TALLOC_CTX *_mem_save_log_data_0;
5368         if (ndr_flags & NDR_SCALARS) {
5369                 NDR_CHECK(ndr_pull_align(ndr, 8));
5370                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->restart_length));
5371                 if (r->restart_length > 0x00A00000) {
5372                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
5373                 }
5374                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->log_length));
5375                 if (r->log_length > 0x00A00000) {
5376                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
5377                 }
5378                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->sam_serial_number));
5379                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->sam_creation_time));
5380                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->builtin_serial_number));
5381                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->builtin_creation_time));
5382                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->lsa_serial_number));
5383                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->lsa_creation_time));
5384                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->status));
5385                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_restart_data));
5386                 if (_ptr_restart_data) {
5387                         NDR_PULL_ALLOC(ndr, r->restart_data);
5388                 } else {
5389                         r->restart_data = NULL;
5390                 }
5391                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_log_data));
5392                 if (_ptr_log_data) {
5393                         NDR_PULL_ALLOC(ndr, r->log_data);
5394                 } else {
5395                         r->log_data = NULL;
5396                 }
5397                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
5398         }
5399         if (ndr_flags & NDR_BUFFERS) {
5400                 if (r->restart_data) {
5401                         _mem_save_restart_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
5402                         NDR_PULL_SET_MEM_CTX(ndr, r->restart_data, 0);
5403                         NDR_CHECK(ndr_pull_array_size(ndr, &r->restart_data));
5404                         NDR_PULL_ALLOC_N(ndr, r->restart_data, ndr_get_array_size(ndr, &r->restart_data));
5405                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->restart_data, ndr_get_array_size(ndr, &r->restart_data)));
5406                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_restart_data_0, 0);
5407                 }
5408                 if (r->log_data) {
5409                         _mem_save_log_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
5410                         NDR_PULL_SET_MEM_CTX(ndr, r->log_data, 0);
5411                         NDR_CHECK(ndr_pull_array_size(ndr, &r->log_data));
5412                         NDR_PULL_ALLOC_N(ndr, r->log_data, ndr_get_array_size(ndr, &r->log_data));
5413                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->log_data, ndr_get_array_size(ndr, &r->log_data)));
5414                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_log_data_0, 0);
5415                 }
5416                 if (r->restart_data) {
5417                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->restart_data, r->restart_length));
5418                 }
5419                 if (r->log_data) {
5420                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->log_data, r->log_length));
5421                 }
5422         }
5423         return NDR_ERR_SUCCESS;
5424 }
5425
5426 _PUBLIC_ void ndr_print_drsuapi_DsGetNT4ChangeLogInfo1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNT4ChangeLogInfo1 *r)
5427 {
5428         ndr_print_struct(ndr, name, "drsuapi_DsGetNT4ChangeLogInfo1");
5429         ndr->depth++;
5430         ndr_print_uint32(ndr, "restart_length", r->restart_length);
5431         ndr_print_uint32(ndr, "log_length", r->log_length);
5432         ndr_print_hyper(ndr, "sam_serial_number", r->sam_serial_number);
5433         ndr_print_NTTIME(ndr, "sam_creation_time", r->sam_creation_time);
5434         ndr_print_hyper(ndr, "builtin_serial_number", r->builtin_serial_number);
5435         ndr_print_NTTIME(ndr, "builtin_creation_time", r->builtin_creation_time);
5436         ndr_print_hyper(ndr, "lsa_serial_number", r->lsa_serial_number);
5437         ndr_print_NTTIME(ndr, "lsa_creation_time", r->lsa_creation_time);
5438         ndr_print_NTSTATUS(ndr, "status", r->status);
5439         ndr_print_ptr(ndr, "restart_data", r->restart_data);
5440         ndr->depth++;
5441         if (r->restart_data) {
5442                 ndr_print_array_uint8(ndr, "restart_data", r->restart_data, r->restart_length);
5443         }
5444         ndr->depth--;
5445         ndr_print_ptr(ndr, "log_data", r->log_data);
5446         ndr->depth++;
5447         if (r->log_data) {
5448                 ndr_print_array_uint8(ndr, "log_data", r->log_data, r->log_length);
5449         }
5450         ndr->depth--;
5451         ndr->depth--;
5452 }
5453
5454 static enum ndr_err_code ndr_push_drsuapi_DsGetNT4ChangeLogInfo(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsGetNT4ChangeLogInfo *r)
5455 {
5456         if (ndr_flags & NDR_SCALARS) {
5457                 int level = ndr_push_get_switch_value(ndr, r);
5458                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
5459                 NDR_CHECK(ndr_push_union_align(ndr, 8));
5460                 switch (level) {
5461                         case 1: {
5462                                 NDR_CHECK(ndr_push_drsuapi_DsGetNT4ChangeLogInfo1(ndr, NDR_SCALARS, &r->info1));
5463                         break; }
5464
5465                         default:
5466                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5467                 }
5468         }
5469         if (ndr_flags & NDR_BUFFERS) {
5470                 int level = ndr_push_get_switch_value(ndr, r);
5471                 switch (level) {
5472                         case 1:
5473                                 NDR_CHECK(ndr_push_drsuapi_DsGetNT4ChangeLogInfo1(ndr, NDR_BUFFERS, &r->info1));
5474                         break;
5475
5476                         default:
5477                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5478                 }
5479         }
5480         return NDR_ERR_SUCCESS;
5481 }
5482
5483 static enum ndr_err_code ndr_pull_drsuapi_DsGetNT4ChangeLogInfo(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsGetNT4ChangeLogInfo *r)
5484 {
5485         int level;
5486         uint32_t _level;
5487         level = ndr_pull_get_switch_value(ndr, r);
5488         if (ndr_flags & NDR_SCALARS) {
5489                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
5490                 if (_level != level) {
5491                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
5492                 }
5493                 NDR_CHECK(ndr_pull_union_align(ndr, 8));
5494                 switch (level) {
5495                         case 1: {
5496                                 NDR_CHECK(ndr_pull_drsuapi_DsGetNT4ChangeLogInfo1(ndr, NDR_SCALARS, &r->info1));
5497                         break; }
5498
5499                         default:
5500                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5501                 }
5502         }
5503         if (ndr_flags & NDR_BUFFERS) {
5504                 switch (level) {
5505                         case 1:
5506                                 NDR_CHECK(ndr_pull_drsuapi_DsGetNT4ChangeLogInfo1(ndr, NDR_BUFFERS, &r->info1));
5507                         break;
5508
5509                         default:
5510                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5511                 }
5512         }
5513         return NDR_ERR_SUCCESS;
5514 }
5515
5516 _PUBLIC_ void ndr_print_drsuapi_DsGetNT4ChangeLogInfo(struct ndr_print *ndr, const char *name, const union drsuapi_DsGetNT4ChangeLogInfo *r)
5517 {
5518         int level;
5519         level = ndr_print_get_switch_value(ndr, r);
5520         ndr_print_union(ndr, name, level, "drsuapi_DsGetNT4ChangeLogInfo");
5521         switch (level) {
5522                 case 1:
5523                         ndr_print_drsuapi_DsGetNT4ChangeLogInfo1(ndr, "info1", &r->info1);
5524                 break;
5525
5526                 default:
5527                         ndr_print_bad_level(ndr, name, level);
5528         }
5529 }
5530
5531 static enum ndr_err_code ndr_push_drsuapi_DsNameStatus(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsNameStatus r)
5532 {
5533         NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
5534         return NDR_ERR_SUCCESS;
5535 }
5536
5537 static enum ndr_err_code ndr_pull_drsuapi_DsNameStatus(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsNameStatus *r)
5538 {
5539         uint32_t v;
5540         NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
5541         *r = v;
5542         return NDR_ERR_SUCCESS;
5543 }
5544
5545 _PUBLIC_ void ndr_print_drsuapi_DsNameStatus(struct ndr_print *ndr, const char *name, enum drsuapi_DsNameStatus r)
5546 {
5547         const char *val = NULL;
5548
5549         switch (r) {
5550                 case DRSUAPI_DS_NAME_STATUS_OK: val = "DRSUAPI_DS_NAME_STATUS_OK"; break;
5551                 case DRSUAPI_DS_NAME_STATUS_RESOLVE_ERROR: val = "DRSUAPI_DS_NAME_STATUS_RESOLVE_ERROR"; break;
5552                 case DRSUAPI_DS_NAME_STATUS_NOT_FOUND: val = "DRSUAPI_DS_NAME_STATUS_NOT_FOUND"; break;
5553                 case DRSUAPI_DS_NAME_STATUS_NOT_UNIQUE: val = "DRSUAPI_DS_NAME_STATUS_NOT_UNIQUE"; break;
5554                 case DRSUAPI_DS_NAME_STATUS_NO_MAPPING: val = "DRSUAPI_DS_NAME_STATUS_NO_MAPPING"; break;
5555                 case DRSUAPI_DS_NAME_STATUS_DOMAIN_ONLY: val = "DRSUAPI_DS_NAME_STATUS_DOMAIN_ONLY"; break;
5556                 case DRSUAPI_DS_NAME_STATUS_NO_SYNTACTICAL_MAPPING: val = "DRSUAPI_DS_NAME_STATUS_NO_SYNTACTICAL_MAPPING"; break;
5557                 case DRSUAPI_DS_NAME_STATUS_TRUST_REFERRAL: val = "DRSUAPI_DS_NAME_STATUS_TRUST_REFERRAL"; break;
5558         }
5559         ndr_print_enum(ndr, name, "ENUM", val, r);
5560 }
5561
5562 static enum ndr_err_code ndr_push_drsuapi_DsNameFlags(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsNameFlags r)
5563 {
5564         NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
5565         return NDR_ERR_SUCCESS;
5566 }
5567
5568 static enum ndr_err_code ndr_pull_drsuapi_DsNameFlags(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsNameFlags *r)
5569 {
5570         uint32_t v;
5571         NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
5572         *r = v;
5573         return NDR_ERR_SUCCESS;
5574 }
5575
5576 _PUBLIC_ void ndr_print_drsuapi_DsNameFlags(struct ndr_print *ndr, const char *name, enum drsuapi_DsNameFlags r)
5577 {
5578         const char *val = NULL;
5579
5580         switch (r) {
5581                 case DRSUAPI_DS_NAME_FLAG_NO_FLAGS: val = "DRSUAPI_DS_NAME_FLAG_NO_FLAGS"; break;
5582                 case DRSUAPI_DS_NAME_FLAG_SYNTACTICAL_ONLY: val = "DRSUAPI_DS_NAME_FLAG_SYNTACTICAL_ONLY"; break;
5583                 case DRSUAPI_DS_NAME_FLAG_EVAL_AT_DC: val = "DRSUAPI_DS_NAME_FLAG_EVAL_AT_DC"; break;
5584                 case DRSUAPI_DS_NAME_FLAG_GCVERIFY: val = "DRSUAPI_DS_NAME_FLAG_GCVERIFY"; break;
5585                 case DRSUAPI_DS_NAME_FLAG_TRUST_REFERRAL: val = "DRSUAPI_DS_NAME_FLAG_TRUST_REFERRAL"; break;
5586         }
5587         ndr_print_enum(ndr, name, "ENUM", val, r);
5588 }
5589
5590 static enum ndr_err_code ndr_push_drsuapi_DsNameFormat(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsNameFormat r)
5591 {
5592         NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
5593         return NDR_ERR_SUCCESS;
5594 }
5595
5596 static enum ndr_err_code ndr_pull_drsuapi_DsNameFormat(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsNameFormat *r)
5597 {
5598         uint32_t v;
5599         NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
5600         *r = v;
5601         return NDR_ERR_SUCCESS;
5602 }
5603
5604 _PUBLIC_ void ndr_print_drsuapi_DsNameFormat(struct ndr_print *ndr, const char *name, enum drsuapi_DsNameFormat r)
5605 {
5606         const char *val = NULL;
5607
5608         switch (r) {
5609                 case DRSUAPI_DS_NAME_FORMAT_UNKNOWN: val = "DRSUAPI_DS_NAME_FORMAT_UNKNOWN"; break;
5610                 case DRSUAPI_DS_NAME_FORMAT_FQDN_1779: val = "DRSUAPI_DS_NAME_FORMAT_FQDN_1779"; break;
5611                 case DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT: val = "DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT"; break;
5612                 case DRSUAPI_DS_NAME_FORMAT_DISPLAY: val = "DRSUAPI_DS_NAME_FORMAT_DISPLAY"; break;
5613                 case DRSUAPI_DS_NAME_FORMAT_GUID: val = "DRSUAPI_DS_NAME_FORMAT_GUID"; break;
5614                 case DRSUAPI_DS_NAME_FORMAT_CANONICAL: val = "DRSUAPI_DS_NAME_FORMAT_CANONICAL"; break;
5615                 case DRSUAPI_DS_NAME_FORMAT_USER_PRINCIPAL: val = "DRSUAPI_DS_NAME_FORMAT_USER_PRINCIPAL"; break;
5616                 case DRSUAPI_DS_NAME_FORMAT_CANONICAL_EX: val = "DRSUAPI_DS_NAME_FORMAT_CANONICAL_EX"; break;
5617                 case DRSUAPI_DS_NAME_FORMAT_SERVICE_PRINCIPAL: val = "DRSUAPI_DS_NAME_FORMAT_SERVICE_PRINCIPAL"; break;
5618                 case DRSUAPI_DS_NAME_FORMAT_SID_OR_SID_HISTORY: val = "DRSUAPI_DS_NAME_FORMAT_SID_OR_SID_HISTORY"; break;
5619                 case DRSUAPI_DS_NAME_FORMAT_DNS_DOMAIN: val = "DRSUAPI_DS_NAME_FORMAT_DNS_DOMAIN"; break;
5620         }
5621         ndr_print_enum(ndr, name, "ENUM", val, r);
5622 }
5623
5624 static enum ndr_err_code ndr_push_drsuapi_DsNameString(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsNameString *r)
5625 {
5626         if (ndr_flags & NDR_SCALARS) {
5627                 NDR_CHECK(ndr_push_align(ndr, 5));
5628                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->str));
5629                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
5630         }
5631         if (ndr_flags & NDR_BUFFERS) {
5632                 if (r->str) {
5633                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->str, CH_UTF16)));
5634                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5635                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->str, CH_UTF16)));
5636                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->str, ndr_charset_length(r->str, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5637                 }
5638         }
5639         return NDR_ERR_SUCCESS;
5640 }
5641
5642 static enum ndr_err_code ndr_pull_drsuapi_DsNameString(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsNameString *r)
5643 {
5644         uint32_t _ptr_str;
5645         TALLOC_CTX *_mem_save_str_0;
5646         if (ndr_flags & NDR_SCALARS) {
5647                 NDR_CHECK(ndr_pull_align(ndr, 5));
5648                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_str));
5649                 if (_ptr_str) {
5650                         NDR_PULL_ALLOC(ndr, r->str);
5651                 } else {
5652                         r->str = NULL;
5653                 }
5654                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
5655         }
5656         if (ndr_flags & NDR_BUFFERS) {
5657                 if (r->str) {
5658                         _mem_save_str_0 = NDR_PULL_GET_MEM_CTX(ndr);
5659                         NDR_PULL_SET_MEM_CTX(ndr, r->str, 0);
5660                         NDR_CHECK(ndr_pull_array_size(ndr, &r->str));
5661                         NDR_CHECK(ndr_pull_array_length(ndr, &r->str));
5662                         if (ndr_get_array_length(ndr, &r->str) > ndr_get_array_size(ndr, &r->str)) {
5663                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->str), ndr_get_array_length(ndr, &r->str));
5664                         }
5665                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->str), sizeof(uint16_t)));
5666                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->str, ndr_get_array_length(ndr, &r->str), sizeof(uint16_t), CH_UTF16));
5667                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_str_0, 0);
5668                 }
5669         }
5670         return NDR_ERR_SUCCESS;
5671 }
5672
5673 _PUBLIC_ void ndr_print_drsuapi_DsNameString(struct ndr_print *ndr, const char *name, const struct drsuapi_DsNameString *r)
5674 {
5675         ndr_print_struct(ndr, name, "drsuapi_DsNameString");
5676         ndr->depth++;
5677         ndr_print_ptr(ndr, "str", r->str);
5678         ndr->depth++;
5679         if (r->str) {
5680                 ndr_print_string(ndr, "str", r->str);
5681         }
5682         ndr->depth--;
5683         ndr->depth--;
5684 }
5685
5686 static enum ndr_err_code ndr_push_drsuapi_DsNameRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsNameRequest1 *r)
5687 {
5688         uint32_t cntr_names_1;
5689         if (ndr_flags & NDR_SCALARS) {
5690                 NDR_CHECK(ndr_push_align(ndr, 5));
5691                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->codepage));
5692                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->language));
5693                 NDR_CHECK(ndr_push_drsuapi_DsNameFlags(ndr, NDR_SCALARS, r->format_flags));
5694                 NDR_CHECK(ndr_push_drsuapi_DsNameFormat(ndr, NDR_SCALARS, r->format_offered));
5695                 NDR_CHECK(ndr_push_drsuapi_DsNameFormat(ndr, NDR_SCALARS, r->format_desired));
5696                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
5697                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->names));
5698                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
5699         }
5700         if (ndr_flags & NDR_BUFFERS) {
5701                 if (r->names) {
5702                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
5703                         for (cntr_names_1 = 0; cntr_names_1 < r->count; cntr_names_1++) {
5704                                 NDR_CHECK(ndr_push_drsuapi_DsNameString(ndr, NDR_SCALARS, &r->names[cntr_names_1]));
5705                         }
5706                         for (cntr_names_1 = 0; cntr_names_1 < r->count; cntr_names_1++) {
5707                                 NDR_CHECK(ndr_push_drsuapi_DsNameString(ndr, NDR_BUFFERS, &r->names[cntr_names_1]));
5708                         }
5709                 }
5710         }
5711         return NDR_ERR_SUCCESS;
5712 }
5713
5714 static enum ndr_err_code ndr_pull_drsuapi_DsNameRequest1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsNameRequest1 *r)
5715 {
5716         uint32_t _ptr_names;
5717         uint32_t cntr_names_1;
5718         TALLOC_CTX *_mem_save_names_0;
5719         TALLOC_CTX *_mem_save_names_1;
5720         if (ndr_flags & NDR_SCALARS) {
5721                 NDR_CHECK(ndr_pull_align(ndr, 5));
5722                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->codepage));
5723                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->language));
5724                 NDR_CHECK(ndr_pull_drsuapi_DsNameFlags(ndr, NDR_SCALARS, &r->format_flags));
5725                 NDR_CHECK(ndr_pull_drsuapi_DsNameFormat(ndr, NDR_SCALARS, &r->format_offered));
5726                 NDR_CHECK(ndr_pull_drsuapi_DsNameFormat(ndr, NDR_SCALARS, &r->format_desired));
5727                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
5728                 if (r->count < 1 || r->count > 10000) {
5729                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
5730                 }
5731                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_names));
5732                 if (_ptr_names) {
5733                         NDR_PULL_ALLOC(ndr, r->names);
5734                 } else {
5735                         r->names = NULL;
5736                 }
5737                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
5738         }
5739         if (ndr_flags & NDR_BUFFERS) {
5740                 if (r->names) {
5741                         _mem_save_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
5742                         NDR_PULL_SET_MEM_CTX(ndr, r->names, 0);
5743                         NDR_CHECK(ndr_pull_array_size(ndr, &r->names));
5744                         NDR_PULL_ALLOC_N(ndr, r->names, ndr_get_array_size(ndr, &r->names));
5745                         _mem_save_names_1 = NDR_PULL_GET_MEM_CTX(ndr);
5746                         NDR_PULL_SET_MEM_CTX(ndr, r->names, 0);
5747                         for (cntr_names_1 = 0; cntr_names_1 < r->count; cntr_names_1++) {
5748                                 NDR_CHECK(ndr_pull_drsuapi_DsNameString(ndr, NDR_SCALARS, &r->names[cntr_names_1]));
5749                         }
5750                         for (cntr_names_1 = 0; cntr_names_1 < r->count; cntr_names_1++) {
5751                                 NDR_CHECK(ndr_pull_drsuapi_DsNameString(ndr, NDR_BUFFERS, &r->names[cntr_names_1]));
5752                         }
5753                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_names_1, 0);
5754                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_names_0, 0);
5755                 }
5756                 if (r->names) {
5757                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->names, r->count));
5758                 }
5759         }
5760         return NDR_ERR_SUCCESS;
5761 }
5762
5763 _PUBLIC_ void ndr_print_drsuapi_DsNameRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsNameRequest1 *r)
5764 {
5765         uint32_t cntr_names_1;
5766         ndr_print_struct(ndr, name, "drsuapi_DsNameRequest1");
5767         ndr->depth++;
5768         ndr_print_uint32(ndr, "codepage", r->codepage);
5769         ndr_print_uint32(ndr, "language", r->language);
5770         ndr_print_drsuapi_DsNameFlags(ndr, "format_flags", r->format_flags);
5771         ndr_print_drsuapi_DsNameFormat(ndr, "format_offered", r->format_offered);
5772         ndr_print_drsuapi_DsNameFormat(ndr, "format_desired", r->format_desired);
5773         ndr_print_uint32(ndr, "count", r->count);
5774         ndr_print_ptr(ndr, "names", r->names);
5775         ndr->depth++;
5776         if (r->names) {
5777                 ndr->print(ndr, "%s: ARRAY(%d)", "names", (int)r->count);
5778                 ndr->depth++;
5779                 for (cntr_names_1=0;cntr_names_1<r->count;cntr_names_1++) {
5780                         char *idx_1=NULL;
5781                         if (asprintf(&idx_1, "[%d]", cntr_names_1) != -1) {
5782                                 ndr_print_drsuapi_DsNameString(ndr, "names", &r->names[cntr_names_1]);
5783                                 free(idx_1);
5784                         }
5785                 }
5786                 ndr->depth--;
5787         }
5788         ndr->depth--;
5789         ndr->depth--;
5790 }
5791
5792 static enum ndr_err_code ndr_push_drsuapi_DsNameRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsNameRequest *r)
5793 {
5794         if (ndr_flags & NDR_SCALARS) {
5795                 int level = ndr_push_get_switch_value(ndr, r);
5796                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
5797                 NDR_CHECK(ndr_push_union_align(ndr, 5));
5798                 switch (level) {
5799                         case 1: {
5800                                 NDR_CHECK(ndr_push_drsuapi_DsNameRequest1(ndr, NDR_SCALARS, &r->req1));
5801                         break; }
5802
5803                         default:
5804                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5805                 }
5806         }
5807         if (ndr_flags & NDR_BUFFERS) {
5808                 int level = ndr_push_get_switch_value(ndr, r);
5809                 switch (level) {
5810                         case 1:
5811                                 NDR_CHECK(ndr_push_drsuapi_DsNameRequest1(ndr, NDR_BUFFERS, &r->req1));
5812                         break;
5813
5814                         default:
5815                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5816                 }
5817         }
5818         return NDR_ERR_SUCCESS;
5819 }
5820
5821 static enum ndr_err_code ndr_pull_drsuapi_DsNameRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsNameRequest *r)
5822 {
5823         int level;
5824         uint32_t _level;
5825         level = ndr_pull_get_switch_value(ndr, r);
5826         if (ndr_flags & NDR_SCALARS) {
5827                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
5828                 if (_level != level) {
5829                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
5830                 }
5831                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
5832                 switch (level) {
5833                         case 1: {
5834                                 NDR_CHECK(ndr_pull_drsuapi_DsNameRequest1(ndr, NDR_SCALARS, &r->req1));
5835                         break; }
5836
5837                         default:
5838                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5839                 }
5840         }
5841         if (ndr_flags & NDR_BUFFERS) {
5842                 switch (level) {
5843                         case 1:
5844                                 NDR_CHECK(ndr_pull_drsuapi_DsNameRequest1(ndr, NDR_BUFFERS, &r->req1));
5845                         break;
5846
5847                         default:
5848                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5849                 }
5850         }
5851         return NDR_ERR_SUCCESS;
5852 }
5853
5854 _PUBLIC_ void ndr_print_drsuapi_DsNameRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsNameRequest *r)
5855 {
5856         int level;
5857         level = ndr_print_get_switch_value(ndr, r);
5858         ndr_print_union(ndr, name, level, "drsuapi_DsNameRequest");
5859         switch (level) {
5860                 case 1:
5861                         ndr_print_drsuapi_DsNameRequest1(ndr, "req1", &r->req1);
5862                 break;
5863
5864                 default:
5865                         ndr_print_bad_level(ndr, name, level);
5866         }
5867 }
5868
5869 static enum ndr_err_code ndr_push_drsuapi_DsNameInfo1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsNameInfo1 *r)
5870 {
5871         if (ndr_flags & NDR_SCALARS) {
5872                 NDR_CHECK(ndr_push_align(ndr, 5));
5873                 NDR_CHECK(ndr_push_drsuapi_DsNameStatus(ndr, NDR_SCALARS, r->status));
5874                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dns_domain_name));
5875                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->result_name));
5876                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
5877         }
5878         if (ndr_flags & NDR_BUFFERS) {
5879                 if (r->dns_domain_name) {
5880                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dns_domain_name, 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->dns_domain_name, CH_UTF16)));
5883                         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));
5884                 }
5885                 if (r->result_name) {
5886                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->result_name, CH_UTF16)));
5887                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5888                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->result_name, CH_UTF16)));
5889                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->result_name, ndr_charset_length(r->result_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5890                 }
5891         }
5892         return NDR_ERR_SUCCESS;
5893 }
5894
5895 static enum ndr_err_code ndr_pull_drsuapi_DsNameInfo1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsNameInfo1 *r)
5896 {
5897         uint32_t _ptr_dns_domain_name;
5898         TALLOC_CTX *_mem_save_dns_domain_name_0;
5899         uint32_t _ptr_result_name;
5900         TALLOC_CTX *_mem_save_result_name_0;
5901         if (ndr_flags & NDR_SCALARS) {
5902                 NDR_CHECK(ndr_pull_align(ndr, 5));
5903                 NDR_CHECK(ndr_pull_drsuapi_DsNameStatus(ndr, NDR_SCALARS, &r->status));
5904                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dns_domain_name));
5905                 if (_ptr_dns_domain_name) {
5906                         NDR_PULL_ALLOC(ndr, r->dns_domain_name);
5907                 } else {
5908                         r->dns_domain_name = NULL;
5909                 }
5910                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_result_name));
5911                 if (_ptr_result_name) {
5912                         NDR_PULL_ALLOC(ndr, r->result_name);
5913                 } else {
5914                         r->result_name = NULL;
5915                 }
5916                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
5917         }
5918         if (ndr_flags & NDR_BUFFERS) {
5919                 if (r->dns_domain_name) {
5920                         _mem_save_dns_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5921                         NDR_PULL_SET_MEM_CTX(ndr, r->dns_domain_name, 0);
5922                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dns_domain_name));
5923                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dns_domain_name));
5924                         if (ndr_get_array_length(ndr, &r->dns_domain_name) > ndr_get_array_size(ndr, &r->dns_domain_name)) {
5925                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dns_domain_name), ndr_get_array_length(ndr, &r->dns_domain_name));
5926                         }
5927                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dns_domain_name), sizeof(uint16_t)));
5928                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dns_domain_name, ndr_get_array_length(ndr, &r->dns_domain_name), sizeof(uint16_t), CH_UTF16));
5929                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dns_domain_name_0, 0);
5930                 }
5931                 if (r->result_name) {
5932                         _mem_save_result_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5933                         NDR_PULL_SET_MEM_CTX(ndr, r->result_name, 0);
5934                         NDR_CHECK(ndr_pull_array_size(ndr, &r->result_name));
5935                         NDR_CHECK(ndr_pull_array_length(ndr, &r->result_name));
5936                         if (ndr_get_array_length(ndr, &r->result_name) > ndr_get_array_size(ndr, &r->result_name)) {
5937                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->result_name), ndr_get_array_length(ndr, &r->result_name));
5938                         }
5939                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->result_name), sizeof(uint16_t)));
5940                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->result_name, ndr_get_array_length(ndr, &r->result_name), sizeof(uint16_t), CH_UTF16));
5941                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_result_name_0, 0);
5942                 }
5943         }
5944         return NDR_ERR_SUCCESS;
5945 }
5946
5947 _PUBLIC_ void ndr_print_drsuapi_DsNameInfo1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsNameInfo1 *r)
5948 {
5949         ndr_print_struct(ndr, name, "drsuapi_DsNameInfo1");
5950         ndr->depth++;
5951         ndr_print_drsuapi_DsNameStatus(ndr, "status", r->status);
5952         ndr_print_ptr(ndr, "dns_domain_name", r->dns_domain_name);
5953         ndr->depth++;
5954         if (r->dns_domain_name) {
5955                 ndr_print_string(ndr, "dns_domain_name", r->dns_domain_name);
5956         }
5957         ndr->depth--;
5958         ndr_print_ptr(ndr, "result_name", r->result_name);
5959         ndr->depth++;
5960         if (r->result_name) {
5961                 ndr_print_string(ndr, "result_name", r->result_name);
5962         }
5963         ndr->depth--;
5964         ndr->depth--;
5965 }
5966
5967 static enum ndr_err_code ndr_push_drsuapi_DsNameCtr1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsNameCtr1 *r)
5968 {
5969         uint32_t cntr_array_1;
5970         if (ndr_flags & NDR_SCALARS) {
5971                 NDR_CHECK(ndr_push_align(ndr, 5));
5972                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
5973                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->array));
5974                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
5975         }
5976         if (ndr_flags & NDR_BUFFERS) {
5977                 if (r->array) {
5978                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
5979                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
5980                                 NDR_CHECK(ndr_push_drsuapi_DsNameInfo1(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
5981                         }
5982                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
5983                                 NDR_CHECK(ndr_push_drsuapi_DsNameInfo1(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
5984                         }
5985                 }
5986         }
5987         return NDR_ERR_SUCCESS;
5988 }
5989
5990 static enum ndr_err_code ndr_pull_drsuapi_DsNameCtr1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsNameCtr1 *r)
5991 {
5992         uint32_t _ptr_array;
5993         uint32_t cntr_array_1;
5994         TALLOC_CTX *_mem_save_array_0;
5995         TALLOC_CTX *_mem_save_array_1;
5996         if (ndr_flags & NDR_SCALARS) {
5997                 NDR_CHECK(ndr_pull_align(ndr, 5));
5998                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
5999                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_array));
6000                 if (_ptr_array) {
6001                         NDR_PULL_ALLOC(ndr, r->array);
6002                 } else {
6003                         r->array = NULL;
6004                 }
6005                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
6006         }
6007         if (ndr_flags & NDR_BUFFERS) {
6008                 if (r->array) {
6009                         _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
6010                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
6011                         NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
6012                         NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
6013                         _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
6014                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
6015                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
6016                                 NDR_CHECK(ndr_pull_drsuapi_DsNameInfo1(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
6017                         }
6018                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
6019                                 NDR_CHECK(ndr_pull_drsuapi_DsNameInfo1(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
6020                         }
6021                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0);
6022                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
6023                 }
6024                 if (r->array) {
6025                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
6026                 }
6027         }
6028         return NDR_ERR_SUCCESS;
6029 }
6030
6031 _PUBLIC_ void ndr_print_drsuapi_DsNameCtr1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsNameCtr1 *r)
6032 {
6033         uint32_t cntr_array_1;
6034         ndr_print_struct(ndr, name, "drsuapi_DsNameCtr1");
6035         ndr->depth++;
6036         ndr_print_uint32(ndr, "count", r->count);
6037         ndr_print_ptr(ndr, "array", r->array);
6038         ndr->depth++;
6039         if (r->array) {
6040                 ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
6041                 ndr->depth++;
6042                 for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
6043                         char *idx_1=NULL;
6044                         if (asprintf(&idx_1, "[%d]", cntr_array_1) != -1) {
6045                                 ndr_print_drsuapi_DsNameInfo1(ndr, "array", &r->array[cntr_array_1]);
6046                                 free(idx_1);
6047                         }
6048                 }
6049                 ndr->depth--;
6050         }
6051         ndr->depth--;
6052         ndr->depth--;
6053 }
6054
6055 static enum ndr_err_code ndr_push_drsuapi_DsNameCtr(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsNameCtr *r)
6056 {
6057         if (ndr_flags & NDR_SCALARS) {
6058                 int level = ndr_push_get_switch_value(ndr, r);
6059                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
6060                 NDR_CHECK(ndr_push_union_align(ndr, 5));
6061                 switch (level) {
6062                         case 1: {
6063                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->ctr1));
6064                         break; }
6065
6066                         default:
6067                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6068                 }
6069         }
6070         if (ndr_flags & NDR_BUFFERS) {
6071                 int level = ndr_push_get_switch_value(ndr, r);
6072                 switch (level) {
6073                         case 1:
6074                                 if (r->ctr1) {
6075                                         NDR_CHECK(ndr_push_drsuapi_DsNameCtr1(ndr, NDR_SCALARS|NDR_BUFFERS, r->ctr1));
6076                                 }
6077                         break;
6078
6079                         default:
6080                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6081                 }
6082         }
6083         return NDR_ERR_SUCCESS;
6084 }
6085
6086 static enum ndr_err_code ndr_pull_drsuapi_DsNameCtr(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsNameCtr *r)
6087 {
6088         int level;
6089         uint32_t _level;
6090         TALLOC_CTX *_mem_save_ctr1_0;
6091         level = ndr_pull_get_switch_value(ndr, r);
6092         if (ndr_flags & NDR_SCALARS) {
6093                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
6094                 if (_level != level) {
6095                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
6096                 }
6097                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
6098                 switch (level) {
6099                         case 1: {
6100                                 uint32_t _ptr_ctr1;
6101                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr1));
6102                                 if (_ptr_ctr1) {
6103                                         NDR_PULL_ALLOC(ndr, r->ctr1);
6104                                 } else {
6105                                         r->ctr1 = NULL;
6106                                 }
6107                         break; }
6108
6109                         default:
6110                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6111                 }
6112         }
6113         if (ndr_flags & NDR_BUFFERS) {
6114                 switch (level) {
6115                         case 1:
6116                                 if (r->ctr1) {
6117                                         _mem_save_ctr1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6118                                         NDR_PULL_SET_MEM_CTX(ndr, r->ctr1, 0);
6119                                         NDR_CHECK(ndr_pull_drsuapi_DsNameCtr1(ndr, NDR_SCALARS|NDR_BUFFERS, r->ctr1));
6120                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr1_0, 0);
6121                                 }
6122                         break;
6123
6124                         default:
6125                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6126                 }
6127         }
6128         return NDR_ERR_SUCCESS;
6129 }
6130
6131 _PUBLIC_ void ndr_print_drsuapi_DsNameCtr(struct ndr_print *ndr, const char *name, const union drsuapi_DsNameCtr *r)
6132 {
6133         int level;
6134         level = ndr_print_get_switch_value(ndr, r);
6135         ndr_print_union(ndr, name, level, "drsuapi_DsNameCtr");
6136         switch (level) {
6137                 case 1:
6138                         ndr_print_ptr(ndr, "ctr1", r->ctr1);
6139                         ndr->depth++;
6140                         if (r->ctr1) {
6141                                 ndr_print_drsuapi_DsNameCtr1(ndr, "ctr1", r->ctr1);
6142                         }
6143                         ndr->depth--;
6144                 break;
6145
6146                 default:
6147                         ndr_print_bad_level(ndr, name, level);
6148         }
6149 }
6150
6151 static enum ndr_err_code ndr_push_drsuapi_DsSpnOperation(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsSpnOperation r)
6152 {
6153         NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
6154         return NDR_ERR_SUCCESS;
6155 }
6156
6157 static enum ndr_err_code ndr_pull_drsuapi_DsSpnOperation(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsSpnOperation *r)
6158 {
6159         uint32_t v;
6160         NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
6161         *r = v;
6162         return NDR_ERR_SUCCESS;
6163 }
6164
6165 _PUBLIC_ void ndr_print_drsuapi_DsSpnOperation(struct ndr_print *ndr, const char *name, enum drsuapi_DsSpnOperation r)
6166 {
6167         const char *val = NULL;
6168
6169         switch (r) {
6170                 case DRSUAPI_DS_SPN_OPERATION_ADD: val = "DRSUAPI_DS_SPN_OPERATION_ADD"; break;
6171                 case DRSUAPI_DS_SPN_OPERATION_REPLACE: val = "DRSUAPI_DS_SPN_OPERATION_REPLACE"; break;
6172                 case DRSUAPI_DS_SPN_OPERATION_DELETE: val = "DRSUAPI_DS_SPN_OPERATION_DELETE"; break;
6173         }
6174         ndr_print_enum(ndr, name, "ENUM", val, r);
6175 }
6176
6177 static enum ndr_err_code ndr_push_drsuapi_DsWriteAccountSpnRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsWriteAccountSpnRequest1 *r)
6178 {
6179         uint32_t cntr_spn_names_1;
6180         if (ndr_flags & NDR_SCALARS) {
6181                 NDR_CHECK(ndr_push_align(ndr, 5));
6182                 NDR_CHECK(ndr_push_drsuapi_DsSpnOperation(ndr, NDR_SCALARS, r->operation));
6183                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
6184                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->object_dn));
6185                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
6186                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->spn_names));
6187                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6188         }
6189         if (ndr_flags & NDR_BUFFERS) {
6190                 if (r->object_dn) {
6191                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->object_dn, CH_UTF16)));
6192                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6193                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->object_dn, CH_UTF16)));
6194                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->object_dn, ndr_charset_length(r->object_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6195                 }
6196                 if (r->spn_names) {
6197                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
6198                         for (cntr_spn_names_1 = 0; cntr_spn_names_1 < r->count; cntr_spn_names_1++) {
6199                                 NDR_CHECK(ndr_push_drsuapi_DsNameString(ndr, NDR_SCALARS, &r->spn_names[cntr_spn_names_1]));
6200                         }
6201                         for (cntr_spn_names_1 = 0; cntr_spn_names_1 < r->count; cntr_spn_names_1++) {
6202                                 NDR_CHECK(ndr_push_drsuapi_DsNameString(ndr, NDR_BUFFERS, &r->spn_names[cntr_spn_names_1]));
6203                         }
6204                 }
6205         }
6206         return NDR_ERR_SUCCESS;
6207 }
6208
6209 static enum ndr_err_code ndr_pull_drsuapi_DsWriteAccountSpnRequest1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsWriteAccountSpnRequest1 *r)
6210 {
6211         uint32_t _ptr_object_dn;
6212         TALLOC_CTX *_mem_save_object_dn_0;
6213         uint32_t _ptr_spn_names;
6214         uint32_t cntr_spn_names_1;
6215         TALLOC_CTX *_mem_save_spn_names_0;
6216         TALLOC_CTX *_mem_save_spn_names_1;
6217         if (ndr_flags & NDR_SCALARS) {
6218                 NDR_CHECK(ndr_pull_align(ndr, 5));
6219                 NDR_CHECK(ndr_pull_drsuapi_DsSpnOperation(ndr, NDR_SCALARS, &r->operation));
6220                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
6221                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_object_dn));
6222                 if (_ptr_object_dn) {
6223                         NDR_PULL_ALLOC(ndr, r->object_dn);
6224                 } else {
6225                         r->object_dn = NULL;
6226                 }
6227                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
6228                 if (r->count > 10000) {
6229                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
6230                 }
6231                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_spn_names));
6232                 if (_ptr_spn_names) {
6233                         NDR_PULL_ALLOC(ndr, r->spn_names);
6234                 } else {
6235                         r->spn_names = NULL;
6236                 }
6237                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
6238         }
6239         if (ndr_flags & NDR_BUFFERS) {
6240                 if (r->object_dn) {
6241                         _mem_save_object_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
6242                         NDR_PULL_SET_MEM_CTX(ndr, r->object_dn, 0);
6243                         NDR_CHECK(ndr_pull_array_size(ndr, &r->object_dn));
6244                         NDR_CHECK(ndr_pull_array_length(ndr, &r->object_dn));
6245                         if (ndr_get_array_length(ndr, &r->object_dn) > ndr_get_array_size(ndr, &r->object_dn)) {
6246                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->object_dn), ndr_get_array_length(ndr, &r->object_dn));
6247                         }
6248                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->object_dn), sizeof(uint16_t)));
6249                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->object_dn, ndr_get_array_length(ndr, &r->object_dn), sizeof(uint16_t), CH_UTF16));
6250                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_object_dn_0, 0);
6251                 }
6252                 if (r->spn_names) {
6253                         _mem_save_spn_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
6254                         NDR_PULL_SET_MEM_CTX(ndr, r->spn_names, 0);
6255                         NDR_CHECK(ndr_pull_array_size(ndr, &r->spn_names));
6256                         NDR_PULL_ALLOC_N(ndr, r->spn_names, ndr_get_array_size(ndr, &r->spn_names));
6257                         _mem_save_spn_names_1 = NDR_PULL_GET_MEM_CTX(ndr);
6258                         NDR_PULL_SET_MEM_CTX(ndr, r->spn_names, 0);
6259                         for (cntr_spn_names_1 = 0; cntr_spn_names_1 < r->count; cntr_spn_names_1++) {
6260                                 NDR_CHECK(ndr_pull_drsuapi_DsNameString(ndr, NDR_SCALARS, &r->spn_names[cntr_spn_names_1]));
6261                         }
6262                         for (cntr_spn_names_1 = 0; cntr_spn_names_1 < r->count; cntr_spn_names_1++) {
6263                                 NDR_CHECK(ndr_pull_drsuapi_DsNameString(ndr, NDR_BUFFERS, &r->spn_names[cntr_spn_names_1]));
6264                         }
6265                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_spn_names_1, 0);
6266                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_spn_names_0, 0);
6267                 }
6268                 if (r->spn_names) {
6269                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->spn_names, r->count));
6270                 }
6271         }
6272         return NDR_ERR_SUCCESS;
6273 }
6274
6275 _PUBLIC_ void ndr_print_drsuapi_DsWriteAccountSpnRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsWriteAccountSpnRequest1 *r)
6276 {
6277         uint32_t cntr_spn_names_1;
6278         ndr_print_struct(ndr, name, "drsuapi_DsWriteAccountSpnRequest1");
6279         ndr->depth++;
6280         ndr_print_drsuapi_DsSpnOperation(ndr, "operation", r->operation);
6281         ndr_print_uint32(ndr, "unknown1", r->unknown1);
6282         ndr_print_ptr(ndr, "object_dn", r->object_dn);
6283         ndr->depth++;
6284         if (r->object_dn) {
6285                 ndr_print_string(ndr, "object_dn", r->object_dn);
6286         }
6287         ndr->depth--;
6288         ndr_print_uint32(ndr, "count", r->count);
6289         ndr_print_ptr(ndr, "spn_names", r->spn_names);
6290         ndr->depth++;
6291         if (r->spn_names) {
6292                 ndr->print(ndr, "%s: ARRAY(%d)", "spn_names", (int)r->count);
6293                 ndr->depth++;
6294                 for (cntr_spn_names_1=0;cntr_spn_names_1<r->count;cntr_spn_names_1++) {
6295                         char *idx_1=NULL;
6296                         if (asprintf(&idx_1, "[%d]", cntr_spn_names_1) != -1) {
6297                                 ndr_print_drsuapi_DsNameString(ndr, "spn_names", &r->spn_names[cntr_spn_names_1]);
6298                                 free(idx_1);
6299                         }
6300                 }
6301                 ndr->depth--;
6302         }
6303         ndr->depth--;
6304         ndr->depth--;
6305 }
6306
6307 static enum ndr_err_code ndr_push_drsuapi_DsWriteAccountSpnRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsWriteAccountSpnRequest *r)
6308 {
6309         if (ndr_flags & NDR_SCALARS) {
6310                 int level = ndr_push_get_switch_value(ndr, r);
6311                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
6312                 NDR_CHECK(ndr_push_union_align(ndr, 5));
6313                 switch (level) {
6314                         case 1: {
6315                                 NDR_CHECK(ndr_push_drsuapi_DsWriteAccountSpnRequest1(ndr, NDR_SCALARS, &r->req1));
6316                         break; }
6317
6318                         default:
6319                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6320                 }
6321         }
6322         if (ndr_flags & NDR_BUFFERS) {
6323                 int level = ndr_push_get_switch_value(ndr, r);
6324                 switch (level) {
6325                         case 1:
6326                                 NDR_CHECK(ndr_push_drsuapi_DsWriteAccountSpnRequest1(ndr, NDR_BUFFERS, &r->req1));
6327                         break;
6328
6329                         default:
6330                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6331                 }
6332         }
6333         return NDR_ERR_SUCCESS;
6334 }
6335
6336 static enum ndr_err_code ndr_pull_drsuapi_DsWriteAccountSpnRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsWriteAccountSpnRequest *r)
6337 {
6338         int level;
6339         uint32_t _level;
6340         level = ndr_pull_get_switch_value(ndr, r);
6341         if (ndr_flags & NDR_SCALARS) {
6342                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
6343                 if (_level != level) {
6344                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
6345                 }
6346                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
6347                 switch (level) {
6348                         case 1: {
6349                                 NDR_CHECK(ndr_pull_drsuapi_DsWriteAccountSpnRequest1(ndr, NDR_SCALARS, &r->req1));
6350                         break; }
6351
6352                         default:
6353                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6354                 }
6355         }
6356         if (ndr_flags & NDR_BUFFERS) {
6357                 switch (level) {
6358                         case 1:
6359                                 NDR_CHECK(ndr_pull_drsuapi_DsWriteAccountSpnRequest1(ndr, NDR_BUFFERS, &r->req1));
6360                         break;
6361
6362                         default:
6363                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6364                 }
6365         }
6366         return NDR_ERR_SUCCESS;
6367 }
6368
6369 _PUBLIC_ void ndr_print_drsuapi_DsWriteAccountSpnRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsWriteAccountSpnRequest *r)
6370 {
6371         int level;
6372         level = ndr_print_get_switch_value(ndr, r);
6373         ndr_print_union(ndr, name, level, "drsuapi_DsWriteAccountSpnRequest");
6374         switch (level) {
6375                 case 1:
6376                         ndr_print_drsuapi_DsWriteAccountSpnRequest1(ndr, "req1", &r->req1);
6377                 break;
6378
6379                 default:
6380                         ndr_print_bad_level(ndr, name, level);
6381         }
6382 }
6383
6384 static enum ndr_err_code ndr_push_drsuapi_DsWriteAccountSpnResult1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsWriteAccountSpnResult1 *r)
6385 {
6386         if (ndr_flags & NDR_SCALARS) {
6387                 NDR_CHECK(ndr_push_align(ndr, 4));
6388                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->status));
6389                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
6390         }
6391         if (ndr_flags & NDR_BUFFERS) {
6392         }
6393         return NDR_ERR_SUCCESS;
6394 }
6395
6396 static enum ndr_err_code ndr_pull_drsuapi_DsWriteAccountSpnResult1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsWriteAccountSpnResult1 *r)
6397 {
6398         if (ndr_flags & NDR_SCALARS) {
6399                 NDR_CHECK(ndr_pull_align(ndr, 4));
6400                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->status));
6401                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
6402         }
6403         if (ndr_flags & NDR_BUFFERS) {
6404         }
6405         return NDR_ERR_SUCCESS;
6406 }
6407
6408 _PUBLIC_ void ndr_print_drsuapi_DsWriteAccountSpnResult1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsWriteAccountSpnResult1 *r)
6409 {
6410         ndr_print_struct(ndr, name, "drsuapi_DsWriteAccountSpnResult1");
6411         ndr->depth++;
6412         ndr_print_WERROR(ndr, "status", r->status);
6413         ndr->depth--;
6414 }
6415
6416 static enum ndr_err_code ndr_push_drsuapi_DsWriteAccountSpnResult(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsWriteAccountSpnResult *r)
6417 {
6418         if (ndr_flags & NDR_SCALARS) {
6419                 int level = ndr_push_get_switch_value(ndr, r);
6420                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
6421                 NDR_CHECK(ndr_push_union_align(ndr, 4));
6422                 switch (level) {
6423                         case 1: {
6424                                 NDR_CHECK(ndr_push_drsuapi_DsWriteAccountSpnResult1(ndr, NDR_SCALARS, &r->res1));
6425                         break; }
6426
6427                         default:
6428                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6429                 }
6430         }
6431         if (ndr_flags & NDR_BUFFERS) {
6432                 int level = ndr_push_get_switch_value(ndr, r);
6433                 switch (level) {
6434                         case 1:
6435                         break;
6436
6437                         default:
6438                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6439                 }
6440         }
6441         return NDR_ERR_SUCCESS;
6442 }
6443
6444 static enum ndr_err_code ndr_pull_drsuapi_DsWriteAccountSpnResult(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsWriteAccountSpnResult *r)
6445 {
6446         int level;
6447         uint32_t _level;
6448         level = ndr_pull_get_switch_value(ndr, r);
6449         if (ndr_flags & NDR_SCALARS) {
6450                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
6451                 if (_level != level) {
6452                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
6453                 }
6454                 NDR_CHECK(ndr_pull_union_align(ndr, 4));
6455                 switch (level) {
6456                         case 1: {
6457                                 NDR_CHECK(ndr_pull_drsuapi_DsWriteAccountSpnResult1(ndr, NDR_SCALARS, &r->res1));
6458                         break; }
6459
6460                         default:
6461                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6462                 }
6463         }
6464         if (ndr_flags & NDR_BUFFERS) {
6465                 switch (level) {
6466                         case 1:
6467                         break;
6468
6469                         default:
6470                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6471                 }
6472         }
6473         return NDR_ERR_SUCCESS;
6474 }
6475
6476 _PUBLIC_ void ndr_print_drsuapi_DsWriteAccountSpnResult(struct ndr_print *ndr, const char *name, const union drsuapi_DsWriteAccountSpnResult *r)
6477 {
6478         int level;
6479         level = ndr_print_get_switch_value(ndr, r);
6480         ndr_print_union(ndr, name, level, "drsuapi_DsWriteAccountSpnResult");
6481         switch (level) {
6482                 case 1:
6483                         ndr_print_drsuapi_DsWriteAccountSpnResult1(ndr, "res1", &r->res1);
6484                 break;
6485
6486                 default:
6487                         ndr_print_bad_level(ndr, name, level);
6488         }
6489 }
6490
6491 static enum ndr_err_code ndr_push_drsuapi_DsRemoveDSServerRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsRemoveDSServerRequest1 *r)
6492 {
6493         if (ndr_flags & NDR_SCALARS) {
6494                 NDR_CHECK(ndr_push_align(ndr, 5));
6495                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_dn));
6496                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_dn));
6497                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->commit));
6498                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6499         }
6500         if (ndr_flags & NDR_BUFFERS) {
6501                 if (r->server_dn) {
6502                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_dn, CH_UTF16)));
6503                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6504                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_dn, CH_UTF16)));
6505                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_dn, ndr_charset_length(r->server_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6506                 }
6507                 if (r->domain_dn) {
6508                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->domain_dn, CH_UTF16)));
6509                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6510                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->domain_dn, CH_UTF16)));
6511                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain_dn, ndr_charset_length(r->domain_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6512                 }
6513         }
6514         return NDR_ERR_SUCCESS;
6515 }
6516
6517 static enum ndr_err_code ndr_pull_drsuapi_DsRemoveDSServerRequest1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsRemoveDSServerRequest1 *r)
6518 {
6519         uint32_t _ptr_server_dn;
6520         TALLOC_CTX *_mem_save_server_dn_0;
6521         uint32_t _ptr_domain_dn;
6522         TALLOC_CTX *_mem_save_domain_dn_0;
6523         if (ndr_flags & NDR_SCALARS) {
6524                 NDR_CHECK(ndr_pull_align(ndr, 5));
6525                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_dn));
6526                 if (_ptr_server_dn) {
6527                         NDR_PULL_ALLOC(ndr, r->server_dn);
6528                 } else {
6529                         r->server_dn = NULL;
6530                 }
6531                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_dn));
6532                 if (_ptr_domain_dn) {
6533                         NDR_PULL_ALLOC(ndr, r->domain_dn);
6534                 } else {
6535                         r->domain_dn = NULL;
6536                 }
6537                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->commit));
6538                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
6539         }
6540         if (ndr_flags & NDR_BUFFERS) {
6541                 if (r->server_dn) {
6542                         _mem_save_server_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
6543                         NDR_PULL_SET_MEM_CTX(ndr, r->server_dn, 0);
6544                         NDR_CHECK(ndr_pull_array_size(ndr, &r->server_dn));
6545                         NDR_CHECK(ndr_pull_array_length(ndr, &r->server_dn));
6546                         if (ndr_get_array_length(ndr, &r->server_dn) > ndr_get_array_size(ndr, &r->server_dn)) {
6547                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->server_dn), ndr_get_array_length(ndr, &r->server_dn));
6548                         }
6549                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_dn), sizeof(uint16_t)));
6550                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_dn, ndr_get_array_length(ndr, &r->server_dn), sizeof(uint16_t), CH_UTF16));
6551                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_dn_0, 0);
6552                 }
6553                 if (r->domain_dn) {
6554                         _mem_save_domain_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
6555                         NDR_PULL_SET_MEM_CTX(ndr, r->domain_dn, 0);
6556                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain_dn));
6557                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain_dn));
6558                         if (ndr_get_array_length(ndr, &r->domain_dn) > ndr_get_array_size(ndr, &r->domain_dn)) {
6559                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain_dn), ndr_get_array_length(ndr, &r->domain_dn));
6560                         }
6561                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain_dn), sizeof(uint16_t)));
6562                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain_dn, ndr_get_array_length(ndr, &r->domain_dn), sizeof(uint16_t), CH_UTF16));
6563                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_dn_0, 0);
6564                 }
6565         }
6566         return NDR_ERR_SUCCESS;
6567 }
6568
6569 _PUBLIC_ void ndr_print_drsuapi_DsRemoveDSServerRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsRemoveDSServerRequest1 *r)
6570 {
6571         ndr_print_struct(ndr, name, "drsuapi_DsRemoveDSServerRequest1");
6572         ndr->depth++;
6573         ndr_print_ptr(ndr, "server_dn", r->server_dn);
6574         ndr->depth++;
6575         if (r->server_dn) {
6576                 ndr_print_string(ndr, "server_dn", r->server_dn);
6577         }
6578         ndr->depth--;
6579         ndr_print_ptr(ndr, "domain_dn", r->domain_dn);
6580         ndr->depth++;
6581         if (r->domain_dn) {
6582                 ndr_print_string(ndr, "domain_dn", r->domain_dn);
6583         }
6584         ndr->depth--;
6585         ndr_print_uint32(ndr, "commit", r->commit);
6586         ndr->depth--;
6587 }
6588
6589 static enum ndr_err_code ndr_push_drsuapi_DsRemoveDSServerRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsRemoveDSServerRequest *r)
6590 {
6591         if (ndr_flags & NDR_SCALARS) {
6592                 int level = ndr_push_get_switch_value(ndr, r);
6593                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
6594                 NDR_CHECK(ndr_push_union_align(ndr, 5));
6595                 switch (level) {
6596                         case 1: {
6597                                 NDR_CHECK(ndr_push_drsuapi_DsRemoveDSServerRequest1(ndr, NDR_SCALARS, &r->req1));
6598                         break; }
6599
6600                         default:
6601                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6602                 }
6603         }
6604         if (ndr_flags & NDR_BUFFERS) {
6605                 int level = ndr_push_get_switch_value(ndr, r);
6606                 switch (level) {
6607                         case 1:
6608                                 NDR_CHECK(ndr_push_drsuapi_DsRemoveDSServerRequest1(ndr, NDR_BUFFERS, &r->req1));
6609                         break;
6610
6611                         default:
6612                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6613                 }
6614         }
6615         return NDR_ERR_SUCCESS;
6616 }
6617
6618 static enum ndr_err_code ndr_pull_drsuapi_DsRemoveDSServerRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsRemoveDSServerRequest *r)
6619 {
6620         int level;
6621         uint32_t _level;
6622         level = ndr_pull_get_switch_value(ndr, r);
6623         if (ndr_flags & NDR_SCALARS) {
6624                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
6625                 if (_level != level) {
6626                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
6627                 }
6628                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
6629                 switch (level) {
6630                         case 1: {
6631                                 NDR_CHECK(ndr_pull_drsuapi_DsRemoveDSServerRequest1(ndr, NDR_SCALARS, &r->req1));
6632                         break; }
6633
6634                         default:
6635                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6636                 }
6637         }
6638         if (ndr_flags & NDR_BUFFERS) {
6639                 switch (level) {
6640                         case 1:
6641                                 NDR_CHECK(ndr_pull_drsuapi_DsRemoveDSServerRequest1(ndr, NDR_BUFFERS, &r->req1));
6642                         break;
6643
6644                         default:
6645                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6646                 }
6647         }
6648         return NDR_ERR_SUCCESS;
6649 }
6650
6651 _PUBLIC_ void ndr_print_drsuapi_DsRemoveDSServerRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsRemoveDSServerRequest *r)
6652 {
6653         int level;
6654         level = ndr_print_get_switch_value(ndr, r);
6655         ndr_print_union(ndr, name, level, "drsuapi_DsRemoveDSServerRequest");
6656         switch (level) {
6657                 case 1:
6658                         ndr_print_drsuapi_DsRemoveDSServerRequest1(ndr, "req1", &r->req1);
6659                 break;
6660
6661                 default:
6662                         ndr_print_bad_level(ndr, name, level);
6663         }
6664 }
6665
6666 static enum ndr_err_code ndr_push_drsuapi_DsRemoveDSServerResult1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsRemoveDSServerResult1 *r)
6667 {
6668         if (ndr_flags & NDR_SCALARS) {
6669                 NDR_CHECK(ndr_push_align(ndr, 4));
6670                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->last_dc_in_domain));
6671                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
6672         }
6673         if (ndr_flags & NDR_BUFFERS) {
6674         }
6675         return NDR_ERR_SUCCESS;
6676 }
6677
6678 static enum ndr_err_code ndr_pull_drsuapi_DsRemoveDSServerResult1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsRemoveDSServerResult1 *r)
6679 {
6680         if (ndr_flags & NDR_SCALARS) {
6681                 NDR_CHECK(ndr_pull_align(ndr, 4));
6682                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->last_dc_in_domain));
6683                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
6684         }
6685         if (ndr_flags & NDR_BUFFERS) {
6686         }
6687         return NDR_ERR_SUCCESS;
6688 }
6689
6690 _PUBLIC_ void ndr_print_drsuapi_DsRemoveDSServerResult1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsRemoveDSServerResult1 *r)
6691 {
6692         ndr_print_struct(ndr, name, "drsuapi_DsRemoveDSServerResult1");
6693         ndr->depth++;
6694         ndr_print_uint32(ndr, "last_dc_in_domain", r->last_dc_in_domain);
6695         ndr->depth--;
6696 }
6697
6698 static enum ndr_err_code ndr_push_drsuapi_DsRemoveDSServerResult(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsRemoveDSServerResult *r)
6699 {
6700         if (ndr_flags & NDR_SCALARS) {
6701                 int level = ndr_push_get_switch_value(ndr, r);
6702                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
6703                 NDR_CHECK(ndr_push_union_align(ndr, 4));
6704                 switch (level) {
6705                         case 1: {
6706                                 NDR_CHECK(ndr_push_drsuapi_DsRemoveDSServerResult1(ndr, NDR_SCALARS, &r->res1));
6707                         break; }
6708
6709                         default:
6710                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6711                 }
6712         }
6713         if (ndr_flags & NDR_BUFFERS) {
6714                 int level = ndr_push_get_switch_value(ndr, r);
6715                 switch (level) {
6716                         case 1:
6717                         break;
6718
6719                         default:
6720                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6721                 }
6722         }
6723         return NDR_ERR_SUCCESS;
6724 }
6725
6726 static enum ndr_err_code ndr_pull_drsuapi_DsRemoveDSServerResult(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsRemoveDSServerResult *r)
6727 {
6728         int level;
6729         uint32_t _level;
6730         level = ndr_pull_get_switch_value(ndr, r);
6731         if (ndr_flags & NDR_SCALARS) {
6732                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
6733                 if (_level != level) {
6734                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
6735                 }
6736                 NDR_CHECK(ndr_pull_union_align(ndr, 4));
6737                 switch (level) {
6738                         case 1: {
6739                                 NDR_CHECK(ndr_pull_drsuapi_DsRemoveDSServerResult1(ndr, NDR_SCALARS, &r->res1));
6740                         break; }
6741
6742                         default:
6743                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6744                 }
6745         }
6746         if (ndr_flags & NDR_BUFFERS) {
6747                 switch (level) {
6748                         case 1:
6749                         break;
6750
6751                         default:
6752                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6753                 }
6754         }
6755         return NDR_ERR_SUCCESS;
6756 }
6757
6758 _PUBLIC_ void ndr_print_drsuapi_DsRemoveDSServerResult(struct ndr_print *ndr, const char *name, const union drsuapi_DsRemoveDSServerResult *r)
6759 {
6760         int level;
6761         level = ndr_print_get_switch_value(ndr, r);
6762         ndr_print_union(ndr, name, level, "drsuapi_DsRemoveDSServerResult");
6763         switch (level) {
6764                 case 1:
6765                         ndr_print_drsuapi_DsRemoveDSServerResult1(ndr, "res1", &r->res1);
6766                 break;
6767
6768                 default:
6769                         ndr_print_bad_level(ndr, name, level);
6770         }
6771 }
6772
6773 static enum ndr_err_code ndr_push_drsuapi_DsGetDCInfoRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetDCInfoRequest1 *r)
6774 {
6775         if (ndr_flags & NDR_SCALARS) {
6776                 NDR_CHECK(ndr_push_align(ndr, 5));
6777                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_name));
6778                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->level));
6779                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6780         }
6781         if (ndr_flags & NDR_BUFFERS) {
6782                 if (r->domain_name) {
6783                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF16)));
6784                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6785                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF16)));
6786                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain_name, ndr_charset_length(r->domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6787                 }
6788         }
6789         return NDR_ERR_SUCCESS;
6790 }
6791
6792 static enum ndr_err_code ndr_pull_drsuapi_DsGetDCInfoRequest1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetDCInfoRequest1 *r)
6793 {
6794         uint32_t _ptr_domain_name;
6795         TALLOC_CTX *_mem_save_domain_name_0;
6796         if (ndr_flags & NDR_SCALARS) {
6797                 NDR_CHECK(ndr_pull_align(ndr, 5));
6798                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
6799                 if (_ptr_domain_name) {
6800                         NDR_PULL_ALLOC(ndr, r->domain_name);
6801                 } else {
6802                         r->domain_name = NULL;
6803                 }
6804                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->level));
6805                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
6806         }
6807         if (ndr_flags & NDR_BUFFERS) {
6808                 if (r->domain_name) {
6809                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6810                         NDR_PULL_SET_MEM_CTX(ndr, r->domain_name, 0);
6811                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain_name));
6812                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain_name));
6813                         if (ndr_get_array_length(ndr, &r->domain_name) > ndr_get_array_size(ndr, &r->domain_name)) {
6814                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain_name), ndr_get_array_length(ndr, &r->domain_name));
6815                         }
6816                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t)));
6817                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain_name, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t), CH_UTF16));
6818                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
6819                 }
6820         }
6821         return NDR_ERR_SUCCESS;
6822 }
6823
6824 _PUBLIC_ void ndr_print_drsuapi_DsGetDCInfoRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetDCInfoRequest1 *r)
6825 {
6826         ndr_print_struct(ndr, name, "drsuapi_DsGetDCInfoRequest1");
6827         ndr->depth++;
6828         ndr_print_ptr(ndr, "domain_name", r->domain_name);
6829         ndr->depth++;
6830         if (r->domain_name) {
6831                 ndr_print_string(ndr, "domain_name", r->domain_name);
6832         }
6833         ndr->depth--;
6834         ndr_print_int32(ndr, "level", r->level);
6835         ndr->depth--;
6836 }
6837
6838 static enum ndr_err_code ndr_push_drsuapi_DsGetDCInfoRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsGetDCInfoRequest *r)
6839 {
6840         if (ndr_flags & NDR_SCALARS) {
6841                 int level = ndr_push_get_switch_value(ndr, r);
6842                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
6843                 NDR_CHECK(ndr_push_union_align(ndr, 5));
6844                 switch (level) {
6845                         case 1: {
6846                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfoRequest1(ndr, NDR_SCALARS, &r->req1));
6847                         break; }
6848
6849                         default:
6850                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6851                 }
6852         }
6853         if (ndr_flags & NDR_BUFFERS) {
6854                 int level = ndr_push_get_switch_value(ndr, r);
6855                 switch (level) {
6856                         case 1:
6857                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfoRequest1(ndr, NDR_BUFFERS, &r->req1));
6858                         break;
6859
6860                         default:
6861                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6862                 }
6863         }
6864         return NDR_ERR_SUCCESS;
6865 }
6866
6867 static enum ndr_err_code ndr_pull_drsuapi_DsGetDCInfoRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsGetDCInfoRequest *r)
6868 {
6869         int level;
6870         int32_t _level;
6871         level = ndr_pull_get_switch_value(ndr, r);
6872         if (ndr_flags & NDR_SCALARS) {
6873                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
6874                 if (_level != level) {
6875                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
6876                 }
6877                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
6878                 switch (level) {
6879                         case 1: {
6880                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfoRequest1(ndr, NDR_SCALARS, &r->req1));
6881                         break; }
6882
6883                         default:
6884                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6885                 }
6886         }
6887         if (ndr_flags & NDR_BUFFERS) {
6888                 switch (level) {
6889                         case 1:
6890                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfoRequest1(ndr, NDR_BUFFERS, &r->req1));
6891                         break;
6892
6893                         default:
6894                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6895                 }
6896         }
6897         return NDR_ERR_SUCCESS;
6898 }
6899
6900 _PUBLIC_ void ndr_print_drsuapi_DsGetDCInfoRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsGetDCInfoRequest *r)
6901 {
6902         int level;
6903         level = ndr_print_get_switch_value(ndr, r);
6904         ndr_print_union(ndr, name, level, "drsuapi_DsGetDCInfoRequest");
6905         switch (level) {
6906                 case 1:
6907                         ndr_print_drsuapi_DsGetDCInfoRequest1(ndr, "req1", &r->req1);
6908                 break;
6909
6910                 default:
6911                         ndr_print_bad_level(ndr, name, level);
6912         }
6913 }
6914
6915 static enum ndr_err_code ndr_push_drsuapi_DsGetDCInfo1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetDCInfo1 *r)
6916 {
6917         if (ndr_flags & NDR_SCALARS) {
6918                 NDR_CHECK(ndr_push_align(ndr, 5));
6919                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->netbios_name));
6920                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dns_name));
6921                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->site_name));
6922                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->computer_dn));
6923                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_dn));
6924                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_pdc));
6925                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_enabled));
6926                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6927         }
6928         if (ndr_flags & NDR_BUFFERS) {
6929                 if (r->netbios_name) {
6930                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
6931                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6932                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
6933                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->netbios_name, ndr_charset_length(r->netbios_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6934                 }
6935                 if (r->dns_name) {
6936                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
6937                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6938                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
6939                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dns_name, ndr_charset_length(r->dns_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6940                 }
6941                 if (r->site_name) {
6942                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->site_name, CH_UTF16)));
6943                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6944                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->site_name, CH_UTF16)));
6945                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->site_name, ndr_charset_length(r->site_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6946                 }
6947                 if (r->computer_dn) {
6948                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->computer_dn, CH_UTF16)));
6949                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6950                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->computer_dn, CH_UTF16)));
6951                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->computer_dn, ndr_charset_length(r->computer_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6952                 }
6953                 if (r->server_dn) {
6954                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_dn, CH_UTF16)));
6955                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6956                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_dn, CH_UTF16)));
6957                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_dn, ndr_charset_length(r->server_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6958                 }
6959         }
6960         return NDR_ERR_SUCCESS;
6961 }
6962
6963 static enum ndr_err_code ndr_pull_drsuapi_DsGetDCInfo1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetDCInfo1 *r)
6964 {
6965         uint32_t _ptr_netbios_name;
6966         TALLOC_CTX *_mem_save_netbios_name_0;
6967         uint32_t _ptr_dns_name;
6968         TALLOC_CTX *_mem_save_dns_name_0;
6969         uint32_t _ptr_site_name;
6970         TALLOC_CTX *_mem_save_site_name_0;
6971         uint32_t _ptr_computer_dn;
6972         TALLOC_CTX *_mem_save_computer_dn_0;
6973         uint32_t _ptr_server_dn;
6974         TALLOC_CTX *_mem_save_server_dn_0;
6975         if (ndr_flags & NDR_SCALARS) {
6976                 NDR_CHECK(ndr_pull_align(ndr, 5));
6977                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_netbios_name));
6978                 if (_ptr_netbios_name) {
6979                         NDR_PULL_ALLOC(ndr, r->netbios_name);
6980                 } else {
6981                         r->netbios_name = NULL;
6982                 }
6983                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dns_name));
6984                 if (_ptr_dns_name) {
6985                         NDR_PULL_ALLOC(ndr, r->dns_name);
6986                 } else {
6987                         r->dns_name = NULL;
6988                 }
6989                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_name));
6990                 if (_ptr_site_name) {
6991                         NDR_PULL_ALLOC(ndr, r->site_name);
6992                 } else {
6993                         r->site_name = NULL;
6994                 }
6995                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_dn));
6996                 if (_ptr_computer_dn) {
6997                         NDR_PULL_ALLOC(ndr, r->computer_dn);
6998                 } else {
6999                         r->computer_dn = NULL;
7000                 }
7001                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_dn));
7002                 if (_ptr_server_dn) {
7003                         NDR_PULL_ALLOC(ndr, r->server_dn);
7004                 } else {
7005                         r->server_dn = NULL;
7006                 }
7007                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_pdc));
7008                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_enabled));
7009                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7010         }
7011         if (ndr_flags & NDR_BUFFERS) {
7012                 if (r->netbios_name) {
7013                         _mem_save_netbios_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7014                         NDR_PULL_SET_MEM_CTX(ndr, r->netbios_name, 0);
7015                         NDR_CHECK(ndr_pull_array_size(ndr, &r->netbios_name));
7016                         NDR_CHECK(ndr_pull_array_length(ndr, &r->netbios_name));
7017                         if (ndr_get_array_length(ndr, &r->netbios_name) > ndr_get_array_size(ndr, &r->netbios_name)) {
7018                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->netbios_name), ndr_get_array_length(ndr, &r->netbios_name));
7019                         }
7020                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t)));
7021                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->netbios_name, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t), CH_UTF16));
7022                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_netbios_name_0, 0);
7023                 }
7024                 if (r->dns_name) {
7025                         _mem_save_dns_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7026                         NDR_PULL_SET_MEM_CTX(ndr, r->dns_name, 0);
7027                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dns_name));
7028                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dns_name));
7029                         if (ndr_get_array_length(ndr, &r->dns_name) > ndr_get_array_size(ndr, &r->dns_name)) {
7030                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dns_name), ndr_get_array_length(ndr, &r->dns_name));
7031                         }
7032                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t)));
7033                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dns_name, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t), CH_UTF16));
7034                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dns_name_0, 0);
7035                 }
7036                 if (r->site_name) {
7037                         _mem_save_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7038                         NDR_PULL_SET_MEM_CTX(ndr, r->site_name, 0);
7039                         NDR_CHECK(ndr_pull_array_size(ndr, &r->site_name));
7040                         NDR_CHECK(ndr_pull_array_length(ndr, &r->site_name));
7041                         if (ndr_get_array_length(ndr, &r->site_name) > ndr_get_array_size(ndr, &r->site_name)) {
7042                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->site_name), ndr_get_array_length(ndr, &r->site_name));
7043                         }
7044                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->site_name), sizeof(uint16_t)));
7045                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->site_name, ndr_get_array_length(ndr, &r->site_name), sizeof(uint16_t), CH_UTF16));
7046                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0);
7047                 }
7048                 if (r->computer_dn) {
7049                         _mem_save_computer_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
7050                         NDR_PULL_SET_MEM_CTX(ndr, r->computer_dn, 0);
7051                         NDR_CHECK(ndr_pull_array_size(ndr, &r->computer_dn));
7052                         NDR_CHECK(ndr_pull_array_length(ndr, &r->computer_dn));
7053                         if (ndr_get_array_length(ndr, &r->computer_dn) > ndr_get_array_size(ndr, &r->computer_dn)) {
7054                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->computer_dn), ndr_get_array_length(ndr, &r->computer_dn));
7055                         }
7056                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->computer_dn), sizeof(uint16_t)));
7057                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->computer_dn, ndr_get_array_length(ndr, &r->computer_dn), sizeof(uint16_t), CH_UTF16));
7058                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_dn_0, 0);
7059                 }
7060                 if (r->server_dn) {
7061                         _mem_save_server_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
7062                         NDR_PULL_SET_MEM_CTX(ndr, r->server_dn, 0);
7063                         NDR_CHECK(ndr_pull_array_size(ndr, &r->server_dn));
7064                         NDR_CHECK(ndr_pull_array_length(ndr, &r->server_dn));
7065                         if (ndr_get_array_length(ndr, &r->server_dn) > ndr_get_array_size(ndr, &r->server_dn)) {
7066                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->server_dn), ndr_get_array_length(ndr, &r->server_dn));
7067                         }
7068                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_dn), sizeof(uint16_t)));
7069                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_dn, ndr_get_array_length(ndr, &r->server_dn), sizeof(uint16_t), CH_UTF16));
7070                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_dn_0, 0);
7071                 }
7072         }
7073         return NDR_ERR_SUCCESS;
7074 }
7075
7076 _PUBLIC_ void ndr_print_drsuapi_DsGetDCInfo1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetDCInfo1 *r)
7077 {
7078         ndr_print_struct(ndr, name, "drsuapi_DsGetDCInfo1");
7079         ndr->depth++;
7080         ndr_print_ptr(ndr, "netbios_name", r->netbios_name);
7081         ndr->depth++;
7082         if (r->netbios_name) {
7083                 ndr_print_string(ndr, "netbios_name", r->netbios_name);
7084         }
7085         ndr->depth--;
7086         ndr_print_ptr(ndr, "dns_name", r->dns_name);
7087         ndr->depth++;
7088         if (r->dns_name) {
7089                 ndr_print_string(ndr, "dns_name", r->dns_name);
7090         }
7091         ndr->depth--;
7092         ndr_print_ptr(ndr, "site_name", r->site_name);
7093         ndr->depth++;
7094         if (r->site_name) {
7095                 ndr_print_string(ndr, "site_name", r->site_name);
7096         }
7097         ndr->depth--;
7098         ndr_print_ptr(ndr, "computer_dn", r->computer_dn);
7099         ndr->depth++;
7100         if (r->computer_dn) {
7101                 ndr_print_string(ndr, "computer_dn", r->computer_dn);
7102         }
7103         ndr->depth--;
7104         ndr_print_ptr(ndr, "server_dn", r->server_dn);
7105         ndr->depth++;
7106         if (r->server_dn) {
7107                 ndr_print_string(ndr, "server_dn", r->server_dn);
7108         }
7109         ndr->depth--;
7110         ndr_print_uint32(ndr, "is_pdc", r->is_pdc);
7111         ndr_print_uint32(ndr, "is_enabled", r->is_enabled);
7112         ndr->depth--;
7113 }
7114
7115 static enum ndr_err_code ndr_push_drsuapi_DsGetDCInfoCtr1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetDCInfoCtr1 *r)
7116 {
7117         uint32_t cntr_array_1;
7118         if (ndr_flags & NDR_SCALARS) {
7119                 NDR_CHECK(ndr_push_align(ndr, 5));
7120                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7121                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->array));
7122                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7123         }
7124         if (ndr_flags & NDR_BUFFERS) {
7125                 if (r->array) {
7126                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
7127                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7128                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfo1(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
7129                         }
7130                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7131                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfo1(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
7132                         }
7133                 }
7134         }
7135         return NDR_ERR_SUCCESS;
7136 }
7137
7138 static enum ndr_err_code ndr_pull_drsuapi_DsGetDCInfoCtr1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetDCInfoCtr1 *r)
7139 {
7140         uint32_t _ptr_array;
7141         uint32_t cntr_array_1;
7142         TALLOC_CTX *_mem_save_array_0;
7143         TALLOC_CTX *_mem_save_array_1;
7144         if (ndr_flags & NDR_SCALARS) {
7145                 NDR_CHECK(ndr_pull_align(ndr, 5));
7146                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
7147                 if (r->count > 10000) {
7148                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
7149                 }
7150                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_array));
7151                 if (_ptr_array) {
7152                         NDR_PULL_ALLOC(ndr, r->array);
7153                 } else {
7154                         r->array = NULL;
7155                 }
7156                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7157         }
7158         if (ndr_flags & NDR_BUFFERS) {
7159                 if (r->array) {
7160                         _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
7161                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
7162                         NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
7163                         NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
7164                         _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
7165                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
7166                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7167                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfo1(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
7168                         }
7169                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7170                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfo1(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
7171                         }
7172                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0);
7173                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
7174                 }
7175                 if (r->array) {
7176                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
7177                 }
7178         }
7179         return NDR_ERR_SUCCESS;
7180 }
7181
7182 _PUBLIC_ void ndr_print_drsuapi_DsGetDCInfoCtr1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetDCInfoCtr1 *r)
7183 {
7184         uint32_t cntr_array_1;
7185         ndr_print_struct(ndr, name, "drsuapi_DsGetDCInfoCtr1");
7186         ndr->depth++;
7187         ndr_print_uint32(ndr, "count", r->count);
7188         ndr_print_ptr(ndr, "array", r->array);
7189         ndr->depth++;
7190         if (r->array) {
7191                 ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
7192                 ndr->depth++;
7193                 for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
7194                         char *idx_1=NULL;
7195                         if (asprintf(&idx_1, "[%d]", cntr_array_1) != -1) {
7196                                 ndr_print_drsuapi_DsGetDCInfo1(ndr, "array", &r->array[cntr_array_1]);
7197                                 free(idx_1);
7198                         }
7199                 }
7200                 ndr->depth--;
7201         }
7202         ndr->depth--;
7203         ndr->depth--;
7204 }
7205
7206 static enum ndr_err_code ndr_push_drsuapi_DsGetDCInfo2(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetDCInfo2 *r)
7207 {
7208         if (ndr_flags & NDR_SCALARS) {
7209                 NDR_CHECK(ndr_push_align(ndr, 5));
7210                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->netbios_name));
7211                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dns_name));
7212                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->site_name));
7213                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->site_dn));
7214                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->computer_dn));
7215                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_dn));
7216                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->ntds_dn));
7217                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_pdc));
7218                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_enabled));
7219                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_gc));
7220                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->site_guid));
7221                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->computer_guid));
7222                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->server_guid));
7223                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->ntds_guid));
7224                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7225         }
7226         if (ndr_flags & NDR_BUFFERS) {
7227                 if (r->netbios_name) {
7228                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
7229                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7230                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
7231                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->netbios_name, ndr_charset_length(r->netbios_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7232                 }
7233                 if (r->dns_name) {
7234                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
7235                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7236                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
7237                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dns_name, ndr_charset_length(r->dns_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7238                 }
7239                 if (r->site_name) {
7240                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->site_name, CH_UTF16)));
7241                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7242                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->site_name, CH_UTF16)));
7243                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->site_name, ndr_charset_length(r->site_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7244                 }
7245                 if (r->site_dn) {
7246                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->site_dn, CH_UTF16)));
7247                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7248                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->site_dn, CH_UTF16)));
7249                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->site_dn, ndr_charset_length(r->site_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7250                 }
7251                 if (r->computer_dn) {
7252                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->computer_dn, CH_UTF16)));
7253                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7254                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->computer_dn, CH_UTF16)));
7255                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->computer_dn, ndr_charset_length(r->computer_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7256                 }
7257                 if (r->server_dn) {
7258                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_dn, CH_UTF16)));
7259                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7260                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_dn, CH_UTF16)));
7261                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_dn, ndr_charset_length(r->server_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7262                 }
7263                 if (r->ntds_dn) {
7264                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->ntds_dn, CH_UTF16)));
7265                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7266                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->ntds_dn, CH_UTF16)));
7267                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ntds_dn, ndr_charset_length(r->ntds_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7268                 }
7269         }
7270         return NDR_ERR_SUCCESS;
7271 }
7272
7273 static enum ndr_err_code ndr_pull_drsuapi_DsGetDCInfo2(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetDCInfo2 *r)
7274 {
7275         uint32_t _ptr_netbios_name;
7276         TALLOC_CTX *_mem_save_netbios_name_0;
7277         uint32_t _ptr_dns_name;
7278         TALLOC_CTX *_mem_save_dns_name_0;
7279         uint32_t _ptr_site_name;
7280         TALLOC_CTX *_mem_save_site_name_0;
7281         uint32_t _ptr_site_dn;
7282         TALLOC_CTX *_mem_save_site_dn_0;
7283         uint32_t _ptr_computer_dn;
7284         TALLOC_CTX *_mem_save_computer_dn_0;
7285         uint32_t _ptr_server_dn;
7286         TALLOC_CTX *_mem_save_server_dn_0;
7287         uint32_t _ptr_ntds_dn;
7288         TALLOC_CTX *_mem_save_ntds_dn_0;
7289         if (ndr_flags & NDR_SCALARS) {
7290                 NDR_CHECK(ndr_pull_align(ndr, 5));
7291                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_netbios_name));
7292                 if (_ptr_netbios_name) {
7293                         NDR_PULL_ALLOC(ndr, r->netbios_name);
7294                 } else {
7295                         r->netbios_name = NULL;
7296                 }
7297                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dns_name));
7298                 if (_ptr_dns_name) {
7299                         NDR_PULL_ALLOC(ndr, r->dns_name);
7300                 } else {
7301                         r->dns_name = NULL;
7302                 }
7303                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_name));
7304                 if (_ptr_site_name) {
7305                         NDR_PULL_ALLOC(ndr, r->site_name);
7306                 } else {
7307                         r->site_name = NULL;
7308                 }
7309                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_dn));
7310                 if (_ptr_site_dn) {
7311                         NDR_PULL_ALLOC(ndr, r->site_dn);
7312                 } else {
7313                         r->site_dn = NULL;
7314                 }
7315                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_dn));
7316                 if (_ptr_computer_dn) {
7317                         NDR_PULL_ALLOC(ndr, r->computer_dn);
7318                 } else {
7319                         r->computer_dn = NULL;
7320                 }
7321                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_dn));
7322                 if (_ptr_server_dn) {
7323                         NDR_PULL_ALLOC(ndr, r->server_dn);
7324                 } else {
7325                         r->server_dn = NULL;
7326                 }
7327                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ntds_dn));
7328                 if (_ptr_ntds_dn) {
7329                         NDR_PULL_ALLOC(ndr, r->ntds_dn);
7330                 } else {
7331                         r->ntds_dn = NULL;
7332                 }
7333                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_pdc));
7334                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_enabled));
7335                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_gc));
7336                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->site_guid));
7337                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->computer_guid));
7338                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->server_guid));
7339                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->ntds_guid));
7340                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7341         }
7342         if (ndr_flags & NDR_BUFFERS) {
7343                 if (r->netbios_name) {
7344                         _mem_save_netbios_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7345                         NDR_PULL_SET_MEM_CTX(ndr, r->netbios_name, 0);
7346                         NDR_CHECK(ndr_pull_array_size(ndr, &r->netbios_name));
7347                         NDR_CHECK(ndr_pull_array_length(ndr, &r->netbios_name));
7348                         if (ndr_get_array_length(ndr, &r->netbios_name) > ndr_get_array_size(ndr, &r->netbios_name)) {
7349                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->netbios_name), ndr_get_array_length(ndr, &r->netbios_name));
7350                         }
7351                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t)));
7352                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->netbios_name, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t), CH_UTF16));
7353                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_netbios_name_0, 0);
7354                 }
7355                 if (r->dns_name) {
7356                         _mem_save_dns_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7357                         NDR_PULL_SET_MEM_CTX(ndr, r->dns_name, 0);
7358                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dns_name));
7359                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dns_name));
7360                         if (ndr_get_array_length(ndr, &r->dns_name) > ndr_get_array_size(ndr, &r->dns_name)) {
7361                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dns_name), ndr_get_array_length(ndr, &r->dns_name));
7362                         }
7363                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t)));
7364                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dns_name, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t), CH_UTF16));
7365                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dns_name_0, 0);
7366                 }
7367                 if (r->site_name) {
7368                         _mem_save_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7369                         NDR_PULL_SET_MEM_CTX(ndr, r->site_name, 0);
7370                         NDR_CHECK(ndr_pull_array_size(ndr, &r->site_name));
7371                         NDR_CHECK(ndr_pull_array_length(ndr, &r->site_name));
7372                         if (ndr_get_array_length(ndr, &r->site_name) > ndr_get_array_size(ndr, &r->site_name)) {
7373                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->site_name), ndr_get_array_length(ndr, &r->site_name));
7374                         }
7375                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->site_name), sizeof(uint16_t)));
7376                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->site_name, ndr_get_array_length(ndr, &r->site_name), sizeof(uint16_t), CH_UTF16));
7377                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0);
7378                 }
7379                 if (r->site_dn) {
7380                         _mem_save_site_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
7381                         NDR_PULL_SET_MEM_CTX(ndr, r->site_dn, 0);
7382                         NDR_CHECK(ndr_pull_array_size(ndr, &r->site_dn));
7383                         NDR_CHECK(ndr_pull_array_length(ndr, &r->site_dn));
7384                         if (ndr_get_array_length(ndr, &r->site_dn) > ndr_get_array_size(ndr, &r->site_dn)) {
7385                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->site_dn), ndr_get_array_length(ndr, &r->site_dn));
7386                         }
7387                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->site_dn), sizeof(uint16_t)));
7388                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->site_dn, ndr_get_array_length(ndr, &r->site_dn), sizeof(uint16_t), CH_UTF16));
7389                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_dn_0, 0);
7390                 }
7391                 if (r->computer_dn) {
7392                         _mem_save_computer_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
7393                         NDR_PULL_SET_MEM_CTX(ndr, r->computer_dn, 0);
7394                         NDR_CHECK(ndr_pull_array_size(ndr, &r->computer_dn));
7395                         NDR_CHECK(ndr_pull_array_length(ndr, &r->computer_dn));
7396                         if (ndr_get_array_length(ndr, &r->computer_dn) > ndr_get_array_size(ndr, &r->computer_dn)) {
7397                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->computer_dn), ndr_get_array_length(ndr, &r->computer_dn));
7398                         }
7399                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->computer_dn), sizeof(uint16_t)));
7400                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->computer_dn, ndr_get_array_length(ndr, &r->computer_dn), 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                         if (ndr_get_array_length(ndr, &r->server_dn) > ndr_get_array_size(ndr, &r->server_dn)) {
7409                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->server_dn), ndr_get_array_length(ndr, &r->server_dn));
7410                         }
7411                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_dn), sizeof(uint16_t)));
7412                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_dn, ndr_get_array_length(ndr, &r->server_dn), sizeof(uint16_t), CH_UTF16));
7413                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_dn_0, 0);
7414                 }
7415                 if (r->ntds_dn) {
7416                         _mem_save_ntds_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
7417                         NDR_PULL_SET_MEM_CTX(ndr, r->ntds_dn, 0);
7418                         NDR_CHECK(ndr_pull_array_size(ndr, &r->ntds_dn));
7419                         NDR_CHECK(ndr_pull_array_length(ndr, &r->ntds_dn));
7420                         if (ndr_get_array_length(ndr, &r->ntds_dn) > ndr_get_array_size(ndr, &r->ntds_dn)) {
7421                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->ntds_dn), ndr_get_array_length(ndr, &r->ntds_dn));
7422                         }
7423                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->ntds_dn), sizeof(uint16_t)));
7424                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ntds_dn, ndr_get_array_length(ndr, &r->ntds_dn), sizeof(uint16_t), CH_UTF16));
7425                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ntds_dn_0, 0);
7426                 }
7427         }
7428         return NDR_ERR_SUCCESS;
7429 }
7430
7431 _PUBLIC_ void ndr_print_drsuapi_DsGetDCInfo2(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetDCInfo2 *r)
7432 {
7433         ndr_print_struct(ndr, name, "drsuapi_DsGetDCInfo2");
7434         ndr->depth++;
7435         ndr_print_ptr(ndr, "netbios_name", r->netbios_name);
7436         ndr->depth++;
7437         if (r->netbios_name) {
7438                 ndr_print_string(ndr, "netbios_name", r->netbios_name);
7439         }
7440         ndr->depth--;
7441         ndr_print_ptr(ndr, "dns_name", r->dns_name);
7442         ndr->depth++;
7443         if (r->dns_name) {
7444                 ndr_print_string(ndr, "dns_name", r->dns_name);
7445         }
7446         ndr->depth--;
7447         ndr_print_ptr(ndr, "site_name", r->site_name);
7448         ndr->depth++;
7449         if (r->site_name) {
7450                 ndr_print_string(ndr, "site_name", r->site_name);
7451         }
7452         ndr->depth--;
7453         ndr_print_ptr(ndr, "site_dn", r->site_dn);
7454         ndr->depth++;
7455         if (r->site_dn) {
7456                 ndr_print_string(ndr, "site_dn", r->site_dn);
7457         }
7458         ndr->depth--;
7459         ndr_print_ptr(ndr, "computer_dn", r->computer_dn);
7460         ndr->depth++;
7461         if (r->computer_dn) {
7462                 ndr_print_string(ndr, "computer_dn", r->computer_dn);
7463         }
7464         ndr->depth--;
7465         ndr_print_ptr(ndr, "server_dn", r->server_dn);
7466         ndr->depth++;
7467         if (r->server_dn) {
7468                 ndr_print_string(ndr, "server_dn", r->server_dn);
7469         }
7470         ndr->depth--;
7471         ndr_print_ptr(ndr, "ntds_dn", r->ntds_dn);
7472         ndr->depth++;
7473         if (r->ntds_dn) {
7474                 ndr_print_string(ndr, "ntds_dn", r->ntds_dn);
7475         }
7476         ndr->depth--;
7477         ndr_print_uint32(ndr, "is_pdc", r->is_pdc);
7478         ndr_print_uint32(ndr, "is_enabled", r->is_enabled);
7479         ndr_print_uint32(ndr, "is_gc", r->is_gc);
7480         ndr_print_GUID(ndr, "site_guid", &r->site_guid);
7481         ndr_print_GUID(ndr, "computer_guid", &r->computer_guid);
7482         ndr_print_GUID(ndr, "server_guid", &r->server_guid);
7483         ndr_print_GUID(ndr, "ntds_guid", &r->ntds_guid);
7484         ndr->depth--;
7485 }
7486
7487 static enum ndr_err_code ndr_push_drsuapi_DsGetDCInfoCtr2(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetDCInfoCtr2 *r)
7488 {
7489         uint32_t cntr_array_1;
7490         if (ndr_flags & NDR_SCALARS) {
7491                 NDR_CHECK(ndr_push_align(ndr, 5));
7492                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7493                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->array));
7494                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7495         }
7496         if (ndr_flags & NDR_BUFFERS) {
7497                 if (r->array) {
7498                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
7499                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7500                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfo2(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
7501                         }
7502                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7503                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfo2(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
7504                         }
7505                 }
7506         }
7507         return NDR_ERR_SUCCESS;
7508 }
7509
7510 static enum ndr_err_code ndr_pull_drsuapi_DsGetDCInfoCtr2(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetDCInfoCtr2 *r)
7511 {
7512         uint32_t _ptr_array;
7513         uint32_t cntr_array_1;
7514         TALLOC_CTX *_mem_save_array_0;
7515         TALLOC_CTX *_mem_save_array_1;
7516         if (ndr_flags & NDR_SCALARS) {
7517                 NDR_CHECK(ndr_pull_align(ndr, 5));
7518                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
7519                 if (r->count > 10000) {
7520                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
7521                 }
7522                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_array));
7523                 if (_ptr_array) {
7524                         NDR_PULL_ALLOC(ndr, r->array);
7525                 } else {
7526                         r->array = NULL;
7527                 }
7528                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7529         }
7530         if (ndr_flags & NDR_BUFFERS) {
7531                 if (r->array) {
7532                         _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
7533                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
7534                         NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
7535                         NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
7536                         _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
7537                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
7538                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7539                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfo2(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
7540                         }
7541                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7542                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfo2(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
7543                         }
7544                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0);
7545                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
7546                 }
7547                 if (r->array) {
7548                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
7549                 }
7550         }
7551         return NDR_ERR_SUCCESS;
7552 }
7553
7554 _PUBLIC_ void ndr_print_drsuapi_DsGetDCInfoCtr2(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetDCInfoCtr2 *r)
7555 {
7556         uint32_t cntr_array_1;
7557         ndr_print_struct(ndr, name, "drsuapi_DsGetDCInfoCtr2");
7558         ndr->depth++;
7559         ndr_print_uint32(ndr, "count", r->count);
7560         ndr_print_ptr(ndr, "array", r->array);
7561         ndr->depth++;
7562         if (r->array) {
7563                 ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
7564                 ndr->depth++;
7565                 for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
7566                         char *idx_1=NULL;
7567                         if (asprintf(&idx_1, "[%d]", cntr_array_1) != -1) {
7568                                 ndr_print_drsuapi_DsGetDCInfo2(ndr, "array", &r->array[cntr_array_1]);
7569                                 free(idx_1);
7570                         }
7571                 }
7572                 ndr->depth--;
7573         }
7574         ndr->depth--;
7575         ndr->depth--;
7576 }
7577
7578 static enum ndr_err_code ndr_push_drsuapi_DsGetDCInfo3(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetDCInfo3 *r)
7579 {
7580         if (ndr_flags & NDR_SCALARS) {
7581                 NDR_CHECK(ndr_push_align(ndr, 5));
7582                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->netbios_name));
7583                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dns_name));
7584                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->site_name));
7585                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->site_dn));
7586                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->computer_dn));
7587                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_dn));
7588                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->ntds_dn));
7589                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_pdc));
7590                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_enabled));
7591                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_gc));
7592                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_rodc));
7593                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->site_guid));
7594                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->computer_guid));
7595                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->server_guid));
7596                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->ntds_guid));
7597                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7598         }
7599         if (ndr_flags & NDR_BUFFERS) {
7600                 if (r->netbios_name) {
7601                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
7602                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7603                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
7604                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->netbios_name, ndr_charset_length(r->netbios_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7605                 }
7606                 if (r->dns_name) {
7607                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
7608                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7609                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
7610                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dns_name, ndr_charset_length(r->dns_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7611                 }
7612                 if (r->site_name) {
7613                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->site_name, CH_UTF16)));
7614                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7615                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->site_name, CH_UTF16)));
7616                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->site_name, ndr_charset_length(r->site_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7617                 }
7618                 if (r->site_dn) {
7619                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->site_dn, CH_UTF16)));
7620                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7621                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->site_dn, CH_UTF16)));
7622                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->site_dn, ndr_charset_length(r->site_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7623                 }
7624                 if (r->computer_dn) {
7625                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->computer_dn, CH_UTF16)));
7626                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7627                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->computer_dn, CH_UTF16)));
7628                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->computer_dn, ndr_charset_length(r->computer_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7629                 }
7630                 if (r->server_dn) {
7631                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_dn, CH_UTF16)));
7632                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7633                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_dn, CH_UTF16)));
7634                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_dn, ndr_charset_length(r->server_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7635                 }
7636                 if (r->ntds_dn) {
7637                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->ntds_dn, CH_UTF16)));
7638                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7639                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->ntds_dn, CH_UTF16)));
7640                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ntds_dn, ndr_charset_length(r->ntds_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7641                 }
7642         }
7643         return NDR_ERR_SUCCESS;
7644 }
7645
7646 static enum ndr_err_code ndr_pull_drsuapi_DsGetDCInfo3(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetDCInfo3 *r)
7647 {
7648         uint32_t _ptr_netbios_name;
7649         TALLOC_CTX *_mem_save_netbios_name_0;
7650         uint32_t _ptr_dns_name;
7651         TALLOC_CTX *_mem_save_dns_name_0;
7652         uint32_t _ptr_site_name;
7653         TALLOC_CTX *_mem_save_site_name_0;
7654         uint32_t _ptr_site_dn;
7655         TALLOC_CTX *_mem_save_site_dn_0;
7656         uint32_t _ptr_computer_dn;
7657         TALLOC_CTX *_mem_save_computer_dn_0;
7658         uint32_t _ptr_server_dn;
7659         TALLOC_CTX *_mem_save_server_dn_0;
7660         uint32_t _ptr_ntds_dn;
7661         TALLOC_CTX *_mem_save_ntds_dn_0;
7662         if (ndr_flags & NDR_SCALARS) {
7663                 NDR_CHECK(ndr_pull_align(ndr, 5));
7664                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_netbios_name));
7665                 if (_ptr_netbios_name) {
7666                         NDR_PULL_ALLOC(ndr, r->netbios_name);
7667                 } else {
7668                         r->netbios_name = NULL;
7669                 }
7670                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dns_name));
7671                 if (_ptr_dns_name) {
7672                         NDR_PULL_ALLOC(ndr, r->dns_name);
7673                 } else {
7674                         r->dns_name = NULL;
7675                 }
7676                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_name));
7677                 if (_ptr_site_name) {
7678                         NDR_PULL_ALLOC(ndr, r->site_name);
7679                 } else {
7680                         r->site_name = NULL;
7681                 }
7682                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_dn));
7683                 if (_ptr_site_dn) {
7684                         NDR_PULL_ALLOC(ndr, r->site_dn);
7685                 } else {
7686                         r->site_dn = NULL;
7687                 }
7688                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_dn));
7689                 if (_ptr_computer_dn) {
7690                         NDR_PULL_ALLOC(ndr, r->computer_dn);
7691                 } else {
7692                         r->computer_dn = NULL;
7693                 }
7694                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_dn));
7695                 if (_ptr_server_dn) {
7696                         NDR_PULL_ALLOC(ndr, r->server_dn);
7697                 } else {
7698                         r->server_dn = NULL;
7699                 }
7700                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ntds_dn));
7701                 if (_ptr_ntds_dn) {
7702                         NDR_PULL_ALLOC(ndr, r->ntds_dn);
7703                 } else {
7704                         r->ntds_dn = NULL;
7705                 }
7706                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_pdc));
7707                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_enabled));
7708                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_gc));
7709                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_rodc));
7710                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->site_guid));
7711                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->computer_guid));
7712                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->server_guid));
7713                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->ntds_guid));
7714                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7715         }
7716         if (ndr_flags & NDR_BUFFERS) {
7717                 if (r->netbios_name) {
7718                         _mem_save_netbios_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7719                         NDR_PULL_SET_MEM_CTX(ndr, r->netbios_name, 0);
7720                         NDR_CHECK(ndr_pull_array_size(ndr, &r->netbios_name));
7721                         NDR_CHECK(ndr_pull_array_length(ndr, &r->netbios_name));
7722                         if (ndr_get_array_length(ndr, &r->netbios_name) > ndr_get_array_size(ndr, &r->netbios_name)) {
7723                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->netbios_name), ndr_get_array_length(ndr, &r->netbios_name));
7724                         }
7725                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t)));
7726                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->netbios_name, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t), CH_UTF16));
7727                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_netbios_name_0, 0);
7728                 }
7729                 if (r->dns_name) {
7730                         _mem_save_dns_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7731                         NDR_PULL_SET_MEM_CTX(ndr, r->dns_name, 0);
7732                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dns_name));
7733                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dns_name));
7734                         if (ndr_get_array_length(ndr, &r->dns_name) > ndr_get_array_size(ndr, &r->dns_name)) {
7735                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dns_name), ndr_get_array_length(ndr, &r->dns_name));
7736                         }
7737                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t)));
7738                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dns_name, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t), CH_UTF16));
7739                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dns_name_0, 0);
7740                 }
7741                 if (r->site_name) {
7742                         _mem_save_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7743                         NDR_PULL_SET_MEM_CTX(ndr, r->site_name, 0);
7744                         NDR_CHECK(ndr_pull_array_size(ndr, &r->site_name));
7745                         NDR_CHECK(ndr_pull_array_length(ndr, &r->site_name));
7746                         if (ndr_get_array_length(ndr, &r->site_name) > ndr_get_array_size(ndr, &r->site_name)) {
7747                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->site_name), ndr_get_array_length(ndr, &r->site_name));
7748                         }
7749                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->site_name), sizeof(uint16_t)));
7750                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->site_name, ndr_get_array_length(ndr, &r->site_name), sizeof(uint16_t), CH_UTF16));
7751                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0);
7752                 }
7753                 if (r->site_dn) {
7754                         _mem_save_site_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
7755                         NDR_PULL_SET_MEM_CTX(ndr, r->site_dn, 0);
7756                         NDR_CHECK(ndr_pull_array_size(ndr, &r->site_dn));
7757                         NDR_CHECK(ndr_pull_array_length(ndr, &r->site_dn));
7758                         if (ndr_get_array_length(ndr, &r->site_dn) > ndr_get_array_size(ndr, &r->site_dn)) {
7759                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->site_dn), ndr_get_array_length(ndr, &r->site_dn));
7760                         }
7761                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->site_dn), sizeof(uint16_t)));
7762                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->site_dn, ndr_get_array_length(ndr, &r->site_dn), sizeof(uint16_t), CH_UTF16));
7763                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_dn_0, 0);
7764                 }
7765                 if (r->computer_dn) {
7766                         _mem_save_computer_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
7767                         NDR_PULL_SET_MEM_CTX(ndr, r->computer_dn, 0);
7768                         NDR_CHECK(ndr_pull_array_size(ndr, &r->computer_dn));
7769                         NDR_CHECK(ndr_pull_array_length(ndr, &r->computer_dn));
7770                         if (ndr_get_array_length(ndr, &r->computer_dn) > ndr_get_array_size(ndr, &r->computer_dn)) {
7771                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->computer_dn), ndr_get_array_length(ndr, &r->computer_dn));
7772                         }
7773                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->computer_dn), sizeof(uint16_t)));
7774                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->computer_dn, ndr_get_array_length(ndr, &r->computer_dn), sizeof(uint16_t), CH_UTF16));
7775                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_dn_0, 0);
7776                 }
7777                 if (r->server_dn) {
7778                         _mem_save_server_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
7779                         NDR_PULL_SET_MEM_CTX(ndr, r->server_dn, 0);
7780                         NDR_CHECK(ndr_pull_array_size(ndr, &r->server_dn));
7781                         NDR_CHECK(ndr_pull_array_length(ndr, &r->server_dn));
7782                         if (ndr_get_array_length(ndr, &r->server_dn) > ndr_get_array_size(ndr, &r->server_dn)) {
7783                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->server_dn), ndr_get_array_length(ndr, &r->server_dn));
7784                         }
7785                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_dn), sizeof(uint16_t)));
7786                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_dn, ndr_get_array_length(ndr, &r->server_dn), sizeof(uint16_t), CH_UTF16));
7787                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_dn_0, 0);
7788                 }
7789                 if (r->ntds_dn) {
7790                         _mem_save_ntds_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
7791                         NDR_PULL_SET_MEM_CTX(ndr, r->ntds_dn, 0);
7792                         NDR_CHECK(ndr_pull_array_size(ndr, &r->ntds_dn));
7793                         NDR_CHECK(ndr_pull_array_length(ndr, &r->ntds_dn));
7794                         if (ndr_get_array_length(ndr, &r->ntds_dn) > ndr_get_array_size(ndr, &r->ntds_dn)) {
7795                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->ntds_dn), ndr_get_array_length(ndr, &r->ntds_dn));
7796                         }
7797                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->ntds_dn), sizeof(uint16_t)));
7798                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ntds_dn, ndr_get_array_length(ndr, &r->ntds_dn), sizeof(uint16_t), CH_UTF16));
7799                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ntds_dn_0, 0);
7800                 }
7801         }
7802         return NDR_ERR_SUCCESS;
7803 }
7804
7805 _PUBLIC_ void ndr_print_drsuapi_DsGetDCInfo3(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetDCInfo3 *r)
7806 {
7807         ndr_print_struct(ndr, name, "drsuapi_DsGetDCInfo3");
7808         ndr->depth++;
7809         ndr_print_ptr(ndr, "netbios_name", r->netbios_name);
7810         ndr->depth++;
7811         if (r->netbios_name) {
7812                 ndr_print_string(ndr, "netbios_name", r->netbios_name);
7813         }
7814         ndr->depth--;
7815         ndr_print_ptr(ndr, "dns_name", r->dns_name);
7816         ndr->depth++;
7817         if (r->dns_name) {
7818                 ndr_print_string(ndr, "dns_name", r->dns_name);
7819         }
7820         ndr->depth--;
7821         ndr_print_ptr(ndr, "site_name", r->site_name);
7822         ndr->depth++;
7823         if (r->site_name) {
7824                 ndr_print_string(ndr, "site_name", r->site_name);
7825         }
7826         ndr->depth--;
7827         ndr_print_ptr(ndr, "site_dn", r->site_dn);
7828         ndr->depth++;
7829         if (r->site_dn) {
7830                 ndr_print_string(ndr, "site_dn", r->site_dn);
7831         }
7832         ndr->depth--;
7833         ndr_print_ptr(ndr, "computer_dn", r->computer_dn);
7834         ndr->depth++;
7835         if (r->computer_dn) {
7836                 ndr_print_string(ndr, "computer_dn", r->computer_dn);
7837         }
7838         ndr->depth--;
7839         ndr_print_ptr(ndr, "server_dn", r->server_dn);
7840         ndr->depth++;
7841         if (r->server_dn) {
7842                 ndr_print_string(ndr, "server_dn", r->server_dn);
7843         }
7844         ndr->depth--;
7845         ndr_print_ptr(ndr, "ntds_dn", r->ntds_dn);
7846         ndr->depth++;
7847         if (r->ntds_dn) {
7848                 ndr_print_string(ndr, "ntds_dn", r->ntds_dn);
7849         }
7850         ndr->depth--;
7851         ndr_print_uint32(ndr, "is_pdc", r->is_pdc);
7852         ndr_print_uint32(ndr, "is_enabled", r->is_enabled);
7853         ndr_print_uint32(ndr, "is_gc", r->is_gc);
7854         ndr_print_uint32(ndr, "is_rodc", r->is_rodc);
7855         ndr_print_GUID(ndr, "site_guid", &r->site_guid);
7856         ndr_print_GUID(ndr, "computer_guid", &r->computer_guid);
7857         ndr_print_GUID(ndr, "server_guid", &r->server_guid);
7858         ndr_print_GUID(ndr, "ntds_guid", &r->ntds_guid);
7859         ndr->depth--;
7860 }
7861
7862 static enum ndr_err_code ndr_push_drsuapi_DsGetDCInfoCtr3(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetDCInfoCtr3 *r)
7863 {
7864         uint32_t cntr_array_1;
7865         if (ndr_flags & NDR_SCALARS) {
7866                 NDR_CHECK(ndr_push_align(ndr, 5));
7867                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7868                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->array));
7869                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7870         }
7871         if (ndr_flags & NDR_BUFFERS) {
7872                 if (r->array) {
7873                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
7874                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7875                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfo3(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
7876                         }
7877                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7878                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfo3(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
7879                         }
7880                 }
7881         }
7882         return NDR_ERR_SUCCESS;
7883 }
7884
7885 static enum ndr_err_code ndr_pull_drsuapi_DsGetDCInfoCtr3(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetDCInfoCtr3 *r)
7886 {
7887         uint32_t _ptr_array;
7888         uint32_t cntr_array_1;
7889         TALLOC_CTX *_mem_save_array_0;
7890         TALLOC_CTX *_mem_save_array_1;
7891         if (ndr_flags & NDR_SCALARS) {
7892                 NDR_CHECK(ndr_pull_align(ndr, 5));
7893                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
7894                 if (r->count > 10000) {
7895                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
7896                 }
7897                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_array));
7898                 if (_ptr_array) {
7899                         NDR_PULL_ALLOC(ndr, r->array);
7900                 } else {
7901                         r->array = NULL;
7902                 }
7903                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7904         }
7905         if (ndr_flags & NDR_BUFFERS) {
7906                 if (r->array) {
7907                         _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
7908                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
7909                         NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
7910                         NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
7911                         _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
7912                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
7913                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7914                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfo3(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
7915                         }
7916                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7917                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfo3(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
7918                         }
7919                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0);
7920                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
7921                 }
7922                 if (r->array) {
7923                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
7924                 }
7925         }
7926         return NDR_ERR_SUCCESS;
7927 }
7928
7929 _PUBLIC_ void ndr_print_drsuapi_DsGetDCInfoCtr3(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetDCInfoCtr3 *r)
7930 {
7931         uint32_t cntr_array_1;
7932         ndr_print_struct(ndr, name, "drsuapi_DsGetDCInfoCtr3");
7933         ndr->depth++;
7934         ndr_print_uint32(ndr, "count", r->count);
7935         ndr_print_ptr(ndr, "array", r->array);
7936         ndr->depth++;
7937         if (r->array) {
7938                 ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
7939                 ndr->depth++;
7940                 for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
7941                         char *idx_1=NULL;
7942                         if (asprintf(&idx_1, "[%d]", cntr_array_1) != -1) {
7943                                 ndr_print_drsuapi_DsGetDCInfo3(ndr, "array", &r->array[cntr_array_1]);
7944                                 free(idx_1);
7945                         }
7946                 }
7947                 ndr->depth--;
7948         }
7949         ndr->depth--;
7950         ndr->depth--;
7951 }
7952
7953 static enum ndr_err_code ndr_push_drsuapi_DsGetDCConnection01(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetDCConnection01 *r)
7954 {
7955         if (ndr_flags & NDR_SCALARS) {
7956                 NDR_CHECK(ndr_push_align(ndr, 5));
7957                 {
7958                         uint32_t _flags_save_ipv4address = ndr->flags;
7959                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
7960                         NDR_CHECK(ndr_push_ipv4address(ndr, NDR_SCALARS, r->client_ip_address));
7961                         ndr->flags = _flags_save_ipv4address;
7962                 }
7963                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
7964                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->connection_time));
7965                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
7966                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
7967                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
7968                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client_account));
7969                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7970         }
7971         if (ndr_flags & NDR_BUFFERS) {
7972                 if (r->client_account) {
7973                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client_account, CH_UTF16)));
7974                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7975                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client_account, CH_UTF16)));
7976                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client_account, ndr_charset_length(r->client_account, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7977                 }
7978         }
7979         return NDR_ERR_SUCCESS;
7980 }
7981
7982 static enum ndr_err_code ndr_pull_drsuapi_DsGetDCConnection01(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetDCConnection01 *r)
7983 {
7984         uint32_t _ptr_client_account;
7985         TALLOC_CTX *_mem_save_client_account_0;
7986         if (ndr_flags & NDR_SCALARS) {
7987                 NDR_CHECK(ndr_pull_align(ndr, 5));
7988                 {
7989                         uint32_t _flags_save_ipv4address = ndr->flags;
7990                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
7991                         NDR_CHECK(ndr_pull_ipv4address(ndr, NDR_SCALARS, &r->client_ip_address));
7992                         ndr->flags = _flags_save_ipv4address;
7993                 }
7994                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
7995                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->connection_time));
7996                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
7997                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
7998                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
7999                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_account));
8000                 if (_ptr_client_account) {
8001                         NDR_PULL_ALLOC(ndr, r->client_account);
8002                 } else {
8003                         r->client_account = NULL;
8004                 }
8005                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8006         }
8007         if (ndr_flags & NDR_BUFFERS) {
8008                 if (r->client_account) {
8009                         _mem_save_client_account_0 = NDR_PULL_GET_MEM_CTX(ndr);
8010                         NDR_PULL_SET_MEM_CTX(ndr, r->client_account, 0);
8011                         NDR_CHECK(ndr_pull_array_size(ndr, &r->client_account));
8012                         NDR_CHECK(ndr_pull_array_length(ndr, &r->client_account));
8013                         if (ndr_get_array_length(ndr, &r->client_account) > ndr_get_array_size(ndr, &r->client_account)) {
8014                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->client_account), ndr_get_array_length(ndr, &r->client_account));
8015                         }
8016                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client_account), sizeof(uint16_t)));
8017                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client_account, ndr_get_array_length(ndr, &r->client_account), sizeof(uint16_t), CH_UTF16));
8018                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_account_0, 0);
8019                 }
8020         }
8021         return NDR_ERR_SUCCESS;
8022 }
8023
8024 _PUBLIC_ void ndr_print_drsuapi_DsGetDCConnection01(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetDCConnection01 *r)
8025 {
8026         ndr_print_struct(ndr, name, "drsuapi_DsGetDCConnection01");
8027         ndr->depth++;
8028         ndr_print_ipv4address(ndr, "client_ip_address", r->client_ip_address);
8029         ndr_print_uint32(ndr, "unknown2", r->unknown2);
8030         ndr_print_uint32(ndr, "connection_time", r->connection_time);
8031         ndr_print_uint32(ndr, "unknown4", r->unknown4);
8032         ndr_print_uint32(ndr, "unknown5", r->unknown5);
8033         ndr_print_uint32(ndr, "unknown6", r->unknown6);
8034         ndr_print_ptr(ndr, "client_account", r->client_account);
8035         ndr->depth++;
8036         if (r->client_account) {
8037                 ndr_print_string(ndr, "client_account", r->client_account);
8038         }
8039         ndr->depth--;
8040         ndr->depth--;
8041 }
8042
8043 static enum ndr_err_code ndr_push_drsuapi_DsGetDCConnectionCtr01(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetDCConnectionCtr01 *r)
8044 {
8045         uint32_t cntr_array_1;
8046         if (ndr_flags & NDR_SCALARS) {
8047                 NDR_CHECK(ndr_push_align(ndr, 5));
8048                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8049                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->array));
8050                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8051         }
8052         if (ndr_flags & NDR_BUFFERS) {
8053                 if (r->array) {
8054                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
8055                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
8056                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCConnection01(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
8057                         }
8058                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
8059                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCConnection01(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
8060                         }
8061                 }
8062         }
8063         return NDR_ERR_SUCCESS;
8064 }
8065
8066 static enum ndr_err_code ndr_pull_drsuapi_DsGetDCConnectionCtr01(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetDCConnectionCtr01 *r)
8067 {
8068         uint32_t _ptr_array;
8069         uint32_t cntr_array_1;
8070         TALLOC_CTX *_mem_save_array_0;
8071         TALLOC_CTX *_mem_save_array_1;
8072         if (ndr_flags & NDR_SCALARS) {
8073                 NDR_CHECK(ndr_pull_align(ndr, 5));
8074                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
8075                 if (r->count > 10000) {
8076                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
8077                 }
8078                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_array));
8079                 if (_ptr_array) {
8080                         NDR_PULL_ALLOC(ndr, r->array);
8081                 } else {
8082                         r->array = NULL;
8083                 }
8084                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8085         }
8086         if (ndr_flags & NDR_BUFFERS) {
8087                 if (r->array) {
8088                         _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
8089                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
8090                         NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
8091                         NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
8092                         _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
8093                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
8094                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
8095                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCConnection01(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
8096                         }
8097                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
8098                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCConnection01(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
8099                         }
8100                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0);
8101                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
8102                 }
8103                 if (r->array) {
8104                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
8105                 }
8106         }
8107         return NDR_ERR_SUCCESS;
8108 }
8109
8110 _PUBLIC_ void ndr_print_drsuapi_DsGetDCConnectionCtr01(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetDCConnectionCtr01 *r)
8111 {
8112         uint32_t cntr_array_1;
8113         ndr_print_struct(ndr, name, "drsuapi_DsGetDCConnectionCtr01");
8114         ndr->depth++;
8115         ndr_print_uint32(ndr, "count", r->count);
8116         ndr_print_ptr(ndr, "array", r->array);
8117         ndr->depth++;
8118         if (r->array) {
8119                 ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
8120                 ndr->depth++;
8121                 for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
8122                         char *idx_1=NULL;
8123                         if (asprintf(&idx_1, "[%d]", cntr_array_1) != -1) {
8124                                 ndr_print_drsuapi_DsGetDCConnection01(ndr, "array", &r->array[cntr_array_1]);
8125                                 free(idx_1);
8126                         }
8127                 }
8128                 ndr->depth--;
8129         }
8130         ndr->depth--;
8131         ndr->depth--;
8132 }
8133
8134 static enum ndr_err_code ndr_push_drsuapi_DsGetDCInfoCtr(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsGetDCInfoCtr *r)
8135 {
8136         if (ndr_flags & NDR_SCALARS) {
8137                 int level = ndr_push_get_switch_value(ndr, r);
8138                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
8139                 NDR_CHECK(ndr_push_union_align(ndr, 5));
8140                 switch (level) {
8141                         case DRSUAPI_DC_INFO_CTR_1: {
8142                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfoCtr1(ndr, NDR_SCALARS, &r->ctr1));
8143                         break; }
8144
8145                         case DRSUAPI_DC_INFO_CTR_2: {
8146                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfoCtr2(ndr, NDR_SCALARS, &r->ctr2));
8147                         break; }
8148
8149                         case DRSUAPI_DC_INFO_CTR_3: {
8150                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfoCtr3(ndr, NDR_SCALARS, &r->ctr3));
8151                         break; }
8152
8153                         case DRSUAPI_DC_CONNECTION_CTR_01: {
8154                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCConnectionCtr01(ndr, NDR_SCALARS, &r->ctr01));
8155                         break; }
8156
8157                         default:
8158                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
8159                 }
8160         }
8161         if (ndr_flags & NDR_BUFFERS) {
8162                 int level = ndr_push_get_switch_value(ndr, r);
8163                 switch (level) {
8164                         case DRSUAPI_DC_INFO_CTR_1:
8165                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfoCtr1(ndr, NDR_BUFFERS, &r->ctr1));
8166                         break;
8167
8168                         case DRSUAPI_DC_INFO_CTR_2:
8169                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfoCtr2(ndr, NDR_BUFFERS, &r->ctr2));
8170                         break;
8171
8172                         case DRSUAPI_DC_INFO_CTR_3:
8173                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfoCtr3(ndr, NDR_BUFFERS, &r->ctr3));
8174                         break;
8175
8176                         case DRSUAPI_DC_CONNECTION_CTR_01:
8177                                 NDR_CHECK(ndr_push_drsuapi_DsGetDCConnectionCtr01(ndr, NDR_BUFFERS, &r->ctr01));
8178                         break;
8179
8180                         default:
8181                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
8182                 }
8183         }
8184         return NDR_ERR_SUCCESS;
8185 }
8186
8187 static enum ndr_err_code ndr_pull_drsuapi_DsGetDCInfoCtr(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsGetDCInfoCtr *r)
8188 {
8189         int level;
8190         int32_t _level;
8191         level = ndr_pull_get_switch_value(ndr, r);
8192         if (ndr_flags & NDR_SCALARS) {
8193                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
8194                 if (_level != level) {
8195                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
8196                 }
8197                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
8198                 switch (level) {
8199                         case DRSUAPI_DC_INFO_CTR_1: {
8200                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfoCtr1(ndr, NDR_SCALARS, &r->ctr1));
8201                         break; }
8202
8203                         case DRSUAPI_DC_INFO_CTR_2: {
8204                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfoCtr2(ndr, NDR_SCALARS, &r->ctr2));
8205                         break; }
8206
8207                         case DRSUAPI_DC_INFO_CTR_3: {
8208                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfoCtr3(ndr, NDR_SCALARS, &r->ctr3));
8209                         break; }
8210
8211                         case DRSUAPI_DC_CONNECTION_CTR_01: {
8212                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCConnectionCtr01(ndr, NDR_SCALARS, &r->ctr01));
8213                         break; }
8214
8215                         default:
8216                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
8217                 }
8218         }
8219         if (ndr_flags & NDR_BUFFERS) {
8220                 switch (level) {
8221                         case DRSUAPI_DC_INFO_CTR_1:
8222                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfoCtr1(ndr, NDR_BUFFERS, &r->ctr1));
8223                         break;
8224
8225                         case DRSUAPI_DC_INFO_CTR_2:
8226                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfoCtr2(ndr, NDR_BUFFERS, &r->ctr2));
8227                         break;
8228
8229                         case DRSUAPI_DC_INFO_CTR_3:
8230                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfoCtr3(ndr, NDR_BUFFERS, &r->ctr3));
8231                         break;
8232
8233                         case DRSUAPI_DC_CONNECTION_CTR_01:
8234                                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCConnectionCtr01(ndr, NDR_BUFFERS, &r->ctr01));
8235                         break;
8236
8237                         default:
8238                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
8239                 }
8240         }
8241         return NDR_ERR_SUCCESS;
8242 }
8243
8244 _PUBLIC_ void ndr_print_drsuapi_DsGetDCInfoCtr(struct ndr_print *ndr, const char *name, const union drsuapi_DsGetDCInfoCtr *r)
8245 {
8246         int level;
8247         level = ndr_print_get_switch_value(ndr, r);
8248         ndr_print_union(ndr, name, level, "drsuapi_DsGetDCInfoCtr");
8249         switch (level) {
8250                 case DRSUAPI_DC_INFO_CTR_1:
8251                         ndr_print_drsuapi_DsGetDCInfoCtr1(ndr, "ctr1", &r->ctr1);
8252                 break;
8253
8254                 case DRSUAPI_DC_INFO_CTR_2:
8255                         ndr_print_drsuapi_DsGetDCInfoCtr2(ndr, "ctr2", &r->ctr2);
8256                 break;
8257
8258                 case DRSUAPI_DC_INFO_CTR_3:
8259                         ndr_print_drsuapi_DsGetDCInfoCtr3(ndr, "ctr3", &r->ctr3);
8260                 break;
8261
8262                 case DRSUAPI_DC_CONNECTION_CTR_01:
8263                         ndr_print_drsuapi_DsGetDCConnectionCtr01(ndr, "ctr01", &r->ctr01);
8264                 break;
8265
8266                 default:
8267                         ndr_print_bad_level(ndr, name, level);
8268         }
8269 }
8270
8271 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaObjectListItem(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaObjectListItem *r)
8272 {
8273         if (ndr_flags & NDR_SCALARS) {
8274                 NDR_CHECK(ndr_push_align(ndr, 5));
8275                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->next_object));
8276                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObject(ndr, NDR_SCALARS, &r->object));
8277                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8278         }
8279         if (ndr_flags & NDR_BUFFERS) {
8280                 if (r->next_object) {
8281                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectListItem(ndr, NDR_SCALARS|NDR_BUFFERS, r->next_object));
8282                 }
8283                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObject(ndr, NDR_BUFFERS, &r->object));
8284         }
8285         return NDR_ERR_SUCCESS;
8286 }
8287
8288 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaObjectListItem(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaObjectListItem *r)
8289 {
8290         uint32_t _ptr_next_object;
8291         TALLOC_CTX *_mem_save_next_object_0;
8292         if (ndr_flags & NDR_SCALARS) {
8293                 NDR_CHECK(ndr_pull_align(ndr, 5));
8294                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_next_object));
8295                 if (_ptr_next_object) {
8296                         NDR_PULL_ALLOC(ndr, r->next_object);
8297                 } else {
8298                         r->next_object = NULL;
8299                 }
8300                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObject(ndr, NDR_SCALARS, &r->object));
8301                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8302         }
8303         if (ndr_flags & NDR_BUFFERS) {
8304                 if (r->next_object) {
8305                         _mem_save_next_object_0 = NDR_PULL_GET_MEM_CTX(ndr);
8306                         NDR_PULL_SET_MEM_CTX(ndr, r->next_object, 0);
8307                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectListItem(ndr, NDR_SCALARS|NDR_BUFFERS, r->next_object));
8308                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_next_object_0, 0);
8309                 }
8310                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObject(ndr, NDR_BUFFERS, &r->object));
8311         }
8312         return NDR_ERR_SUCCESS;
8313 }
8314
8315 static enum ndr_err_code ndr_push_drsuapi_DsAddEntry_DirErr(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsAddEntry_DirErr r)
8316 {
8317         NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
8318         return NDR_ERR_SUCCESS;
8319 }
8320
8321 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntry_DirErr(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsAddEntry_DirErr *r)
8322 {
8323         uint32_t v;
8324         NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
8325         *r = v;
8326         return NDR_ERR_SUCCESS;
8327 }
8328
8329 _PUBLIC_ void ndr_print_drsuapi_DsAddEntry_DirErr(struct ndr_print *ndr, const char *name, enum drsuapi_DsAddEntry_DirErr r)
8330 {
8331         const char *val = NULL;
8332
8333         switch (r) {
8334                 case DRSUAPI_DIRERR_OK: val = "DRSUAPI_DIRERR_OK"; break;
8335                 case DRSUAPI_DIRERR_ATTRIBUTE: val = "DRSUAPI_DIRERR_ATTRIBUTE"; break;
8336                 case DRSUAPI_DIRERR_NAME: val = "DRSUAPI_DIRERR_NAME"; break;
8337                 case DRSUAPI_DIRERR_REFERRAL: val = "DRSUAPI_DIRERR_REFERRAL"; break;
8338                 case DRSUAPI_DIRERR_SECURITY: val = "DRSUAPI_DIRERR_SECURITY"; break;
8339                 case DRSUAPI_DIRERR_SERVICE: val = "DRSUAPI_DIRERR_SERVICE"; break;
8340                 case DRSUAPI_DIRERR_UPDATE: val = "DRSUAPI_DIRERR_UPDATE"; break;
8341                 case DRSUAPI_DIRERR_SYSTEM: val = "DRSUAPI_DIRERR_SYSTEM"; break;
8342         }
8343         ndr_print_enum(ndr, name, "ENUM", val, r);
8344 }
8345
8346 static enum ndr_err_code ndr_push_drsuapi_DsAddEntryRequest2(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAddEntryRequest2 *r)
8347 {
8348         if (ndr_flags & NDR_SCALARS) {
8349                 NDR_CHECK(ndr_push_align(ndr, 5));
8350                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectListItem(ndr, NDR_SCALARS, &r->first_object));
8351                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8352         }
8353         if (ndr_flags & NDR_BUFFERS) {
8354                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectListItem(ndr, NDR_BUFFERS, &r->first_object));
8355         }
8356         return NDR_ERR_SUCCESS;
8357 }
8358
8359 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryRequest2(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntryRequest2 *r)
8360 {
8361         if (ndr_flags & NDR_SCALARS) {
8362                 NDR_CHECK(ndr_pull_align(ndr, 5));
8363                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectListItem(ndr, NDR_SCALARS, &r->first_object));
8364                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8365         }
8366         if (ndr_flags & NDR_BUFFERS) {
8367                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectListItem(ndr, NDR_BUFFERS, &r->first_object));
8368         }
8369         return NDR_ERR_SUCCESS;
8370 }
8371
8372 _PUBLIC_ void ndr_print_drsuapi_DsAddEntryRequest2(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntryRequest2 *r)
8373 {
8374         ndr_print_struct(ndr, name, "drsuapi_DsAddEntryRequest2");
8375         ndr->depth++;
8376         ndr_print_drsuapi_DsReplicaObjectListItem(ndr, "first_object", &r->first_object);
8377         ndr->depth--;
8378 }
8379
8380 static enum ndr_err_code ndr_push_drsuapi_SecBufferType(struct ndr_push *ndr, int ndr_flags, enum drsuapi_SecBufferType r)
8381 {
8382         NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
8383         return NDR_ERR_SUCCESS;
8384 }
8385
8386 static enum ndr_err_code ndr_pull_drsuapi_SecBufferType(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_SecBufferType *r)
8387 {
8388         uint32_t v;
8389         NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
8390         *r = v;
8391         return NDR_ERR_SUCCESS;
8392 }
8393
8394 static enum ndr_err_code ndr_push_drsuapi_SecBuffer(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_SecBuffer *r)
8395 {
8396         if (ndr_flags & NDR_SCALARS) {
8397                 NDR_CHECK(ndr_push_align(ndr, 5));
8398                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->buf_size));
8399                 NDR_CHECK(ndr_push_drsuapi_SecBufferType(ndr, NDR_SCALARS, r->buf_type));
8400                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->buffer));
8401                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8402         }
8403         if (ndr_flags & NDR_BUFFERS) {
8404                 if (r->buffer) {
8405                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->buf_size));
8406                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->buffer, r->buf_size));
8407                 }
8408         }
8409         return NDR_ERR_SUCCESS;
8410 }
8411
8412 static enum ndr_err_code ndr_pull_drsuapi_SecBuffer(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_SecBuffer *r)
8413 {
8414         uint32_t _ptr_buffer;
8415         TALLOC_CTX *_mem_save_buffer_0;
8416         if (ndr_flags & NDR_SCALARS) {
8417                 NDR_CHECK(ndr_pull_align(ndr, 5));
8418                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->buf_size));
8419                 if (r->buf_size > 10000) {
8420                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
8421                 }
8422                 NDR_CHECK(ndr_pull_drsuapi_SecBufferType(ndr, NDR_SCALARS, &r->buf_type));
8423                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
8424                 if (_ptr_buffer) {
8425                         NDR_PULL_ALLOC(ndr, r->buffer);
8426                 } else {
8427                         r->buffer = NULL;
8428                 }
8429                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8430         }
8431         if (ndr_flags & NDR_BUFFERS) {
8432                 if (r->buffer) {
8433                         _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
8434                         NDR_PULL_SET_MEM_CTX(ndr, r->buffer, 0);
8435                         NDR_CHECK(ndr_pull_array_size(ndr, &r->buffer));
8436                         NDR_PULL_ALLOC_N(ndr, r->buffer, ndr_get_array_size(ndr, &r->buffer));
8437                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->buffer, ndr_get_array_size(ndr, &r->buffer)));
8438                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
8439                 }
8440                 if (r->buffer) {
8441                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->buffer, r->buf_size));
8442                 }
8443         }
8444         return NDR_ERR_SUCCESS;
8445 }
8446
8447 _PUBLIC_ void ndr_print_drsuapi_SecBuffer(struct ndr_print *ndr, const char *name, const struct drsuapi_SecBuffer *r)
8448 {
8449         ndr_print_struct(ndr, name, "drsuapi_SecBuffer");
8450         ndr->depth++;
8451         ndr_print_uint32(ndr, "buf_size", r->buf_size);
8452         ndr_print_drsuapi_SecBufferType(ndr, "buf_type", r->buf_type);
8453         ndr_print_ptr(ndr, "buffer", r->buffer);
8454         ndr->depth++;
8455         if (r->buffer) {
8456                 ndr_print_array_uint8(ndr, "buffer", r->buffer, r->buf_size);
8457         }
8458         ndr->depth--;
8459         ndr->depth--;
8460 }
8461
8462 static enum ndr_err_code ndr_push_drsuapi_SecBufferDesc(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_SecBufferDesc *r)
8463 {
8464         uint32_t cntr_buffers_1;
8465         if (ndr_flags & NDR_SCALARS) {
8466                 NDR_CHECK(ndr_push_align(ndr, 5));
8467                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8468                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->buff_count));
8469                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->buffers));
8470                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8471         }
8472         if (ndr_flags & NDR_BUFFERS) {
8473                 if (r->buffers) {
8474                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->buff_count));
8475                         for (cntr_buffers_1 = 0; cntr_buffers_1 < r->buff_count; cntr_buffers_1++) {
8476                                 NDR_CHECK(ndr_push_drsuapi_SecBuffer(ndr, NDR_SCALARS, &r->buffers[cntr_buffers_1]));
8477                         }
8478                         for (cntr_buffers_1 = 0; cntr_buffers_1 < r->buff_count; cntr_buffers_1++) {
8479                                 NDR_CHECK(ndr_push_drsuapi_SecBuffer(ndr, NDR_BUFFERS, &r->buffers[cntr_buffers_1]));
8480                         }
8481                 }
8482         }
8483         return NDR_ERR_SUCCESS;
8484 }
8485
8486 static enum ndr_err_code ndr_pull_drsuapi_SecBufferDesc(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_SecBufferDesc *r)
8487 {
8488         uint32_t _ptr_buffers;
8489         uint32_t cntr_buffers_1;
8490         TALLOC_CTX *_mem_save_buffers_0;
8491         TALLOC_CTX *_mem_save_buffers_1;
8492         if (ndr_flags & NDR_SCALARS) {
8493                 NDR_CHECK(ndr_pull_align(ndr, 5));
8494                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
8495                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->buff_count));
8496                 if (r->buff_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_buffers));
8500                 if (_ptr_buffers) {
8501                         NDR_PULL_ALLOC(ndr, r->buffers);
8502                 } else {
8503                         r->buffers = NULL;
8504                 }
8505                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8506         }
8507         if (ndr_flags & NDR_BUFFERS) {
8508                 if (r->buffers) {
8509                         _mem_save_buffers_0 = NDR_PULL_GET_MEM_CTX(ndr);
8510                         NDR_PULL_SET_MEM_CTX(ndr, r->buffers, 0);
8511                         NDR_CHECK(ndr_pull_array_size(ndr, &r->buffers));
8512                         NDR_PULL_ALLOC_N(ndr, r->buffers, ndr_get_array_size(ndr, &r->buffers));
8513                         _mem_save_buffers_1 = NDR_PULL_GET_MEM_CTX(ndr);
8514                         NDR_PULL_SET_MEM_CTX(ndr, r->buffers, 0);
8515                         for (cntr_buffers_1 = 0; cntr_buffers_1 < r->buff_count; cntr_buffers_1++) {
8516                                 NDR_CHECK(ndr_pull_drsuapi_SecBuffer(ndr, NDR_SCALARS, &r->buffers[cntr_buffers_1]));
8517                         }
8518                         for (cntr_buffers_1 = 0; cntr_buffers_1 < r->buff_count; cntr_buffers_1++) {
8519                                 NDR_CHECK(ndr_pull_drsuapi_SecBuffer(ndr, NDR_BUFFERS, &r->buffers[cntr_buffers_1]));
8520                         }
8521                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffers_1, 0);
8522                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffers_0, 0);
8523                 }
8524                 if (r->buffers) {
8525                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->buffers, r->buff_count));
8526                 }
8527         }
8528         return NDR_ERR_SUCCESS;
8529 }
8530
8531 _PUBLIC_ void ndr_print_drsuapi_SecBufferDesc(struct ndr_print *ndr, const char *name, const struct drsuapi_SecBufferDesc *r)
8532 {
8533         uint32_t cntr_buffers_1;
8534         ndr_print_struct(ndr, name, "drsuapi_SecBufferDesc");
8535         ndr->depth++;
8536         ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->version);
8537         ndr_print_uint32(ndr, "buff_count", r->buff_count);
8538         ndr_print_ptr(ndr, "buffers", r->buffers);
8539         ndr->depth++;
8540         if (r->buffers) {
8541                 ndr->print(ndr, "%s: ARRAY(%d)", "buffers", (int)r->buff_count);
8542                 ndr->depth++;
8543                 for (cntr_buffers_1=0;cntr_buffers_1<r->buff_count;cntr_buffers_1++) {
8544                         char *idx_1=NULL;
8545                         if (asprintf(&idx_1, "[%d]", cntr_buffers_1) != -1) {
8546                                 ndr_print_drsuapi_SecBuffer(ndr, "buffers", &r->buffers[cntr_buffers_1]);
8547                                 free(idx_1);
8548                         }
8549                 }
8550                 ndr->depth--;
8551         }
8552         ndr->depth--;
8553         ndr->depth--;
8554 }
8555
8556 static enum ndr_err_code ndr_push_drsuapi_DsAddEntryRequest3(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAddEntryRequest3 *r)
8557 {
8558         if (ndr_flags & NDR_SCALARS) {
8559                 NDR_CHECK(ndr_push_align(ndr, 5));
8560                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectListItem(ndr, NDR_SCALARS, &r->first_object));
8561                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client_creds));
8562                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8563         }
8564         if (ndr_flags & NDR_BUFFERS) {
8565                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectListItem(ndr, NDR_BUFFERS, &r->first_object));
8566                 if (r->client_creds) {
8567                         NDR_CHECK(ndr_push_drsuapi_SecBufferDesc(ndr, NDR_SCALARS|NDR_BUFFERS, r->client_creds));
8568                 }
8569         }
8570         return NDR_ERR_SUCCESS;
8571 }
8572
8573 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryRequest3(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntryRequest3 *r)
8574 {
8575         uint32_t _ptr_client_creds;
8576         TALLOC_CTX *_mem_save_client_creds_0;
8577         if (ndr_flags & NDR_SCALARS) {
8578                 NDR_CHECK(ndr_pull_align(ndr, 5));
8579                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectListItem(ndr, NDR_SCALARS, &r->first_object));
8580                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_creds));
8581                 if (_ptr_client_creds) {
8582                         NDR_PULL_ALLOC(ndr, r->client_creds);
8583                 } else {
8584                         r->client_creds = NULL;
8585                 }
8586                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8587         }
8588         if (ndr_flags & NDR_BUFFERS) {
8589                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectListItem(ndr, NDR_BUFFERS, &r->first_object));
8590                 if (r->client_creds) {
8591                         _mem_save_client_creds_0 = NDR_PULL_GET_MEM_CTX(ndr);
8592                         NDR_PULL_SET_MEM_CTX(ndr, r->client_creds, 0);
8593                         NDR_CHECK(ndr_pull_drsuapi_SecBufferDesc(ndr, NDR_SCALARS|NDR_BUFFERS, r->client_creds));
8594                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_creds_0, 0);
8595                 }
8596         }
8597         return NDR_ERR_SUCCESS;
8598 }
8599
8600 _PUBLIC_ void ndr_print_drsuapi_DsAddEntryRequest3(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntryRequest3 *r)
8601 {
8602         ndr_print_struct(ndr, name, "drsuapi_DsAddEntryRequest3");
8603         ndr->depth++;
8604         ndr_print_drsuapi_DsReplicaObjectListItem(ndr, "first_object", &r->first_object);
8605         ndr_print_ptr(ndr, "client_creds", r->client_creds);
8606         ndr->depth++;
8607         if (r->client_creds) {
8608                 ndr_print_drsuapi_SecBufferDesc(ndr, "client_creds", r->client_creds);
8609         }
8610         ndr->depth--;
8611         ndr->depth--;
8612 }
8613
8614 static enum ndr_err_code ndr_push_drsuapi_DsAddEntryRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsAddEntryRequest *r)
8615 {
8616         if (ndr_flags & NDR_SCALARS) {
8617                 int level = ndr_push_get_switch_value(ndr, r);
8618                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
8619                 NDR_CHECK(ndr_push_union_align(ndr, 5));
8620                 switch (level) {
8621                         case 2: {
8622                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryRequest2(ndr, NDR_SCALARS, &r->req2));
8623                         break; }
8624
8625                         case 3: {
8626                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryRequest3(ndr, NDR_SCALARS, &r->req3));
8627                         break; }
8628
8629                         default:
8630                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
8631                 }
8632         }
8633         if (ndr_flags & NDR_BUFFERS) {
8634                 int level = ndr_push_get_switch_value(ndr, r);
8635                 switch (level) {
8636                         case 2:
8637                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryRequest2(ndr, NDR_BUFFERS, &r->req2));
8638                         break;
8639
8640                         case 3:
8641                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryRequest3(ndr, NDR_BUFFERS, &r->req3));
8642                         break;
8643
8644                         default:
8645                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
8646                 }
8647         }
8648         return NDR_ERR_SUCCESS;
8649 }
8650
8651 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsAddEntryRequest *r)
8652 {
8653         int level;
8654         uint32_t _level;
8655         level = ndr_pull_get_switch_value(ndr, r);
8656         if (ndr_flags & NDR_SCALARS) {
8657                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
8658                 if (_level != level) {
8659                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
8660                 }
8661                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
8662                 switch (level) {
8663                         case 2: {
8664                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryRequest2(ndr, NDR_SCALARS, &r->req2));
8665                         break; }
8666
8667                         case 3: {
8668                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryRequest3(ndr, NDR_SCALARS, &r->req3));
8669                         break; }
8670
8671                         default:
8672                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
8673                 }
8674         }
8675         if (ndr_flags & NDR_BUFFERS) {
8676                 switch (level) {
8677                         case 2:
8678                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryRequest2(ndr, NDR_BUFFERS, &r->req2));
8679                         break;
8680
8681                         case 3:
8682                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryRequest3(ndr, NDR_BUFFERS, &r->req3));
8683                         break;
8684
8685                         default:
8686                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
8687                 }
8688         }
8689         return NDR_ERR_SUCCESS;
8690 }
8691
8692 _PUBLIC_ void ndr_print_drsuapi_DsAddEntryRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsAddEntryRequest *r)
8693 {
8694         int level;
8695         level = ndr_print_get_switch_value(ndr, r);
8696         ndr_print_union(ndr, name, level, "drsuapi_DsAddEntryRequest");
8697         switch (level) {
8698                 case 2:
8699                         ndr_print_drsuapi_DsAddEntryRequest2(ndr, "req2", &r->req2);
8700                 break;
8701
8702                 case 3:
8703                         ndr_print_drsuapi_DsAddEntryRequest3(ndr, "req3", &r->req3);
8704                 break;
8705
8706                 default:
8707                         ndr_print_bad_level(ndr, name, level);
8708         }
8709 }
8710
8711 static enum ndr_err_code ndr_push_drsuapi_DsAddEntryErrorInfoX(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAddEntryErrorInfoX *r)
8712 {
8713         if (ndr_flags & NDR_SCALARS) {
8714                 NDR_CHECK(ndr_push_align(ndr, 4));
8715                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dsid));
8716                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->extended_err));
8717                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->extended_data));
8718                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->problem));
8719                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
8720         }
8721         if (ndr_flags & NDR_BUFFERS) {
8722         }
8723         return NDR_ERR_SUCCESS;
8724 }
8725
8726 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryErrorInfoX(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntryErrorInfoX *r)
8727 {
8728         if (ndr_flags & NDR_SCALARS) {
8729                 NDR_CHECK(ndr_pull_align(ndr, 4));
8730                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dsid));
8731                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->extended_err));
8732                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->extended_data));
8733                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->problem));
8734                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
8735         }
8736         if (ndr_flags & NDR_BUFFERS) {
8737         }
8738         return NDR_ERR_SUCCESS;
8739 }
8740
8741 _PUBLIC_ void ndr_print_drsuapi_DsAddEntryErrorInfoX(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntryErrorInfoX *r)
8742 {
8743         ndr_print_struct(ndr, name, "drsuapi_DsAddEntryErrorInfoX");
8744         ndr->depth++;
8745         ndr_print_uint32(ndr, "dsid", r->dsid);
8746         ndr_print_WERROR(ndr, "extended_err", r->extended_err);
8747         ndr_print_uint32(ndr, "extended_data", r->extended_data);
8748         ndr_print_uint16(ndr, "problem", r->problem);
8749         ndr->depth--;
8750 }
8751
8752 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)
8753 {
8754         if (ndr_flags & NDR_SCALARS) {
8755                 NDR_CHECK(ndr_push_align(ndr, 5));
8756                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dsid));
8757                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->extended_err));
8758                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->extended_data));
8759                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->problem));
8760                 NDR_CHECK(ndr_push_drsuapi_DsAttributeId(ndr, NDR_SCALARS, r->attid));
8761                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_val_returned));
8762                 NDR_CHECK(ndr_push_drsuapi_DsAttributeValue(ndr, NDR_SCALARS, &r->attr_val));
8763                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8764         }
8765         if (ndr_flags & NDR_BUFFERS) {
8766                 NDR_CHECK(ndr_push_drsuapi_DsAttributeValue(ndr, NDR_BUFFERS, &r->attr_val));
8767         }
8768         return NDR_ERR_SUCCESS;
8769 }
8770
8771 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntry_AttrErr_V1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntry_AttrErr_V1 *r)
8772 {
8773         if (ndr_flags & NDR_SCALARS) {
8774                 NDR_CHECK(ndr_pull_align(ndr, 5));
8775                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dsid));
8776                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->extended_err));
8777                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->extended_data));
8778                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->problem));
8779                 NDR_CHECK(ndr_pull_drsuapi_DsAttributeId(ndr, NDR_SCALARS, &r->attid));
8780                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_val_returned));
8781                 NDR_CHECK(ndr_pull_drsuapi_DsAttributeValue(ndr, NDR_SCALARS, &r->attr_val));
8782                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8783         }
8784         if (ndr_flags & NDR_BUFFERS) {
8785                 NDR_CHECK(ndr_pull_drsuapi_DsAttributeValue(ndr, NDR_BUFFERS, &r->attr_val));
8786         }
8787         return NDR_ERR_SUCCESS;
8788 }
8789
8790 _PUBLIC_ void ndr_print_drsuapi_DsAddEntry_AttrErr_V1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntry_AttrErr_V1 *r)
8791 {
8792         ndr_print_struct(ndr, name, "drsuapi_DsAddEntry_AttrErr_V1");
8793         ndr->depth++;
8794         ndr_print_uint32(ndr, "dsid", r->dsid);
8795         ndr_print_WERROR(ndr, "extended_err", r->extended_err);
8796         ndr_print_uint32(ndr, "extended_data", r->extended_data);
8797         ndr_print_uint16(ndr, "problem", r->problem);
8798         ndr_print_drsuapi_DsAttributeId(ndr, "attid", r->attid);
8799         ndr_print_uint32(ndr, "is_val_returned", r->is_val_returned);
8800         ndr_print_drsuapi_DsAttributeValue(ndr, "attr_val", &r->attr_val);
8801         ndr->depth--;
8802 }
8803
8804 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)
8805 {
8806         if (ndr_flags & NDR_SCALARS) {
8807                 NDR_CHECK(ndr_push_align(ndr, 5));
8808                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->next));
8809                 NDR_CHECK(ndr_push_drsuapi_DsAddEntry_AttrErr_V1(ndr, NDR_SCALARS, &r->err_data));
8810                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8811         }
8812         if (ndr_flags & NDR_BUFFERS) {
8813                 if (r->next) {
8814                         NDR_CHECK(ndr_push_drsuapi_DsAddEntry_AttrErrListItem_V1(ndr, NDR_SCALARS|NDR_BUFFERS, r->next));
8815                 }
8816                 NDR_CHECK(ndr_push_drsuapi_DsAddEntry_AttrErr_V1(ndr, NDR_BUFFERS, &r->err_data));
8817         }
8818         return NDR_ERR_SUCCESS;
8819 }
8820
8821 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntry_AttrErrListItem_V1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntry_AttrErrListItem_V1 *r)
8822 {
8823         uint32_t _ptr_next;
8824         TALLOC_CTX *_mem_save_next_0;
8825         if (ndr_flags & NDR_SCALARS) {
8826                 NDR_CHECK(ndr_pull_align(ndr, 5));
8827                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_next));
8828                 if (_ptr_next) {
8829                         NDR_PULL_ALLOC(ndr, r->next);
8830                 } else {
8831                         r->next = NULL;
8832                 }
8833                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntry_AttrErr_V1(ndr, NDR_SCALARS, &r->err_data));
8834                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8835         }
8836         if (ndr_flags & NDR_BUFFERS) {
8837                 if (r->next) {
8838                         _mem_save_next_0 = NDR_PULL_GET_MEM_CTX(ndr);
8839                         NDR_PULL_SET_MEM_CTX(ndr, r->next, 0);
8840                         NDR_CHECK(ndr_pull_drsuapi_DsAddEntry_AttrErrListItem_V1(ndr, NDR_SCALARS|NDR_BUFFERS, r->next));
8841                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_next_0, 0);
8842                 }
8843                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntry_AttrErr_V1(ndr, NDR_BUFFERS, &r->err_data));
8844         }
8845         return NDR_ERR_SUCCESS;
8846 }
8847
8848 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)
8849 {
8850         if (ndr_flags & NDR_SCALARS) {
8851                 NDR_CHECK(ndr_push_align(ndr, 5));
8852                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->id));
8853                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8854                 NDR_CHECK(ndr_push_drsuapi_DsAddEntry_AttrErrListItem_V1(ndr, NDR_SCALARS, &r->first));
8855                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8856         }
8857         if (ndr_flags & NDR_BUFFERS) {
8858                 if (r->id) {
8859                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->id));
8860                 }
8861                 NDR_CHECK(ndr_push_drsuapi_DsAddEntry_AttrErrListItem_V1(ndr, NDR_BUFFERS, &r->first));
8862         }
8863         return NDR_ERR_SUCCESS;
8864 }
8865
8866 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryErrorInfo_Attr_V1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntryErrorInfo_Attr_V1 *r)
8867 {
8868         uint32_t _ptr_id;
8869         TALLOC_CTX *_mem_save_id_0;
8870         if (ndr_flags & NDR_SCALARS) {
8871                 NDR_CHECK(ndr_pull_align(ndr, 5));
8872                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_id));
8873                 if (_ptr_id) {
8874                         NDR_PULL_ALLOC(ndr, r->id);
8875                 } else {
8876                         r->id = NULL;
8877                 }
8878                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
8879                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntry_AttrErrListItem_V1(ndr, NDR_SCALARS, &r->first));
8880                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8881         }
8882         if (ndr_flags & NDR_BUFFERS) {
8883                 if (r->id) {
8884                         _mem_save_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
8885                         NDR_PULL_SET_MEM_CTX(ndr, r->id, 0);
8886                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->id));
8887                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_id_0, 0);
8888                 }
8889                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntry_AttrErrListItem_V1(ndr, NDR_BUFFERS, &r->first));
8890         }
8891         return NDR_ERR_SUCCESS;
8892 }
8893
8894 _PUBLIC_ void ndr_print_drsuapi_DsAddEntryErrorInfo_Attr_V1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntryErrorInfo_Attr_V1 *r)
8895 {
8896         ndr_print_struct(ndr, name, "drsuapi_DsAddEntryErrorInfo_Attr_V1");
8897         ndr->depth++;
8898         ndr_print_ptr(ndr, "id", r->id);
8899         ndr->depth++;
8900         if (r->id) {
8901                 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "id", r->id);
8902         }
8903         ndr->depth--;
8904         ndr_print_uint32(ndr, "count", r->count);
8905         ndr_print_drsuapi_DsAddEntry_AttrErrListItem_V1(ndr, "first", &r->first);
8906         ndr->depth--;
8907 }
8908
8909 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)
8910 {
8911         if (ndr_flags & NDR_SCALARS) {
8912                 NDR_CHECK(ndr_push_align(ndr, 5));
8913                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dsid));
8914                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->extended_err));
8915                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->extended_data));
8916                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->problem));
8917                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->id_matched));
8918                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8919         }
8920         if (ndr_flags & NDR_BUFFERS) {
8921                 if (r->id_matched) {
8922                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->id_matched));
8923                 }
8924         }
8925         return NDR_ERR_SUCCESS;
8926 }
8927
8928 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryErrorInfo_Name_V1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntryErrorInfo_Name_V1 *r)
8929 {
8930         uint32_t _ptr_id_matched;
8931         TALLOC_CTX *_mem_save_id_matched_0;
8932         if (ndr_flags & NDR_SCALARS) {
8933                 NDR_CHECK(ndr_pull_align(ndr, 5));
8934                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dsid));
8935                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->extended_err));
8936                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->extended_data));
8937                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->problem));
8938                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_id_matched));
8939                 if (_ptr_id_matched) {
8940                         NDR_PULL_ALLOC(ndr, r->id_matched);
8941                 } else {
8942                         r->id_matched = NULL;
8943                 }
8944                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8945         }
8946         if (ndr_flags & NDR_BUFFERS) {
8947                 if (r->id_matched) {
8948                         _mem_save_id_matched_0 = NDR_PULL_GET_MEM_CTX(ndr);
8949                         NDR_PULL_SET_MEM_CTX(ndr, r->id_matched, 0);
8950                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->id_matched));
8951                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_id_matched_0, 0);
8952                 }
8953         }
8954         return NDR_ERR_SUCCESS;
8955 }
8956
8957 _PUBLIC_ void ndr_print_drsuapi_DsAddEntryErrorInfo_Name_V1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntryErrorInfo_Name_V1 *r)
8958 {
8959         ndr_print_struct(ndr, name, "drsuapi_DsAddEntryErrorInfo_Name_V1");
8960         ndr->depth++;
8961         ndr_print_uint32(ndr, "dsid", r->dsid);
8962         ndr_print_WERROR(ndr, "extended_err", r->extended_err);
8963         ndr_print_uint32(ndr, "extended_data", r->extended_data);
8964         ndr_print_uint16(ndr, "problem", r->problem);
8965         ndr_print_ptr(ndr, "id_matched", r->id_matched);
8966         ndr->depth++;
8967         if (r->id_matched) {
8968                 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "id_matched", r->id_matched);
8969         }
8970         ndr->depth--;
8971         ndr->depth--;
8972 }
8973
8974 static enum ndr_err_code ndr_push_drsuapi_NameResOp_V1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_NameResOp_V1 *r)
8975 {
8976         if (ndr_flags & NDR_SCALARS) {
8977                 NDR_CHECK(ndr_push_align(ndr, 2));
8978                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, 83));
8979                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, 0));
8980                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, 0));
8981                 NDR_CHECK(ndr_push_trailer_align(ndr, 2));
8982         }
8983         if (ndr_flags & NDR_BUFFERS) {
8984         }
8985         return NDR_ERR_SUCCESS;
8986 }
8987
8988 static enum ndr_err_code ndr_pull_drsuapi_NameResOp_V1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_NameResOp_V1 *r)
8989 {
8990         if (ndr_flags & NDR_SCALARS) {
8991                 NDR_CHECK(ndr_pull_align(ndr, 2));
8992                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->name_res));
8993                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->unused_pad));
8994                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->next_rdn));
8995                 NDR_CHECK(ndr_pull_trailer_align(ndr, 2));
8996         }
8997         if (ndr_flags & NDR_BUFFERS) {
8998         }
8999         return NDR_ERR_SUCCESS;
9000 }
9001
9002 _PUBLIC_ void ndr_print_drsuapi_NameResOp_V1(struct ndr_print *ndr, const char *name, const struct drsuapi_NameResOp_V1 *r)
9003 {
9004         ndr_print_struct(ndr, name, "drsuapi_NameResOp_V1");
9005         ndr->depth++;
9006         ndr_print_uint8(ndr, "name_res", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?83:r->name_res);
9007         ndr_print_uint8(ndr, "unused_pad", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->unused_pad);
9008         ndr_print_uint16(ndr, "next_rdn", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->next_rdn);
9009         ndr->depth--;
9010 }
9011
9012 static enum ndr_err_code ndr_push_drsuapi_DsAddEntry_RefType(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsAddEntry_RefType r)
9013 {
9014         NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
9015         return NDR_ERR_SUCCESS;
9016 }
9017
9018 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntry_RefType(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsAddEntry_RefType *r)
9019 {
9020         uint16_t v;
9021         NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
9022         *r = v;
9023         return NDR_ERR_SUCCESS;
9024 }
9025
9026 _PUBLIC_ void ndr_print_drsuapi_DsAddEntry_RefType(struct ndr_print *ndr, const char *name, enum drsuapi_DsAddEntry_RefType r)
9027 {
9028         const char *val = NULL;
9029
9030         switch (r) {
9031                 case DRSUAPI_CH_REFTYPE_SUPERIOR: val = "DRSUAPI_CH_REFTYPE_SUPERIOR"; break;
9032                 case DRSUAPI_CH_REFTYPE_SUBORDINATE: val = "DRSUAPI_CH_REFTYPE_SUBORDINATE"; break;
9033                 case DRSUAPI_CH_REFTYPE_NSSR: val = "DRSUAPI_CH_REFTYPE_NSSR"; break;
9034                 case DRSUAPI_CH_REFTYPE_CROSS: val = "DRSUAPI_CH_REFTYPE_CROSS"; break;
9035         }
9036         ndr_print_enum(ndr, name, "ENUM", val, r);
9037 }
9038
9039 static enum ndr_err_code ndr_push_drsuapi_DsAddEntry_ChoiceType(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsAddEntry_ChoiceType r)
9040 {
9041         NDR_CHECK(ndr_push_enum_uint8(ndr, NDR_SCALARS, r));
9042         return NDR_ERR_SUCCESS;
9043 }
9044
9045 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntry_ChoiceType(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsAddEntry_ChoiceType *r)
9046 {
9047         uint8_t v;
9048         NDR_CHECK(ndr_pull_enum_uint8(ndr, NDR_SCALARS, &v));
9049         *r = v;
9050         return NDR_ERR_SUCCESS;
9051 }
9052
9053 _PUBLIC_ void ndr_print_drsuapi_DsAddEntry_ChoiceType(struct ndr_print *ndr, const char *name, enum drsuapi_DsAddEntry_ChoiceType r)
9054 {
9055         const char *val = NULL;
9056
9057         switch (r) {
9058                 case DRSUAPI_SE_CHOICE_BASE_ONLY: val = "DRSUAPI_SE_CHOICE_BASE_ONLY"; break;
9059                 case DRSUAPI_SE_CHOICE_IMMED_CHLDRN: val = "DRSUAPI_SE_CHOICE_IMMED_CHLDRN"; break;
9060                 case DRSUAPI_SE_CHOICE_WHOLE_SUBTREE: val = "DRSUAPI_SE_CHOICE_WHOLE_SUBTREE"; break;
9061         }
9062         ndr_print_enum(ndr, name, "ENUM", val, r);
9063 }
9064
9065 static enum ndr_err_code ndr_push_drsuapi_DsaAddressListItem_V1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsaAddressListItem_V1 *r)
9066 {
9067         if (ndr_flags & NDR_SCALARS) {
9068                 NDR_CHECK(ndr_push_align(ndr, 5));
9069                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->next));
9070                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->address));
9071                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
9072         }
9073         if (ndr_flags & NDR_BUFFERS) {
9074                 if (r->next) {
9075                         NDR_CHECK(ndr_push_drsuapi_DsaAddressListItem_V1(ndr, NDR_SCALARS|NDR_BUFFERS, r->next));
9076                 }
9077                 if (r->address) {
9078                         NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->address));
9079                 }
9080         }
9081         return NDR_ERR_SUCCESS;
9082 }
9083
9084 static enum ndr_err_code ndr_pull_drsuapi_DsaAddressListItem_V1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsaAddressListItem_V1 *r)
9085 {
9086         uint32_t _ptr_next;
9087         TALLOC_CTX *_mem_save_next_0;
9088         uint32_t _ptr_address;
9089         TALLOC_CTX *_mem_save_address_0;
9090         if (ndr_flags & NDR_SCALARS) {
9091                 NDR_CHECK(ndr_pull_align(ndr, 5));
9092                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_next));
9093                 if (_ptr_next) {
9094                         NDR_PULL_ALLOC(ndr, r->next);
9095                 } else {
9096                         r->next = NULL;
9097                 }
9098                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_address));
9099                 if (_ptr_address) {
9100                         NDR_PULL_ALLOC(ndr, r->address);
9101                 } else {
9102                         r->address = NULL;
9103                 }
9104                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
9105         }
9106         if (ndr_flags & NDR_BUFFERS) {
9107                 if (r->next) {
9108                         _mem_save_next_0 = NDR_PULL_GET_MEM_CTX(ndr);
9109                         NDR_PULL_SET_MEM_CTX(ndr, r->next, 0);
9110                         NDR_CHECK(ndr_pull_drsuapi_DsaAddressListItem_V1(ndr, NDR_SCALARS|NDR_BUFFERS, r->next));
9111                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_next_0, 0);
9112                 }
9113                 if (r->address) {
9114                         _mem_save_address_0 = NDR_PULL_GET_MEM_CTX(ndr);
9115                         NDR_PULL_SET_MEM_CTX(ndr, r->address, 0);
9116                         NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->address));
9117                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_address_0, 0);
9118                 }
9119         }
9120         return NDR_ERR_SUCCESS;
9121 }
9122
9123 _PUBLIC_ void ndr_print_drsuapi_DsaAddressListItem_V1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsaAddressListItem_V1 *r)
9124 {
9125         ndr_print_struct(ndr, name, "drsuapi_DsaAddressListItem_V1");
9126         ndr->depth++;
9127         ndr_print_ptr(ndr, "next", r->next);
9128         ndr->depth++;
9129         if (r->next) {
9130                 ndr_print_drsuapi_DsaAddressListItem_V1(ndr, "next", r->next);
9131         }
9132         ndr->depth--;
9133         ndr_print_ptr(ndr, "address", r->address);
9134         ndr->depth++;
9135         if (r->address) {
9136                 ndr_print_lsa_String(ndr, "address", r->address);
9137         }
9138         ndr->depth--;
9139         ndr->depth--;
9140 }
9141
9142 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)
9143 {
9144         if (ndr_flags & NDR_SCALARS) {
9145                 NDR_CHECK(ndr_push_align(ndr, 5));
9146                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->id_target));
9147                 NDR_CHECK(ndr_push_drsuapi_NameResOp_V1(ndr, NDR_SCALARS, &r->op_state));
9148                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, 0));
9149                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, 0));
9150                 NDR_CHECK(ndr_push_drsuapi_DsAddEntry_RefType(ndr, NDR_SCALARS, r->ref_type));
9151                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->addr_list_count));
9152                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->addr_list));
9153                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->next));
9154                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_choice_set));
9155                 NDR_CHECK(ndr_push_drsuapi_DsAddEntry_ChoiceType(ndr, NDR_SCALARS, r->choice));
9156                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
9157         }
9158         if (ndr_flags & NDR_BUFFERS) {
9159                 if (r->id_target) {
9160                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->id_target));
9161                 }
9162                 if (r->addr_list) {
9163                         NDR_CHECK(ndr_push_drsuapi_DsaAddressListItem_V1(ndr, NDR_SCALARS|NDR_BUFFERS, r->addr_list));
9164                 }
9165                 if (r->next) {
9166                         NDR_CHECK(ndr_push_drsuapi_DsAddEntry_RefErrListItem_V1(ndr, NDR_SCALARS|NDR_BUFFERS, r->next));
9167                 }
9168         }
9169         return NDR_ERR_SUCCESS;
9170 }
9171
9172 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntry_RefErrListItem_V1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntry_RefErrListItem_V1 *r)
9173 {
9174         uint32_t _ptr_id_target;
9175         TALLOC_CTX *_mem_save_id_target_0;
9176         uint32_t _ptr_addr_list;
9177         TALLOC_CTX *_mem_save_addr_list_0;
9178         uint32_t _ptr_next;
9179         TALLOC_CTX *_mem_save_next_0;
9180         if (ndr_flags & NDR_SCALARS) {
9181                 NDR_CHECK(ndr_pull_align(ndr, 5));
9182                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_id_target));
9183                 if (_ptr_id_target) {
9184                         NDR_PULL_ALLOC(ndr, r->id_target);
9185                 } else {
9186                         r->id_target = NULL;
9187                 }
9188                 NDR_CHECK(ndr_pull_drsuapi_NameResOp_V1(ndr, NDR_SCALARS, &r->op_state));
9189                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->rdn_alias));
9190                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->rdn_internal));
9191                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntry_RefType(ndr, NDR_SCALARS, &r->ref_type));
9192                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->addr_list_count));
9193                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_addr_list));
9194                 if (_ptr_addr_list) {
9195                         NDR_PULL_ALLOC(ndr, r->addr_list);
9196                 } else {
9197                         r->addr_list = NULL;
9198                 }
9199                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_next));
9200                 if (_ptr_next) {
9201                         NDR_PULL_ALLOC(ndr, r->next);
9202                 } else {
9203                         r->next = NULL;
9204                 }
9205                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_choice_set));
9206                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntry_ChoiceType(ndr, NDR_SCALARS, &r->choice));
9207                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
9208         }
9209         if (ndr_flags & NDR_BUFFERS) {
9210                 if (r->id_target) {
9211                         _mem_save_id_target_0 = NDR_PULL_GET_MEM_CTX(ndr);
9212                         NDR_PULL_SET_MEM_CTX(ndr, r->id_target, 0);
9213                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->id_target));
9214                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_id_target_0, 0);
9215                 }
9216                 if (r->addr_list) {
9217                         _mem_save_addr_list_0 = NDR_PULL_GET_MEM_CTX(ndr);
9218                         NDR_PULL_SET_MEM_CTX(ndr, r->addr_list, 0);
9219                         NDR_CHECK(ndr_pull_drsuapi_DsaAddressListItem_V1(ndr, NDR_SCALARS|NDR_BUFFERS, r->addr_list));
9220                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_addr_list_0, 0);
9221                 }
9222                 if (r->next) {
9223                         _mem_save_next_0 = NDR_PULL_GET_MEM_CTX(ndr);
9224                         NDR_PULL_SET_MEM_CTX(ndr, r->next, 0);
9225                         NDR_CHECK(ndr_pull_drsuapi_DsAddEntry_RefErrListItem_V1(ndr, NDR_SCALARS|NDR_BUFFERS, r->next));
9226                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_next_0, 0);
9227                 }
9228         }
9229         return NDR_ERR_SUCCESS;
9230 }
9231
9232 _PUBLIC_ void ndr_print_drsuapi_DsAddEntry_RefErrListItem_V1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntry_RefErrListItem_V1 *r)
9233 {
9234         ndr_print_struct(ndr, name, "drsuapi_DsAddEntry_RefErrListItem_V1");
9235         ndr->depth++;
9236         ndr_print_ptr(ndr, "id_target", r->id_target);
9237         ndr->depth++;
9238         if (r->id_target) {
9239                 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "id_target", r->id_target);
9240         }
9241         ndr->depth--;
9242         ndr_print_drsuapi_NameResOp_V1(ndr, "op_state", &r->op_state);
9243         ndr_print_uint16(ndr, "rdn_alias", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->rdn_alias);
9244         ndr_print_uint16(ndr, "rdn_internal", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->rdn_internal);
9245         ndr_print_drsuapi_DsAddEntry_RefType(ndr, "ref_type", r->ref_type);
9246         ndr_print_uint16(ndr, "addr_list_count", r->addr_list_count);
9247         ndr_print_ptr(ndr, "addr_list", r->addr_list);
9248         ndr->depth++;
9249         if (r->addr_list) {
9250                 ndr_print_drsuapi_DsaAddressListItem_V1(ndr, "addr_list", r->addr_list);
9251         }
9252         ndr->depth--;
9253         ndr_print_ptr(ndr, "next", r->next);
9254         ndr->depth++;
9255         if (r->next) {
9256                 ndr_print_drsuapi_DsAddEntry_RefErrListItem_V1(ndr, "next", r->next);
9257         }
9258         ndr->depth--;
9259         ndr_print_uint32(ndr, "is_choice_set", r->is_choice_set);
9260         ndr_print_drsuapi_DsAddEntry_ChoiceType(ndr, "choice", r->choice);
9261         ndr->depth--;
9262 }
9263
9264 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)
9265 {
9266         if (ndr_flags & NDR_SCALARS) {
9267                 NDR_CHECK(ndr_push_align(ndr, 5));
9268                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dsid));
9269                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->extended_err));
9270                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->extended_data));
9271                 NDR_CHECK(ndr_push_drsuapi_DsAddEntry_RefErrListItem_V1(ndr, NDR_SCALARS, &r->refer));
9272                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
9273         }
9274         if (ndr_flags & NDR_BUFFERS) {
9275                 NDR_CHECK(ndr_push_drsuapi_DsAddEntry_RefErrListItem_V1(ndr, NDR_BUFFERS, &r->refer));
9276         }
9277         return NDR_ERR_SUCCESS;
9278 }
9279
9280 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryErrorInfo_Referr_V1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntryErrorInfo_Referr_V1 *r)
9281 {
9282         if (ndr_flags & NDR_SCALARS) {
9283                 NDR_CHECK(ndr_pull_align(ndr, 5));
9284                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dsid));
9285                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->extended_err));
9286                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->extended_data));
9287                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntry_RefErrListItem_V1(ndr, NDR_SCALARS, &r->refer));
9288                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
9289         }
9290         if (ndr_flags & NDR_BUFFERS) {
9291                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntry_RefErrListItem_V1(ndr, NDR_BUFFERS, &r->refer));
9292         }
9293         return NDR_ERR_SUCCESS;
9294 }
9295
9296 _PUBLIC_ void ndr_print_drsuapi_DsAddEntryErrorInfo_Referr_V1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntryErrorInfo_Referr_V1 *r)
9297 {
9298         ndr_print_struct(ndr, name, "drsuapi_DsAddEntryErrorInfo_Referr_V1");
9299         ndr->depth++;
9300         ndr_print_uint32(ndr, "dsid", r->dsid);
9301         ndr_print_WERROR(ndr, "extended_err", r->extended_err);
9302         ndr_print_uint32(ndr, "extended_data", r->extended_data);
9303         ndr_print_drsuapi_DsAddEntry_RefErrListItem_V1(ndr, "refer", &r->refer);
9304         ndr->depth--;
9305 }
9306
9307 static enum ndr_err_code ndr_push_drsuapi_DsAddEntryErrorInfo(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsAddEntryErrorInfo *r)
9308 {
9309         if (ndr_flags & NDR_SCALARS) {
9310                 int level = ndr_push_get_switch_value(ndr, r);
9311                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
9312                 NDR_CHECK(ndr_push_union_align(ndr, 5));
9313                 switch (level) {
9314                         case 1: {
9315                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfo_Attr_V1(ndr, NDR_SCALARS, &r->attr_err));
9316                         break; }
9317
9318                         case 2: {
9319                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfo_Name_V1(ndr, NDR_SCALARS, &r->name_err));
9320                         break; }
9321
9322                         case 3: {
9323                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfo_Referr_V1(ndr, NDR_SCALARS, &r->referral_err));
9324                         break; }
9325
9326                         case 4: {
9327                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->security_err));
9328                         break; }
9329
9330                         case 5: {
9331                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->service_err));
9332                         break; }
9333
9334                         case 6: {
9335                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->update_err));
9336                         break; }
9337
9338                         case 7: {
9339                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->system_err));
9340                         break; }
9341
9342                         default:
9343                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
9344                 }
9345         }
9346         if (ndr_flags & NDR_BUFFERS) {
9347                 int level = ndr_push_get_switch_value(ndr, r);
9348                 switch (level) {
9349                         case 1:
9350                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfo_Attr_V1(ndr, NDR_BUFFERS, &r->attr_err));
9351                         break;
9352
9353                         case 2:
9354                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfo_Name_V1(ndr, NDR_BUFFERS, &r->name_err));
9355                         break;
9356
9357                         case 3:
9358                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfo_Referr_V1(ndr, NDR_BUFFERS, &r->referral_err));
9359                         break;
9360
9361                         case 4:
9362                         break;
9363
9364                         case 5:
9365                         break;
9366
9367                         case 6:
9368                         break;
9369
9370                         case 7:
9371                         break;
9372
9373                         default:
9374                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
9375                 }
9376         }
9377         return NDR_ERR_SUCCESS;
9378 }
9379
9380 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryErrorInfo(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsAddEntryErrorInfo *r)
9381 {
9382         int level;
9383         uint32_t _level;
9384         level = ndr_pull_get_switch_value(ndr, r);
9385         if (ndr_flags & NDR_SCALARS) {
9386                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
9387                 if (_level != level) {
9388                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
9389                 }
9390                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
9391                 switch (level) {
9392                         case 1: {
9393                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfo_Attr_V1(ndr, NDR_SCALARS, &r->attr_err));
9394                         break; }
9395
9396                         case 2: {
9397                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfo_Name_V1(ndr, NDR_SCALARS, &r->name_err));
9398                         break; }
9399
9400                         case 3: {
9401                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfo_Referr_V1(ndr, NDR_SCALARS, &r->referral_err));
9402                         break; }
9403
9404                         case 4: {
9405                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->security_err));
9406                         break; }
9407
9408                         case 5: {
9409                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->service_err));
9410                         break; }
9411
9412                         case 6: {
9413                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->update_err));
9414                         break; }
9415
9416                         case 7: {
9417                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->system_err));
9418                         break; }
9419
9420                         default:
9421                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
9422                 }
9423         }
9424         if (ndr_flags & NDR_BUFFERS) {
9425                 switch (level) {
9426                         case 1:
9427                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfo_Attr_V1(ndr, NDR_BUFFERS, &r->attr_err));
9428                         break;
9429
9430                         case 2:
9431                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfo_Name_V1(ndr, NDR_BUFFERS, &r->name_err));
9432                         break;
9433
9434                         case 3:
9435                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfo_Referr_V1(ndr, NDR_BUFFERS, &r->referral_err));
9436                         break;
9437
9438                         case 4:
9439                         break;
9440
9441                         case 5:
9442                         break;
9443
9444                         case 6:
9445                         break;
9446
9447                         case 7:
9448                         break;
9449
9450                         default:
9451                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
9452                 }
9453         }
9454         return NDR_ERR_SUCCESS;
9455 }
9456
9457 _PUBLIC_ void ndr_print_drsuapi_DsAddEntryErrorInfo(struct ndr_print *ndr, const char *name, const union drsuapi_DsAddEntryErrorInfo *r)
9458 {
9459         int level;
9460         level = ndr_print_get_switch_value(ndr, r);
9461         ndr_print_union(ndr, name, level, "drsuapi_DsAddEntryErrorInfo");
9462         switch (level) {
9463                 case 1:
9464                         ndr_print_drsuapi_DsAddEntryErrorInfo_Attr_V1(ndr, "attr_err", &r->attr_err);
9465                 break;
9466
9467                 case 2:
9468                         ndr_print_drsuapi_DsAddEntryErrorInfo_Name_V1(ndr, "name_err", &r->name_err);
9469                 break;
9470
9471                 case 3:
9472                         ndr_print_drsuapi_DsAddEntryErrorInfo_Referr_V1(ndr, "referral_err", &r->referral_err);
9473                 break;
9474
9475                 case 4:
9476                         ndr_print_drsuapi_DsAddEntryErrorInfoX(ndr, "security_err", &r->security_err);
9477                 break;
9478
9479                 case 5:
9480                         ndr_print_drsuapi_DsAddEntryErrorInfoX(ndr, "service_err", &r->service_err);
9481                 break;
9482
9483                 case 6:
9484                         ndr_print_drsuapi_DsAddEntryErrorInfoX(ndr, "update_err", &r->update_err);
9485                 break;
9486
9487                 case 7:
9488                         ndr_print_drsuapi_DsAddEntryErrorInfoX(ndr, "system_err", &r->system_err);
9489                 break;
9490
9491                 default:
9492                         ndr_print_bad_level(ndr, name, level);
9493         }
9494 }
9495
9496 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)
9497 {
9498         if (ndr_flags & NDR_SCALARS) {
9499                 NDR_CHECK(ndr_push_align(ndr, 5));
9500                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->status));
9501                 NDR_CHECK(ndr_push_drsuapi_DsAddEntry_DirErr(ndr, NDR_SCALARS, r->dir_err));
9502                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info));
9503                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
9504         }
9505         if (ndr_flags & NDR_BUFFERS) {
9506                 if (r->info) {
9507                         NDR_CHECK(ndr_push_set_switch_value(ndr, r->info, r->dir_err));
9508                         NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info));
9509                 }
9510         }
9511         return NDR_ERR_SUCCESS;
9512 }
9513
9514 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntry_ErrData_V1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntry_ErrData_V1 *r)
9515 {
9516         uint32_t _ptr_info;
9517         TALLOC_CTX *_mem_save_info_0;
9518         if (ndr_flags & NDR_SCALARS) {
9519                 NDR_CHECK(ndr_pull_align(ndr, 5));
9520                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->status));
9521                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntry_DirErr(ndr, NDR_SCALARS, &r->dir_err));
9522                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
9523                 if (_ptr_info) {
9524                         NDR_PULL_ALLOC(ndr, r->info);
9525                 } else {
9526                         r->info = NULL;
9527                 }
9528                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
9529         }
9530         if (ndr_flags & NDR_BUFFERS) {
9531                 if (r->info) {
9532                         _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
9533                         NDR_PULL_SET_MEM_CTX(ndr, r->info, 0);
9534                         NDR_CHECK(ndr_pull_set_switch_value(ndr, r->info, r->dir_err));
9535                         NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info));
9536                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
9537                 }
9538         }
9539         return NDR_ERR_SUCCESS;
9540 }
9541
9542 _PUBLIC_ void ndr_print_drsuapi_DsAddEntry_ErrData_V1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntry_ErrData_V1 *r)
9543 {
9544         ndr_print_struct(ndr, name, "drsuapi_DsAddEntry_ErrData_V1");
9545         ndr->depth++;
9546         ndr_print_WERROR(ndr, "status", r->status);
9547         ndr_print_drsuapi_DsAddEntry_DirErr(ndr, "dir_err", r->dir_err);
9548         ndr_print_ptr(ndr, "info", r->info);
9549         ndr->depth++;
9550         if (r->info) {
9551                 ndr_print_set_switch_value(ndr, r->info, r->dir_err);
9552                 ndr_print_drsuapi_DsAddEntryErrorInfo(ndr, "info", r->info);
9553         }
9554         ndr->depth--;
9555         ndr->depth--;
9556 }
9557
9558 static enum ndr_err_code ndr_push_drsuapi_DsAddEntry_ErrData(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsAddEntry_ErrData *r)
9559 {
9560         if (ndr_flags & NDR_SCALARS) {
9561                 int level = ndr_push_get_switch_value(ndr, r);
9562                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
9563                 NDR_CHECK(ndr_push_union_align(ndr, 5));
9564                 switch (level) {
9565                         case 1: {
9566                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntry_ErrData_V1(ndr, NDR_SCALARS, &r->v1));
9567                         break; }
9568
9569                         default:
9570                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
9571                 }
9572         }
9573         if (ndr_flags & NDR_BUFFERS) {
9574                 int level = ndr_push_get_switch_value(ndr, r);
9575                 switch (level) {
9576                         case 1:
9577                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntry_ErrData_V1(ndr, NDR_BUFFERS, &r->v1));
9578                         break;
9579
9580                         default:
9581                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
9582                 }
9583         }
9584         return NDR_ERR_SUCCESS;
9585 }
9586
9587 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntry_ErrData(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsAddEntry_ErrData *r)
9588 {
9589         int level;
9590         uint32_t _level;
9591         level = ndr_pull_get_switch_value(ndr, r);
9592         if (ndr_flags & NDR_SCALARS) {
9593                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
9594                 if (_level != level) {
9595                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
9596                 }
9597                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
9598                 switch (level) {
9599                         case 1: {
9600                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntry_ErrData_V1(ndr, NDR_SCALARS, &r->v1));
9601                         break; }
9602
9603                         default:
9604                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
9605                 }
9606         }
9607         if (ndr_flags & NDR_BUFFERS) {
9608                 switch (level) {
9609                         case 1:
9610                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntry_ErrData_V1(ndr, NDR_BUFFERS, &r->v1));
9611                         break;
9612
9613                         default:
9614                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
9615                 }
9616         }
9617         return NDR_ERR_SUCCESS;
9618 }
9619
9620 _PUBLIC_ void ndr_print_drsuapi_DsAddEntry_ErrData(struct ndr_print *ndr, const char *name, const union drsuapi_DsAddEntry_ErrData *r)
9621 {
9622         int level;
9623         level = ndr_print_get_switch_value(ndr, r);
9624         ndr_print_union(ndr, name, level, "drsuapi_DsAddEntry_ErrData");
9625         switch (level) {
9626                 case 1:
9627                         ndr_print_drsuapi_DsAddEntry_ErrData_V1(ndr, "v1", &r->v1);
9628                 break;
9629
9630                 default:
9631                         ndr_print_bad_level(ndr, name, level);
9632         }
9633 }
9634
9635 static enum ndr_err_code ndr_push_drsuapi_DsReplicaObjectIdentifier2(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaObjectIdentifier2 *r)
9636 {
9637         if (ndr_flags & NDR_SCALARS) {
9638                 NDR_CHECK(ndr_push_align(ndr, 4));
9639                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
9640                 NDR_CHECK(ndr_push_dom_sid28(ndr, NDR_SCALARS, &r->sid));
9641                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
9642         }
9643         if (ndr_flags & NDR_BUFFERS) {
9644                 NDR_CHECK(ndr_push_dom_sid28(ndr, NDR_BUFFERS, &r->sid));
9645         }
9646         return NDR_ERR_SUCCESS;
9647 }
9648
9649 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaObjectIdentifier2(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaObjectIdentifier2 *r)
9650 {
9651         if (ndr_flags & NDR_SCALARS) {
9652                 NDR_CHECK(ndr_pull_align(ndr, 4));
9653                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
9654                 NDR_CHECK(ndr_pull_dom_sid28(ndr, NDR_SCALARS, &r->sid));
9655                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
9656         }
9657         if (ndr_flags & NDR_BUFFERS) {
9658                 NDR_CHECK(ndr_pull_dom_sid28(ndr, NDR_BUFFERS, &r->sid));
9659         }
9660         return NDR_ERR_SUCCESS;
9661 }
9662
9663 _PUBLIC_ void ndr_print_drsuapi_DsReplicaObjectIdentifier2(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaObjectIdentifier2 *r)
9664 {
9665         ndr_print_struct(ndr, name, "drsuapi_DsReplicaObjectIdentifier2");
9666         ndr->depth++;
9667         ndr_print_GUID(ndr, "guid", &r->guid);
9668         ndr_print_dom_sid28(ndr, "sid", &r->sid);
9669         ndr->depth--;
9670 }
9671
9672 static enum ndr_err_code ndr_push_drsuapi_DsAddEntryCtr2(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAddEntryCtr2 *r)
9673 {
9674         uint32_t cntr_objects_1;
9675         if (ndr_flags & NDR_SCALARS) {
9676                 NDR_CHECK(ndr_push_align(ndr, 5));
9677                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->id));
9678                 NDR_CHECK(ndr_push_drsuapi_DsAddEntry_DirErr(ndr, NDR_SCALARS, r->dir_err));
9679                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dsid));
9680                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->extended_err));
9681                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->extended_data));
9682                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->problem));
9683                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
9684                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->objects));
9685                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
9686         }
9687         if (ndr_flags & NDR_BUFFERS) {
9688                 if (r->id) {
9689                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->id));
9690                 }
9691                 if (r->objects) {
9692                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
9693                         for (cntr_objects_1 = 0; cntr_objects_1 < r->count; cntr_objects_1++) {
9694                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier2(ndr, NDR_SCALARS, &r->objects[cntr_objects_1]));
9695                         }
9696                         for (cntr_objects_1 = 0; cntr_objects_1 < r->count; cntr_objects_1++) {
9697                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier2(ndr, NDR_BUFFERS, &r->objects[cntr_objects_1]));
9698                         }
9699                 }
9700         }
9701         return NDR_ERR_SUCCESS;
9702 }
9703
9704 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryCtr2(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntryCtr2 *r)
9705 {
9706         uint32_t _ptr_id;
9707         TALLOC_CTX *_mem_save_id_0;
9708         uint32_t _ptr_objects;
9709         uint32_t cntr_objects_1;
9710         TALLOC_CTX *_mem_save_objects_0;
9711         TALLOC_CTX *_mem_save_objects_1;
9712         if (ndr_flags & NDR_SCALARS) {
9713                 NDR_CHECK(ndr_pull_align(ndr, 5));
9714                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_id));
9715                 if (_ptr_id) {
9716                         NDR_PULL_ALLOC(ndr, r->id);
9717                 } else {
9718                         r->id = NULL;
9719                 }
9720                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntry_DirErr(ndr, NDR_SCALARS, &r->dir_err));
9721                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dsid));
9722                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->extended_err));
9723                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->extended_data));
9724                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->problem));
9725                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
9726                 if (r->count > 10000) {
9727                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
9728                 }
9729                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_objects));
9730                 if (_ptr_objects) {
9731                         NDR_PULL_ALLOC(ndr, r->objects);
9732                 } else {
9733                         r->objects = NULL;
9734                 }
9735                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
9736         }
9737         if (ndr_flags & NDR_BUFFERS) {
9738                 if (r->id) {
9739                         _mem_save_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
9740                         NDR_PULL_SET_MEM_CTX(ndr, r->id, 0);
9741                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->id));
9742                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_id_0, 0);
9743                 }
9744                 if (r->objects) {
9745                         _mem_save_objects_0 = NDR_PULL_GET_MEM_CTX(ndr);
9746                         NDR_PULL_SET_MEM_CTX(ndr, r->objects, 0);
9747                         NDR_CHECK(ndr_pull_array_size(ndr, &r->objects));
9748                         NDR_PULL_ALLOC_N(ndr, r->objects, ndr_get_array_size(ndr, &r->objects));
9749                         _mem_save_objects_1 = NDR_PULL_GET_MEM_CTX(ndr);
9750                         NDR_PULL_SET_MEM_CTX(ndr, r->objects, 0);
9751                         for (cntr_objects_1 = 0; cntr_objects_1 < r->count; cntr_objects_1++) {
9752                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier2(ndr, NDR_SCALARS, &r->objects[cntr_objects_1]));
9753                         }
9754                         for (cntr_objects_1 = 0; cntr_objects_1 < r->count; cntr_objects_1++) {
9755                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier2(ndr, NDR_BUFFERS, &r->objects[cntr_objects_1]));
9756                         }
9757                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_objects_1, 0);
9758                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_objects_0, 0);
9759                 }
9760                 if (r->objects) {
9761                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->objects, r->count));
9762                 }
9763         }
9764         return NDR_ERR_SUCCESS;
9765 }
9766
9767 _PUBLIC_ void ndr_print_drsuapi_DsAddEntryCtr2(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntryCtr2 *r)
9768 {
9769         uint32_t cntr_objects_1;
9770         ndr_print_struct(ndr, name, "drsuapi_DsAddEntryCtr2");
9771         ndr->depth++;
9772         ndr_print_ptr(ndr, "id", r->id);
9773         ndr->depth++;
9774         if (r->id) {
9775                 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "id", r->id);
9776         }
9777         ndr->depth--;
9778         ndr_print_drsuapi_DsAddEntry_DirErr(ndr, "dir_err", r->dir_err);
9779         ndr_print_uint32(ndr, "dsid", r->dsid);
9780         ndr_print_WERROR(ndr, "extended_err", r->extended_err);
9781         ndr_print_uint32(ndr, "extended_data", r->extended_data);
9782         ndr_print_uint16(ndr, "problem", r->problem);
9783         ndr_print_uint32(ndr, "count", r->count);
9784         ndr_print_ptr(ndr, "objects", r->objects);
9785         ndr->depth++;
9786         if (r->objects) {
9787                 ndr->print(ndr, "%s: ARRAY(%d)", "objects", (int)r->count);
9788                 ndr->depth++;
9789                 for (cntr_objects_1=0;cntr_objects_1<r->count;cntr_objects_1++) {
9790                         char *idx_1=NULL;
9791                         if (asprintf(&idx_1, "[%d]", cntr_objects_1) != -1) {
9792                                 ndr_print_drsuapi_DsReplicaObjectIdentifier2(ndr, "objects", &r->objects[cntr_objects_1]);
9793                                 free(idx_1);
9794                         }
9795                 }
9796                 ndr->depth--;
9797         }
9798         ndr->depth--;
9799         ndr->depth--;
9800 }
9801
9802 static enum ndr_err_code ndr_push_drsuapi_DsAddEntryCtr3(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAddEntryCtr3 *r)
9803 {
9804         uint32_t cntr_objects_1;
9805         if (ndr_flags & NDR_SCALARS) {
9806                 NDR_CHECK(ndr_push_align(ndr, 5));
9807                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->id));
9808                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->err_ver));
9809                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->err_data));
9810                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
9811                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->objects));
9812                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
9813         }
9814         if (ndr_flags & NDR_BUFFERS) {
9815                 if (r->id) {
9816                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->id));
9817                 }
9818                 if (r->err_data) {
9819                         NDR_CHECK(ndr_push_set_switch_value(ndr, r->err_data, r->err_ver));
9820                         NDR_CHECK(ndr_push_drsuapi_DsAddEntry_ErrData(ndr, NDR_SCALARS|NDR_BUFFERS, r->err_data));
9821                 }
9822                 if (r->objects) {
9823                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
9824                         for (cntr_objects_1 = 0; cntr_objects_1 < r->count; cntr_objects_1++) {
9825                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier2(ndr, NDR_SCALARS, &r->objects[cntr_objects_1]));
9826                         }
9827                         for (cntr_objects_1 = 0; cntr_objects_1 < r->count; cntr_objects_1++) {
9828                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier2(ndr, NDR_BUFFERS, &r->objects[cntr_objects_1]));
9829                         }
9830                 }
9831         }
9832         return NDR_ERR_SUCCESS;
9833 }
9834
9835 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryCtr3(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntryCtr3 *r)
9836 {
9837         uint32_t _ptr_id;
9838         TALLOC_CTX *_mem_save_id_0;
9839         uint32_t _ptr_err_data;
9840         TALLOC_CTX *_mem_save_err_data_0;
9841         uint32_t _ptr_objects;
9842         uint32_t cntr_objects_1;
9843         TALLOC_CTX *_mem_save_objects_0;
9844         TALLOC_CTX *_mem_save_objects_1;
9845         if (ndr_flags & NDR_SCALARS) {
9846                 NDR_CHECK(ndr_pull_align(ndr, 5));
9847                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_id));
9848                 if (_ptr_id) {
9849                         NDR_PULL_ALLOC(ndr, r->id);
9850                 } else {
9851                         r->id = NULL;
9852                 }
9853                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->err_ver));
9854                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_err_data));
9855                 if (_ptr_err_data) {
9856                         NDR_PULL_ALLOC(ndr, r->err_data);
9857                 } else {
9858                         r->err_data = NULL;
9859                 }
9860                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
9861                 if (r->count > 10000) {
9862                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
9863                 }
9864                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_objects));
9865                 if (_ptr_objects) {
9866                         NDR_PULL_ALLOC(ndr, r->objects);
9867                 } else {
9868                         r->objects = NULL;
9869                 }
9870                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
9871         }
9872         if (ndr_flags & NDR_BUFFERS) {
9873                 if (r->id) {
9874                         _mem_save_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
9875                         NDR_PULL_SET_MEM_CTX(ndr, r->id, 0);
9876                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->id));
9877                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_id_0, 0);
9878                 }
9879                 if (r->err_data) {
9880                         _mem_save_err_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
9881                         NDR_PULL_SET_MEM_CTX(ndr, r->err_data, 0);
9882                         NDR_CHECK(ndr_pull_set_switch_value(ndr, r->err_data, r->err_ver));
9883                         NDR_CHECK(ndr_pull_drsuapi_DsAddEntry_ErrData(ndr, NDR_SCALARS|NDR_BUFFERS, r->err_data));
9884                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_err_data_0, 0);
9885                 }
9886                 if (r->objects) {
9887                         _mem_save_objects_0 = NDR_PULL_GET_MEM_CTX(ndr);
9888                         NDR_PULL_SET_MEM_CTX(ndr, r->objects, 0);
9889                         NDR_CHECK(ndr_pull_array_size(ndr, &r->objects));
9890                         NDR_PULL_ALLOC_N(ndr, r->objects, ndr_get_array_size(ndr, &r->objects));
9891                         _mem_save_objects_1 = NDR_PULL_GET_MEM_CTX(ndr);
9892                         NDR_PULL_SET_MEM_CTX(ndr, r->objects, 0);
9893                         for (cntr_objects_1 = 0; cntr_objects_1 < r->count; cntr_objects_1++) {
9894                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier2(ndr, NDR_SCALARS, &r->objects[cntr_objects_1]));
9895                         }
9896                         for (cntr_objects_1 = 0; cntr_objects_1 < r->count; cntr_objects_1++) {
9897                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier2(ndr, NDR_BUFFERS, &r->objects[cntr_objects_1]));
9898                         }
9899                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_objects_1, 0);
9900                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_objects_0, 0);
9901                 }
9902                 if (r->objects) {
9903                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->objects, r->count));
9904                 }
9905         }
9906         return NDR_ERR_SUCCESS;
9907 }
9908
9909 _PUBLIC_ void ndr_print_drsuapi_DsAddEntryCtr3(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntryCtr3 *r)
9910 {
9911         uint32_t cntr_objects_1;
9912         ndr_print_struct(ndr, name, "drsuapi_DsAddEntryCtr3");
9913         ndr->depth++;
9914         ndr_print_ptr(ndr, "id", r->id);
9915         ndr->depth++;
9916         if (r->id) {
9917                 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "id", r->id);
9918         }
9919         ndr->depth--;
9920         ndr_print_uint32(ndr, "err_ver", r->err_ver);
9921         ndr_print_ptr(ndr, "err_data", r->err_data);
9922         ndr->depth++;
9923         if (r->err_data) {
9924                 ndr_print_set_switch_value(ndr, r->err_data, r->err_ver);
9925                 ndr_print_drsuapi_DsAddEntry_ErrData(ndr, "err_data", r->err_data);
9926         }
9927         ndr->depth--;
9928         ndr_print_uint32(ndr, "count", r->count);
9929         ndr_print_ptr(ndr, "objects", r->objects);
9930         ndr->depth++;
9931         if (r->objects) {
9932                 ndr->print(ndr, "%s: ARRAY(%d)", "objects", (int)r->count);
9933                 ndr->depth++;
9934                 for (cntr_objects_1=0;cntr_objects_1<r->count;cntr_objects_1++) {
9935                         char *idx_1=NULL;
9936                         if (asprintf(&idx_1, "[%d]", cntr_objects_1) != -1) {
9937                                 ndr_print_drsuapi_DsReplicaObjectIdentifier2(ndr, "objects", &r->objects[cntr_objects_1]);
9938                                 free(idx_1);
9939                         }
9940                 }
9941                 ndr->depth--;
9942         }
9943         ndr->depth--;
9944         ndr->depth--;
9945 }
9946
9947 static enum ndr_err_code ndr_push_drsuapi_DsAddEntryCtr(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsAddEntryCtr *r)
9948 {
9949         if (ndr_flags & NDR_SCALARS) {
9950                 int level = ndr_push_get_switch_value(ndr, r);
9951                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
9952                 NDR_CHECK(ndr_push_union_align(ndr, 5));
9953                 switch (level) {
9954                         case 2: {
9955                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryCtr2(ndr, NDR_SCALARS, &r->ctr2));
9956                         break; }
9957
9958                         case 3: {
9959                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryCtr3(ndr, NDR_SCALARS, &r->ctr3));
9960                         break; }
9961
9962                         default:
9963                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
9964                 }
9965         }
9966         if (ndr_flags & NDR_BUFFERS) {
9967                 int level = ndr_push_get_switch_value(ndr, r);
9968                 switch (level) {
9969                         case 2:
9970                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryCtr2(ndr, NDR_BUFFERS, &r->ctr2));
9971                         break;
9972
9973                         case 3:
9974                                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryCtr3(ndr, NDR_BUFFERS, &r->ctr3));
9975                         break;
9976
9977                         default:
9978                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
9979                 }
9980         }
9981         return NDR_ERR_SUCCESS;
9982 }
9983
9984 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryCtr(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsAddEntryCtr *r)
9985 {
9986         int level;
9987         uint32_t _level;
9988         level = ndr_pull_get_switch_value(ndr, r);
9989         if (ndr_flags & NDR_SCALARS) {
9990                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
9991                 if (_level != level) {
9992                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
9993                 }
9994                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
9995                 switch (level) {
9996                         case 2: {
9997                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryCtr2(ndr, NDR_SCALARS, &r->ctr2));
9998                         break; }
9999
10000                         case 3: {
10001                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryCtr3(ndr, NDR_SCALARS, &r->ctr3));
10002                         break; }
10003
10004                         default:
10005                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10006                 }
10007         }
10008         if (ndr_flags & NDR_BUFFERS) {
10009                 switch (level) {
10010                         case 2:
10011                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryCtr2(ndr, NDR_BUFFERS, &r->ctr2));
10012                         break;
10013
10014                         case 3:
10015                                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryCtr3(ndr, NDR_BUFFERS, &r->ctr3));
10016                         break;
10017
10018                         default:
10019                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10020                 }
10021         }
10022         return NDR_ERR_SUCCESS;
10023 }
10024
10025 _PUBLIC_ void ndr_print_drsuapi_DsAddEntryCtr(struct ndr_print *ndr, const char *name, const union drsuapi_DsAddEntryCtr *r)
10026 {
10027         int level;
10028         level = ndr_print_get_switch_value(ndr, r);
10029         ndr_print_union(ndr, name, level, "drsuapi_DsAddEntryCtr");
10030         switch (level) {
10031                 case 2:
10032                         ndr_print_drsuapi_DsAddEntryCtr2(ndr, "ctr2", &r->ctr2);
10033                 break;
10034
10035                 case 3:
10036                         ndr_print_drsuapi_DsAddEntryCtr3(ndr, "ctr3", &r->ctr3);
10037                 break;
10038
10039                 default:
10040                         ndr_print_bad_level(ndr, name, level);
10041         }
10042 }
10043
10044 static enum ndr_err_code ndr_push_drsuapi_DsExecuteKCCFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
10045 {
10046         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
10047         return NDR_ERR_SUCCESS;
10048 }
10049
10050 static enum ndr_err_code ndr_pull_drsuapi_DsExecuteKCCFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
10051 {
10052         uint32_t v;
10053         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
10054         *r = v;
10055         return NDR_ERR_SUCCESS;
10056 }
10057
10058 _PUBLIC_ void ndr_print_drsuapi_DsExecuteKCCFlags(struct ndr_print *ndr, const char *name, uint32_t r)
10059 {
10060         ndr_print_uint32(ndr, name, r);
10061         ndr->depth++;
10062         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_EXECUTE_KCC_ASYNCHRONOUS_OPERATION", DRSUAPI_DS_EXECUTE_KCC_ASYNCHRONOUS_OPERATION, r);
10063         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_EXECUTE_KCC_DAMPED", DRSUAPI_DS_EXECUTE_KCC_DAMPED, r);
10064         ndr->depth--;
10065 }
10066
10067 static enum ndr_err_code ndr_push_drsuapi_DsExecuteKCC1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsExecuteKCC1 *r)
10068 {
10069         if (ndr_flags & NDR_SCALARS) {
10070                 NDR_CHECK(ndr_push_align(ndr, 4));
10071                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->taskID));
10072                 NDR_CHECK(ndr_push_drsuapi_DsExecuteKCCFlags(ndr, NDR_SCALARS, r->flags));
10073                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
10074         }
10075         if (ndr_flags & NDR_BUFFERS) {
10076         }
10077         return NDR_ERR_SUCCESS;
10078 }
10079
10080 static enum ndr_err_code ndr_pull_drsuapi_DsExecuteKCC1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsExecuteKCC1 *r)
10081 {
10082         if (ndr_flags & NDR_SCALARS) {
10083                 NDR_CHECK(ndr_pull_align(ndr, 4));
10084                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->taskID));
10085                 NDR_CHECK(ndr_pull_drsuapi_DsExecuteKCCFlags(ndr, NDR_SCALARS, &r->flags));
10086                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
10087         }
10088         if (ndr_flags & NDR_BUFFERS) {
10089         }
10090         return NDR_ERR_SUCCESS;
10091 }
10092
10093 _PUBLIC_ void ndr_print_drsuapi_DsExecuteKCC1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsExecuteKCC1 *r)
10094 {
10095         ndr_print_struct(ndr, name, "drsuapi_DsExecuteKCC1");
10096         ndr->depth++;
10097         ndr_print_uint32(ndr, "taskID", r->taskID);
10098         ndr_print_drsuapi_DsExecuteKCCFlags(ndr, "flags", r->flags);
10099         ndr->depth--;
10100 }
10101
10102 static enum ndr_err_code ndr_push_drsuapi_DsExecuteKCCRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsExecuteKCCRequest *r)
10103 {
10104         if (ndr_flags & NDR_SCALARS) {
10105                 int level = ndr_push_get_switch_value(ndr, r);
10106                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
10107                 NDR_CHECK(ndr_push_union_align(ndr, 4));
10108                 switch (level) {
10109                         case 1: {
10110                                 NDR_CHECK(ndr_push_drsuapi_DsExecuteKCC1(ndr, NDR_SCALARS, &r->ctr1));
10111                         break; }
10112
10113                         default:
10114                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10115                 }
10116         }
10117         if (ndr_flags & NDR_BUFFERS) {
10118                 int level = ndr_push_get_switch_value(ndr, r);
10119                 switch (level) {
10120                         case 1:
10121                         break;
10122
10123                         default:
10124                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10125                 }
10126         }
10127         return NDR_ERR_SUCCESS;
10128 }
10129
10130 static enum ndr_err_code ndr_pull_drsuapi_DsExecuteKCCRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsExecuteKCCRequest *r)
10131 {
10132         int level;
10133         uint32_t _level;
10134         level = ndr_pull_get_switch_value(ndr, r);
10135         if (ndr_flags & NDR_SCALARS) {
10136                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
10137                 if (_level != level) {
10138                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
10139                 }
10140                 NDR_CHECK(ndr_pull_union_align(ndr, 4));
10141                 switch (level) {
10142                         case 1: {
10143                                 NDR_CHECK(ndr_pull_drsuapi_DsExecuteKCC1(ndr, NDR_SCALARS, &r->ctr1));
10144                         break; }
10145
10146                         default:
10147                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10148                 }
10149         }
10150         if (ndr_flags & NDR_BUFFERS) {
10151                 switch (level) {
10152                         case 1:
10153                         break;
10154
10155                         default:
10156                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10157                 }
10158         }
10159         return NDR_ERR_SUCCESS;
10160 }
10161
10162 _PUBLIC_ void ndr_print_drsuapi_DsExecuteKCCRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsExecuteKCCRequest *r)
10163 {
10164         int level;
10165         level = ndr_print_get_switch_value(ndr, r);
10166         ndr_print_union(ndr, name, level, "drsuapi_DsExecuteKCCRequest");
10167         switch (level) {
10168                 case 1:
10169                         ndr_print_drsuapi_DsExecuteKCC1(ndr, "ctr1", &r->ctr1);
10170                 break;
10171
10172                 default:
10173                         ndr_print_bad_level(ndr, name, level);
10174         }
10175 }
10176
10177 static enum ndr_err_code ndr_push_drsuapi_DsReplicaGetInfoLevel(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsReplicaGetInfoLevel r)
10178 {
10179         NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
10180         return NDR_ERR_SUCCESS;
10181 }
10182
10183 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaGetInfoLevel(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsReplicaGetInfoLevel *r)
10184 {
10185         uint32_t v;
10186         NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
10187         *r = v;
10188         return NDR_ERR_SUCCESS;
10189 }
10190
10191 _PUBLIC_ void ndr_print_drsuapi_DsReplicaGetInfoLevel(struct ndr_print *ndr, const char *name, enum drsuapi_DsReplicaGetInfoLevel r)
10192 {
10193         const char *val = NULL;
10194
10195         switch (r) {
10196                 case DRSUAPI_DS_REPLICA_GET_INFO: val = "DRSUAPI_DS_REPLICA_GET_INFO"; break;
10197                 case DRSUAPI_DS_REPLICA_GET_INFO2: val = "DRSUAPI_DS_REPLICA_GET_INFO2"; break;
10198         }
10199         ndr_print_enum(ndr, name, "ENUM", val, r);
10200 }
10201
10202 static enum ndr_err_code ndr_push_drsuapi_DsReplicaInfoType(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsReplicaInfoType r)
10203 {
10204         NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
10205         return NDR_ERR_SUCCESS;
10206 }
10207
10208 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaInfoType(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsReplicaInfoType *r)
10209 {
10210         uint32_t v;
10211         NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
10212         *r = v;
10213         return NDR_ERR_SUCCESS;
10214 }
10215
10216 _PUBLIC_ void ndr_print_drsuapi_DsReplicaInfoType(struct ndr_print *ndr, const char *name, enum drsuapi_DsReplicaInfoType r)
10217 {
10218         const char *val = NULL;
10219
10220         switch (r) {
10221                 case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS: val = "DRSUAPI_DS_REPLICA_INFO_NEIGHBORS"; break;
10222                 case DRSUAPI_DS_REPLICA_INFO_CURSORS: val = "DRSUAPI_DS_REPLICA_INFO_CURSORS"; break;
10223                 case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA: val = "DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA"; break;
10224                 case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES: val = "DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES"; break;
10225                 case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES: val = "DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES"; break;
10226                 case DRSUAPI_DS_REPLICA_INFO_PENDING_OPS: val = "DRSUAPI_DS_REPLICA_INFO_PENDING_OPS"; break;
10227                 case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA: val = "DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA"; break;
10228                 case DRSUAPI_DS_REPLICA_INFO_CURSORS2: val = "DRSUAPI_DS_REPLICA_INFO_CURSORS2"; break;
10229                 case DRSUAPI_DS_REPLICA_INFO_CURSORS3: val = "DRSUAPI_DS_REPLICA_INFO_CURSORS3"; break;
10230                 case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2: val = "DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2"; break;
10231                 case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2: val = "DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2"; break;
10232                 case DRSUAPI_DS_REPLICA_INFO_REPSTO: val = "DRSUAPI_DS_REPLICA_INFO_REPSTO"; break;
10233                 case DRSUAPI_DS_REPLICA_INFO_CLIENT_CONTEXTS: val = "DRSUAPI_DS_REPLICA_INFO_CLIENT_CONTEXTS"; break;
10234                 case DRSUAPI_DS_REPLICA_INFO_UPTODATE_VECTOR_V1: val = "DRSUAPI_DS_REPLICA_INFO_UPTODATE_VECTOR_V1"; break;
10235                 case DRSUAPI_DS_REPLICA_INFO_SERVER_OUTGOING_CALLS: val = "DRSUAPI_DS_REPLICA_INFO_SERVER_OUTGOING_CALLS"; break;
10236         }
10237         ndr_print_enum(ndr, name, "ENUM", val, r);
10238 }
10239
10240 static enum ndr_err_code ndr_push_drsuapi_DsReplicaGetInfoRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaGetInfoRequest1 *r)
10241 {
10242         if (ndr_flags & NDR_SCALARS) {
10243                 NDR_CHECK(ndr_push_align(ndr, 5));
10244                 NDR_CHECK(ndr_push_drsuapi_DsReplicaInfoType(ndr, NDR_SCALARS, r->info_type));
10245                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->object_dn));
10246                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_guid));
10247                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
10248         }
10249         if (ndr_flags & NDR_BUFFERS) {
10250                 if (r->object_dn) {
10251                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->object_dn, CH_UTF16)));
10252                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10253                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->object_dn, CH_UTF16)));
10254                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->object_dn, ndr_charset_length(r->object_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10255                 }
10256         }
10257         return NDR_ERR_SUCCESS;
10258 }
10259
10260 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaGetInfoRequest1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaGetInfoRequest1 *r)
10261 {
10262         uint32_t _ptr_object_dn;
10263         TALLOC_CTX *_mem_save_object_dn_0;
10264         if (ndr_flags & NDR_SCALARS) {
10265                 NDR_CHECK(ndr_pull_align(ndr, 5));
10266                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaInfoType(ndr, NDR_SCALARS, &r->info_type));
10267                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_object_dn));
10268                 if (_ptr_object_dn) {
10269                         NDR_PULL_ALLOC(ndr, r->object_dn);
10270                 } else {
10271                         r->object_dn = NULL;
10272                 }
10273                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_guid));
10274                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
10275         }
10276         if (ndr_flags & NDR_BUFFERS) {
10277                 if (r->object_dn) {
10278                         _mem_save_object_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
10279                         NDR_PULL_SET_MEM_CTX(ndr, r->object_dn, 0);
10280                         NDR_CHECK(ndr_pull_array_size(ndr, &r->object_dn));
10281                         NDR_CHECK(ndr_pull_array_length(ndr, &r->object_dn));
10282                         if (ndr_get_array_length(ndr, &r->object_dn) > ndr_get_array_size(ndr, &r->object_dn)) {
10283                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->object_dn), ndr_get_array_length(ndr, &r->object_dn));
10284                         }
10285                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->object_dn), sizeof(uint16_t)));
10286                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->object_dn, ndr_get_array_length(ndr, &r->object_dn), sizeof(uint16_t), CH_UTF16));
10287                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_object_dn_0, 0);
10288                 }
10289         }
10290         return NDR_ERR_SUCCESS;
10291 }
10292
10293 _PUBLIC_ void ndr_print_drsuapi_DsReplicaGetInfoRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaGetInfoRequest1 *r)
10294 {
10295         ndr_print_struct(ndr, name, "drsuapi_DsReplicaGetInfoRequest1");
10296         ndr->depth++;
10297         ndr_print_drsuapi_DsReplicaInfoType(ndr, "info_type", r->info_type);
10298         ndr_print_ptr(ndr, "object_dn", r->object_dn);
10299         ndr->depth++;
10300         if (r->object_dn) {
10301                 ndr_print_string(ndr, "object_dn", r->object_dn);
10302         }
10303         ndr->depth--;
10304         ndr_print_GUID(ndr, "source_dsa_guid", &r->source_dsa_guid);
10305         ndr->depth--;
10306 }
10307
10308 static enum ndr_err_code ndr_push_drsuapi_DsReplicaGetInfoRequest2(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaGetInfoRequest2 *r)
10309 {
10310         if (ndr_flags & NDR_SCALARS) {
10311                 NDR_CHECK(ndr_push_align(ndr, 5));
10312                 NDR_CHECK(ndr_push_drsuapi_DsReplicaInfoType(ndr, NDR_SCALARS, r->info_type));
10313                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->object_dn));
10314                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_guid));
10315                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
10316                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->attribute_name));
10317                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->value_dn_str));
10318                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumeration_context));
10319                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
10320         }
10321         if (ndr_flags & NDR_BUFFERS) {
10322                 if (r->object_dn) {
10323                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->object_dn, CH_UTF16)));
10324                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10325                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->object_dn, CH_UTF16)));
10326                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->object_dn, ndr_charset_length(r->object_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10327                 }
10328                 if (r->attribute_name) {
10329                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->attribute_name, CH_UTF16)));
10330                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10331                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->attribute_name, CH_UTF16)));
10332                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->attribute_name, ndr_charset_length(r->attribute_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10333                 }
10334                 if (r->value_dn_str) {
10335                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->value_dn_str, CH_UTF16)));
10336                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10337                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->value_dn_str, CH_UTF16)));
10338                         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));
10339                 }
10340         }
10341         return NDR_ERR_SUCCESS;
10342 }
10343
10344 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaGetInfoRequest2(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaGetInfoRequest2 *r)
10345 {
10346         uint32_t _ptr_object_dn;
10347         TALLOC_CTX *_mem_save_object_dn_0;
10348         uint32_t _ptr_attribute_name;
10349         TALLOC_CTX *_mem_save_attribute_name_0;
10350         uint32_t _ptr_value_dn_str;
10351         TALLOC_CTX *_mem_save_value_dn_str_0;
10352         if (ndr_flags & NDR_SCALARS) {
10353                 NDR_CHECK(ndr_pull_align(ndr, 5));
10354                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaInfoType(ndr, NDR_SCALARS, &r->info_type));
10355                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_object_dn));
10356                 if (_ptr_object_dn) {
10357                         NDR_PULL_ALLOC(ndr, r->object_dn);
10358                 } else {
10359                         r->object_dn = NULL;
10360                 }
10361                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_guid));
10362                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
10363                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_attribute_name));
10364                 if (_ptr_attribute_name) {
10365                         NDR_PULL_ALLOC(ndr, r->attribute_name);
10366                 } else {
10367                         r->attribute_name = NULL;
10368                 }
10369                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value_dn_str));
10370                 if (_ptr_value_dn_str) {
10371                         NDR_PULL_ALLOC(ndr, r->value_dn_str);
10372                 } else {
10373                         r->value_dn_str = NULL;
10374                 }
10375                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumeration_context));
10376                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
10377         }
10378         if (ndr_flags & NDR_BUFFERS) {
10379                 if (r->object_dn) {
10380                         _mem_save_object_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
10381                         NDR_PULL_SET_MEM_CTX(ndr, r->object_dn, 0);
10382                         NDR_CHECK(ndr_pull_array_size(ndr, &r->object_dn));
10383                         NDR_CHECK(ndr_pull_array_length(ndr, &r->object_dn));
10384                         if (ndr_get_array_length(ndr, &r->object_dn) > ndr_get_array_size(ndr, &r->object_dn)) {
10385                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->object_dn), ndr_get_array_length(ndr, &r->object_dn));
10386                         }
10387                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->object_dn), sizeof(uint16_t)));
10388                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->object_dn, ndr_get_array_length(ndr, &r->object_dn), sizeof(uint16_t), CH_UTF16));
10389                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_object_dn_0, 0);
10390                 }
10391                 if (r->attribute_name) {
10392                         _mem_save_attribute_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10393                         NDR_PULL_SET_MEM_CTX(ndr, r->attribute_name, 0);
10394                         NDR_CHECK(ndr_pull_array_size(ndr, &r->attribute_name));
10395                         NDR_CHECK(ndr_pull_array_length(ndr, &r->attribute_name));
10396                         if (ndr_get_array_length(ndr, &r->attribute_name) > ndr_get_array_size(ndr, &r->attribute_name)) {
10397                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->attribute_name), ndr_get_array_length(ndr, &r->attribute_name));
10398                         }
10399                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->attribute_name), sizeof(uint16_t)));
10400                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->attribute_name, ndr_get_array_length(ndr, &r->attribute_name), sizeof(uint16_t), CH_UTF16));
10401                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribute_name_0, 0);
10402                 }
10403                 if (r->value_dn_str) {
10404                         _mem_save_value_dn_str_0 = NDR_PULL_GET_MEM_CTX(ndr);
10405                         NDR_PULL_SET_MEM_CTX(ndr, r->value_dn_str, 0);
10406                         NDR_CHECK(ndr_pull_array_size(ndr, &r->value_dn_str));
10407                         NDR_CHECK(ndr_pull_array_length(ndr, &r->value_dn_str));
10408                         if (ndr_get_array_length(ndr, &r->value_dn_str) > ndr_get_array_size(ndr, &r->value_dn_str)) {
10409                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->value_dn_str), ndr_get_array_length(ndr, &r->value_dn_str));
10410                         }
10411                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->value_dn_str), sizeof(uint16_t)));
10412                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->value_dn_str, ndr_get_array_length(ndr, &r->value_dn_str), sizeof(uint16_t), CH_UTF16));
10413                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_dn_str_0, 0);
10414                 }
10415         }
10416         return NDR_ERR_SUCCESS;
10417 }
10418
10419 _PUBLIC_ void ndr_print_drsuapi_DsReplicaGetInfoRequest2(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaGetInfoRequest2 *r)
10420 {
10421         ndr_print_struct(ndr, name, "drsuapi_DsReplicaGetInfoRequest2");
10422         ndr->depth++;
10423         ndr_print_drsuapi_DsReplicaInfoType(ndr, "info_type", r->info_type);
10424         ndr_print_ptr(ndr, "object_dn", r->object_dn);
10425         ndr->depth++;
10426         if (r->object_dn) {
10427                 ndr_print_string(ndr, "object_dn", r->object_dn);
10428         }
10429         ndr->depth--;
10430         ndr_print_GUID(ndr, "source_dsa_guid", &r->source_dsa_guid);
10431         ndr_print_uint32(ndr, "flags", r->flags);
10432         ndr_print_ptr(ndr, "attribute_name", r->attribute_name);
10433         ndr->depth++;
10434         if (r->attribute_name) {
10435                 ndr_print_string(ndr, "attribute_name", r->attribute_name);
10436         }
10437         ndr->depth--;
10438         ndr_print_ptr(ndr, "value_dn_str", r->value_dn_str);
10439         ndr->depth++;
10440         if (r->value_dn_str) {
10441                 ndr_print_string(ndr, "value_dn_str", r->value_dn_str);
10442         }
10443         ndr->depth--;
10444         ndr_print_uint32(ndr, "enumeration_context", r->enumeration_context);
10445         ndr->depth--;
10446 }
10447
10448 static enum ndr_err_code ndr_push_drsuapi_DsReplicaGetInfoRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsReplicaGetInfoRequest *r)
10449 {
10450         if (ndr_flags & NDR_SCALARS) {
10451                 int level = ndr_push_get_switch_value(ndr, r);
10452                 NDR_CHECK(ndr_push_drsuapi_DsReplicaGetInfoLevel(ndr, NDR_SCALARS, level));
10453                 NDR_CHECK(ndr_push_union_align(ndr, 5));
10454                 switch (level) {
10455                         case DRSUAPI_DS_REPLICA_GET_INFO: {
10456                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaGetInfoRequest1(ndr, NDR_SCALARS, &r->req1));
10457                         break; }
10458
10459                         case DRSUAPI_DS_REPLICA_GET_INFO2: {
10460                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaGetInfoRequest2(ndr, NDR_SCALARS, &r->req2));
10461                         break; }
10462
10463                         default:
10464                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10465                 }
10466         }
10467         if (ndr_flags & NDR_BUFFERS) {
10468                 int level = ndr_push_get_switch_value(ndr, r);
10469                 switch (level) {
10470                         case DRSUAPI_DS_REPLICA_GET_INFO:
10471                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaGetInfoRequest1(ndr, NDR_BUFFERS, &r->req1));
10472                         break;
10473
10474                         case DRSUAPI_DS_REPLICA_GET_INFO2:
10475                                 NDR_CHECK(ndr_push_drsuapi_DsReplicaGetInfoRequest2(ndr, NDR_BUFFERS, &r->req2));
10476                         break;
10477
10478                         default:
10479                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10480                 }
10481         }
10482         return NDR_ERR_SUCCESS;
10483 }
10484
10485 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaGetInfoRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsReplicaGetInfoRequest *r)
10486 {
10487         int level;
10488         uint32_t _level;
10489         level = ndr_pull_get_switch_value(ndr, r);
10490         if (ndr_flags & NDR_SCALARS) {
10491                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
10492                 if (_level != level) {
10493                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
10494                 }
10495                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
10496                 switch (level) {
10497                         case DRSUAPI_DS_REPLICA_GET_INFO: {
10498                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaGetInfoRequest1(ndr, NDR_SCALARS, &r->req1));
10499                         break; }
10500
10501                         case DRSUAPI_DS_REPLICA_GET_INFO2: {
10502                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaGetInfoRequest2(ndr, NDR_SCALARS, &r->req2));
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         if (ndr_flags & NDR_BUFFERS) {
10510                 switch (level) {
10511                         case DRSUAPI_DS_REPLICA_GET_INFO:
10512                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaGetInfoRequest1(ndr, NDR_BUFFERS, &r->req1));
10513                         break;
10514
10515                         case DRSUAPI_DS_REPLICA_GET_INFO2:
10516                                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaGetInfoRequest2(ndr, NDR_BUFFERS, &r->req2));
10517                         break;
10518
10519                         default:
10520                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10521                 }
10522         }
10523         return NDR_ERR_SUCCESS;
10524 }
10525
10526 _PUBLIC_ void ndr_print_drsuapi_DsReplicaGetInfoRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsReplicaGetInfoRequest *r)
10527 {
10528         int level;
10529         level = ndr_print_get_switch_value(ndr, r);
10530         ndr_print_union(ndr, name, level, "drsuapi_DsReplicaGetInfoRequest");
10531         switch (level) {
10532                 case DRSUAPI_DS_REPLICA_GET_INFO:
10533                         ndr_print_drsuapi_DsReplicaGetInfoRequest1(ndr, "req1", &r->req1);
10534                 break;
10535
10536                 case DRSUAPI_DS_REPLICA_GET_INFO2:
10537                         ndr_print_drsuapi_DsReplicaGetInfoRequest2(ndr, "req2", &r->req2);
10538                 break;
10539
10540                 default:
10541                         ndr_print_bad_level(ndr, name, level);
10542         }
10543 }
10544
10545 static enum ndr_err_code ndr_push_drsuapi_DsReplicaNeighbour(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaNeighbour *r)
10546 {
10547         if (ndr_flags & NDR_SCALARS) {
10548                 NDR_CHECK(ndr_push_align(ndr, 8));
10549                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->naming_context_dn));
10550                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->source_dsa_obj_dn));
10551                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->source_dsa_address));
10552                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->transport_obj_dn));
10553                 NDR_CHECK(ndr_push_drsuapi_DrsOptions(ndr, NDR_SCALARS, r->replica_flags));
10554                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
10555                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->naming_context_obj_guid));
10556                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_obj_guid));
10557                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
10558                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->transport_obj_guid));
10559                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->tmp_highest_usn));
10560                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->highest_usn));
10561                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_success));
10562                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_attempt));
10563                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->result_last_attempt));
10564                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->consecutive_sync_failures));
10565                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
10566         }
10567         if (ndr_flags & NDR_BUFFERS) {
10568                 if (r->naming_context_dn) {
10569                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->naming_context_dn, CH_UTF16)));
10570                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10571                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->naming_context_dn, CH_UTF16)));
10572                         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));
10573                 }
10574                 if (r->source_dsa_obj_dn) {
10575                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->source_dsa_obj_dn, CH_UTF16)));
10576                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10577                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->source_dsa_obj_dn, CH_UTF16)));
10578                         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));
10579                 }
10580                 if (r->source_dsa_address) {
10581                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->source_dsa_address, CH_UTF16)));
10582                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10583                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->source_dsa_address, CH_UTF16)));
10584                         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));
10585                 }
10586                 if (r->transport_obj_dn) {
10587                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->transport_obj_dn, CH_UTF16)));
10588                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10589                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->transport_obj_dn, CH_UTF16)));
10590                         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));
10591                 }
10592         }
10593         return NDR_ERR_SUCCESS;
10594 }
10595
10596 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaNeighbour(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaNeighbour *r)
10597 {
10598         uint32_t _ptr_naming_context_dn;
10599         TALLOC_CTX *_mem_save_naming_context_dn_0;
10600         uint32_t _ptr_source_dsa_obj_dn;
10601         TALLOC_CTX *_mem_save_source_dsa_obj_dn_0;
10602         uint32_t _ptr_source_dsa_address;
10603         TALLOC_CTX *_mem_save_source_dsa_address_0;
10604         uint32_t _ptr_transport_obj_dn;
10605         TALLOC_CTX *_mem_save_transport_obj_dn_0;
10606         if (ndr_flags & NDR_SCALARS) {
10607                 NDR_CHECK(ndr_pull_align(ndr, 8));
10608                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_naming_context_dn));
10609                 if (_ptr_naming_context_dn) {
10610                         NDR_PULL_ALLOC(ndr, r->naming_context_dn);
10611                 } else {
10612                         r->naming_context_dn = NULL;
10613                 }
10614                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_source_dsa_obj_dn));
10615                 if (_ptr_source_dsa_obj_dn) {
10616                         NDR_PULL_ALLOC(ndr, r->source_dsa_obj_dn);
10617                 } else {
10618                         r->source_dsa_obj_dn = NULL;
10619                 }
10620                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_source_dsa_address));
10621                 if (_ptr_source_dsa_address) {
10622                         NDR_PULL_ALLOC(ndr, r->source_dsa_address);
10623                 } else {
10624                         r->source_dsa_address = NULL;
10625                 }
10626                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_transport_obj_dn));
10627                 if (_ptr_transport_obj_dn) {
10628                         NDR_PULL_ALLOC(ndr, r->transport_obj_dn);
10629                 } else {
10630                         r->transport_obj_dn = NULL;
10631                 }
10632                 NDR_CHECK(ndr_pull_drsuapi_DrsOptions(ndr, NDR_SCALARS, &r->replica_flags));
10633                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
10634                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->naming_context_obj_guid));
10635                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_obj_guid));
10636                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
10637                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->transport_obj_guid));
10638                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->tmp_highest_usn));
10639                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->highest_usn));
10640                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_success));
10641                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_attempt));
10642                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->result_last_attempt));
10643                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->consecutive_sync_failures));
10644                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
10645         }
10646         if (ndr_flags & NDR_BUFFERS) {
10647                 if (r->naming_context_dn) {
10648                         _mem_save_naming_context_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
10649                         NDR_PULL_SET_MEM_CTX(ndr, r->naming_context_dn, 0);
10650                         NDR_CHECK(ndr_pull_array_size(ndr, &r->naming_context_dn));
10651                         NDR_CHECK(ndr_pull_array_length(ndr, &r->naming_context_dn));
10652                         if (ndr_get_array_length(ndr, &r->naming_context_dn) > ndr_get_array_size(ndr, &r->naming_context_dn)) {
10653                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->naming_context_dn), ndr_get_array_length(ndr, &r->naming_context_dn));
10654                         }
10655                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->naming_context_dn), sizeof(uint16_t)));
10656                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->naming_context_dn, ndr_get_array_length(ndr, &r->naming_context_dn), sizeof(uint16_t), CH_UTF16));
10657                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_naming_context_dn_0, 0);
10658                 }
10659                 if (r->source_dsa_obj_dn) {
10660                         _mem_save_source_dsa_obj_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
10661                         NDR_PULL_SET_MEM_CTX(ndr, r->source_dsa_obj_dn, 0);
10662                         NDR_CHECK(ndr_pull_array_size(ndr, &r->source_dsa_obj_dn));
10663                         NDR_CHECK(ndr_pull_array_length(ndr, &r->source_dsa_obj_dn));
10664                         if (ndr_get_array_length(ndr, &r->source_dsa_obj_dn) > ndr_get_array_size(ndr, &r->source_dsa_obj_dn)) {
10665                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->source_dsa_obj_dn), ndr_get_array_length(ndr, &r->source_dsa_obj_dn));
10666                         }
10667                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->source_dsa_obj_dn), sizeof(uint16_t)));
10668                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->source_dsa_obj_dn, ndr_get_array_length(ndr, &r->source_dsa_obj_dn), sizeof(uint16_t), CH_UTF16));
10669                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_source_dsa_obj_dn_0, 0);
10670                 }
10671                 if (r->source_dsa_address) {
10672                         _mem_save_source_dsa_address_0 = NDR_PULL_GET_MEM_CTX(ndr);
10673                         NDR_PULL_SET_MEM_CTX(ndr, r->source_dsa_address, 0);
10674                         NDR_CHECK(ndr_pull_array_size(ndr, &r->source_dsa_address));
10675                         NDR_CHECK(ndr_pull_array_length(ndr, &r->source_dsa_address));
10676                         if (ndr_get_array_length(ndr, &r->source_dsa_address) > ndr_get_array_size(ndr, &r->source_dsa_address)) {
10677                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->source_dsa_address), ndr_get_array_length(ndr, &r->source_dsa_address));
10678                         }
10679                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->source_dsa_address), sizeof(uint16_t)));
10680                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->source_dsa_address, ndr_get_array_length(ndr, &r->source_dsa_address), sizeof(uint16_t), CH_UTF16));
10681                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_source_dsa_address_0, 0);
10682                 }
10683                 if (r->transport_obj_dn) {
10684                         _mem_save_transport_obj_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
10685                         NDR_PULL_SET_MEM_CTX(ndr, r->transport_obj_dn, 0);
10686                         NDR_CHECK(ndr_pull_array_size(ndr, &r->transport_obj_dn));
10687                         NDR_CHECK(ndr_pull_array_length(ndr, &r->transport_obj_dn));
10688                         if (ndr_get_array_length(ndr, &r->transport_obj_dn) > ndr_get_array_size(ndr, &r->transport_obj_dn)) {
10689                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->transport_obj_dn), ndr_get_array_length(ndr, &r->transport_obj_dn));
10690                         }
10691                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->transport_obj_dn), sizeof(uint16_t)));
10692                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->transport_obj_dn, ndr_get_array_length(ndr, &r->transport_obj_dn), sizeof(uint16_t), CH_UTF16));
10693                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_transport_obj_dn_0, 0);
10694                 }
10695         }
10696         return NDR_ERR_SUCCESS;
10697 }
10698
10699 _PUBLIC_ void ndr_print_drsuapi_DsReplicaNeighbour(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaNeighbour *r)
10700 {
10701         ndr_print_struct(ndr, name, "drsuapi_DsReplicaNeighbour");
10702         ndr->depth++;
10703         ndr_print_ptr(ndr, "naming_context_dn", r->naming_context_dn);
10704         ndr->depth++;
10705         if (r->naming_context_dn) {
10706                 ndr_print_string(ndr, "naming_context_dn", r->naming_context_dn);
10707         }
10708         ndr->depth--;
10709         ndr_print_ptr(ndr, "source_dsa_obj_dn", r->source_dsa_obj_dn);
10710         ndr->depth++;
10711         if (r->source_dsa_obj_dn) {
10712                 ndr_print_string(ndr, "source_dsa_obj_dn", r->source_dsa_obj_dn);
10713         }
10714         ndr->depth--;
10715         ndr_print_ptr(ndr, "source_dsa_address", r->source_dsa_address);
10716         ndr->depth++;
10717         if (r->source_dsa_address) {
10718                 ndr_print_string(ndr, "source_dsa_address", r->source_dsa_address);
10719         }
10720         ndr->depth--;
10721         ndr_print_ptr(ndr, "transport_obj_dn", r->transport_obj_dn);
10722         ndr->depth++;
10723         if (r->transport_obj_dn) {
10724                 ndr_print_string(ndr, "transport_obj_dn", r->transport_obj_dn);
10725         }
10726         ndr->depth--;
10727         ndr_print_drsuapi_DrsOptions(ndr, "replica_flags", r->replica_flags);
10728         ndr_print_uint32(ndr, "reserved", r->reserved);
10729         ndr_print_GUID(ndr, "naming_context_obj_guid", &r->naming_context_obj_guid);
10730         ndr_print_GUID(ndr, "source_dsa_obj_guid", &r->source_dsa_obj_guid);
10731         ndr_print_GUID(ndr, "source_dsa_invocation_id", &r->source_dsa_invocation_id);
10732         ndr_print_GUID(ndr, "transport_obj_guid", &r->transport_obj_guid);
10733         ndr_print_hyper(ndr, "tmp_highest_usn", r->tmp_highest_usn);
10734         ndr_print_hyper(ndr, "highest_usn", r->highest_usn);
10735         ndr_print_NTTIME(ndr, "last_success", r->last_success);
10736         ndr_print_NTTIME(ndr, "last_attempt", r->last_attempt);
10737         ndr_print_WERROR(ndr, "result_last_attempt", r->result_last_attempt);
10738         ndr_print_uint32(ndr, "consecutive_sync_failures", r->consecutive_sync_failures);
10739         ndr->depth--;
10740 }
10741
10742 static enum ndr_err_code ndr_push_drsuapi_DsReplicaNeighbourCtr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaNeighbourCtr *r)
10743 {
10744         uint32_t cntr_array_0;
10745         if (ndr_flags & NDR_SCALARS) {
10746                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
10747                 NDR_CHECK(ndr_push_align(ndr, 8));
10748                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
10749                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
10750                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
10751                         NDR_CHECK(ndr_push_drsuapi_DsReplicaNeighbour(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
10752                 }
10753                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
10754         }
10755         if (ndr_flags & NDR_BUFFERS) {
10756                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
10757                         NDR_CHECK(ndr_push_drsuapi_DsReplicaNeighbour(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
10758                 }
10759         }
10760         return NDR_ERR_SUCCESS;
10761 }
10762
10763 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaNeighbourCtr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaNeighbourCtr *r)
10764 {
10765         uint32_t cntr_array_0;
10766         TALLOC_CTX *_mem_save_array_0;
10767         if (ndr_flags & NDR_SCALARS) {
10768                 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
10769                 NDR_CHECK(ndr_pull_align(ndr, 8));
10770                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
10771                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
10772                 NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
10773                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
10774                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
10775                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
10776                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaNeighbour(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
10777                 }
10778                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
10779                 if (r->array) {
10780                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
10781                 }
10782                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
10783         }
10784         if (ndr_flags & NDR_BUFFERS) {
10785                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
10786                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
10787                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
10788                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaNeighbour(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
10789                 }
10790                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
10791         }
10792         return NDR_ERR_SUCCESS;
10793 }
10794
10795 _PUBLIC_ void ndr_print_drsuapi_DsReplicaNeighbourCtr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaNeighbourCtr *r)
10796 {
10797         uint32_t cntr_array_0;
10798         ndr_print_struct(ndr, name, "drsuapi_DsReplicaNeighbourCtr");
10799         ndr->depth++;
10800         ndr_print_uint32(ndr, "count", r->count);
10801         ndr_print_uint32(ndr, "reserved", r->reserved);
10802         ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
10803         ndr->depth++;
10804         for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
10805                 char *idx_0=NULL;
10806                 if (asprintf(&idx_0, "[%d]", cntr_array_0) != -1) {
10807                         ndr_print_drsuapi_DsReplicaNeighbour(ndr, "array", &r->array[cntr_array_0]);
10808                         free(idx_0);
10809                 }
10810         }
10811         ndr->depth--;
10812         ndr->depth--;
10813 }
10814
10815 static enum ndr_err_code ndr_push_drsuapi_DsReplicaCursorCtr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaCursorCtr *r)
10816 {
10817         uint32_t cntr_array_0;
10818         if (ndr_flags & NDR_SCALARS) {
10819                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
10820                 NDR_CHECK(ndr_push_align(ndr, 8));
10821                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
10822                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
10823                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
10824                         NDR_CHECK(ndr_push_drsuapi_DsReplicaCursor(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
10825                 }
10826                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
10827         }
10828         if (ndr_flags & NDR_BUFFERS) {
10829         }
10830         return NDR_ERR_SUCCESS;
10831 }
10832
10833 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaCursorCtr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaCursorCtr *r)
10834 {
10835         uint32_t cntr_array_0;
10836         TALLOC_CTX *_mem_save_array_0;
10837         if (ndr_flags & NDR_SCALARS) {
10838                 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
10839                 NDR_CHECK(ndr_pull_align(ndr, 8));
10840                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
10841                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
10842                 NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
10843                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
10844                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
10845                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
10846                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursor(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
10847                 }
10848                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
10849                 if (r->array) {
10850                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
10851                 }
10852                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
10853         }
10854         if (ndr_flags & NDR_BUFFERS) {
10855         }
10856         return NDR_ERR_SUCCESS;
10857 }
10858
10859 _PUBLIC_ void ndr_print_drsuapi_DsReplicaCursorCtr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaCursorCtr *r)
10860 {
10861         uint32_t cntr_array_0;
10862         ndr_print_struct(ndr, name, "drsuapi_DsReplicaCursorCtr");
10863         ndr->depth++;
10864         ndr_print_uint32(ndr, "count", r->count);
10865         ndr_print_uint32(ndr, "reserved", r->reserved);
10866         ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
10867         ndr->depth++;
10868         for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
10869                 char *idx_0=NULL;
10870                 if (asprintf(&idx_0, "[%d]", cntr_array_0) != -1) {
10871                         ndr_print_drsuapi_DsReplicaCursor(ndr, "array", &r->array[cntr_array_0]);
10872                         free(idx_0);
10873                 }
10874         }
10875         ndr->depth--;
10876         ndr->depth--;
10877 }
10878
10879 static enum ndr_err_code ndr_push_drsuapi_DsReplicaObjMetaData(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaObjMetaData *r)
10880 {
10881         if (ndr_flags & NDR_SCALARS) {
10882                 NDR_CHECK(ndr_push_align(ndr, 8));
10883                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->attribute_name));
10884                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
10885                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->originating_change_time));
10886                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->originating_invocation_id));
10887                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->originating_usn));
10888                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->local_usn));
10889                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
10890         }
10891         if (ndr_flags & NDR_BUFFERS) {
10892                 if (r->attribute_name) {
10893                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->attribute_name, CH_UTF16)));
10894                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10895                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->attribute_name, CH_UTF16)));
10896                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->attribute_name, ndr_charset_length(r->attribute_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10897                 }
10898         }
10899         return NDR_ERR_SUCCESS;
10900 }
10901
10902 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaObjMetaData(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaObjMetaData *r)
10903 {
10904         uint32_t _ptr_attribute_name;
10905         TALLOC_CTX *_mem_save_attribute_name_0;
10906         if (ndr_flags & NDR_SCALARS) {
10907                 NDR_CHECK(ndr_pull_align(ndr, 8));
10908                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_attribute_name));
10909                 if (_ptr_attribute_name) {
10910                         NDR_PULL_ALLOC(ndr, r->attribute_name);
10911                 } else {
10912                         r->attribute_name = NULL;
10913                 }
10914                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
10915                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->originating_change_time));
10916                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->originating_invocation_id));
10917                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->originating_usn));
10918                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->local_usn));
10919                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
10920         }
10921         if (ndr_flags & NDR_BUFFERS) {
10922                 if (r->attribute_name) {
10923                         _mem_save_attribute_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10924                         NDR_PULL_SET_MEM_CTX(ndr, r->attribute_name, 0);
10925                         NDR_CHECK(ndr_pull_array_size(ndr, &r->attribute_name));
10926                         NDR_CHECK(ndr_pull_array_length(ndr, &r->attribute_name));
10927                         if (ndr_get_array_length(ndr, &r->attribute_name) > ndr_get_array_size(ndr, &r->attribute_name)) {
10928                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->attribute_name), ndr_get_array_length(ndr, &r->attribute_name));
10929                         }
10930                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->attribute_name), sizeof(uint16_t)));
10931                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->attribute_name, ndr_get_array_length(ndr, &r->attribute_name), sizeof(uint16_t), CH_UTF16));
10932                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribute_name_0, 0);
10933                 }
10934         }
10935         return NDR_ERR_SUCCESS;
10936 }
10937
10938 _PUBLIC_ void ndr_print_drsuapi_DsReplicaObjMetaData(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaObjMetaData *r)
10939 {
10940         ndr_print_struct(ndr, name, "drsuapi_DsReplicaObjMetaData");
10941         ndr->depth++;
10942         ndr_print_ptr(ndr, "attribute_name", r->attribute_name);
10943         ndr->depth++;
10944         if (r->attribute_name) {
10945                 ndr_print_string(ndr, "attribute_name", r->attribute_name);
10946         }
10947         ndr->depth--;
10948         ndr_print_uint32(ndr, "version", r->version);
10949         ndr_print_NTTIME(ndr, "originating_change_time", r->originating_change_time);
10950         ndr_print_GUID(ndr, "originating_invocation_id", &r->originating_invocation_id);
10951         ndr_print_hyper(ndr, "originating_usn", r->originating_usn);
10952         ndr_print_hyper(ndr, "local_usn", r->local_usn);
10953         ndr->depth--;
10954 }
10955
10956 static enum ndr_err_code ndr_push_drsuapi_DsReplicaObjMetaDataCtr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaObjMetaDataCtr *r)
10957 {
10958         uint32_t cntr_array_0;
10959         if (ndr_flags & NDR_SCALARS) {
10960                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
10961                 NDR_CHECK(ndr_push_align(ndr, 8));
10962                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
10963                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
10964                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
10965                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjMetaData(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
10966                 }
10967                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
10968         }
10969         if (ndr_flags & NDR_BUFFERS) {
10970                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
10971                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjMetaData(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
10972                 }
10973         }
10974         return NDR_ERR_SUCCESS;
10975 }
10976
10977 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaObjMetaDataCtr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaObjMetaDataCtr *r)
10978 {
10979         uint32_t cntr_array_0;
10980         TALLOC_CTX *_mem_save_array_0;
10981         if (ndr_flags & NDR_SCALARS) {
10982                 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
10983                 NDR_CHECK(ndr_pull_align(ndr, 8));
10984                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
10985                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
10986                 NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
10987                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
10988                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
10989                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
10990                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjMetaData(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
10991                 }
10992                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
10993                 if (r->array) {
10994                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
10995                 }
10996                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
10997         }
10998         if (ndr_flags & NDR_BUFFERS) {
10999                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
11000                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
11001                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
11002                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjMetaData(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
11003                 }
11004                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
11005         }
11006         return NDR_ERR_SUCCESS;
11007 }
11008
11009 _PUBLIC_ void ndr_print_drsuapi_DsReplicaObjMetaDataCtr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaObjMetaDataCtr *r)
11010 {
11011         uint32_t cntr_array_0;
11012         ndr_print_struct(ndr, name, "drsuapi_DsReplicaObjMetaDataCtr");
11013         ndr->depth++;
11014         ndr_print_uint32(ndr, "count", r->count);
11015         ndr_print_uint32(ndr, "reserved", r->reserved);
11016         ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
11017         ndr->depth++;
11018         for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
11019                 char *idx_0=NULL;
11020                 if (asprintf(&idx_0, "[%d]", cntr_array_0) != -1) {
11021                         ndr_print_drsuapi_DsReplicaObjMetaData(ndr, "array", &r->array[cntr_array_0]);
11022                         free(idx_0);
11023                 }
11024         }
11025         ndr->depth--;
11026         ndr->depth--;
11027 }
11028
11029 static enum ndr_err_code ndr_push_drsuapi_DsReplicaKccDsaFailure(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaKccDsaFailure *r)
11030 {
11031         if (ndr_flags & NDR_SCALARS) {
11032                 NDR_CHECK(ndr_push_align(ndr, 5));
11033                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dsa_obj_dn));
11034                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->dsa_obj_guid));
11035                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->first_failure));
11036                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_failures));
11037                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->last_result));
11038                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
11039         }
11040         if (ndr_flags & NDR_BUFFERS) {
11041                 if (r->dsa_obj_dn) {
11042                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dsa_obj_dn, CH_UTF16)));
11043                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
11044                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dsa_obj_dn, CH_UTF16)));
11045                         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));
11046                 }
11047         }
11048         return NDR_ERR_SUCCESS;
11049 }
11050
11051 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaKccDsaFailure(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaKccDsaFailure *r)
11052 {
11053         uint32_t _ptr_dsa_obj_dn;
11054         TALLOC_CTX *_mem_save_dsa_obj_dn_0;
11055         if (ndr_flags & NDR_SCALARS) {
11056                 NDR_CHECK(ndr_pull_align(ndr, 5));
11057                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dsa_obj_dn));
11058                 if (_ptr_dsa_obj_dn) {
11059                         NDR_PULL_ALLOC(ndr, r->dsa_obj_dn);
11060                 } else {
11061                         r->dsa_obj_dn = NULL;
11062                 }
11063                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->dsa_obj_guid));
11064                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->first_failure));
11065                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_failures));
11066                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_result));
11067                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
11068         }
11069         if (ndr_flags & NDR_BUFFERS) {
11070                 if (r->dsa_obj_dn) {
11071                         _mem_save_dsa_obj_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
11072                         NDR_PULL_SET_MEM_CTX(ndr, r->dsa_obj_dn, 0);
11073                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dsa_obj_dn));
11074                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dsa_obj_dn));
11075                         if (ndr_get_array_length(ndr, &r->dsa_obj_dn) > ndr_get_array_size(ndr, &r->dsa_obj_dn)) {
11076                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dsa_obj_dn), ndr_get_array_length(ndr, &r->dsa_obj_dn));
11077                         }
11078                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dsa_obj_dn), sizeof(uint16_t)));
11079                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dsa_obj_dn, ndr_get_array_length(ndr, &r->dsa_obj_dn), sizeof(uint16_t), CH_UTF16));
11080                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dsa_obj_dn_0, 0);
11081                 }
11082         }
11083         return NDR_ERR_SUCCESS;
11084 }
11085
11086 _PUBLIC_ void ndr_print_drsuapi_DsReplicaKccDsaFailure(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaKccDsaFailure *r)
11087 {
11088         ndr_print_struct(ndr, name, "drsuapi_DsReplicaKccDsaFailure");
11089         ndr->depth++;
11090         ndr_print_ptr(ndr, "dsa_obj_dn", r->dsa_obj_dn);
11091         ndr->depth++;
11092         if (r->dsa_obj_dn) {
11093                 ndr_print_string(ndr, "dsa_obj_dn", r->dsa_obj_dn);
11094         }
11095         ndr->depth--;
11096         ndr_print_GUID(ndr, "dsa_obj_guid", &r->dsa_obj_guid);
11097         ndr_print_NTTIME(ndr, "first_failure", r->first_failure);
11098         ndr_print_uint32(ndr, "num_failures", r->num_failures);
11099         ndr_print_WERROR(ndr, "last_result", r->last_result);
11100         ndr->depth--;
11101 }
11102
11103 static enum ndr_err_code ndr_push_drsuapi_DsReplicaKccDsaFailuresCtr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaKccDsaFailuresCtr *r)
11104 {
11105         uint32_t cntr_array_0;
11106         if (ndr_flags & NDR_SCALARS) {
11107                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
11108                 NDR_CHECK(ndr_push_align(ndr, 5));
11109                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
11110                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
11111                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
11112                         NDR_CHECK(ndr_push_drsuapi_DsReplicaKccDsaFailure(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
11113                 }
11114                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
11115         }
11116         if (ndr_flags & NDR_BUFFERS) {
11117                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
11118                         NDR_CHECK(ndr_push_drsuapi_DsReplicaKccDsaFailure(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
11119                 }
11120         }
11121         return NDR_ERR_SUCCESS;
11122 }
11123
11124 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaKccDsaFailuresCtr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaKccDsaFailuresCtr *r)
11125 {
11126         uint32_t cntr_array_0;
11127         TALLOC_CTX *_mem_save_array_0;
11128         if (ndr_flags & NDR_SCALARS) {
11129                 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
11130                 NDR_CHECK(ndr_pull_align(ndr, 5));
11131                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
11132                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
11133                 NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
11134                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
11135                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
11136                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
11137                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaKccDsaFailure(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
11138                 }
11139                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
11140                 if (r->array) {
11141                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
11142                 }
11143                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
11144         }
11145         if (ndr_flags & NDR_BUFFERS) {
11146                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
11147                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
11148                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
11149                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaKccDsaFailure(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
11150                 }
11151                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
11152         }
11153         return NDR_ERR_SUCCESS;
11154 }
11155
11156 _PUBLIC_ void ndr_print_drsuapi_DsReplicaKccDsaFailuresCtr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaKccDsaFailuresCtr *r)
11157 {
11158         uint32_t cntr_array_0;
11159         ndr_print_struct(ndr, name, "drsuapi_DsReplicaKccDsaFailuresCtr");
11160         ndr->depth++;
11161         ndr_print_uint32(ndr, "count", r->count);
11162         ndr_print_uint32(ndr, "reserved", r->reserved);
11163         ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
11164         ndr->depth++;
11165         for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
11166                 char *idx_0=NULL;
11167                 if (asprintf(&idx_0, "[%d]", cntr_array_0) != -1) {
11168                         ndr_print_drsuapi_DsReplicaKccDsaFailure(ndr, "array", &r->array[cntr_array_0]);
11169                         free(idx_0);
11170                 }
11171         }
11172         ndr->depth--;
11173         ndr->depth--;
11174 }
11175
11176 static enum ndr_err_code ndr_push_drsuapi_DsReplicaOpType(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsReplicaOpType r)
11177 {
11178         NDR_CHECK(ndr_push_enum_uint1632(ndr, NDR_SCALARS, r));
11179         return NDR_ERR_SUCCESS;
11180 }
11181
11182 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaOpType(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsReplicaOpType *r)
11183 {
11184         uint16_t v;
11185         NDR_CHECK(ndr_pull_enum_uint1632(ndr, NDR_SCALARS, &v));
11186         *r = v;
11187         return NDR_ERR_SUCCESS;
11188 }
11189
11190 _PUBLIC_ void ndr_print_drsuapi_DsReplicaOpType(struct ndr_print *ndr, const char *name, enum drsuapi_DsReplicaOpType r)
11191 {
11192         const char *val = NULL;
11193
11194         switch (r) {
11195                 case DRSUAPI_DS_REPLICA_OP_TYPE_SYNC: val = "DRSUAPI_DS_REPLICA_OP_TYPE_SYNC"; break;
11196                 case DRSUAPI_DS_REPLICA_OP_TYPE_ADD: val = "DRSUAPI_DS_REPLICA_OP_TYPE_ADD"; break;
11197                 case DRSUAPI_DS_REPLICA_OP_TYPE_DELETE: val = "DRSUAPI_DS_REPLICA_OP_TYPE_DELETE"; break;
11198                 case DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY: val = "DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY"; break;
11199                 case DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS: val = "DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS"; break;
11200         }
11201         ndr_print_enum(ndr, name, "ENUM", val, r);
11202 }
11203
11204 static enum ndr_err_code ndr_push_drsuapi_DsReplicaOp(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaOp *r)
11205 {
11206         if (ndr_flags & NDR_SCALARS) {
11207                 NDR_CHECK(ndr_push_align(ndr, 5));
11208                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->operation_start));
11209                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->serial_num));
11210                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
11211                 NDR_CHECK(ndr_push_drsuapi_DsReplicaOpType(ndr, NDR_SCALARS, r->operation_type));
11212                 NDR_CHECK(ndr_push_drsuapi_DrsOptions(ndr, NDR_SCALARS, r->options));
11213                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->nc_dn));
11214                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->remote_dsa_obj_dn));
11215                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->remote_dsa_address));
11216                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->nc_obj_guid));
11217                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->remote_dsa_obj_guid));
11218                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
11219         }
11220         if (ndr_flags & NDR_BUFFERS) {
11221                 if (r->nc_dn) {
11222                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->nc_dn, CH_UTF16)));
11223                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
11224                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->nc_dn, CH_UTF16)));
11225                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->nc_dn, ndr_charset_length(r->nc_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11226                 }
11227                 if (r->remote_dsa_obj_dn) {
11228                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->remote_dsa_obj_dn, CH_UTF16)));
11229                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
11230                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->remote_dsa_obj_dn, CH_UTF16)));
11231                         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));
11232                 }
11233                 if (r->remote_dsa_address) {
11234                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->remote_dsa_address, CH_UTF16)));
11235                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
11236                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->remote_dsa_address, CH_UTF16)));
11237                         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));
11238                 }
11239         }
11240         return NDR_ERR_SUCCESS;
11241 }
11242
11243 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaOp(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaOp *r)
11244 {
11245         uint32_t _ptr_nc_dn;
11246         TALLOC_CTX *_mem_save_nc_dn_0;
11247         uint32_t _ptr_remote_dsa_obj_dn;
11248         TALLOC_CTX *_mem_save_remote_dsa_obj_dn_0;
11249         uint32_t _ptr_remote_dsa_address;
11250         TALLOC_CTX *_mem_save_remote_dsa_address_0;
11251         if (ndr_flags & NDR_SCALARS) {
11252                 NDR_CHECK(ndr_pull_align(ndr, 5));
11253                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->operation_start));
11254                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->serial_num));
11255                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
11256                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOpType(ndr, NDR_SCALARS, &r->operation_type));
11257                 NDR_CHECK(ndr_pull_drsuapi_DrsOptions(ndr, NDR_SCALARS, &r->options));
11258                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_nc_dn));
11259                 if (_ptr_nc_dn) {
11260                         NDR_PULL_ALLOC(ndr, r->nc_dn);
11261                 } else {
11262                         r->nc_dn = NULL;
11263                 }
11264                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_remote_dsa_obj_dn));
11265                 if (_ptr_remote_dsa_obj_dn) {
11266                         NDR_PULL_ALLOC(ndr, r->remote_dsa_obj_dn);
11267                 } else {
11268                         r->remote_dsa_obj_dn = NULL;
11269                 }
11270                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_remote_dsa_address));
11271                 if (_ptr_remote_dsa_address) {
11272                         NDR_PULL_ALLOC(ndr, r->remote_dsa_address);
11273                 } else {
11274                         r->remote_dsa_address = NULL;
11275                 }
11276                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->nc_obj_guid));
11277                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->remote_dsa_obj_guid));
11278                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
11279         }
11280         if (ndr_flags & NDR_BUFFERS) {
11281                 if (r->nc_dn) {
11282                         _mem_save_nc_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
11283                         NDR_PULL_SET_MEM_CTX(ndr, r->nc_dn, 0);
11284                         NDR_CHECK(ndr_pull_array_size(ndr, &r->nc_dn));
11285                         NDR_CHECK(ndr_pull_array_length(ndr, &r->nc_dn));
11286                         if (ndr_get_array_length(ndr, &r->nc_dn) > ndr_get_array_size(ndr, &r->nc_dn)) {
11287                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->nc_dn), ndr_get_array_length(ndr, &r->nc_dn));
11288                         }
11289                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->nc_dn), sizeof(uint16_t)));
11290                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->nc_dn, ndr_get_array_length(ndr, &r->nc_dn), sizeof(uint16_t), CH_UTF16));
11291                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_nc_dn_0, 0);
11292                 }
11293                 if (r->remote_dsa_obj_dn) {
11294                         _mem_save_remote_dsa_obj_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
11295                         NDR_PULL_SET_MEM_CTX(ndr, r->remote_dsa_obj_dn, 0);
11296                         NDR_CHECK(ndr_pull_array_size(ndr, &r->remote_dsa_obj_dn));
11297                         NDR_CHECK(ndr_pull_array_length(ndr, &r->remote_dsa_obj_dn));
11298                         if (ndr_get_array_length(ndr, &r->remote_dsa_obj_dn) > ndr_get_array_size(ndr, &r->remote_dsa_obj_dn)) {
11299                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->remote_dsa_obj_dn), ndr_get_array_length(ndr, &r->remote_dsa_obj_dn));
11300                         }
11301                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->remote_dsa_obj_dn), sizeof(uint16_t)));
11302                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->remote_dsa_obj_dn, ndr_get_array_length(ndr, &r->remote_dsa_obj_dn), sizeof(uint16_t), CH_UTF16));
11303                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_remote_dsa_obj_dn_0, 0);
11304                 }
11305                 if (r->remote_dsa_address) {
11306                         _mem_save_remote_dsa_address_0 = NDR_PULL_GET_MEM_CTX(ndr);
11307                         NDR_PULL_SET_MEM_CTX(ndr, r->remote_dsa_address, 0);
11308                         NDR_CHECK(ndr_pull_array_size(ndr, &r->remote_dsa_address));
11309                         NDR_CHECK(ndr_pull_array_length(ndr, &r->remote_dsa_address));
11310                         if (ndr_get_array_length(ndr, &r->remote_dsa_address) > ndr_get_array_size(ndr, &r->remote_dsa_address)) {
11311                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->remote_dsa_address), ndr_get_array_length(ndr, &r->remote_dsa_address));
11312                         }
11313                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->remote_dsa_address), sizeof(uint16_t)));
11314                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->remote_dsa_address, ndr_get_array_length(ndr, &r->remote_dsa_address), sizeof(uint16_t), CH_UTF16));
11315                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_remote_dsa_address_0, 0);
11316                 }
11317         }
11318         return NDR_ERR_SUCCESS;
11319 }
11320
11321 _PUBLIC_ void ndr_print_drsuapi_DsReplicaOp(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaOp *r)
11322 {
11323         ndr_print_struct(ndr, name, "drsuapi_DsReplicaOp");
11324         ndr->depth++;
11325         ndr_print_NTTIME(ndr, "operation_start", r->operation_start);
11326         ndr_print_uint32(ndr, "serial_num", r->serial_num);
11327         ndr_print_uint32(ndr, "priority", r->priority);
11328         ndr_print_drsuapi_DsReplicaOpType(ndr, "operation_type", r->operation_type);
11329         ndr_print_drsuapi_DrsOptions(ndr, "options", r->options);
11330         ndr_print_ptr(ndr, "nc_dn", r->nc_dn);
11331         ndr->depth++;
11332         if (r->nc_dn) {
11333                 ndr_print_string(ndr, "nc_dn", r->nc_dn);
11334         }
11335         ndr->depth--;
11336         ndr_print_ptr(ndr, "remote_dsa_obj_dn", r->remote_dsa_obj_dn);
11337         ndr->depth++;
11338         if (r->remote_dsa_obj_dn) {
11339                 ndr_print_string(ndr, "remote_dsa_obj_dn", r->remote_dsa_obj_dn);
11340         }
11341         ndr->depth--;
11342         ndr_print_ptr(ndr, "remote_dsa_address", r->remote_dsa_address);
11343         ndr->depth++;
11344         if (r->remote_dsa_address) {
11345                 ndr_print_string(ndr, "remote_dsa_address", r->remote_dsa_address);
11346         }
11347         ndr->depth--;
11348         ndr_print_GUID(ndr, "nc_obj_guid", &r->nc_obj_guid);
11349         ndr_print_GUID(ndr, "remote_dsa_obj_guid", &r->remote_dsa_obj_guid);
11350         ndr->depth--;
11351 }
11352
11353 static enum ndr_err_code ndr_push_drsuapi_DsReplicaOpCtr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaOpCtr *r)
11354 {
11355         uint32_t cntr_array_0;
11356         if (ndr_flags & NDR_SCALARS) {
11357                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
11358                 NDR_CHECK(ndr_push_align(ndr, 5));
11359                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->time));
11360                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
11361                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
11362                         NDR_CHECK(ndr_push_drsuapi_DsReplicaOp(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
11363                 }
11364                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
11365         }
11366         if (ndr_flags & NDR_BUFFERS) {
11367                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
11368                         NDR_CHECK(ndr_push_drsuapi_DsReplicaOp(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
11369                 }
11370         }
11371         return NDR_ERR_SUCCESS;
11372 }
11373
11374 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaOpCtr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaOpCtr *r)
11375 {
11376         uint32_t cntr_array_0;
11377         TALLOC_CTX *_mem_save_array_0;
11378         if (ndr_flags & NDR_SCALARS) {
11379                 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
11380                 NDR_CHECK(ndr_pull_align(ndr, 5));
11381                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->time));
11382                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
11383                 NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
11384                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
11385                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
11386                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
11387                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaOp(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
11388                 }
11389                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
11390                 if (r->array) {
11391                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
11392                 }
11393                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
11394         }
11395         if (ndr_flags & NDR_BUFFERS) {
11396                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
11397                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
11398                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
11399                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaOp(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
11400                 }
11401                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
11402         }
11403         return NDR_ERR_SUCCESS;
11404 }
11405
11406 _PUBLIC_ void ndr_print_drsuapi_DsReplicaOpCtr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaOpCtr *r)
11407 {
11408         uint32_t cntr_array_0;
11409         ndr_print_struct(ndr, name, "drsuapi_DsReplicaOpCtr");
11410         ndr->depth++;
11411         ndr_print_NTTIME(ndr, "time", r->time);
11412         ndr_print_uint32(ndr, "count", r->count);
11413         ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
11414         ndr->depth++;
11415         for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
11416                 char *idx_0=NULL;
11417                 if (asprintf(&idx_0, "[%d]", cntr_array_0) != -1) {
11418                         ndr_print_drsuapi_DsReplicaOp(ndr, "array", &r->array[cntr_array_0]);
11419                         free(idx_0);
11420                 }
11421         }
11422         ndr->depth--;
11423         ndr->depth--;
11424 }
11425
11426 static enum ndr_err_code ndr_push_drsuapi_DsReplicaAttrValMetaData(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaAttrValMetaData *r)
11427 {
11428         if (ndr_flags & NDR_SCALARS) {
11429                 NDR_CHECK(ndr_push_align(ndr, 8));
11430                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->attribute_name));
11431                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->object_dn));
11432                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_DATA_BLOB(0, r->binary, 0)));
11433                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->binary));
11434                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->deleted));
11435                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->created));
11436                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
11437                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->originating_change_time));
11438                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->originating_invocation_id));
11439                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->originating_usn));
11440                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->local_usn));
11441                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
11442         }
11443         if (ndr_flags & NDR_BUFFERS) {
11444                 if (r->attribute_name) {
11445                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->attribute_name, CH_UTF16)));
11446                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
11447                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->attribute_name, CH_UTF16)));
11448                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->attribute_name, ndr_charset_length(r->attribute_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11449                 }
11450                 if (r->object_dn) {
11451                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->object_dn, CH_UTF16)));
11452                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
11453                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->object_dn, CH_UTF16)));
11454                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->object_dn, ndr_charset_length(r->object_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11455                 }
11456                 if (r->binary) {
11457                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->binary));
11458                 }
11459         }
11460         return NDR_ERR_SUCCESS;
11461 }
11462
11463 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaAttrValMetaData(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaAttrValMetaData *r)
11464 {
11465         uint32_t _ptr_attribute_name;
11466         TALLOC_CTX *_mem_save_attribute_name_0;
11467         uint32_t _ptr_object_dn;
11468         TALLOC_CTX *_mem_save_object_dn_0;
11469         uint32_t _ptr_binary;
11470         TALLOC_CTX *_mem_save_binary_0;
11471         if (ndr_flags & NDR_SCALARS) {
11472                 NDR_CHECK(ndr_pull_align(ndr, 8));
11473                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_attribute_name));
11474                 if (_ptr_attribute_name) {
11475                         NDR_PULL_ALLOC(ndr, r->attribute_name);
11476                 } else {
11477                         r->attribute_name = NULL;
11478                 }
11479                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_object_dn));
11480                 if (_ptr_object_dn) {
11481                         NDR_PULL_ALLOC(ndr, r->object_dn);
11482                 } else {
11483                         r->object_dn = NULL;
11484                 }
11485                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size_binary));
11486                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_binary));
11487                 if (_ptr_binary) {
11488                         NDR_PULL_ALLOC(ndr, r->binary);
11489                 } else {
11490                         r->binary = NULL;
11491                 }
11492                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->deleted));
11493                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->created));
11494                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
11495                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->originating_change_time));
11496                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->originating_invocation_id));
11497                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->originating_usn));
11498                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->local_usn));
11499                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
11500         }
11501         if (ndr_flags & NDR_BUFFERS) {
11502                 if (r->attribute_name) {
11503                         _mem_save_attribute_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11504                         NDR_PULL_SET_MEM_CTX(ndr, r->attribute_name, 0);
11505                         NDR_CHECK(ndr_pull_array_size(ndr, &r->attribute_name));
11506                         NDR_CHECK(ndr_pull_array_length(ndr, &r->attribute_name));
11507                         if (ndr_get_array_length(ndr, &r->attribute_name) > ndr_get_array_size(ndr, &r->attribute_name)) {
11508                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->attribute_name), ndr_get_array_length(ndr, &r->attribute_name));
11509                         }
11510                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->attribute_name), sizeof(uint16_t)));
11511                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->attribute_name, ndr_get_array_length(ndr, &r->attribute_name), sizeof(uint16_t), CH_UTF16));
11512                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribute_name_0, 0);
11513                 }
11514                 if (r->object_dn) {
11515                         _mem_save_object_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
11516                         NDR_PULL_SET_MEM_CTX(ndr, r->object_dn, 0);
11517                         NDR_CHECK(ndr_pull_array_size(ndr, &r->object_dn));
11518                         NDR_CHECK(ndr_pull_array_length(ndr, &r->object_dn));
11519                         if (ndr_get_array_length(ndr, &r->object_dn) > ndr_get_array_size(ndr, &r->object_dn)) {
11520                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->object_dn), ndr_get_array_length(ndr, &r->object_dn));
11521                         }
11522                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->object_dn), sizeof(uint16_t)));
11523                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->object_dn, ndr_get_array_length(ndr, &r->object_dn), sizeof(uint16_t), CH_UTF16));
11524                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_object_dn_0, 0);
11525                 }
11526                 if (r->binary) {
11527                         _mem_save_binary_0 = NDR_PULL_GET_MEM_CTX(ndr);
11528                         NDR_PULL_SET_MEM_CTX(ndr, r->binary, 0);
11529                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->binary));
11530                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_binary_0, 0);
11531                 }
11532         }
11533         return NDR_ERR_SUCCESS;
11534 }
11535
11536 _PUBLIC_ void ndr_print_drsuapi_DsReplicaAttrValMetaData(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaAttrValMetaData *r)
11537 {
11538         ndr_print_struct(ndr, name, "drsuapi_DsReplicaAttrValMetaData");
11539         ndr->depth++;
11540         ndr_print_ptr(ndr, "attribute_name", r->attribute_name);
11541         ndr->depth++;
11542         if (r->attribute_name) {
11543                 ndr_print_string(ndr, "attribute_name", r->attribute_name);
11544         }
11545         ndr->depth--;
11546         ndr_print_ptr(ndr, "object_dn", r->object_dn);
11547         ndr->depth++;
11548         if (r->object_dn) {
11549                 ndr_print_string(ndr, "object_dn", r->object_dn);
11550         }
11551         ndr->depth--;
11552         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);
11553         ndr_print_ptr(ndr, "binary", r->binary);
11554         ndr->depth++;
11555         if (r->binary) {
11556                 ndr_print_DATA_BLOB(ndr, "binary", *r->binary);
11557         }
11558         ndr->depth--;
11559         ndr_print_NTTIME(ndr, "deleted", r->deleted);
11560         ndr_print_NTTIME(ndr, "created", r->created);
11561         ndr_print_uint32(ndr, "version", r->version);
11562         ndr_print_NTTIME(ndr, "originating_change_time", r->originating_change_time);
11563         ndr_print_GUID(ndr, "originating_invocation_id", &r->originating_invocation_id);
11564         ndr_print_hyper(ndr, "originating_usn", r->originating_usn);
11565         ndr_print_hyper(ndr, "local_usn", r->local_usn);
11566         ndr->depth--;
11567 }
11568
11569 static enum ndr_err_code ndr_push_drsuapi_DsReplicaAttrValMetaDataCtr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaAttrValMetaDataCtr *r)
11570 {
11571         uint32_t cntr_array_0;
11572         if (ndr_flags & NDR_SCALARS) {
11573                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
11574                 NDR_CHECK(ndr_push_align(ndr, 8));
11575                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
11576                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumeration_context));
11577                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
11578                         NDR_CHECK(ndr_push_drsuapi_DsReplicaAttrValMetaData(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
11579                 }
11580                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
11581         }
11582         if (ndr_flags & NDR_BUFFERS) {
11583                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
11584                         NDR_CHECK(ndr_push_drsuapi_DsReplicaAttrValMetaData(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
11585                 }
11586         }
11587         return NDR_ERR_SUCCESS;
11588 }
11589
11590 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaAttrValMetaDataCtr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaAttrValMetaDataCtr *r)
11591 {
11592         uint32_t cntr_array_0;
11593         TALLOC_CTX *_mem_save_array_0;
11594         if (ndr_flags & NDR_SCALARS) {
11595                 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
11596                 NDR_CHECK(ndr_pull_align(ndr, 8));
11597                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
11598                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumeration_context));
11599                 NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
11600                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
11601                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
11602                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
11603                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaAttrValMetaData(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
11604                 }
11605                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
11606                 if (r->array) {
11607                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
11608                 }
11609                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
11610         }
11611         if (ndr_flags & NDR_BUFFERS) {
11612                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
11613                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
11614                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
11615                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaAttrValMetaData(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
11616                 }
11617                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
11618         }
11619         return NDR_ERR_SUCCESS;
11620 }
11621
11622 _PUBLIC_ void ndr_print_drsuapi_DsReplicaAttrValMetaDataCtr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaAttrValMetaDataCtr *r)
11623 {
11624         uint32_t cntr_array_0;
11625         ndr_print_struct(ndr, name, "drsuapi_DsReplicaAttrValMetaDataCtr");
11626         ndr->depth++;
11627         ndr_print_uint32(ndr, "count", r->count);
11628         ndr_print_uint32(ndr, "enumeration_context", r->enumeration_context);
11629         ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
11630         ndr->depth++;
11631         for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
11632                 char *idx_0=NULL;
11633                 if (asprintf(&idx_0, "[%d]", cntr_array_0) != -1) {
11634                         ndr_print_drsuapi_DsReplicaAttrValMetaData(ndr, "array", &r->array[cntr_array_0]);
11635                         free(idx_0);
11636                 }
11637         }
11638         ndr->depth--;
11639         ndr->depth--;
11640 }
11641
11642 static enum ndr_err_code ndr_push_drsuapi_DsReplicaCursor2Ctr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaCursor2Ctr *r)
11643 {
11644         uint32_t cntr_array_0;
11645         if (ndr_flags & NDR_SCALARS) {
11646                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
11647                 NDR_CHECK(ndr_push_align(ndr, 8));
11648                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
11649                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumeration_context));
11650                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
11651                         NDR_CHECK(ndr_push_drsuapi_DsReplicaCursor2(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
11652                 }
11653                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
11654         }
11655         if (ndr_flags & NDR_BUFFERS) {
11656         }
11657         return NDR_ERR_SUCCESS;
11658 }
11659
11660 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaCursor2Ctr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaCursor2Ctr *r)
11661 {
11662         uint32_t cntr_array_0;
11663         TALLOC_CTX *_mem_save_array_0;
11664         if (ndr_flags & NDR_SCALARS) {
11665                 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
11666                 NDR_CHECK(ndr_pull_align(ndr, 8));
11667                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
11668                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumeration_context));
11669                 NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
11670                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
11671                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
11672                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
11673                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursor2(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
11674                 }
11675                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
11676                 if (r->array) {
11677                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
11678                 }
11679                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
11680         }
11681         if (ndr_flags & NDR_BUFFERS) {
11682         }
11683         return NDR_ERR_SUCCESS;
11684 }
11685
11686 _PUBLIC_ void ndr_print_drsuapi_DsReplicaCursor2Ctr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaCursor2Ctr *r)
11687 {
11688         uint32_t cntr_array_0;
11689         ndr_print_struct(ndr, name, "drsuapi_DsReplicaCursor2Ctr");
11690         ndr->depth++;
11691         ndr_print_uint32(ndr, "count", r->count);
11692         ndr_print_uint32(ndr, "enumeration_context", r->enumeration_context);
11693         ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
11694         ndr->depth++;
11695         for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
11696                 char *idx_0=NULL;
11697                 if (asprintf(&idx_0, "[%d]", cntr_array_0) != -1) {
11698                         ndr_print_drsuapi_DsReplicaCursor2(ndr, "array", &r->array[cntr_array_0]);
11699                         free(idx_0);
11700                 }
11701         }
11702         ndr->depth--;
11703         ndr->depth--;
11704 }
11705
11706 static enum ndr_err_code ndr_push_drsuapi_DsReplicaCursor3(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaCursor3 *r)
11707 {
11708         if (ndr_flags & NDR_SCALARS) {
11709                 NDR_CHECK(ndr_push_align(ndr, 8));
11710                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
11711                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->highest_usn));
11712                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_sync_success));
11713                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->source_dsa_obj_dn));
11714                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
11715         }
11716         if (ndr_flags & NDR_BUFFERS) {
11717                 if (r->source_dsa_obj_dn) {
11718                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->source_dsa_obj_dn, CH_UTF16)));
11719                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
11720                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->source_dsa_obj_dn, CH_UTF16)));
11721                         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));
11722                 }
11723         }
11724         return NDR_ERR_SUCCESS;
11725 }
11726
11727 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaCursor3(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaCursor3 *r)
11728 {
11729         uint32_t _ptr_source_dsa_obj_dn;
11730         TALLOC_CTX *_mem_save_source_dsa_obj_dn_0;
11731         if (ndr_flags & NDR_SCALARS) {
11732                 NDR_CHECK(ndr_pull_align(ndr, 8));
11733                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
11734                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->highest_usn));
11735                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_sync_success));
11736                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_source_dsa_obj_dn));
11737                 if (_ptr_source_dsa_obj_dn) {
11738                         NDR_PULL_ALLOC(ndr, r->source_dsa_obj_dn);
11739                 } else {
11740                         r->source_dsa_obj_dn = NULL;
11741                 }
11742                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
11743         }
11744         if (ndr_flags & NDR_BUFFERS) {
11745                 if (r->source_dsa_obj_dn) {
11746                         _mem_save_source_dsa_obj_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
11747                         NDR_PULL_SET_MEM_CTX(ndr, r->source_dsa_obj_dn, 0);
11748                         NDR_CHECK(ndr_pull_array_size(ndr, &r->source_dsa_obj_dn));
11749                         NDR_CHECK(ndr_pull_array_length(ndr, &r->source_dsa_obj_dn));
11750                         if (ndr_get_array_length(ndr, &r->source_dsa_obj_dn) > ndr_get_array_size(ndr, &r->source_dsa_obj_dn)) {
11751                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->source_dsa_obj_dn), ndr_get_array_length(ndr, &r->source_dsa_obj_dn));
11752                         }
11753                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->source_dsa_obj_dn), sizeof(uint16_t)));
11754                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->source_dsa_obj_dn, ndr_get_array_length(ndr, &r->source_dsa_obj_dn), sizeof(uint16_t), CH_UTF16));
11755                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_source_dsa_obj_dn_0, 0);
11756                 }
11757         }
11758         return NDR_ERR_SUCCESS;
11759 }
11760
11761 _PUBLIC_ void ndr_print_drsuapi_DsReplicaCursor3(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaCursor3 *r)
11762 {
11763         ndr_print_struct(ndr, name, "drsuapi_DsReplicaCursor3");
11764         ndr->depth++;
11765         ndr_print_GUID(ndr, "source_dsa_invocation_id", &r->source_dsa_invocation_id);
11766         ndr_print_hyper(ndr, "highest_usn", r->highest_usn);
11767         ndr_print_NTTIME(ndr, "last_sync_success", r->last_sync_success);
11768         ndr_print_ptr(ndr, "source_dsa_obj_dn", r->source_dsa_obj_dn);
11769         ndr->depth++;
11770         if (r->source_dsa_obj_dn) {
11771                 ndr_print_string(ndr, "source_dsa_obj_dn", r->source_dsa_obj_dn);
11772         }
11773         ndr->depth--;
11774         ndr->depth--;
11775 }
11776
11777 static enum ndr_err_code ndr_push_drsuapi_DsReplicaCursor3Ctr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaCursor3Ctr *r)
11778 {
11779         uint32_t cntr_array_0;
11780         if (ndr_flags & NDR_SCALARS) {
11781                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
11782                 NDR_CHECK(ndr_push_align(ndr, 8));
11783                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
11784                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumeration_context));
11785                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
11786                         NDR_CHECK(ndr_push_drsuapi_DsReplicaCursor3(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
11787                 }
11788                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
11789         }
11790         if (ndr_flags & NDR_BUFFERS) {
11791                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
11792                         NDR_CHECK(ndr_push_drsuapi_DsReplicaCursor3(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
11793                 }
11794         }
11795         return NDR_ERR_SUCCESS;
11796 }
11797
11798 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaCursor3Ctr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaCursor3Ctr *r)
11799 {
11800         uint32_t cntr_array_0;
11801         TALLOC_CTX *_mem_save_array_0;
11802         if (ndr_flags & NDR_SCALARS) {
11803                 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
11804                 NDR_CHECK(ndr_pull_align(ndr, 8));
11805                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
11806                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumeration_context));
11807                 NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
11808                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
11809                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
11810                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
11811                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursor3(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
11812                 }
11813                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
11814                 if (r->array) {
11815                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
11816                 }
11817                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
11818         }
11819         if (ndr_flags & NDR_BUFFERS) {
11820                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
11821                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
11822                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
11823                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursor3(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
11824                 }
11825                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
11826         }
11827         return NDR_ERR_SUCCESS;
11828 }
11829
11830 _PUBLIC_ void ndr_print_drsuapi_DsReplicaCursor3Ctr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaCursor3Ctr *r)
11831 {
11832         uint32_t cntr_array_0;
11833         ndr_print_struct(ndr, name, "drsuapi_DsReplicaCursor3Ctr");
11834         ndr->depth++;
11835         ndr_print_uint32(ndr, "count", r->count);
11836         ndr_print_uint32(ndr, "enumeration_context", r->enumeration_context);
11837         ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
11838         ndr->depth++;
11839         for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
11840                 char *idx_0=NULL;
11841                 if (asprintf(&idx_0, "[%d]", cntr_array_0) != -1) {
11842                         ndr_print_drsuapi_DsReplicaCursor3(ndr, "array", &r->array[cntr_array_0]);
11843                         free(idx_0);
11844                 }
11845         }
11846         ndr->depth--;
11847         ndr->depth--;
11848 }
11849
11850 static enum ndr_err_code ndr_push_drsuapi_DsReplicaObjMetaData2(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaObjMetaData2 *r)
11851 {
11852         if (ndr_flags & NDR_SCALARS) {
11853                 NDR_CHECK(ndr_push_align(ndr, 8));
11854                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->attribute_name));
11855                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
11856                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->originating_change_time));
11857                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->originating_invocation_id));
11858                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->originating_usn));
11859                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->local_usn));
11860                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->originating_dsa_dn));
11861                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
11862         }
11863         if (ndr_flags & NDR_BUFFERS) {
11864                 if (r->attribute_name) {
11865                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->attribute_name, CH_UTF16)));
11866                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
11867                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->attribute_name, CH_UTF16)));
11868                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->attribute_name, ndr_charset_length(r->attribute_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11869                 }
11870                 if (r->originating_dsa_dn) {
11871                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->originating_dsa_dn, CH_UTF16)));
11872                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
11873                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->originating_dsa_dn, CH_UTF16)));
11874                         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));
11875                 }
11876         }
11877         return NDR_ERR_SUCCESS;
11878 }
11879
11880 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaObjMetaData2(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaObjMetaData2 *r)
11881 {
11882         uint32_t _ptr_attribute_name;
11883         TALLOC_CTX *_mem_save_attribute_name_0;
11884         uint32_t _ptr_originating_dsa_dn;
11885         TALLOC_CTX *_mem_save_originating_dsa_dn_0;
11886         if (ndr_flags & NDR_SCALARS) {
11887                 NDR_CHECK(ndr_pull_align(ndr, 8));
11888                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_attribute_name));
11889                 if (_ptr_attribute_name) {
11890                         NDR_PULL_ALLOC(ndr, r->attribute_name);
11891                 } else {
11892                         r->attribute_name = NULL;
11893                 }
11894                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
11895                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->originating_change_time));
11896                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->originating_invocation_id));
11897                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->originating_usn));
11898                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->local_usn));
11899                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_originating_dsa_dn));
11900                 if (_ptr_originating_dsa_dn) {
11901                         NDR_PULL_ALLOC(ndr, r->originating_dsa_dn);
11902                 } else {
11903                         r->originating_dsa_dn = NULL;
11904                 }
11905                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
11906         }
11907         if (ndr_flags & NDR_BUFFERS) {
11908                 if (r->attribute_name) {
11909                         _mem_save_attribute_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11910                         NDR_PULL_SET_MEM_CTX(ndr, r->attribute_name, 0);
11911                         NDR_CHECK(ndr_pull_array_size(ndr, &r->attribute_name));
11912                         NDR_CHECK(ndr_pull_array_length(ndr, &r->attribute_name));
11913                         if (ndr_get_array_length(ndr, &r->attribute_name) > ndr_get_array_size(ndr, &r->attribute_name)) {
11914                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->attribute_name), ndr_get_array_length(ndr, &r->attribute_name));
11915                         }
11916                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->attribute_name), sizeof(uint16_t)));
11917                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->attribute_name, ndr_get_array_length(ndr, &r->attribute_name), sizeof(uint16_t), CH_UTF16));
11918                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribute_name_0, 0);
11919                 }
11920                 if (r->originating_dsa_dn) {
11921                         _mem_save_originating_dsa_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
11922                         NDR_PULL_SET_MEM_CTX(ndr, r->originating_dsa_dn, 0);
11923                         NDR_CHECK(ndr_pull_array_size(ndr, &r->originating_dsa_dn));
11924                         NDR_CHECK(ndr_pull_array_length(ndr, &r->originating_dsa_dn));
11925                         if (ndr_get_array_length(ndr, &r->originating_dsa_dn) > ndr_get_array_size(ndr, &r->originating_dsa_dn)) {
11926                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->originating_dsa_dn), ndr_get_array_length(ndr, &r->originating_dsa_dn));
11927                         }
11928                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->originating_dsa_dn), sizeof(uint16_t)));
11929                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->originating_dsa_dn, ndr_get_array_length(ndr, &r->originating_dsa_dn), sizeof(uint16_t), CH_UTF16));
11930                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_originating_dsa_dn_0, 0);
11931                 }
11932         }
11933         return NDR_ERR_SUCCESS;
11934 }
11935
11936 _PUBLIC_ void ndr_print_drsuapi_DsReplicaObjMetaData2(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaObjMetaData2 *r)
11937 {
11938         ndr_print_struct(ndr, name, "drsuapi_DsReplicaObjMetaData2");
11939         ndr->depth++;
11940         ndr_print_ptr(ndr, "attribute_name", r->attribute_name);
11941         ndr->depth++;
11942         if (r->attribute_name) {
11943                 ndr_print_string(ndr, "attribute_name", r->attribute_name);
11944         }
11945         ndr->depth--;
11946         ndr_print_uint32(ndr, "version", r->version);
11947         ndr_print_NTTIME(ndr, "originating_change_time", r->originating_change_time);
11948         ndr_print_GUID(ndr, "originating_invocation_id", &r->originating_invocation_id);
11949         ndr_print_hyper(ndr, "originating_usn", r->originating_usn);
11950         ndr_print_hyper(ndr, "local_usn", r->local_usn);
11951         ndr_print_ptr(ndr, "originating_dsa_dn", r->originating_dsa_dn);
11952         ndr->depth++;
11953         if (r->originating_dsa_dn) {
11954                 ndr_print_string(ndr, "originating_dsa_dn", r->originating_dsa_dn);
11955         }
11956         ndr->depth--;
11957         ndr->depth--;
11958 }
11959
11960 static enum ndr_err_code ndr_push_drsuapi_DsReplicaObjMetaData2Ctr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaObjMetaData2Ctr *r)
11961 {
11962         uint32_t cntr_array_0;
11963         if (ndr_flags & NDR_SCALARS) {
11964                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
11965                 NDR_CHECK(ndr_push_align(ndr, 8));
11966                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
11967                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumeration_context));
11968                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
11969                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjMetaData2(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
11970                 }
11971                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
11972         }
11973         if (ndr_flags & NDR_BUFFERS) {
11974                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
11975                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjMetaData2(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
11976                 }
11977         }
11978         return NDR_ERR_SUCCESS;
11979 }
11980
11981 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaObjMetaData2Ctr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaObjMetaData2Ctr *r)
11982 {
11983         uint32_t cntr_array_0;
11984         TALLOC_CTX *_mem_save_array_0;
11985         if (ndr_flags & NDR_SCALARS) {
11986                 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
11987                 NDR_CHECK(ndr_pull_align(ndr, 8));
11988                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
11989                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumeration_context));
11990                 NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
11991                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
11992                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
11993                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
11994                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjMetaData2(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
11995                 }
11996                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
11997                 if (r->array) {
11998                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
11999                 }
12000                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
12001         }
12002         if (ndr_flags & NDR_BUFFERS) {
12003                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
12004                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
12005                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
12006                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjMetaData2(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
12007                 }
12008                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
12009         }
12010         return NDR_ERR_SUCCESS;
12011 }
12012
12013 _PUBLIC_ void ndr_print_drsuapi_DsReplicaObjMetaData2Ctr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaObjMetaData2Ctr *r)
12014 {
12015         uint32_t cntr_array_0;
12016         ndr_print_struct(ndr, name, "drsuapi_DsReplicaObjMetaData2Ctr");
12017         ndr->depth++;
12018         ndr_print_uint32(ndr, "count", r->count);
12019         ndr_print_uint32(ndr, "enumeration_context", r->enumeration_context);
12020         ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
12021         ndr->depth++;
12022         for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
12023                 char *idx_0=NULL;
12024                 if (asprintf(&idx_0, "[%d]", cntr_array_0) != -1) {
12025                         ndr_print_drsuapi_DsReplicaObjMetaData2(ndr, "array", &r->array[cntr_array_0]);
12026                         free(idx_0);
12027                 }
12028         }
12029         ndr->depth--;
12030         ndr->depth--;
12031 }
12032
12033 static enum ndr_err_code ndr_push_drsuapi_DsReplicaAttrValMetaData2(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaAttrValMetaData2 *r)
12034 {
12035         if (ndr_flags & NDR_SCALARS) {
12036                 NDR_CHECK(ndr_push_align(ndr, 8));
12037                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->attribute_name));
12038                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->object_dn));
12039                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_DATA_BLOB(0, r->binary, 0)));
12040                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->binary));
12041                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->deleted));
12042                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->created));
12043                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
12044                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->originating_change_time));
12045                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->originating_invocation_id));
12046                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->originating_usn));
12047                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->local_usn));
12048                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->originating_dsa_dn));
12049                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
12050         }
12051         if (ndr_flags & NDR_BUFFERS) {
12052                 if (r->attribute_name) {
12053                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->attribute_name, CH_UTF16)));
12054                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
12055                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->attribute_name, CH_UTF16)));
12056                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->attribute_name, ndr_charset_length(r->attribute_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12057                 }
12058                 if (r->object_dn) {
12059                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->object_dn, CH_UTF16)));
12060                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
12061                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->object_dn, CH_UTF16)));
12062                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->object_dn, ndr_charset_length(r->object_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12063                 }
12064                 if (r->binary) {
12065                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->binary));
12066                 }
12067                 if (r->originating_dsa_dn) {
12068                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->originating_dsa_dn, CH_UTF16)));
12069                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
12070                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->originating_dsa_dn, CH_UTF16)));
12071                         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));
12072                 }
12073         }
12074         return NDR_ERR_SUCCESS;
12075 }
12076
12077 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaAttrValMetaData2(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaAttrValMetaData2 *r)
12078 {
12079         uint32_t _ptr_attribute_name;
12080         TALLOC_CTX *_mem_save_attribute_name_0;
12081         uint32_t _ptr_object_dn;
12082         TALLOC_CTX *_mem_save_object_dn_0;
12083         uint32_t _ptr_binary;
12084         TALLOC_CTX *_mem_save_binary_0;
12085         uint32_t _ptr_originating_dsa_dn;
12086         TALLOC_CTX *_mem_save_originating_dsa_dn_0;
12087         if (ndr_flags & NDR_SCALARS) {
12088                 NDR_CHECK(ndr_pull_align(ndr, 8));
12089                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_attribute_name));
12090                 if (_ptr_attribute_name) {
12091                         NDR_PULL_ALLOC(ndr, r->attribute_name);
12092                 } else {
12093                         r->attribute_name = NULL;
12094                 }
12095                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_object_dn));
12096                 if (_ptr_object_dn) {
12097                         NDR_PULL_ALLOC(ndr, r->object_dn);
12098                 } else {
12099                         r->object_dn = NULL;
12100                 }
12101                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size_binary));
12102                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_binary));
12103                 if (_ptr_binary) {
12104                         NDR_PULL_ALLOC(ndr, r->binary);
12105                 } else {
12106                         r->binary = NULL;
12107                 }
12108                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->deleted));
12109                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->created));
12110                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
12111                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->originating_change_time));
12112                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->originating_invocation_id));
12113                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->originating_usn));
12114                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->local_usn));
12115                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_originating_dsa_dn));
12116                 if (_ptr_originating_dsa_dn) {
12117                         NDR_PULL_ALLOC(ndr, r->originating_dsa_dn);
12118                 } else {
12119                         r->originating_dsa_dn = NULL;
12120                 }
12121                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
12122         }
12123         if (ndr_flags & NDR_BUFFERS) {
12124                 if (r->attribute_name) {
12125                         _mem_save_attribute_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12126                         NDR_PULL_SET_MEM_CTX(ndr, r->attribute_name, 0);
12127                         NDR_CHECK(ndr_pull_array_size(ndr, &r->attribute_name));
12128                         NDR_CHECK(ndr_pull_array_length(ndr, &r->attribute_name));
12129                         if (ndr_get_array_length(ndr, &r->attribute_name) > ndr_get_array_size(ndr, &r->attribute_name)) {
12130                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->attribute_name), ndr_get_array_length(ndr, &r->attribute_name));
12131                         }
12132                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->attribute_name), sizeof(uint16_t)));
12133                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->attribute_name, ndr_get_array_length(ndr, &r->attribute_name), sizeof(uint16_t), CH_UTF16));
12134                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribute_name_0, 0);
12135                 }
12136                 if (r->object_dn) {
12137                         _mem_save_object_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
12138                         NDR_PULL_SET_MEM_CTX(ndr, r->object_dn, 0);
12139                         NDR_CHECK(ndr_pull_array_size(ndr, &r->object_dn));
12140                         NDR_CHECK(ndr_pull_array_length(ndr, &r->object_dn));
12141                         if (ndr_get_array_length(ndr, &r->object_dn) > ndr_get_array_size(ndr, &r->object_dn)) {
12142                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->object_dn), ndr_get_array_length(ndr, &r->object_dn));
12143                         }
12144                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->object_dn), sizeof(uint16_t)));
12145                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->object_dn, ndr_get_array_length(ndr, &r->object_dn), sizeof(uint16_t), CH_UTF16));
12146                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_object_dn_0, 0);
12147                 }
12148                 if (r->binary) {
12149                         _mem_save_binary_0 = NDR_PULL_GET_MEM_CTX(ndr);
12150                         NDR_PULL_SET_MEM_CTX(ndr, r->binary, 0);
12151                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->binary));
12152                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_binary_0, 0);
12153                 }
12154                 if (r->originating_dsa_dn) {
12155                         _mem_save_originating_dsa_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
12156                         NDR_PULL_SET_MEM_CTX(ndr, r->originating_dsa_dn, 0);
12157                         NDR_CHECK(ndr_pull_array_size(ndr, &r->originating_dsa_dn));
12158                         NDR_CHECK(ndr_pull_array_length(ndr, &r->originating_dsa_dn));
12159                         if (ndr_get_array_length(ndr, &r->originating_dsa_dn) > ndr_get_array_size(ndr, &r->originating_dsa_dn)) {
12160                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->originating_dsa_dn), ndr_get_array_length(ndr, &r->originating_dsa_dn));
12161                         }
12162                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->originating_dsa_dn), sizeof(uint16_t)));
12163                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->originating_dsa_dn, ndr_get_array_length(ndr, &r->originating_dsa_dn), sizeof(uint16_t), CH_UTF16));
12164                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_originating_dsa_dn_0, 0);
12165                 }
12166         }
12167         return NDR_ERR_SUCCESS;
12168 }
12169
12170 _PUBLIC_ void ndr_print_drsuapi_DsReplicaAttrValMetaData2(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaAttrValMetaData2 *r)
12171 {
12172         ndr_print_struct(ndr, name, "drsuapi_DsReplicaAttrValMetaData2");
12173         ndr->depth++;
12174         ndr_print_ptr(ndr, "attribute_name", r->attribute_name);
12175         ndr->depth++;
12176         if (r->attribute_name) {
12177                 ndr_print_string(ndr, "attribute_name", r->attribute_name);
12178         }
12179         ndr->depth--;
12180         ndr_print_ptr(ndr, "object_dn", r->object_dn);
12181         ndr->depth++;
12182         if (r->object_dn) {
12183                 ndr_print_string(ndr, "object_dn", r->object_dn);
12184         }
12185         ndr->depth--;
12186         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);
12187         ndr_print_ptr(ndr, "binary", r->binary);
12188         ndr->depth++;
12189         if (r->binary) {
12190                 ndr_print_DATA_BLOB(ndr, "binary", *r->binary);
12191         }
12192         ndr->depth--;
12193         ndr_print_NTTIME(ndr, "deleted", r->deleted);
12194         ndr_print_NTTIME(ndr, "created", r->created);
12195         ndr_print_uint32(ndr, "version", r->version);
12196         ndr_print_NTTIME(ndr, "originating_change_time", r->originating_change_time);
12197         ndr_print_GUID(ndr, "originating_invocation_id", &r->originating_invocation_id);
12198         ndr_print_hyper(ndr, "originating_usn", r->originating_usn);
12199         ndr_print_hyper(ndr, "local_usn", r->local_usn);
12200         ndr_print_ptr(ndr, "originating_dsa_dn", r->originating_dsa_dn);
12201         ndr->depth++;
12202         if (r->originating_dsa_dn) {
12203                 ndr_print_string(ndr, "originating_dsa_dn", r->originating_dsa_dn);
12204         }
12205         ndr->depth--;
12206         ndr->depth--;
12207 }
12208
12209 static enum ndr_err_code ndr_push_drsuapi_DsReplicaAttrValMetaData2Ctr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaAttrValMetaData2Ctr *r)
12210 {
12211         uint32_t cntr_array_0;
12212         if (ndr_flags & NDR_SCALARS) {
12213                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
12214                 NDR_CHECK(ndr_push_align(ndr, 8));
12215                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
12216                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumeration_context));
12217                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
12218                         NDR_CHECK(ndr_push_drsuapi_DsReplicaAttrValMetaData2(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
12219                 }
12220                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
12221         }
12222         if (ndr_flags & NDR_BUFFERS) {
12223                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
12224                         NDR_CHECK(ndr_push_drsuapi_DsReplicaAttrValMetaData2(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
12225                 }
12226         }
12227         return NDR_ERR_SUCCESS;
12228 }
12229
12230 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaAttrValMetaData2Ctr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaAttrValMetaData2Ctr *r)
12231 {
12232         uint32_t cntr_array_0;
12233         TALLOC_CTX *_mem_save_array_0;
12234         if (ndr_flags & NDR_SCALARS) {
12235                 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
12236                 NDR_CHECK(ndr_pull_align(ndr, 8));
12237                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
12238                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumeration_context));
12239                 NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
12240                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
12241                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
12242                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
12243                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaAttrValMetaData2(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
12244                 }
12245                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
12246                 if (r->array) {
12247                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
12248                 }
12249                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
12250         }
12251         if (ndr_flags & NDR_BUFFERS) {
12252                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
12253                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
12254                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
12255                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaAttrValMetaData2(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
12256                 }
12257                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
12258         }
12259         return NDR_ERR_SUCCESS;
12260 }
12261
12262 _PUBLIC_ void ndr_print_drsuapi_DsReplicaAttrValMetaData2Ctr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaAttrValMetaData2Ctr *r)
12263 {
12264         uint32_t cntr_array_0;
12265         ndr_print_struct(ndr, name, "drsuapi_DsReplicaAttrValMetaData2Ctr");
12266         ndr->depth++;
12267         ndr_print_uint32(ndr, "count", r->count);
12268         ndr_print_uint32(ndr, "enumeration_context", r->enumeration_context);
12269         ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
12270         ndr->depth++;
12271         for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
12272                 char *idx_0=NULL;
12273                 if (asprintf(&idx_0, "[%d]", cntr_array_0) != -1) {
12274                         ndr_print_drsuapi_DsReplicaAttrValMetaData2(ndr, "array", &r->array[cntr_array_0]);
12275                         free(idx_0);
12276                 }
12277         }
12278         ndr->depth--;
12279         ndr->depth--;
12280 }
12281
12282 static enum ndr_err_code ndr_push_drsuapi_DsReplicaConnection04(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaConnection04 *r)
12283 {
12284         if (ndr_flags & NDR_SCALARS) {
12285                 NDR_CHECK(ndr_push_align(ndr, 8));
12286                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->u1));
12287                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u2));
12288                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u3));
12289                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->bind_guid));
12290                 NDR_CHECK(ndr_push_NTTIME_1sec(ndr, NDR_SCALARS, r->bind_time));
12291                 {
12292                         uint32_t _flags_save_ipv4address = ndr->flags;
12293                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
12294                         NDR_CHECK(ndr_push_ipv4address(ndr, NDR_SCALARS, r->client_ip_address));
12295                         ndr->flags = _flags_save_ipv4address;
12296                 }
12297                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u5));
12298                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
12299         }
12300         if (ndr_flags & NDR_BUFFERS) {
12301         }
12302         return NDR_ERR_SUCCESS;
12303 }
12304
12305 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaConnection04(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaConnection04 *r)
12306 {
12307         if (ndr_flags & NDR_SCALARS) {
12308                 NDR_CHECK(ndr_pull_align(ndr, 8));
12309                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->u1));
12310                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u2));
12311                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u3));
12312                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->bind_guid));
12313                 NDR_CHECK(ndr_pull_NTTIME_1sec(ndr, NDR_SCALARS, &r->bind_time));
12314                 {
12315                         uint32_t _flags_save_ipv4address = ndr->flags;
12316                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
12317                         NDR_CHECK(ndr_pull_ipv4address(ndr, NDR_SCALARS, &r->client_ip_address));
12318                         ndr->flags = _flags_save_ipv4address;
12319                 }
12320                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u5));
12321                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
12322         }
12323         if (ndr_flags & NDR_BUFFERS) {
12324         }
12325         return NDR_ERR_SUCCESS;
12326 }
12327
12328 _PUBLIC_ void ndr_print_drsuapi_DsReplicaConnection04(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaConnection04 *r)
12329 {
12330         ndr_print_struct(ndr, name, "drsuapi_DsReplicaConnection04");
12331         ndr->depth++;
12332         ndr_print_hyper(ndr, "u1", r->u1);
12333         ndr_print_uint32(ndr, "u2", r->u2);
12334         ndr_print_uint32(ndr, "u3", r->u3);
12335         ndr_print_GUID(ndr, "bind_guid", &r->bind_guid);
12336         ndr_print_NTTIME_1sec(ndr, "bind_time", r->bind_time);
12337         ndr_print_ipv4address(ndr, "client_ip_address", r->client_ip_address);
12338         ndr_print_uint32(ndr, "u5", r->u5);
12339         ndr->depth--;
12340 }
12341
12342 static enum ndr_err_code ndr_push_drsuapi_DsReplicaConnection04Ctr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaConnection04Ctr *r)
12343 {
12344         uint32_t cntr_array_0;
12345         if (ndr_flags & NDR_SCALARS) {
12346                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
12347                 NDR_CHECK(ndr_push_align(ndr, 8));
12348                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
12349                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
12350                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
12351                         NDR_CHECK(ndr_push_drsuapi_DsReplicaConnection04(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
12352                 }
12353                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
12354         }
12355         if (ndr_flags & NDR_BUFFERS) {
12356         }
12357         return NDR_ERR_SUCCESS;
12358 }
12359
12360 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaConnection04Ctr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaConnection04Ctr *r)
12361 {
12362         uint32_t cntr_array_0;
12363         TALLOC_CTX *_mem_save_array_0;
12364         if (ndr_flags & NDR_SCALARS) {
12365                 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
12366                 NDR_CHECK(ndr_pull_align(ndr, 8));
12367                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
12368                 if (r->count > 10000) {
12369                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
12370                 }
12371                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
12372                 NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
12373                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
12374                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
12375                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
12376                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaConnection04(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
12377                 }
12378                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
12379                 if (r->array) {
12380                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
12381                 }
12382                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
12383         }
12384         if (ndr_flags & NDR_BUFFERS) {
12385         }
12386         return NDR_ERR_SUCCESS;
12387 }
12388
12389 _PUBLIC_ void ndr_print_drsuapi_DsReplicaConnection04Ctr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaConnection04Ctr *r)
12390 {
12391         uint32_t cntr_array_0;
12392         ndr_print_struct(ndr, name, "drsuapi_DsReplicaConnection04Ctr");
12393         ndr->depth++;
12394         ndr_print_uint32(ndr, "count", r->count);
12395         ndr_print_uint32(ndr, "reserved", r->reserved);
12396         ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
12397         ndr->depth++;
12398         for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
12399                 char *idx_0=NULL;
12400                 if (asprintf(&idx_0, "[%d]", cntr_array_0) != -1) {
12401                         ndr_print_drsuapi_DsReplicaConnection04(ndr, "array", &r->array[cntr_array_0]);
12402                         free(idx_0);
12403                 }
12404         }
12405         ndr->depth--;
12406         ndr->depth--;
12407 }
12408
12409 static enum ndr_err_code ndr_push_drsuapi_DsReplica06(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplica06 *r)
12410 {
12411         if (ndr_flags & NDR_SCALARS) {
12412                 NDR_CHECK(ndr_push_align(ndr, 8));
12413                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->str1));
12414                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u1));
12415                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u2));
12416                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u3));
12417                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u4));
12418                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u5));
12419                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->u6));
12420                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u7));
12421                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
12422         }
12423         if (ndr_flags & NDR_BUFFERS) {
12424                 if (r->str1) {
12425                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->str1, CH_UTF16)));
12426                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
12427                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->str1, CH_UTF16)));
12428                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->str1, ndr_charset_length(r->str1, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12429                 }
12430         }
12431         return NDR_ERR_SUCCESS;
12432 }
12433
12434 static enum ndr_err_code ndr_pull_drsuapi_DsReplica06(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplica06 *r)
12435 {
12436         uint32_t _ptr_str1;
12437         TALLOC_CTX *_mem_save_str1_0;
12438         if (ndr_flags & NDR_SCALARS) {
12439                 NDR_CHECK(ndr_pull_align(ndr, 8));
12440                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_str1));
12441                 if (_ptr_str1) {
12442                         NDR_PULL_ALLOC(ndr, r->str1);
12443                 } else {
12444                         r->str1 = NULL;
12445                 }
12446                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u1));
12447                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u2));
12448                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u3));
12449                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u4));
12450                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u5));
12451                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->u6));
12452                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u7));
12453                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
12454         }
12455         if (ndr_flags & NDR_BUFFERS) {
12456                 if (r->str1) {
12457                         _mem_save_str1_0 = NDR_PULL_GET_MEM_CTX(ndr);
12458                         NDR_PULL_SET_MEM_CTX(ndr, r->str1, 0);
12459                         NDR_CHECK(ndr_pull_array_size(ndr, &r->str1));
12460                         NDR_CHECK(ndr_pull_array_length(ndr, &r->str1));
12461                         if (ndr_get_array_length(ndr, &r->str1) > ndr_get_array_size(ndr, &r->str1)) {
12462                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->str1), ndr_get_array_length(ndr, &r->str1));
12463                         }
12464                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->str1), sizeof(uint16_t)));
12465                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->str1, ndr_get_array_length(ndr, &r->str1), sizeof(uint16_t), CH_UTF16));
12466                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_str1_0, 0);
12467                 }
12468         }
12469         return NDR_ERR_SUCCESS;
12470 }
12471
12472 _PUBLIC_ void ndr_print_drsuapi_DsReplica06(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplica06 *r)
12473 {
12474         ndr_print_struct(ndr, name, "drsuapi_DsReplica06");
12475         ndr->depth++;
12476         ndr_print_ptr(ndr, "str1", r->str1);
12477         ndr->depth++;
12478         if (r->str1) {
12479                 ndr_print_string(ndr, "str1", r->str1);
12480         }
12481         ndr->depth--;
12482         ndr_print_uint32(ndr, "u1", r->u1);
12483         ndr_print_uint32(ndr, "u2", r->u2);
12484         ndr_print_uint32(ndr, "u3", r->u3);
12485         ndr_print_uint32(ndr, "u4", r->u4);
12486         ndr_print_uint32(ndr, "u5", r->u5);
12487         ndr_print_hyper(ndr, "u6", r->u6);
12488         ndr_print_uint32(ndr, "u7", r->u7);
12489         ndr->depth--;
12490 }
12491
12492 static enum ndr_err_code ndr_push_drsuapi_DsReplica06Ctr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplica06Ctr *r)
12493 {
12494         uint32_t cntr_array_0;
12495         if (ndr_flags & NDR_SCALARS) {
12496                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
12497                 NDR_CHECK(ndr_push_align(ndr, 8));
12498                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
12499                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
12500                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
12501                         NDR_CHECK(ndr_push_drsuapi_DsReplica06(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
12502                 }
12503                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
12504         }
12505         if (ndr_flags & NDR_BUFFERS) {
12506                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
12507                         NDR_CHECK(ndr_push_drsuapi_DsReplica06(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
12508                 }
12509         }
12510         return NDR_ERR_SUCCESS;
12511 }
12512
12513 static enum ndr_err_code ndr_pull_drsuapi_DsReplica06Ctr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplica06Ctr *r)
12514 {
12515         uint32_t cntr_array_0;
12516         TALLOC_CTX *_mem_save_array_0;
12517         if (ndr_flags & NDR_SCALARS) {
12518                 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
12519                 NDR_CHECK(ndr_pull_align(ndr, 8));
12520                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
12521                 if (r->count > 256) {
12522                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
12523                 }
12524                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
12525                 NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
12526                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
12527                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
12528                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
12529                         NDR_CHECK(ndr_pull_drsuapi_DsReplica06(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
12530                 }
12531                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
12532                 if (r->array) {
12533                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
12534                 }
12535                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
12536         }
12537         if (ndr_flags & NDR_BUFFERS) {
12538                 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
12539                 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
12540                 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
12541                         NDR_CHECK(ndr_pull_drsuapi_DsReplica06(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
12542                 }
12543                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
12544         }
12545         return NDR_ERR_SUCCESS;
12546 }
12547
12548 _PUBLIC_ void ndr_print_drsuapi_DsReplica06Ctr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplica06Ctr *r)
12549 {
12550         uint32_t cntr_array_0;
12551         ndr_print_struct(ndr, name, "drsuapi_DsReplica06Ctr");
12552         ndr->depth++;
12553         ndr_print_uint32(ndr, "count", r->count);
12554         ndr_print_uint32(ndr, "reserved", r->reserved);
12555         ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
12556         ndr->depth++;
12557         for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
12558                 char *idx_0=NULL;
12559                 if (asprintf(&idx_0, "[%d]", cntr_array_0) != -1) {
12560                         ndr_print_drsuapi_DsReplica06(ndr, "array", &r->array[cntr_array_0]);
12561                         free(idx_0);
12562                 }
12563         }
12564         ndr->depth--;
12565         ndr->depth--;
12566 }
12567
12568 static enum ndr_err_code ndr_push_drsuapi_DsReplicaInfo(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsReplicaInfo *r)
12569 {
12570         if (ndr_flags & NDR_SCALARS) {
12571                 int level = ndr_push_get_switch_value(ndr, r);
12572                 NDR_CHECK(ndr_push_drsuapi_DsReplicaInfoType(ndr, NDR_SCALARS, level));
12573                 NDR_CHECK(ndr_push_union_align(ndr, 5));
12574                 switch (level) {
12575                         case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS: {
12576                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->neighbours));
12577                         break; }
12578
12579                         case DRSUAPI_DS_REPLICA_INFO_CURSORS: {
12580                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->cursors));
12581                         break; }
12582
12583                         case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA: {
12584                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->objmetadata));
12585                         break; }
12586
12587                         case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES: {
12588                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->connectfailures));
12589                         break; }
12590
12591                         case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES: {
12592                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->linkfailures));
12593                         break; }
12594
12595                         case DRSUAPI_DS_REPLICA_INFO_PENDING_OPS: {
12596                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pendingops));
12597                         break; }
12598
12599                         case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA: {
12600                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->attrvalmetadata));
12601                         break; }
12602
12603                         case DRSUAPI_DS_REPLICA_INFO_CURSORS2: {
12604                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->cursors2));
12605                         break; }
12606
12607                         case DRSUAPI_DS_REPLICA_INFO_CURSORS3: {
12608                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->cursors3));
12609                         break; }
12610
12611                         case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2: {
12612                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->objmetadata2));
12613                         break; }
12614
12615                         case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2: {
12616                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->attrvalmetadata2));
12617                         break; }
12618
12619                         case DRSUAPI_DS_REPLICA_INFO_REPSTO: {
12620                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->repsto));
12621                         break; }
12622
12623                         case DRSUAPI_DS_REPLICA_INFO_CLIENT_CONTEXTS: {
12624                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->clientctx));
12625                         break; }
12626
12627                         case DRSUAPI_DS_REPLICA_INFO_UPTODATE_VECTOR_V1: {
12628                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->udv1));
12629                         break; }
12630
12631                         case DRSUAPI_DS_REPLICA_INFO_SERVER_OUTGOING_CALLS: {
12632                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->srvoutgoingcalls));
12633                         break; }
12634
12635                         default:
12636                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
12637                 }
12638         }
12639         if (ndr_flags & NDR_BUFFERS) {
12640                 int level = ndr_push_get_switch_value(ndr, r);
12641                 switch (level) {
12642                         case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS:
12643                                 if (r->neighbours) {
12644                                         NDR_CHECK(ndr_push_drsuapi_DsReplicaNeighbourCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->neighbours));
12645                                 }
12646                         break;
12647
12648                         case DRSUAPI_DS_REPLICA_INFO_CURSORS:
12649                                 if (r->cursors) {
12650                                         NDR_CHECK(ndr_push_drsuapi_DsReplicaCursorCtr(ndr, NDR_SCALARS, r->cursors));
12651                                 }
12652                         break;
12653
12654                         case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA:
12655                                 if (r->objmetadata) {
12656                                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjMetaDataCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->objmetadata));
12657                                 }
12658                         break;
12659
12660                         case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES:
12661                                 if (r->connectfailures) {
12662                                         NDR_CHECK(ndr_push_drsuapi_DsReplicaKccDsaFailuresCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->connectfailures));
12663                                 }
12664                         break;
12665
12666                         case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES:
12667                                 if (r->linkfailures) {
12668                                         NDR_CHECK(ndr_push_drsuapi_DsReplicaKccDsaFailuresCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->linkfailures));
12669                                 }
12670                         break;
12671
12672                         case DRSUAPI_DS_REPLICA_INFO_PENDING_OPS:
12673                                 if (r->pendingops) {
12674                                         NDR_CHECK(ndr_push_drsuapi_DsReplicaOpCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->pendingops));
12675                                 }
12676                         break;
12677
12678                         case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA:
12679                                 if (r->attrvalmetadata) {
12680                                         NDR_CHECK(ndr_push_drsuapi_DsReplicaAttrValMetaDataCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->attrvalmetadata));
12681                                 }
12682                         break;
12683
12684                         case DRSUAPI_DS_REPLICA_INFO_CURSORS2:
12685                                 if (r->cursors2) {
12686                                         NDR_CHECK(ndr_push_drsuapi_DsReplicaCursor2Ctr(ndr, NDR_SCALARS, r->cursors2));
12687                                 }
12688                         break;
12689
12690                         case DRSUAPI_DS_REPLICA_INFO_CURSORS3:
12691                                 if (r->cursors3) {
12692                                         NDR_CHECK(ndr_push_drsuapi_DsReplicaCursor3Ctr(ndr, NDR_SCALARS|NDR_BUFFERS, r->cursors3));
12693                                 }
12694                         break;
12695
12696                         case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2:
12697                                 if (r->objmetadata2) {
12698                                         NDR_CHECK(ndr_push_drsuapi_DsReplicaObjMetaData2Ctr(ndr, NDR_SCALARS|NDR_BUFFERS, r->objmetadata2));
12699                                 }
12700                         break;
12701
12702                         case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2:
12703                                 if (r->attrvalmetadata2) {
12704                                         NDR_CHECK(ndr_push_drsuapi_DsReplicaAttrValMetaData2Ctr(ndr, NDR_SCALARS|NDR_BUFFERS, r->attrvalmetadata2));
12705                                 }
12706                         break;
12707
12708                         case DRSUAPI_DS_REPLICA_INFO_REPSTO:
12709                                 if (r->repsto) {
12710                                         NDR_CHECK(ndr_push_drsuapi_DsReplicaNeighbourCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->repsto));
12711                                 }
12712                         break;
12713
12714                         case DRSUAPI_DS_REPLICA_INFO_CLIENT_CONTEXTS:
12715                                 if (r->clientctx) {
12716                                         NDR_CHECK(ndr_push_drsuapi_DsReplicaConnection04Ctr(ndr, NDR_SCALARS, r->clientctx));
12717                                 }
12718                         break;
12719
12720                         case DRSUAPI_DS_REPLICA_INFO_UPTODATE_VECTOR_V1:
12721                                 if (r->udv1) {
12722                                         NDR_CHECK(ndr_push_drsuapi_DsReplicaCursorCtrEx(ndr, NDR_SCALARS, r->udv1));
12723                                 }
12724                         break;
12725
12726                         case DRSUAPI_DS_REPLICA_INFO_SERVER_OUTGOING_CALLS:
12727                                 if (r->srvoutgoingcalls) {
12728                                         NDR_CHECK(ndr_push_drsuapi_DsReplica06Ctr(ndr, NDR_SCALARS|NDR_BUFFERS, r->srvoutgoingcalls));
12729                                 }
12730                         break;
12731
12732                         default:
12733                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
12734                 }
12735         }
12736         return NDR_ERR_SUCCESS;
12737 }
12738
12739 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaInfo(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsReplicaInfo *r)
12740 {
12741         int level;
12742         uint32_t _level;
12743         TALLOC_CTX *_mem_save_neighbours_0;
12744         TALLOC_CTX *_mem_save_cursors_0;
12745         TALLOC_CTX *_mem_save_objmetadata_0;
12746         TALLOC_CTX *_mem_save_connectfailures_0;
12747         TALLOC_CTX *_mem_save_linkfailures_0;
12748         TALLOC_CTX *_mem_save_pendingops_0;
12749         TALLOC_CTX *_mem_save_attrvalmetadata_0;
12750         TALLOC_CTX *_mem_save_cursors2_0;
12751         TALLOC_CTX *_mem_save_cursors3_0;
12752         TALLOC_CTX *_mem_save_objmetadata2_0;
12753         TALLOC_CTX *_mem_save_attrvalmetadata2_0;
12754         TALLOC_CTX *_mem_save_repsto_0;
12755         TALLOC_CTX *_mem_save_clientctx_0;
12756         TALLOC_CTX *_mem_save_udv1_0;
12757         TALLOC_CTX *_mem_save_srvoutgoingcalls_0;
12758         level = ndr_pull_get_switch_value(ndr, r);
12759         if (ndr_flags & NDR_SCALARS) {
12760                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
12761                 if (_level != level) {
12762                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
12763                 }
12764                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
12765                 switch (level) {
12766                         case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS: {
12767                                 uint32_t _ptr_neighbours;
12768                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_neighbours));
12769                                 if (_ptr_neighbours) {
12770                                         NDR_PULL_ALLOC(ndr, r->neighbours);
12771                                 } else {
12772                                         r->neighbours = NULL;
12773                                 }
12774                         break; }
12775
12776                         case DRSUAPI_DS_REPLICA_INFO_CURSORS: {
12777                                 uint32_t _ptr_cursors;
12778                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_cursors));
12779                                 if (_ptr_cursors) {
12780                                         NDR_PULL_ALLOC(ndr, r->cursors);
12781                                 } else {
12782                                         r->cursors = NULL;
12783                                 }
12784                         break; }
12785
12786                         case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA: {
12787                                 uint32_t _ptr_objmetadata;
12788                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_objmetadata));
12789                                 if (_ptr_objmetadata) {
12790                                         NDR_PULL_ALLOC(ndr, r->objmetadata);
12791                                 } else {
12792                                         r->objmetadata = NULL;
12793                                 }
12794                         break; }
12795
12796                         case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES: {
12797                                 uint32_t _ptr_connectfailures;
12798                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_connectfailures));
12799                                 if (_ptr_connectfailures) {
12800                                         NDR_PULL_ALLOC(ndr, r->connectfailures);
12801                                 } else {
12802                                         r->connectfailures = NULL;
12803                                 }
12804                         break; }
12805
12806                         case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES: {
12807                                 uint32_t _ptr_linkfailures;
12808                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_linkfailures));
12809                                 if (_ptr_linkfailures) {
12810                                         NDR_PULL_ALLOC(ndr, r->linkfailures);
12811                                 } else {
12812                                         r->linkfailures = NULL;
12813                                 }
12814                         break; }
12815
12816                         case DRSUAPI_DS_REPLICA_INFO_PENDING_OPS: {
12817                                 uint32_t _ptr_pendingops;
12818                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pendingops));
12819                                 if (_ptr_pendingops) {
12820                                         NDR_PULL_ALLOC(ndr, r->pendingops);
12821                                 } else {
12822                                         r->pendingops = NULL;
12823                                 }
12824                         break; }
12825
12826                         case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA: {
12827                                 uint32_t _ptr_attrvalmetadata;
12828                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_attrvalmetadata));
12829                                 if (_ptr_attrvalmetadata) {
12830                                         NDR_PULL_ALLOC(ndr, r->attrvalmetadata);
12831                                 } else {
12832                                         r->attrvalmetadata = NULL;
12833                                 }
12834                         break; }
12835
12836                         case DRSUAPI_DS_REPLICA_INFO_CURSORS2: {
12837                                 uint32_t _ptr_cursors2;
12838                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_cursors2));
12839                                 if (_ptr_cursors2) {
12840                                         NDR_PULL_ALLOC(ndr, r->cursors2);
12841                                 } else {
12842                                         r->cursors2 = NULL;
12843                                 }
12844                         break; }
12845
12846                         case DRSUAPI_DS_REPLICA_INFO_CURSORS3: {
12847                                 uint32_t _ptr_cursors3;
12848                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_cursors3));
12849                                 if (_ptr_cursors3) {
12850                                         NDR_PULL_ALLOC(ndr, r->cursors3);
12851                                 } else {
12852                                         r->cursors3 = NULL;
12853                                 }
12854                         break; }
12855
12856                         case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2: {
12857                                 uint32_t _ptr_objmetadata2;
12858                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_objmetadata2));
12859                                 if (_ptr_objmetadata2) {
12860                                         NDR_PULL_ALLOC(ndr, r->objmetadata2);
12861                                 } else {
12862                                         r->objmetadata2 = NULL;
12863                                 }
12864                         break; }
12865
12866                         case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2: {
12867                                 uint32_t _ptr_attrvalmetadata2;
12868                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_attrvalmetadata2));
12869                                 if (_ptr_attrvalmetadata2) {
12870                                         NDR_PULL_ALLOC(ndr, r->attrvalmetadata2);
12871                                 } else {
12872                                         r->attrvalmetadata2 = NULL;
12873                                 }
12874                         break; }
12875
12876                         case DRSUAPI_DS_REPLICA_INFO_REPSTO: {
12877                                 uint32_t _ptr_repsto;
12878                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_repsto));
12879                                 if (_ptr_repsto) {
12880                                         NDR_PULL_ALLOC(ndr, r->repsto);
12881                                 } else {
12882                                         r->repsto = NULL;
12883                                 }
12884                         break; }
12885
12886                         case DRSUAPI_DS_REPLICA_INFO_CLIENT_CONTEXTS: {
12887                                 uint32_t _ptr_clientctx;
12888                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_clientctx));
12889                                 if (_ptr_clientctx) {
12890                                         NDR_PULL_ALLOC(ndr, r->clientctx);
12891                                 } else {
12892                                         r->clientctx = NULL;
12893                                 }
12894                         break; }
12895
12896                         case DRSUAPI_DS_REPLICA_INFO_UPTODATE_VECTOR_V1: {
12897                                 uint32_t _ptr_udv1;
12898                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_udv1));
12899                                 if (_ptr_udv1) {
12900                                         NDR_PULL_ALLOC(ndr, r->udv1);
12901                                 } else {
12902                                         r->udv1 = NULL;
12903                                 }
12904                         break; }
12905
12906                         case DRSUAPI_DS_REPLICA_INFO_SERVER_OUTGOING_CALLS: {
12907                                 uint32_t _ptr_srvoutgoingcalls;
12908                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_srvoutgoingcalls));
12909                                 if (_ptr_srvoutgoingcalls) {
12910                                         NDR_PULL_ALLOC(ndr, r->srvoutgoingcalls);
12911                                 } else {
12912                                         r->srvoutgoingcalls = NULL;
12913                                 }
12914                         break; }
12915
12916                         default:
12917                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
12918                 }
12919         }
12920         if (ndr_flags & NDR_BUFFERS) {
12921                 switch (level) {
12922                         case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS:
12923                                 if (r->neighbours) {
12924                                         _mem_save_neighbours_0 = NDR_PULL_GET_MEM_CTX(ndr);
12925                                         NDR_PULL_SET_MEM_CTX(ndr, r->neighbours, 0);
12926                                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaNeighbourCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->neighbours));
12927                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_neighbours_0, 0);
12928                                 }
12929                         break;
12930
12931                         case DRSUAPI_DS_REPLICA_INFO_CURSORS:
12932                                 if (r->cursors) {
12933                                         _mem_save_cursors_0 = NDR_PULL_GET_MEM_CTX(ndr);
12934                                         NDR_PULL_SET_MEM_CTX(ndr, r->cursors, 0);
12935                                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursorCtr(ndr, NDR_SCALARS, r->cursors));
12936                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_cursors_0, 0);
12937                                 }
12938                         break;
12939
12940                         case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA:
12941                                 if (r->objmetadata) {
12942                                         _mem_save_objmetadata_0 = NDR_PULL_GET_MEM_CTX(ndr);
12943                                         NDR_PULL_SET_MEM_CTX(ndr, r->objmetadata, 0);
12944                                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjMetaDataCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->objmetadata));
12945                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_objmetadata_0, 0);
12946                                 }
12947                         break;
12948
12949                         case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES:
12950                                 if (r->connectfailures) {
12951                                         _mem_save_connectfailures_0 = NDR_PULL_GET_MEM_CTX(ndr);
12952                                         NDR_PULL_SET_MEM_CTX(ndr, r->connectfailures, 0);
12953                                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaKccDsaFailuresCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->connectfailures));
12954                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_connectfailures_0, 0);
12955                                 }
12956                         break;
12957
12958                         case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES:
12959                                 if (r->linkfailures) {
12960                                         _mem_save_linkfailures_0 = NDR_PULL_GET_MEM_CTX(ndr);
12961                                         NDR_PULL_SET_MEM_CTX(ndr, r->linkfailures, 0);
12962                                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaKccDsaFailuresCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->linkfailures));
12963                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_linkfailures_0, 0);
12964                                 }
12965                         break;
12966
12967                         case DRSUAPI_DS_REPLICA_INFO_PENDING_OPS:
12968                                 if (r->pendingops) {
12969                                         _mem_save_pendingops_0 = NDR_PULL_GET_MEM_CTX(ndr);
12970                                         NDR_PULL_SET_MEM_CTX(ndr, r->pendingops, 0);
12971                                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaOpCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->pendingops));
12972                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pendingops_0, 0);
12973                                 }
12974                         break;
12975
12976                         case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA:
12977                                 if (r->attrvalmetadata) {
12978                                         _mem_save_attrvalmetadata_0 = NDR_PULL_GET_MEM_CTX(ndr);
12979                                         NDR_PULL_SET_MEM_CTX(ndr, r->attrvalmetadata, 0);
12980                                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaAttrValMetaDataCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->attrvalmetadata));
12981                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attrvalmetadata_0, 0);
12982                                 }
12983                         break;
12984
12985                         case DRSUAPI_DS_REPLICA_INFO_CURSORS2:
12986                                 if (r->cursors2) {
12987                                         _mem_save_cursors2_0 = NDR_PULL_GET_MEM_CTX(ndr);
12988                                         NDR_PULL_SET_MEM_CTX(ndr, r->cursors2, 0);
12989                                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursor2Ctr(ndr, NDR_SCALARS, r->cursors2));
12990                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_cursors2_0, 0);
12991                                 }
12992                         break;
12993
12994                         case DRSUAPI_DS_REPLICA_INFO_CURSORS3:
12995                                 if (r->cursors3) {
12996                                         _mem_save_cursors3_0 = NDR_PULL_GET_MEM_CTX(ndr);
12997                                         NDR_PULL_SET_MEM_CTX(ndr, r->cursors3, 0);
12998                                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursor3Ctr(ndr, NDR_SCALARS|NDR_BUFFERS, r->cursors3));
12999                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_cursors3_0, 0);
13000                                 }
13001                         break;
13002
13003                         case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2:
13004                                 if (r->objmetadata2) {
13005                                         _mem_save_objmetadata2_0 = NDR_PULL_GET_MEM_CTX(ndr);
13006                                         NDR_PULL_SET_MEM_CTX(ndr, r->objmetadata2, 0);
13007                                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjMetaData2Ctr(ndr, NDR_SCALARS|NDR_BUFFERS, r->objmetadata2));
13008                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_objmetadata2_0, 0);
13009                                 }
13010                         break;
13011
13012                         case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2:
13013                                 if (r->attrvalmetadata2) {
13014                                         _mem_save_attrvalmetadata2_0 = NDR_PULL_GET_MEM_CTX(ndr);
13015                                         NDR_PULL_SET_MEM_CTX(ndr, r->attrvalmetadata2, 0);
13016                                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaAttrValMetaData2Ctr(ndr, NDR_SCALARS|NDR_BUFFERS, r->attrvalmetadata2));
13017                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attrvalmetadata2_0, 0);
13018                                 }
13019                         break;
13020
13021                         case DRSUAPI_DS_REPLICA_INFO_REPSTO:
13022                                 if (r->repsto) {
13023                                         _mem_save_repsto_0 = NDR_PULL_GET_MEM_CTX(ndr);
13024                                         NDR_PULL_SET_MEM_CTX(ndr, r->repsto, 0);
13025                                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaNeighbourCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->repsto));
13026                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_repsto_0, 0);
13027                                 }
13028                         break;
13029
13030                         case DRSUAPI_DS_REPLICA_INFO_CLIENT_CONTEXTS:
13031                                 if (r->clientctx) {
13032                                         _mem_save_clientctx_0 = NDR_PULL_GET_MEM_CTX(ndr);
13033                                         NDR_PULL_SET_MEM_CTX(ndr, r->clientctx, 0);
13034                                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaConnection04Ctr(ndr, NDR_SCALARS, r->clientctx));
13035                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_clientctx_0, 0);
13036                                 }
13037                         break;
13038
13039                         case DRSUAPI_DS_REPLICA_INFO_UPTODATE_VECTOR_V1:
13040                                 if (r->udv1) {
13041                                         _mem_save_udv1_0 = NDR_PULL_GET_MEM_CTX(ndr);
13042                                         NDR_PULL_SET_MEM_CTX(ndr, r->udv1, 0);
13043                                         NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursorCtrEx(ndr, NDR_SCALARS, r->udv1));
13044                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_udv1_0, 0);
13045                                 }
13046                         break;
13047
13048                         case DRSUAPI_DS_REPLICA_INFO_SERVER_OUTGOING_CALLS:
13049                                 if (r->srvoutgoingcalls) {
13050                                         _mem_save_srvoutgoingcalls_0 = NDR_PULL_GET_MEM_CTX(ndr);
13051                                         NDR_PULL_SET_MEM_CTX(ndr, r->srvoutgoingcalls, 0);
13052                                         NDR_CHECK(ndr_pull_drsuapi_DsReplica06Ctr(ndr, NDR_SCALARS|NDR_BUFFERS, r->srvoutgoingcalls));
13053                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_srvoutgoingcalls_0, 0);
13054                                 }
13055                         break;
13056
13057                         default:
13058                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
13059                 }
13060         }
13061         return NDR_ERR_SUCCESS;
13062 }
13063
13064 _PUBLIC_ void ndr_print_drsuapi_DsReplicaInfo(struct ndr_print *ndr, const char *name, const union drsuapi_DsReplicaInfo *r)
13065 {
13066         int level;
13067         level = ndr_print_get_switch_value(ndr, r);
13068         ndr_print_union(ndr, name, level, "drsuapi_DsReplicaInfo");
13069         switch (level) {
13070                 case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS:
13071                         ndr_print_ptr(ndr, "neighbours", r->neighbours);
13072                         ndr->depth++;
13073                         if (r->neighbours) {
13074                                 ndr_print_drsuapi_DsReplicaNeighbourCtr(ndr, "neighbours", r->neighbours);
13075                         }
13076                         ndr->depth--;
13077                 break;
13078
13079                 case DRSUAPI_DS_REPLICA_INFO_CURSORS:
13080                         ndr_print_ptr(ndr, "cursors", r->cursors);
13081                         ndr->depth++;
13082                         if (r->cursors) {
13083                                 ndr_print_drsuapi_DsReplicaCursorCtr(ndr, "cursors", r->cursors);
13084                         }
13085                         ndr->depth--;
13086                 break;
13087
13088                 case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA:
13089                         ndr_print_ptr(ndr, "objmetadata", r->objmetadata);
13090                         ndr->depth++;
13091                         if (r->objmetadata) {
13092                                 ndr_print_drsuapi_DsReplicaObjMetaDataCtr(ndr, "objmetadata", r->objmetadata);
13093                         }
13094                         ndr->depth--;
13095                 break;
13096
13097                 case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES:
13098                         ndr_print_ptr(ndr, "connectfailures", r->connectfailures);
13099                         ndr->depth++;
13100                         if (r->connectfailures) {
13101                                 ndr_print_drsuapi_DsReplicaKccDsaFailuresCtr(ndr, "connectfailures", r->connectfailures);
13102                         }
13103                         ndr->depth--;
13104                 break;
13105
13106                 case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES:
13107                         ndr_print_ptr(ndr, "linkfailures", r->linkfailures);
13108                         ndr->depth++;
13109                         if (r->linkfailures) {
13110                                 ndr_print_drsuapi_DsReplicaKccDsaFailuresCtr(ndr, "linkfailures", r->linkfailures);
13111                         }
13112                         ndr->depth--;
13113                 break;
13114
13115                 case DRSUAPI_DS_REPLICA_INFO_PENDING_OPS:
13116                         ndr_print_ptr(ndr, "pendingops", r->pendingops);
13117                         ndr->depth++;
13118                         if (r->pendingops) {
13119                                 ndr_print_drsuapi_DsReplicaOpCtr(ndr, "pendingops", r->pendingops);
13120                         }
13121                         ndr->depth--;
13122                 break;
13123
13124                 case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA:
13125                         ndr_print_ptr(ndr, "attrvalmetadata", r->attrvalmetadata);
13126                         ndr->depth++;
13127                         if (r->attrvalmetadata) {
13128                                 ndr_print_drsuapi_DsReplicaAttrValMetaDataCtr(ndr, "attrvalmetadata", r->attrvalmetadata);
13129                         }
13130                         ndr->depth--;
13131                 break;
13132
13133                 case DRSUAPI_DS_REPLICA_INFO_CURSORS2:
13134                         ndr_print_ptr(ndr, "cursors2", r->cursors2);
13135                         ndr->depth++;
13136                         if (r->cursors2) {
13137                                 ndr_print_drsuapi_DsReplicaCursor2Ctr(ndr, "cursors2", r->cursors2);
13138                         }
13139                         ndr->depth--;
13140                 break;
13141
13142                 case DRSUAPI_DS_REPLICA_INFO_CURSORS3:
13143                         ndr_print_ptr(ndr, "cursors3", r->cursors3);
13144                         ndr->depth++;
13145                         if (r->cursors3) {
13146                                 ndr_print_drsuapi_DsReplicaCursor3Ctr(ndr, "cursors3", r->cursors3);
13147                         }
13148                         ndr->depth--;
13149                 break;
13150
13151                 case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2:
13152                         ndr_print_ptr(ndr, "objmetadata2", r->objmetadata2);
13153                         ndr->depth++;
13154                         if (r->objmetadata2) {
13155                                 ndr_print_drsuapi_DsReplicaObjMetaData2Ctr(ndr, "objmetadata2", r->objmetadata2);
13156                         }
13157                         ndr->depth--;
13158                 break;
13159
13160                 case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2:
13161                         ndr_print_ptr(ndr, "attrvalmetadata2", r->attrvalmetadata2);
13162                         ndr->depth++;
13163                         if (r->attrvalmetadata2) {
13164                                 ndr_print_drsuapi_DsReplicaAttrValMetaData2Ctr(ndr, "attrvalmetadata2", r->attrvalmetadata2);
13165                         }
13166                         ndr->depth--;
13167                 break;
13168
13169                 case DRSUAPI_DS_REPLICA_INFO_REPSTO:
13170                         ndr_print_ptr(ndr, "repsto", r->repsto);
13171                         ndr->depth++;
13172                         if (r->repsto) {
13173                                 ndr_print_drsuapi_DsReplicaNeighbourCtr(ndr, "repsto", r->repsto);
13174                         }
13175                         ndr->depth--;
13176                 break;
13177
13178                 case DRSUAPI_DS_REPLICA_INFO_CLIENT_CONTEXTS:
13179                         ndr_print_ptr(ndr, "clientctx", r->clientctx);
13180                         ndr->depth++;
13181                         if (r->clientctx) {
13182                                 ndr_print_drsuapi_DsReplicaConnection04Ctr(ndr, "clientctx", r->clientctx);
13183                         }
13184                         ndr->depth--;
13185                 break;
13186
13187                 case DRSUAPI_DS_REPLICA_INFO_UPTODATE_VECTOR_V1:
13188                         ndr_print_ptr(ndr, "udv1", r->udv1);
13189                         ndr->depth++;
13190                         if (r->udv1) {
13191                                 ndr_print_drsuapi_DsReplicaCursorCtrEx(ndr, "udv1", r->udv1);
13192                         }
13193                         ndr->depth--;
13194                 break;
13195
13196                 case DRSUAPI_DS_REPLICA_INFO_SERVER_OUTGOING_CALLS:
13197                         ndr_print_ptr(ndr, "srvoutgoingcalls", r->srvoutgoingcalls);
13198                         ndr->depth++;
13199                         if (r->srvoutgoingcalls) {
13200                                 ndr_print_drsuapi_DsReplica06Ctr(ndr, "srvoutgoingcalls", r->srvoutgoingcalls);
13201                         }
13202                         ndr->depth--;
13203                 break;
13204
13205                 default:
13206                         ndr_print_bad_level(ndr, name, level);
13207         }
13208 }
13209
13210 static enum ndr_err_code ndr_push_drsuapi_DsGetMemberships2Ctr(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsGetMemberships2Ctr *r)
13211 {
13212         if (ndr_flags & NDR_SCALARS) {
13213                 int level = ndr_push_get_switch_value(ndr, r);
13214                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
13215                 NDR_CHECK(ndr_push_union_align(ndr, 5));
13216                 switch (level) {
13217                         case 1: {
13218                                 NDR_CHECK(ndr_push_drsuapi_DsGetMembershipsCtr1(ndr, NDR_SCALARS, &r->ctr1));
13219                         break; }
13220
13221                         default:
13222                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
13223                 }
13224         }
13225         if (ndr_flags & NDR_BUFFERS) {
13226                 int level = ndr_push_get_switch_value(ndr, r);
13227                 switch (level) {
13228                         case 1:
13229                                 NDR_CHECK(ndr_push_drsuapi_DsGetMembershipsCtr1(ndr, NDR_BUFFERS, &r->ctr1));
13230                         break;
13231
13232                         default:
13233                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
13234                 }
13235         }
13236         return NDR_ERR_SUCCESS;
13237 }
13238
13239 static enum ndr_err_code ndr_pull_drsuapi_DsGetMemberships2Ctr(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsGetMemberships2Ctr *r)
13240 {
13241         int level;
13242         uint32_t _level;
13243         level = ndr_pull_get_switch_value(ndr, r);
13244         if (ndr_flags & NDR_SCALARS) {
13245                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
13246                 if (_level != level) {
13247                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
13248                 }
13249                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
13250                 switch (level) {
13251                         case 1: {
13252                                 NDR_CHECK(ndr_pull_drsuapi_DsGetMembershipsCtr1(ndr, NDR_SCALARS, &r->ctr1));
13253                         break; }
13254
13255                         default:
13256                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
13257                 }
13258         }
13259         if (ndr_flags & NDR_BUFFERS) {
13260                 switch (level) {
13261                         case 1:
13262                                 NDR_CHECK(ndr_pull_drsuapi_DsGetMembershipsCtr1(ndr, NDR_BUFFERS, &r->ctr1));
13263                         break;
13264
13265                         default:
13266                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
13267                 }
13268         }
13269         return NDR_ERR_SUCCESS;
13270 }
13271
13272 _PUBLIC_ void ndr_print_drsuapi_DsGetMemberships2Ctr(struct ndr_print *ndr, const char *name, const union drsuapi_DsGetMemberships2Ctr *r)
13273 {
13274         int level;
13275         level = ndr_print_get_switch_value(ndr, r);
13276         ndr_print_union(ndr, name, level, "drsuapi_DsGetMemberships2Ctr");
13277         switch (level) {
13278                 case 1:
13279                         ndr_print_drsuapi_DsGetMembershipsCtr1(ndr, "ctr1", &r->ctr1);
13280                 break;
13281
13282                 default:
13283                         ndr_print_bad_level(ndr, name, level);
13284         }
13285 }
13286
13287 static enum ndr_err_code ndr_push_drsuapi_DsGetMemberships2Request1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetMemberships2Request1 *r)
13288 {
13289         uint32_t cntr_req_array_1;
13290         if (ndr_flags & NDR_SCALARS) {
13291                 NDR_CHECK(ndr_push_align(ndr, 5));
13292                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_req));
13293                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->req_array));
13294                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
13295         }
13296         if (ndr_flags & NDR_BUFFERS) {
13297                 if (r->req_array) {
13298                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->num_req));
13299                         for (cntr_req_array_1 = 0; cntr_req_array_1 < r->num_req; cntr_req_array_1++) {
13300                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->req_array[cntr_req_array_1]));
13301                         }
13302                         for (cntr_req_array_1 = 0; cntr_req_array_1 < r->num_req; cntr_req_array_1++) {
13303                                 if (r->req_array[cntr_req_array_1]) {
13304                                         NDR_CHECK(ndr_push_drsuapi_DsGetMembershipsRequest1(ndr, NDR_SCALARS|NDR_BUFFERS, r->req_array[cntr_req_array_1]));
13305                                 }
13306                         }
13307                 }
13308         }
13309         return NDR_ERR_SUCCESS;
13310 }
13311
13312 static enum ndr_err_code ndr_pull_drsuapi_DsGetMemberships2Request1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetMemberships2Request1 *r)
13313 {
13314         uint32_t _ptr_req_array;
13315         uint32_t cntr_req_array_1;
13316         TALLOC_CTX *_mem_save_req_array_0;
13317         TALLOC_CTX *_mem_save_req_array_1;
13318         TALLOC_CTX *_mem_save_req_array_2;
13319         if (ndr_flags & NDR_SCALARS) {
13320                 NDR_CHECK(ndr_pull_align(ndr, 5));
13321                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_req));
13322                 if (r->num_req < 1 || r->num_req > 10000) {
13323                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
13324                 }
13325                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_req_array));
13326                 if (_ptr_req_array) {
13327                         NDR_PULL_ALLOC(ndr, r->req_array);
13328                 } else {
13329                         r->req_array = NULL;
13330                 }
13331                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
13332         }
13333         if (ndr_flags & NDR_BUFFERS) {
13334                 if (r->req_array) {
13335                         _mem_save_req_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
13336                         NDR_PULL_SET_MEM_CTX(ndr, r->req_array, 0);
13337                         NDR_CHECK(ndr_pull_array_size(ndr, &r->req_array));
13338                         NDR_PULL_ALLOC_N(ndr, r->req_array, ndr_get_array_size(ndr, &r->req_array));
13339                         _mem_save_req_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
13340                         NDR_PULL_SET_MEM_CTX(ndr, r->req_array, 0);
13341                         for (cntr_req_array_1 = 0; cntr_req_array_1 < r->num_req; cntr_req_array_1++) {
13342                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_req_array));
13343                                 if (_ptr_req_array) {
13344                                         NDR_PULL_ALLOC(ndr, r->req_array[cntr_req_array_1]);
13345                                 } else {
13346                                         r->req_array[cntr_req_array_1] = NULL;
13347                                 }
13348                         }
13349                         for (cntr_req_array_1 = 0; cntr_req_array_1 < r->num_req; cntr_req_array_1++) {
13350                                 if (r->req_array[cntr_req_array_1]) {
13351                                         _mem_save_req_array_2 = NDR_PULL_GET_MEM_CTX(ndr);
13352                                         NDR_PULL_SET_MEM_CTX(ndr, r->req_array[cntr_req_array_1], 0);
13353                                         NDR_CHECK(ndr_pull_drsuapi_DsGetMembershipsRequest1(ndr, NDR_SCALARS|NDR_BUFFERS, r->req_array[cntr_req_array_1]));
13354                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_array_2, 0);
13355                                 }
13356                         }
13357                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_array_1, 0);
13358                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_array_0, 0);
13359                 }
13360                 if (r->req_array) {
13361                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->req_array, r->num_req));
13362                 }
13363         }
13364         return NDR_ERR_SUCCESS;
13365 }
13366
13367 _PUBLIC_ void ndr_print_drsuapi_DsGetMemberships2Request1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetMemberships2Request1 *r)
13368 {
13369         uint32_t cntr_req_array_1;
13370         ndr_print_struct(ndr, name, "drsuapi_DsGetMemberships2Request1");
13371         ndr->depth++;
13372         ndr_print_uint32(ndr, "num_req", r->num_req);
13373         ndr_print_ptr(ndr, "req_array", r->req_array);
13374         ndr->depth++;
13375         if (r->req_array) {
13376                 ndr->print(ndr, "%s: ARRAY(%d)", "req_array", (int)r->num_req);
13377                 ndr->depth++;
13378                 for (cntr_req_array_1=0;cntr_req_array_1<r->num_req;cntr_req_array_1++) {
13379                         char *idx_1=NULL;
13380                         if (asprintf(&idx_1, "[%d]", cntr_req_array_1) != -1) {
13381                                 ndr_print_ptr(ndr, "req_array", r->req_array[cntr_req_array_1]);
13382                                 ndr->depth++;
13383                                 if (r->req_array[cntr_req_array_1]) {
13384                                         ndr_print_drsuapi_DsGetMembershipsRequest1(ndr, "req_array", r->req_array[cntr_req_array_1]);
13385                                 }
13386                                 ndr->depth--;
13387                                 free(idx_1);
13388                         }
13389                 }
13390                 ndr->depth--;
13391         }
13392         ndr->depth--;
13393         ndr->depth--;
13394 }
13395
13396 static enum ndr_err_code ndr_push_drsuapi_DsGetMemberships2Request(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsGetMemberships2Request *r)
13397 {
13398         if (ndr_flags & NDR_SCALARS) {
13399                 int level = ndr_push_get_switch_value(ndr, r);
13400                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
13401                 NDR_CHECK(ndr_push_union_align(ndr, 5));
13402                 switch (level) {
13403                         case 1: {
13404                                 NDR_CHECK(ndr_push_drsuapi_DsGetMemberships2Request1(ndr, NDR_SCALARS, &r->req1));
13405                         break; }
13406
13407                         default:
13408                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
13409                 }
13410         }
13411         if (ndr_flags & NDR_BUFFERS) {
13412                 int level = ndr_push_get_switch_value(ndr, r);
13413                 switch (level) {
13414                         case 1:
13415                                 NDR_CHECK(ndr_push_drsuapi_DsGetMemberships2Request1(ndr, NDR_BUFFERS, &r->req1));
13416                         break;
13417
13418                         default:
13419                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
13420                 }
13421         }
13422         return NDR_ERR_SUCCESS;
13423 }
13424
13425 static enum ndr_err_code ndr_pull_drsuapi_DsGetMemberships2Request(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsGetMemberships2Request *r)
13426 {
13427         int level;
13428         uint32_t _level;
13429         level = ndr_pull_get_switch_value(ndr, r);
13430         if (ndr_flags & NDR_SCALARS) {
13431                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
13432                 if (_level != level) {
13433                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
13434                 }
13435                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
13436                 switch (level) {
13437                         case 1: {
13438                                 NDR_CHECK(ndr_pull_drsuapi_DsGetMemberships2Request1(ndr, NDR_SCALARS, &r->req1));
13439                         break; }
13440
13441                         default:
13442                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
13443                 }
13444         }
13445         if (ndr_flags & NDR_BUFFERS) {
13446                 switch (level) {
13447                         case 1:
13448                                 NDR_CHECK(ndr_pull_drsuapi_DsGetMemberships2Request1(ndr, NDR_BUFFERS, &r->req1));
13449                         break;
13450
13451                         default:
13452                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
13453                 }
13454         }
13455         return NDR_ERR_SUCCESS;
13456 }
13457
13458 _PUBLIC_ void ndr_print_drsuapi_DsGetMemberships2Request(struct ndr_print *ndr, const char *name, const union drsuapi_DsGetMemberships2Request *r)
13459 {
13460         int level;
13461         level = ndr_print_get_switch_value(ndr, r);
13462         ndr_print_union(ndr, name, level, "drsuapi_DsGetMemberships2Request");
13463         switch (level) {
13464                 case 1:
13465                         ndr_print_drsuapi_DsGetMemberships2Request1(ndr, "req1", &r->req1);
13466                 break;
13467
13468                 default:
13469                         ndr_print_bad_level(ndr, name, level);
13470         }
13471 }
13472
13473 static enum ndr_err_code ndr_push_drsuapi_DsSiteCostInfo(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsSiteCostInfo *r)
13474 {
13475         if (ndr_flags & NDR_SCALARS) {
13476                 NDR_CHECK(ndr_push_align(ndr, 4));
13477                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->error_code));
13478                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->site_cost));
13479                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
13480         }
13481         if (ndr_flags & NDR_BUFFERS) {
13482         }
13483         return NDR_ERR_SUCCESS;
13484 }
13485
13486 static enum ndr_err_code ndr_pull_drsuapi_DsSiteCostInfo(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsSiteCostInfo *r)
13487 {
13488         if (ndr_flags & NDR_SCALARS) {
13489                 NDR_CHECK(ndr_pull_align(ndr, 4));
13490                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->error_code));
13491                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->site_cost));
13492                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
13493         }
13494         if (ndr_flags & NDR_BUFFERS) {
13495         }
13496         return NDR_ERR_SUCCESS;
13497 }
13498
13499 _PUBLIC_ void ndr_print_drsuapi_DsSiteCostInfo(struct ndr_print *ndr, const char *name, const struct drsuapi_DsSiteCostInfo *r)
13500 {
13501         ndr_print_struct(ndr, name, "drsuapi_DsSiteCostInfo");
13502         ndr->depth++;
13503         ndr_print_WERROR(ndr, "error_code", r->error_code);
13504         ndr_print_uint32(ndr, "site_cost", r->site_cost);
13505         ndr->depth--;
13506 }
13507
13508 static enum ndr_err_code ndr_push_drsuapi_QuerySitesByCostCtr1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_QuerySitesByCostCtr1 *r)
13509 {
13510         uint32_t cntr_info_1;
13511         if (ndr_flags & NDR_SCALARS) {
13512                 NDR_CHECK(ndr_push_align(ndr, 5));
13513                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_info));
13514                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info));
13515                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13516                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
13517         }
13518         if (ndr_flags & NDR_BUFFERS) {
13519                 if (r->info) {
13520                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->num_info));
13521                         for (cntr_info_1 = 0; cntr_info_1 < r->num_info; cntr_info_1++) {
13522                                 NDR_CHECK(ndr_push_drsuapi_DsSiteCostInfo(ndr, NDR_SCALARS, &r->info[cntr_info_1]));
13523                         }
13524                 }
13525         }
13526         return NDR_ERR_SUCCESS;
13527 }
13528
13529 static enum ndr_err_code ndr_pull_drsuapi_QuerySitesByCostCtr1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_QuerySitesByCostCtr1 *r)
13530 {
13531         uint32_t _ptr_info;
13532         uint32_t cntr_info_1;
13533         TALLOC_CTX *_mem_save_info_0;
13534         TALLOC_CTX *_mem_save_info_1;
13535         if (ndr_flags & NDR_SCALARS) {
13536                 NDR_CHECK(ndr_pull_align(ndr, 5));
13537                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_info));
13538                 if (r->num_info > 10000) {
13539                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
13540                 }
13541                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
13542                 if (_ptr_info) {
13543                         NDR_PULL_ALLOC(ndr, r->info);
13544                 } else {
13545                         r->info = NULL;
13546                 }
13547                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags_reserved));
13548                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
13549         }
13550         if (ndr_flags & NDR_BUFFERS) {
13551                 if (r->info) {
13552                         _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
13553                         NDR_PULL_SET_MEM_CTX(ndr, r->info, 0);
13554                         NDR_CHECK(ndr_pull_array_size(ndr, &r->info));
13555                         NDR_PULL_ALLOC_N(ndr, r->info, ndr_get_array_size(ndr, &r->info));
13556                         _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
13557                         NDR_PULL_SET_MEM_CTX(ndr, r->info, 0);
13558                         for (cntr_info_1 = 0; cntr_info_1 < r->num_info; cntr_info_1++) {
13559                                 NDR_CHECK(ndr_pull_drsuapi_DsSiteCostInfo(ndr, NDR_SCALARS, &r->info[cntr_info_1]));
13560                         }
13561                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
13562                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
13563                 }
13564                 if (r->info) {
13565                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->info, r->num_info));
13566                 }
13567         }
13568         return NDR_ERR_SUCCESS;
13569 }
13570
13571 _PUBLIC_ void ndr_print_drsuapi_QuerySitesByCostCtr1(struct ndr_print *ndr, const char *name, const struct drsuapi_QuerySitesByCostCtr1 *r)
13572 {
13573         uint32_t cntr_info_1;
13574         ndr_print_struct(ndr, name, "drsuapi_QuerySitesByCostCtr1");
13575         ndr->depth++;
13576         ndr_print_uint32(ndr, "num_info", r->num_info);
13577         ndr_print_ptr(ndr, "info", r->info);
13578         ndr->depth++;
13579         if (r->info) {
13580                 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)r->num_info);
13581                 ndr->depth++;
13582                 for (cntr_info_1=0;cntr_info_1<r->num_info;cntr_info_1++) {
13583                         char *idx_1=NULL;
13584                         if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
13585                                 ndr_print_drsuapi_DsSiteCostInfo(ndr, "info", &r->info[cntr_info_1]);
13586                                 free(idx_1);
13587                         }
13588                 }
13589                 ndr->depth--;
13590         }
13591         ndr->depth--;
13592         ndr_print_uint32(ndr, "flags_reserved", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->flags_reserved);
13593         ndr->depth--;
13594 }
13595
13596 static enum ndr_err_code ndr_push_drsuapi_QuerySitesByCostCtr(struct ndr_push *ndr, int ndr_flags, const union drsuapi_QuerySitesByCostCtr *r)
13597 {
13598         if (ndr_flags & NDR_SCALARS) {
13599                 int level = ndr_push_get_switch_value(ndr, r);
13600                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
13601                 NDR_CHECK(ndr_push_union_align(ndr, 5));
13602                 switch (level) {
13603                         case 1: {
13604                                 NDR_CHECK(ndr_push_drsuapi_QuerySitesByCostCtr1(ndr, NDR_SCALARS, &r->ctr1));
13605                         break; }
13606
13607                         default:
13608                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
13609                 }
13610         }
13611         if (ndr_flags & NDR_BUFFERS) {
13612                 int level = ndr_push_get_switch_value(ndr, r);
13613                 switch (level) {
13614                         case 1:
13615                                 NDR_CHECK(ndr_push_drsuapi_QuerySitesByCostCtr1(ndr, NDR_BUFFERS, &r->ctr1));
13616                         break;
13617
13618                         default:
13619                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
13620                 }
13621         }
13622         return NDR_ERR_SUCCESS;
13623 }
13624
13625 static enum ndr_err_code ndr_pull_drsuapi_QuerySitesByCostCtr(struct ndr_pull *ndr, int ndr_flags, union drsuapi_QuerySitesByCostCtr *r)
13626 {
13627         int level;
13628         uint32_t _level;
13629         level = ndr_pull_get_switch_value(ndr, r);
13630         if (ndr_flags & NDR_SCALARS) {
13631                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
13632                 if (_level != level) {
13633                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
13634                 }
13635                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
13636                 switch (level) {
13637                         case 1: {
13638                                 NDR_CHECK(ndr_pull_drsuapi_QuerySitesByCostCtr1(ndr, NDR_SCALARS, &r->ctr1));
13639                         break; }
13640
13641                         default:
13642                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
13643                 }
13644         }
13645         if (ndr_flags & NDR_BUFFERS) {
13646                 switch (level) {
13647                         case 1:
13648                                 NDR_CHECK(ndr_pull_drsuapi_QuerySitesByCostCtr1(ndr, NDR_BUFFERS, &r->ctr1));
13649                         break;
13650
13651                         default:
13652                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
13653                 }
13654         }
13655         return NDR_ERR_SUCCESS;
13656 }
13657
13658 _PUBLIC_ void ndr_print_drsuapi_QuerySitesByCostCtr(struct ndr_print *ndr, const char *name, const union drsuapi_QuerySitesByCostCtr *r)
13659 {
13660         int level;
13661         level = ndr_print_get_switch_value(ndr, r);
13662         ndr_print_union(ndr, name, level, "drsuapi_QuerySitesByCostCtr");
13663         switch (level) {
13664                 case 1:
13665                         ndr_print_drsuapi_QuerySitesByCostCtr1(ndr, "ctr1", &r->ctr1);
13666                 break;
13667
13668                 default:
13669                         ndr_print_bad_level(ndr, name, level);
13670         }
13671 }
13672
13673 static enum ndr_err_code ndr_push_drsuapi_QuerySitesByCostRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_QuerySitesByCostRequest1 *r)
13674 {
13675         uint32_t cntr_site_to_1;
13676         if (ndr_flags & NDR_SCALARS) {
13677                 NDR_CHECK(ndr_push_align(ndr, 5));
13678                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->site_from));
13679                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_req));
13680                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->site_to));
13681                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
13682                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
13683         }
13684         if (ndr_flags & NDR_BUFFERS) {
13685                 if (r->site_from) {
13686                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->site_from, CH_UTF16)));
13687                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
13688                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->site_from, CH_UTF16)));
13689                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->site_from, ndr_charset_length(r->site_from, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13690                 }
13691                 if (r->site_to) {
13692                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->num_req));
13693                         for (cntr_site_to_1 = 0; cntr_site_to_1 < r->num_req; cntr_site_to_1++) {
13694                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->site_to[cntr_site_to_1]));
13695                         }
13696                         for (cntr_site_to_1 = 0; cntr_site_to_1 < r->num_req; cntr_site_to_1++) {
13697                                 if (r->site_to[cntr_site_to_1]) {
13698                                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->site_to[cntr_site_to_1], CH_UTF16)));
13699                                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
13700                                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->site_to[cntr_site_to_1], CH_UTF16)));
13701                                         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));
13702                                 }
13703                         }
13704                 }
13705         }
13706         return NDR_ERR_SUCCESS;
13707 }
13708
13709 static enum ndr_err_code ndr_pull_drsuapi_QuerySitesByCostRequest1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_QuerySitesByCostRequest1 *r)
13710 {
13711         uint32_t _ptr_site_from;
13712         TALLOC_CTX *_mem_save_site_from_0;
13713         uint32_t _ptr_site_to;
13714         uint32_t cntr_site_to_1;
13715         TALLOC_CTX *_mem_save_site_to_0;
13716         TALLOC_CTX *_mem_save_site_to_1;
13717         TALLOC_CTX *_mem_save_site_to_2;
13718         if (ndr_flags & NDR_SCALARS) {
13719                 NDR_CHECK(ndr_pull_align(ndr, 5));
13720                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_from));
13721                 if (_ptr_site_from) {
13722                         NDR_PULL_ALLOC(ndr, r->site_from);
13723                 } else {
13724                         r->site_from = NULL;
13725                 }
13726                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_req));
13727                 if (r->num_req < 1 || r->num_req > 10000) {
13728                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
13729                 }
13730                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_to));
13731                 if (_ptr_site_to) {
13732                         NDR_PULL_ALLOC(ndr, r->site_to);
13733                 } else {
13734                         r->site_to = NULL;
13735                 }
13736                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
13737                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
13738         }
13739         if (ndr_flags & NDR_BUFFERS) {
13740                 if (r->site_from) {
13741                         _mem_save_site_from_0 = NDR_PULL_GET_MEM_CTX(ndr);
13742                         NDR_PULL_SET_MEM_CTX(ndr, r->site_from, 0);
13743                         NDR_CHECK(ndr_pull_array_size(ndr, &r->site_from));
13744                         NDR_CHECK(ndr_pull_array_length(ndr, &r->site_from));
13745                         if (ndr_get_array_length(ndr, &r->site_from) > ndr_get_array_size(ndr, &r->site_from)) {
13746                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->site_from), ndr_get_array_length(ndr, &r->site_from));
13747                         }
13748                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->site_from), sizeof(uint16_t)));
13749                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->site_from, ndr_get_array_length(ndr, &r->site_from), sizeof(uint16_t), CH_UTF16));
13750                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_from_0, 0);
13751                 }
13752                 if (r->site_to) {
13753                         _mem_save_site_to_0 = NDR_PULL_GET_MEM_CTX(ndr);
13754                         NDR_PULL_SET_MEM_CTX(ndr, r->site_to, 0);
13755                         NDR_CHECK(ndr_pull_array_size(ndr, &r->site_to));
13756                         NDR_PULL_ALLOC_N(ndr, r->site_to, ndr_get_array_size(ndr, &r->site_to));
13757                         _mem_save_site_to_1 = NDR_PULL_GET_MEM_CTX(ndr);
13758                         NDR_PULL_SET_MEM_CTX(ndr, r->site_to, 0);
13759                         for (cntr_site_to_1 = 0; cntr_site_to_1 < r->num_req; cntr_site_to_1++) {
13760                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_to));
13761                                 if (_ptr_site_to) {
13762                                         NDR_PULL_ALLOC(ndr, r->site_to[cntr_site_to_1]);
13763                                 } else {
13764                                         r->site_to[cntr_site_to_1] = NULL;
13765                                 }
13766                         }
13767                         for (cntr_site_to_1 = 0; cntr_site_to_1 < r->num_req; cntr_site_to_1++) {
13768                                 if (r->site_to[cntr_site_to_1]) {
13769                                         _mem_save_site_to_2 = NDR_PULL_GET_MEM_CTX(ndr);
13770                                         NDR_PULL_SET_MEM_CTX(ndr, r->site_to[cntr_site_to_1], 0);
13771                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->site_to[cntr_site_to_1]));
13772                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->site_to[cntr_site_to_1]));
13773                                         if (ndr_get_array_length(ndr, &r->site_to[cntr_site_to_1]) > ndr_get_array_size(ndr, &r->site_to[cntr_site_to_1])) {
13774                                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->site_to[cntr_site_to_1]), ndr_get_array_length(ndr, &r->site_to[cntr_site_to_1]));
13775                                         }
13776                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->site_to[cntr_site_to_1]), sizeof(uint16_t)));
13777                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->site_to[cntr_site_to_1], ndr_get_array_length(ndr, &r->site_to[cntr_site_to_1]), sizeof(uint16_t), CH_UTF16));
13778                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_to_2, 0);
13779                                 }
13780                         }
13781                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_to_1, 0);
13782                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_to_0, 0);
13783                 }
13784                 if (r->site_to) {
13785                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->site_to, r->num_req));
13786                 }
13787         }
13788         return NDR_ERR_SUCCESS;
13789 }
13790
13791 _PUBLIC_ void ndr_print_drsuapi_QuerySitesByCostRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_QuerySitesByCostRequest1 *r)
13792 {
13793         uint32_t cntr_site_to_1;
13794         ndr_print_struct(ndr, name, "drsuapi_QuerySitesByCostRequest1");
13795         ndr->depth++;
13796         ndr_print_ptr(ndr, "site_from", r->site_from);
13797         ndr->depth++;
13798         if (r->site_from) {
13799                 ndr_print_string(ndr, "site_from", r->site_from);
13800         }
13801         ndr->depth--;
13802         ndr_print_uint32(ndr, "num_req", r->num_req);
13803         ndr_print_ptr(ndr, "site_to", r->site_to);
13804         ndr->depth++;
13805         if (r->site_to) {
13806                 ndr->print(ndr, "%s: ARRAY(%d)", "site_to", (int)r->num_req);
13807                 ndr->depth++;
13808                 for (cntr_site_to_1=0;cntr_site_to_1<r->num_req;cntr_site_to_1++) {
13809                         char *idx_1=NULL;
13810                         if (asprintf(&idx_1, "[%d]", cntr_site_to_1) != -1) {
13811                                 ndr_print_ptr(ndr, "site_to", r->site_to[cntr_site_to_1]);
13812                                 ndr->depth++;
13813                                 if (r->site_to[cntr_site_to_1]) {
13814                                         ndr_print_string(ndr, "site_to", r->site_to[cntr_site_to_1]);
13815                                 }
13816                                 ndr->depth--;
13817                                 free(idx_1);
13818                         }
13819                 }
13820                 ndr->depth--;
13821         }
13822         ndr->depth--;
13823         ndr_print_uint32(ndr, "flags", r->flags);
13824         ndr->depth--;
13825 }
13826
13827 static enum ndr_err_code ndr_push_drsuapi_QuerySitesByCostRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_QuerySitesByCostRequest *r)
13828 {
13829         if (ndr_flags & NDR_SCALARS) {
13830                 int level = ndr_push_get_switch_value(ndr, r);
13831                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
13832                 NDR_CHECK(ndr_push_union_align(ndr, 5));
13833                 switch (level) {
13834                         case 1: {
13835                                 NDR_CHECK(ndr_push_drsuapi_QuerySitesByCostRequest1(ndr, NDR_SCALARS, &r->req1));
13836                         break; }
13837
13838                         default:
13839                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
13840                 }
13841         }
13842         if (ndr_flags & NDR_BUFFERS) {
13843                 int level = ndr_push_get_switch_value(ndr, r);
13844                 switch (level) {
13845                         case 1:
13846                                 NDR_CHECK(ndr_push_drsuapi_QuerySitesByCostRequest1(ndr, NDR_BUFFERS, &r->req1));
13847                         break;
13848
13849                         default:
13850                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
13851                 }
13852         }
13853         return NDR_ERR_SUCCESS;
13854 }
13855
13856 static enum ndr_err_code ndr_pull_drsuapi_QuerySitesByCostRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_QuerySitesByCostRequest *r)
13857 {
13858         int level;
13859         uint32_t _level;
13860         level = ndr_pull_get_switch_value(ndr, r);
13861         if (ndr_flags & NDR_SCALARS) {
13862                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
13863                 if (_level != level) {
13864                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
13865                 }
13866                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
13867                 switch (level) {
13868                         case 1: {
13869                                 NDR_CHECK(ndr_pull_drsuapi_QuerySitesByCostRequest1(ndr, NDR_SCALARS, &r->req1));
13870                         break; }
13871
13872                         default:
13873                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
13874                 }
13875         }
13876         if (ndr_flags & NDR_BUFFERS) {
13877                 switch (level) {
13878                         case 1:
13879                                 NDR_CHECK(ndr_pull_drsuapi_QuerySitesByCostRequest1(ndr, NDR_BUFFERS, &r->req1));
13880                         break;
13881
13882                         default:
13883                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
13884                 }
13885         }
13886         return NDR_ERR_SUCCESS;
13887 }
13888
13889 _PUBLIC_ void ndr_print_drsuapi_QuerySitesByCostRequest(struct ndr_print *ndr, const char *name, const union drsuapi_QuerySitesByCostRequest *r)
13890 {
13891         int level;
13892         level = ndr_print_get_switch_value(ndr, r);
13893         ndr_print_union(ndr, name, level, "drsuapi_QuerySitesByCostRequest");
13894         switch (level) {
13895                 case 1:
13896                         ndr_print_drsuapi_QuerySitesByCostRequest1(ndr, "req1", &r->req1);
13897                 break;
13898
13899                 default:
13900                         ndr_print_bad_level(ndr, name, level);
13901         }
13902 }
13903
13904 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsBind(struct ndr_push *ndr, int flags, const struct drsuapi_DsBind *r)
13905 {
13906         if (flags & NDR_IN) {
13907                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.bind_guid));
13908                 if (r->in.bind_guid) {
13909                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.bind_guid));
13910                 }
13911                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.bind_info));
13912                 if (r->in.bind_info) {
13913                         NDR_CHECK(ndr_push_drsuapi_DsBindInfoCtr(ndr, NDR_SCALARS, r->in.bind_info));
13914                 }
13915         }
13916         if (flags & NDR_OUT) {
13917                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.bind_info));
13918                 if (r->out.bind_info) {
13919                         NDR_CHECK(ndr_push_drsuapi_DsBindInfoCtr(ndr, NDR_SCALARS, r->out.bind_info));
13920                 }
13921                 if (r->out.bind_handle == NULL) {
13922                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13923                 }
13924                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.bind_handle));
13925                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13926         }
13927         return NDR_ERR_SUCCESS;
13928 }
13929
13930 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsBind(struct ndr_pull *ndr, int flags, struct drsuapi_DsBind *r)
13931 {
13932         uint32_t _ptr_bind_guid;
13933         uint32_t _ptr_bind_info;
13934         TALLOC_CTX *_mem_save_bind_guid_0;
13935         TALLOC_CTX *_mem_save_bind_info_0;
13936         TALLOC_CTX *_mem_save_bind_handle_0;
13937         if (flags & NDR_IN) {
13938                 ZERO_STRUCT(r->out);
13939
13940                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_bind_guid));
13941                 if (_ptr_bind_guid) {
13942                         NDR_PULL_ALLOC(ndr, r->in.bind_guid);
13943                 } else {
13944                         r->in.bind_guid = NULL;
13945                 }
13946                 if (r->in.bind_guid) {
13947                         _mem_save_bind_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
13948                         NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_guid, 0);
13949                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.bind_guid));
13950                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_guid_0, 0);
13951                 }
13952                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_bind_info));
13953                 if (_ptr_bind_info) {
13954                         NDR_PULL_ALLOC(ndr, r->in.bind_info);
13955                 } else {
13956                         r->in.bind_info = NULL;
13957                 }
13958                 if (r->in.bind_info) {
13959                         _mem_save_bind_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
13960                         NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_info, 0);
13961                         NDR_CHECK(ndr_pull_drsuapi_DsBindInfoCtr(ndr, NDR_SCALARS, r->in.bind_info));
13962                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_info_0, 0);
13963                 }
13964                 NDR_PULL_ALLOC(ndr, r->out.bind_handle);
13965                 ZERO_STRUCTP(r->out.bind_handle);
13966         }
13967         if (flags & NDR_OUT) {
13968                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_bind_info));
13969                 if (_ptr_bind_info) {
13970                         NDR_PULL_ALLOC(ndr, r->out.bind_info);
13971                 } else {
13972                         r->out.bind_info = NULL;
13973                 }
13974                 if (r->out.bind_info) {
13975                         _mem_save_bind_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
13976                         NDR_PULL_SET_MEM_CTX(ndr, r->out.bind_info, 0);
13977                         NDR_CHECK(ndr_pull_drsuapi_DsBindInfoCtr(ndr, NDR_SCALARS, r->out.bind_info));
13978                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_info_0, 0);
13979                 }
13980                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13981                         NDR_PULL_ALLOC(ndr, r->out.bind_handle);
13982                 }
13983                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
13984                 NDR_PULL_SET_MEM_CTX(ndr, r->out.bind_handle, LIBNDR_FLAG_REF_ALLOC);
13985                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.bind_handle));
13986                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
13987                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13988         }
13989         return NDR_ERR_SUCCESS;
13990 }
13991
13992 _PUBLIC_ void ndr_print_drsuapi_DsBind(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsBind *r)
13993 {
13994         ndr_print_struct(ndr, name, "drsuapi_DsBind");
13995         ndr->depth++;
13996         if (flags & NDR_SET_VALUES) {
13997                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13998         }
13999         if (flags & NDR_IN) {
14000                 ndr_print_struct(ndr, "in", "drsuapi_DsBind");
14001                 ndr->depth++;
14002                 ndr_print_ptr(ndr, "bind_guid", r->in.bind_guid);
14003                 ndr->depth++;
14004                 if (r->in.bind_guid) {
14005                         ndr_print_GUID(ndr, "bind_guid", r->in.bind_guid);
14006                 }
14007                 ndr->depth--;
14008                 ndr_print_ptr(ndr, "bind_info", r->in.bind_info);
14009                 ndr->depth++;
14010                 if (r->in.bind_info) {
14011                         ndr_print_drsuapi_DsBindInfoCtr(ndr, "bind_info", r->in.bind_info);
14012                 }
14013                 ndr->depth--;
14014                 ndr->depth--;
14015         }
14016         if (flags & NDR_OUT) {
14017                 ndr_print_struct(ndr, "out", "drsuapi_DsBind");
14018                 ndr->depth++;
14019                 ndr_print_ptr(ndr, "bind_info", r->out.bind_info);
14020                 ndr->depth++;
14021                 if (r->out.bind_info) {
14022                         ndr_print_drsuapi_DsBindInfoCtr(ndr, "bind_info", r->out.bind_info);
14023                 }
14024                 ndr->depth--;
14025                 ndr_print_ptr(ndr, "bind_handle", r->out.bind_handle);
14026                 ndr->depth++;
14027                 ndr_print_policy_handle(ndr, "bind_handle", r->out.bind_handle);
14028                 ndr->depth--;
14029                 ndr_print_WERROR(ndr, "result", r->out.result);
14030                 ndr->depth--;
14031         }
14032         ndr->depth--;
14033 }
14034
14035 static enum ndr_err_code ndr_push_drsuapi_DsUnbind(struct ndr_push *ndr, int flags, const struct drsuapi_DsUnbind *r)
14036 {
14037         if (flags & NDR_IN) {
14038                 if (r->in.bind_handle == NULL) {
14039                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14040                 }
14041                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
14042         }
14043         if (flags & NDR_OUT) {
14044                 if (r->out.bind_handle == NULL) {
14045                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14046                 }
14047                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.bind_handle));
14048                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14049         }
14050         return NDR_ERR_SUCCESS;
14051 }
14052
14053 static enum ndr_err_code ndr_pull_drsuapi_DsUnbind(struct ndr_pull *ndr, int flags, struct drsuapi_DsUnbind *r)
14054 {
14055         TALLOC_CTX *_mem_save_bind_handle_0;
14056         if (flags & NDR_IN) {
14057                 ZERO_STRUCT(r->out);
14058
14059                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14060                         NDR_PULL_ALLOC(ndr, r->in.bind_handle);
14061                 }
14062                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
14063                 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
14064                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
14065                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
14066                 NDR_PULL_ALLOC(ndr, r->out.bind_handle);
14067                 *r->out.bind_handle = *r->in.bind_handle;
14068         }
14069         if (flags & NDR_OUT) {
14070                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14071                         NDR_PULL_ALLOC(ndr, r->out.bind_handle);
14072                 }
14073                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
14074                 NDR_PULL_SET_MEM_CTX(ndr, r->out.bind_handle, LIBNDR_FLAG_REF_ALLOC);
14075                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.bind_handle));
14076                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
14077                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14078         }
14079         return NDR_ERR_SUCCESS;
14080 }
14081
14082 _PUBLIC_ void ndr_print_drsuapi_DsUnbind(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsUnbind *r)
14083 {
14084         ndr_print_struct(ndr, name, "drsuapi_DsUnbind");
14085         ndr->depth++;
14086         if (flags & NDR_SET_VALUES) {
14087                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14088         }
14089         if (flags & NDR_IN) {
14090                 ndr_print_struct(ndr, "in", "drsuapi_DsUnbind");
14091                 ndr->depth++;
14092                 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
14093                 ndr->depth++;
14094                 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
14095                 ndr->depth--;
14096                 ndr->depth--;
14097         }
14098         if (flags & NDR_OUT) {
14099                 ndr_print_struct(ndr, "out", "drsuapi_DsUnbind");
14100                 ndr->depth++;
14101                 ndr_print_ptr(ndr, "bind_handle", r->out.bind_handle);
14102                 ndr->depth++;
14103                 ndr_print_policy_handle(ndr, "bind_handle", r->out.bind_handle);
14104                 ndr->depth--;
14105                 ndr_print_WERROR(ndr, "result", r->out.result);
14106                 ndr->depth--;
14107         }
14108         ndr->depth--;
14109 }
14110
14111 static enum ndr_err_code ndr_push_drsuapi_DsReplicaSync(struct ndr_push *ndr, int flags, const struct drsuapi_DsReplicaSync *r)
14112 {
14113         if (flags & NDR_IN) {
14114                 if (r->in.bind_handle == NULL) {
14115                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14116                 }
14117                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
14118                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
14119                 if (r->in.req == NULL) {
14120                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14121                 }
14122                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.req, r->in.level));
14123                 NDR_CHECK(ndr_push_drsuapi_DsReplicaSyncRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
14124         }
14125         if (flags & NDR_OUT) {
14126                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14127         }
14128         return NDR_ERR_SUCCESS;
14129 }
14130
14131 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaSync(struct ndr_pull *ndr, int flags, struct drsuapi_DsReplicaSync *r)
14132 {
14133         TALLOC_CTX *_mem_save_bind_handle_0;
14134         TALLOC_CTX *_mem_save_req_0;
14135         if (flags & NDR_IN) {
14136                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14137                         NDR_PULL_ALLOC(ndr, r->in.bind_handle);
14138                 }
14139                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
14140                 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
14141                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
14142                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
14143                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
14144                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14145                         NDR_PULL_ALLOC(ndr, r->in.req);
14146                 }
14147                 _mem_save_req_0 = NDR_PULL_GET_MEM_CTX(ndr);
14148                 NDR_PULL_SET_MEM_CTX(ndr, r->in.req, LIBNDR_FLAG_REF_ALLOC);
14149                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.req, r->in.level));
14150                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaSyncRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
14151                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_0, LIBNDR_FLAG_REF_ALLOC);
14152         }
14153         if (flags & NDR_OUT) {
14154                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14155         }
14156         return NDR_ERR_SUCCESS;
14157 }
14158
14159 _PUBLIC_ void ndr_print_drsuapi_DsReplicaSync(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsReplicaSync *r)
14160 {
14161         ndr_print_struct(ndr, name, "drsuapi_DsReplicaSync");
14162         ndr->depth++;
14163         if (flags & NDR_SET_VALUES) {
14164                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14165         }
14166         if (flags & NDR_IN) {
14167                 ndr_print_struct(ndr, "in", "drsuapi_DsReplicaSync");
14168                 ndr->depth++;
14169                 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
14170                 ndr->depth++;
14171                 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
14172                 ndr->depth--;
14173                 ndr_print_uint32(ndr, "level", r->in.level);
14174                 ndr_print_ptr(ndr, "req", r->in.req);
14175                 ndr->depth++;
14176                 ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
14177                 ndr_print_drsuapi_DsReplicaSyncRequest(ndr, "req", r->in.req);
14178                 ndr->depth--;
14179                 ndr->depth--;
14180         }
14181         if (flags & NDR_OUT) {
14182                 ndr_print_struct(ndr, "out", "drsuapi_DsReplicaSync");
14183                 ndr->depth++;
14184                 ndr_print_WERROR(ndr, "result", r->out.result);
14185                 ndr->depth--;
14186         }
14187         ndr->depth--;
14188 }
14189
14190 static enum ndr_err_code ndr_push_drsuapi_DsGetNCChanges(struct ndr_push *ndr, int flags, const struct drsuapi_DsGetNCChanges *r)
14191 {
14192         if (flags & NDR_IN) {
14193                 if (r->in.bind_handle == NULL) {
14194                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14195                 }
14196                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
14197                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
14198                 if (r->in.req == NULL) {
14199                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14200                 }
14201                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.req, r->in.level));
14202                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
14203         }
14204         if (flags & NDR_OUT) {
14205                 if (r->out.level_out == NULL) {
14206                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14207                 }
14208                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.level_out));
14209                 if (r->out.ctr == NULL) {
14210                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14211                 }
14212                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
14213                 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
14214                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14215         }
14216         return NDR_ERR_SUCCESS;
14217 }
14218
14219 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChanges(struct ndr_pull *ndr, int flags, struct drsuapi_DsGetNCChanges *r)
14220 {
14221         TALLOC_CTX *_mem_save_bind_handle_0;
14222         TALLOC_CTX *_mem_save_req_0;
14223         TALLOC_CTX *_mem_save_level_out_0;
14224         TALLOC_CTX *_mem_save_ctr_0;
14225         if (flags & NDR_IN) {
14226                 ZERO_STRUCT(r->out);
14227
14228                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14229                         NDR_PULL_ALLOC(ndr, r->in.bind_handle);
14230                 }
14231                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
14232                 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
14233                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
14234                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
14235                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
14236                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14237                         NDR_PULL_ALLOC(ndr, r->in.req);
14238                 }
14239                 _mem_save_req_0 = NDR_PULL_GET_MEM_CTX(ndr);
14240                 NDR_PULL_SET_MEM_CTX(ndr, r->in.req, LIBNDR_FLAG_REF_ALLOC);
14241                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.req, r->in.level));
14242                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
14243                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_0, LIBNDR_FLAG_REF_ALLOC);
14244                 NDR_PULL_ALLOC(ndr, r->out.level_out);
14245                 ZERO_STRUCTP(r->out.level_out);
14246                 NDR_PULL_ALLOC(ndr, r->out.ctr);
14247                 ZERO_STRUCTP(r->out.ctr);
14248         }
14249         if (flags & NDR_OUT) {
14250                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14251                         NDR_PULL_ALLOC(ndr, r->out.level_out);
14252                 }
14253                 _mem_save_level_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
14254                 NDR_PULL_SET_MEM_CTX(ndr, r->out.level_out, LIBNDR_FLAG_REF_ALLOC);
14255                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.level_out));
14256                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_out_0, LIBNDR_FLAG_REF_ALLOC);
14257                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14258                         NDR_PULL_ALLOC(ndr, r->out.ctr);
14259                 }
14260                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
14261                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
14262                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
14263                 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
14264                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
14265                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14266         }
14267         return NDR_ERR_SUCCESS;
14268 }
14269
14270 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChanges(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsGetNCChanges *r)
14271 {
14272         ndr_print_struct(ndr, name, "drsuapi_DsGetNCChanges");
14273         ndr->depth++;
14274         if (flags & NDR_SET_VALUES) {
14275                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14276         }
14277         if (flags & NDR_IN) {
14278                 ndr_print_struct(ndr, "in", "drsuapi_DsGetNCChanges");
14279                 ndr->depth++;
14280                 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
14281                 ndr->depth++;
14282                 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
14283                 ndr->depth--;
14284                 ndr_print_uint32(ndr, "level", r->in.level);
14285                 ndr_print_ptr(ndr, "req", r->in.req);
14286                 ndr->depth++;
14287                 ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
14288                 ndr_print_drsuapi_DsGetNCChangesRequest(ndr, "req", r->in.req);
14289                 ndr->depth--;
14290                 ndr->depth--;
14291         }
14292         if (flags & NDR_OUT) {
14293                 ndr_print_struct(ndr, "out", "drsuapi_DsGetNCChanges");
14294                 ndr->depth++;
14295                 ndr_print_ptr(ndr, "level_out", r->out.level_out);
14296                 ndr->depth++;
14297                 ndr_print_uint32(ndr, "level_out", *r->out.level_out);
14298                 ndr->depth--;
14299                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
14300                 ndr->depth++;
14301                 ndr_print_set_switch_value(ndr, r->out.ctr, *r->out.level_out);
14302                 ndr_print_drsuapi_DsGetNCChangesCtr(ndr, "ctr", r->out.ctr);
14303                 ndr->depth--;
14304                 ndr_print_WERROR(ndr, "result", r->out.result);
14305                 ndr->depth--;
14306         }
14307         ndr->depth--;
14308 }
14309
14310 static enum ndr_err_code ndr_push_drsuapi_DsReplicaUpdateRefs(struct ndr_push *ndr, int flags, const struct drsuapi_DsReplicaUpdateRefs *r)
14311 {
14312         if (flags & NDR_IN) {
14313                 if (r->in.bind_handle == NULL) {
14314                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14315                 }
14316                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
14317                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
14318                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.req, r->in.level));
14319                 NDR_CHECK(ndr_push_drsuapi_DsReplicaUpdateRefsRequest(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
14320         }
14321         if (flags & NDR_OUT) {
14322                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14323         }
14324         return NDR_ERR_SUCCESS;
14325 }
14326
14327 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaUpdateRefs(struct ndr_pull *ndr, int flags, struct drsuapi_DsReplicaUpdateRefs *r)
14328 {
14329         TALLOC_CTX *_mem_save_bind_handle_0;
14330         if (flags & NDR_IN) {
14331                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14332                         NDR_PULL_ALLOC(ndr, r->in.bind_handle);
14333                 }
14334                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
14335                 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
14336                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
14337                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
14338                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
14339                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.req, r->in.level));
14340                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaUpdateRefsRequest(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
14341         }
14342         if (flags & NDR_OUT) {
14343                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14344         }
14345         return NDR_ERR_SUCCESS;
14346 }
14347
14348 _PUBLIC_ void ndr_print_drsuapi_DsReplicaUpdateRefs(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsReplicaUpdateRefs *r)
14349 {
14350         ndr_print_struct(ndr, name, "drsuapi_DsReplicaUpdateRefs");
14351         ndr->depth++;
14352         if (flags & NDR_SET_VALUES) {
14353                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14354         }
14355         if (flags & NDR_IN) {
14356                 ndr_print_struct(ndr, "in", "drsuapi_DsReplicaUpdateRefs");
14357                 ndr->depth++;
14358                 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
14359                 ndr->depth++;
14360                 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
14361                 ndr->depth--;
14362                 ndr_print_uint32(ndr, "level", r->in.level);
14363                 ndr_print_set_switch_value(ndr, &r->in.req, r->in.level);
14364                 ndr_print_drsuapi_DsReplicaUpdateRefsRequest(ndr, "req", &r->in.req);
14365                 ndr->depth--;
14366         }
14367         if (flags & NDR_OUT) {
14368                 ndr_print_struct(ndr, "out", "drsuapi_DsReplicaUpdateRefs");
14369                 ndr->depth++;
14370                 ndr_print_WERROR(ndr, "result", r->out.result);
14371                 ndr->depth--;
14372         }
14373         ndr->depth--;
14374 }
14375
14376 static enum ndr_err_code ndr_push_drsuapi_DsReplicaAdd(struct ndr_push *ndr, int flags, const struct drsuapi_DsReplicaAdd *r)
14377 {
14378         if (flags & NDR_IN) {
14379                 if (r->in.bind_handle == NULL) {
14380                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14381                 }
14382                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
14383                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
14384                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.req, r->in.level));
14385                 NDR_CHECK(ndr_push_drsuapi_DsReplicaAddRequest(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
14386         }
14387         if (flags & NDR_OUT) {
14388                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14389         }
14390         return NDR_ERR_SUCCESS;
14391 }
14392
14393 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaAdd(struct ndr_pull *ndr, int flags, struct drsuapi_DsReplicaAdd *r)
14394 {
14395         TALLOC_CTX *_mem_save_bind_handle_0;
14396         if (flags & NDR_IN) {
14397                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14398                         NDR_PULL_ALLOC(ndr, r->in.bind_handle);
14399                 }
14400                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
14401                 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
14402                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
14403                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
14404                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
14405                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.req, r->in.level));
14406                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAddRequest(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
14407         }
14408         if (flags & NDR_OUT) {
14409                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14410         }
14411         return NDR_ERR_SUCCESS;
14412 }
14413
14414 _PUBLIC_ void ndr_print_drsuapi_DsReplicaAdd(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsReplicaAdd *r)
14415 {
14416         ndr_print_struct(ndr, name, "drsuapi_DsReplicaAdd");
14417         ndr->depth++;
14418         if (flags & NDR_SET_VALUES) {
14419                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14420         }
14421         if (flags & NDR_IN) {
14422                 ndr_print_struct(ndr, "in", "drsuapi_DsReplicaAdd");
14423                 ndr->depth++;
14424                 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
14425                 ndr->depth++;
14426                 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
14427                 ndr->depth--;
14428                 ndr_print_uint32(ndr, "level", r->in.level);
14429                 ndr_print_set_switch_value(ndr, &r->in.req, r->in.level);
14430                 ndr_print_drsuapi_DsReplicaAddRequest(ndr, "req", &r->in.req);
14431                 ndr->depth--;
14432         }
14433         if (flags & NDR_OUT) {
14434                 ndr_print_struct(ndr, "out", "drsuapi_DsReplicaAdd");
14435                 ndr->depth++;
14436                 ndr_print_WERROR(ndr, "result", r->out.result);
14437                 ndr->depth--;
14438         }
14439         ndr->depth--;
14440 }
14441
14442 static enum ndr_err_code ndr_push_drsuapi_DsReplicaDel(struct ndr_push *ndr, int flags, const struct drsuapi_DsReplicaDel *r)
14443 {
14444         if (flags & NDR_IN) {
14445                 if (r->in.bind_handle == NULL) {
14446                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14447                 }
14448                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
14449                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
14450                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.req, r->in.level));
14451                 NDR_CHECK(ndr_push_drsuapi_DsReplicaDelRequest(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
14452         }
14453         if (flags & NDR_OUT) {
14454                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14455         }
14456         return NDR_ERR_SUCCESS;
14457 }
14458
14459 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaDel(struct ndr_pull *ndr, int flags, struct drsuapi_DsReplicaDel *r)
14460 {
14461         TALLOC_CTX *_mem_save_bind_handle_0;
14462         if (flags & NDR_IN) {
14463                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14464                         NDR_PULL_ALLOC(ndr, r->in.bind_handle);
14465                 }
14466                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
14467                 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
14468                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
14469                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
14470                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
14471                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.req, r->in.level));
14472                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaDelRequest(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
14473         }
14474         if (flags & NDR_OUT) {
14475                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14476         }
14477         return NDR_ERR_SUCCESS;
14478 }
14479
14480 _PUBLIC_ void ndr_print_drsuapi_DsReplicaDel(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsReplicaDel *r)
14481 {
14482         ndr_print_struct(ndr, name, "drsuapi_DsReplicaDel");
14483         ndr->depth++;
14484         if (flags & NDR_SET_VALUES) {
14485                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14486         }
14487         if (flags & NDR_IN) {
14488                 ndr_print_struct(ndr, "in", "drsuapi_DsReplicaDel");
14489                 ndr->depth++;
14490                 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
14491                 ndr->depth++;
14492                 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
14493                 ndr->depth--;
14494                 ndr_print_uint32(ndr, "level", r->in.level);
14495                 ndr_print_set_switch_value(ndr, &r->in.req, r->in.level);
14496                 ndr_print_drsuapi_DsReplicaDelRequest(ndr, "req", &r->in.req);
14497                 ndr->depth--;
14498         }
14499         if (flags & NDR_OUT) {
14500                 ndr_print_struct(ndr, "out", "drsuapi_DsReplicaDel");
14501                 ndr->depth++;
14502                 ndr_print_WERROR(ndr, "result", r->out.result);
14503                 ndr->depth--;
14504         }
14505         ndr->depth--;
14506 }
14507
14508 static enum ndr_err_code ndr_push_drsuapi_DsReplicaMod(struct ndr_push *ndr, int flags, const struct drsuapi_DsReplicaMod *r)
14509 {
14510         if (flags & NDR_IN) {
14511                 if (r->in.bind_handle == NULL) {
14512                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14513                 }
14514                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
14515                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
14516                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.req, r->in.level));
14517                 NDR_CHECK(ndr_push_drsuapi_DsReplicaModRequest(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
14518         }
14519         if (flags & NDR_OUT) {
14520                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14521         }
14522         return NDR_ERR_SUCCESS;
14523 }
14524
14525 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaMod(struct ndr_pull *ndr, int flags, struct drsuapi_DsReplicaMod *r)
14526 {
14527         TALLOC_CTX *_mem_save_bind_handle_0;
14528         if (flags & NDR_IN) {
14529                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14530                         NDR_PULL_ALLOC(ndr, r->in.bind_handle);
14531                 }
14532                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
14533                 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
14534                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
14535                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
14536                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
14537                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.req, r->in.level));
14538                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaModRequest(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
14539         }
14540         if (flags & NDR_OUT) {
14541                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14542         }
14543         return NDR_ERR_SUCCESS;
14544 }
14545
14546 _PUBLIC_ void ndr_print_drsuapi_DsReplicaMod(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsReplicaMod *r)
14547 {
14548         ndr_print_struct(ndr, name, "drsuapi_DsReplicaMod");
14549         ndr->depth++;
14550         if (flags & NDR_SET_VALUES) {
14551                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14552         }
14553         if (flags & NDR_IN) {
14554                 ndr_print_struct(ndr, "in", "drsuapi_DsReplicaMod");
14555                 ndr->depth++;
14556                 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
14557                 ndr->depth++;
14558                 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
14559                 ndr->depth--;
14560                 ndr_print_uint32(ndr, "level", r->in.level);
14561                 ndr_print_set_switch_value(ndr, &r->in.req, r->in.level);
14562                 ndr_print_drsuapi_DsReplicaModRequest(ndr, "req", &r->in.req);
14563                 ndr->depth--;
14564         }
14565         if (flags & NDR_OUT) {
14566                 ndr_print_struct(ndr, "out", "drsuapi_DsReplicaMod");
14567                 ndr->depth++;
14568                 ndr_print_WERROR(ndr, "result", r->out.result);
14569                 ndr->depth--;
14570         }
14571         ndr->depth--;
14572 }
14573
14574 static enum ndr_err_code ndr_push_DRSUAPI_VERIFY_NAMES(struct ndr_push *ndr, int flags, const struct DRSUAPI_VERIFY_NAMES *r)
14575 {
14576         if (flags & NDR_IN) {
14577         }
14578         if (flags & NDR_OUT) {
14579                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14580         }
14581         return NDR_ERR_SUCCESS;
14582 }
14583
14584 static enum ndr_err_code ndr_pull_DRSUAPI_VERIFY_NAMES(struct ndr_pull *ndr, int flags, struct DRSUAPI_VERIFY_NAMES *r)
14585 {
14586         if (flags & NDR_IN) {
14587         }
14588         if (flags & NDR_OUT) {
14589                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14590         }
14591         return NDR_ERR_SUCCESS;
14592 }
14593
14594 _PUBLIC_ void ndr_print_DRSUAPI_VERIFY_NAMES(struct ndr_print *ndr, const char *name, int flags, const struct DRSUAPI_VERIFY_NAMES *r)
14595 {
14596         ndr_print_struct(ndr, name, "DRSUAPI_VERIFY_NAMES");
14597         ndr->depth++;
14598         if (flags & NDR_SET_VALUES) {
14599                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14600         }
14601         if (flags & NDR_IN) {
14602                 ndr_print_struct(ndr, "in", "DRSUAPI_VERIFY_NAMES");
14603                 ndr->depth++;
14604                 ndr->depth--;
14605         }
14606         if (flags & NDR_OUT) {
14607                 ndr_print_struct(ndr, "out", "DRSUAPI_VERIFY_NAMES");
14608                 ndr->depth++;
14609                 ndr_print_WERROR(ndr, "result", r->out.result);
14610                 ndr->depth--;
14611         }
14612         ndr->depth--;
14613 }
14614
14615 static enum ndr_err_code ndr_push_drsuapi_DsGetMemberships(struct ndr_push *ndr, int flags, const struct drsuapi_DsGetMemberships *r)
14616 {
14617         if (flags & NDR_IN) {
14618                 if (r->in.bind_handle == NULL) {
14619                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14620                 }
14621                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
14622                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
14623                 if (r->in.req == NULL) {
14624                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14625                 }
14626                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.req, r->in.level));
14627                 NDR_CHECK(ndr_push_drsuapi_DsGetMembershipsRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
14628         }
14629         if (flags & NDR_OUT) {
14630                 if (r->out.level_out == NULL) {
14631                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14632                 }
14633                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.level_out));
14634                 if (r->out.ctr == NULL) {
14635                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14636                 }
14637                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
14638                 NDR_CHECK(ndr_push_drsuapi_DsGetMembershipsCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
14639                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14640         }
14641         return NDR_ERR_SUCCESS;
14642 }
14643
14644 static enum ndr_err_code ndr_pull_drsuapi_DsGetMemberships(struct ndr_pull *ndr, int flags, struct drsuapi_DsGetMemberships *r)
14645 {
14646         TALLOC_CTX *_mem_save_bind_handle_0;
14647         TALLOC_CTX *_mem_save_req_0;
14648         TALLOC_CTX *_mem_save_level_out_0;
14649         TALLOC_CTX *_mem_save_ctr_0;
14650         if (flags & NDR_IN) {
14651                 ZERO_STRUCT(r->out);
14652
14653                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14654                         NDR_PULL_ALLOC(ndr, r->in.bind_handle);
14655                 }
14656                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
14657                 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
14658                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
14659                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
14660                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
14661                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14662                         NDR_PULL_ALLOC(ndr, r->in.req);
14663                 }
14664                 _mem_save_req_0 = NDR_PULL_GET_MEM_CTX(ndr);
14665                 NDR_PULL_SET_MEM_CTX(ndr, r->in.req, LIBNDR_FLAG_REF_ALLOC);
14666                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.req, r->in.level));
14667                 NDR_CHECK(ndr_pull_drsuapi_DsGetMembershipsRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
14668                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_0, LIBNDR_FLAG_REF_ALLOC);
14669                 NDR_PULL_ALLOC(ndr, r->out.level_out);
14670                 ZERO_STRUCTP(r->out.level_out);
14671                 NDR_PULL_ALLOC(ndr, r->out.ctr);
14672                 ZERO_STRUCTP(r->out.ctr);
14673         }
14674         if (flags & NDR_OUT) {
14675                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14676                         NDR_PULL_ALLOC(ndr, r->out.level_out);
14677                 }
14678                 _mem_save_level_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
14679                 NDR_PULL_SET_MEM_CTX(ndr, r->out.level_out, LIBNDR_FLAG_REF_ALLOC);
14680                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.level_out));
14681                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_out_0, LIBNDR_FLAG_REF_ALLOC);
14682                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14683                         NDR_PULL_ALLOC(ndr, r->out.ctr);
14684                 }
14685                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
14686                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
14687                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
14688                 NDR_CHECK(ndr_pull_drsuapi_DsGetMembershipsCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
14689                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
14690                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14691         }
14692         return NDR_ERR_SUCCESS;
14693 }
14694
14695 _PUBLIC_ void ndr_print_drsuapi_DsGetMemberships(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsGetMemberships *r)
14696 {
14697         ndr_print_struct(ndr, name, "drsuapi_DsGetMemberships");
14698         ndr->depth++;
14699         if (flags & NDR_SET_VALUES) {
14700                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14701         }
14702         if (flags & NDR_IN) {
14703                 ndr_print_struct(ndr, "in", "drsuapi_DsGetMemberships");
14704                 ndr->depth++;
14705                 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
14706                 ndr->depth++;
14707                 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
14708                 ndr->depth--;
14709                 ndr_print_uint32(ndr, "level", r->in.level);
14710                 ndr_print_ptr(ndr, "req", r->in.req);
14711                 ndr->depth++;
14712                 ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
14713                 ndr_print_drsuapi_DsGetMembershipsRequest(ndr, "req", r->in.req);
14714                 ndr->depth--;
14715                 ndr->depth--;
14716         }
14717         if (flags & NDR_OUT) {
14718                 ndr_print_struct(ndr, "out", "drsuapi_DsGetMemberships");
14719                 ndr->depth++;
14720                 ndr_print_ptr(ndr, "level_out", r->out.level_out);
14721                 ndr->depth++;
14722                 ndr_print_uint32(ndr, "level_out", *r->out.level_out);
14723                 ndr->depth--;
14724                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
14725                 ndr->depth++;
14726                 ndr_print_set_switch_value(ndr, r->out.ctr, *r->out.level_out);
14727                 ndr_print_drsuapi_DsGetMembershipsCtr(ndr, "ctr", r->out.ctr);
14728                 ndr->depth--;
14729                 ndr_print_WERROR(ndr, "result", r->out.result);
14730                 ndr->depth--;
14731         }
14732         ndr->depth--;
14733 }
14734
14735 static enum ndr_err_code ndr_push_DRSUAPI_INTER_DOMAIN_MOVE(struct ndr_push *ndr, int flags, const struct DRSUAPI_INTER_DOMAIN_MOVE *r)
14736 {
14737         if (flags & NDR_IN) {
14738         }
14739         if (flags & NDR_OUT) {
14740                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14741         }
14742         return NDR_ERR_SUCCESS;
14743 }
14744
14745 static enum ndr_err_code ndr_pull_DRSUAPI_INTER_DOMAIN_MOVE(struct ndr_pull *ndr, int flags, struct DRSUAPI_INTER_DOMAIN_MOVE *r)
14746 {
14747         if (flags & NDR_IN) {
14748         }
14749         if (flags & NDR_OUT) {
14750                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14751         }
14752         return NDR_ERR_SUCCESS;
14753 }
14754
14755 _PUBLIC_ void ndr_print_DRSUAPI_INTER_DOMAIN_MOVE(struct ndr_print *ndr, const char *name, int flags, const struct DRSUAPI_INTER_DOMAIN_MOVE *r)
14756 {
14757         ndr_print_struct(ndr, name, "DRSUAPI_INTER_DOMAIN_MOVE");
14758         ndr->depth++;
14759         if (flags & NDR_SET_VALUES) {
14760                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14761         }
14762         if (flags & NDR_IN) {
14763                 ndr_print_struct(ndr, "in", "DRSUAPI_INTER_DOMAIN_MOVE");
14764                 ndr->depth++;
14765                 ndr->depth--;
14766         }
14767         if (flags & NDR_OUT) {
14768                 ndr_print_struct(ndr, "out", "DRSUAPI_INTER_DOMAIN_MOVE");
14769                 ndr->depth++;
14770                 ndr_print_WERROR(ndr, "result", r->out.result);
14771                 ndr->depth--;
14772         }
14773         ndr->depth--;
14774 }
14775
14776 static enum ndr_err_code ndr_push_drsuapi_DsGetNT4ChangeLog(struct ndr_push *ndr, int flags, const struct drsuapi_DsGetNT4ChangeLog *r)
14777 {
14778         if (flags & NDR_IN) {
14779                 if (r->in.bind_handle == NULL) {
14780                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14781                 }
14782                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
14783                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
14784                 if (r->in.req == NULL) {
14785                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14786                 }
14787                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.req, r->in.level));
14788                 NDR_CHECK(ndr_push_drsuapi_DsGetNT4ChangeLogRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
14789         }
14790         if (flags & NDR_OUT) {
14791                 if (r->out.level_out == NULL) {
14792                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14793                 }
14794                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.level_out));
14795                 if (r->out.info == NULL) {
14796                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14797                 }
14798                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, *r->out.level_out));
14799                 NDR_CHECK(ndr_push_drsuapi_DsGetNT4ChangeLogInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
14800                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14801         }
14802         return NDR_ERR_SUCCESS;
14803 }
14804
14805 static enum ndr_err_code ndr_pull_drsuapi_DsGetNT4ChangeLog(struct ndr_pull *ndr, int flags, struct drsuapi_DsGetNT4ChangeLog *r)
14806 {
14807         TALLOC_CTX *_mem_save_bind_handle_0;
14808         TALLOC_CTX *_mem_save_req_0;
14809         TALLOC_CTX *_mem_save_level_out_0;
14810         TALLOC_CTX *_mem_save_info_0;
14811         if (flags & NDR_IN) {
14812                 ZERO_STRUCT(r->out);
14813
14814                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14815                         NDR_PULL_ALLOC(ndr, r->in.bind_handle);
14816                 }
14817                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
14818                 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
14819                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
14820                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
14821                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
14822                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14823                         NDR_PULL_ALLOC(ndr, r->in.req);
14824                 }
14825                 _mem_save_req_0 = NDR_PULL_GET_MEM_CTX(ndr);
14826                 NDR_PULL_SET_MEM_CTX(ndr, r->in.req, LIBNDR_FLAG_REF_ALLOC);
14827                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.req, r->in.level));
14828                 NDR_CHECK(ndr_pull_drsuapi_DsGetNT4ChangeLogRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
14829                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_0, LIBNDR_FLAG_REF_ALLOC);
14830                 NDR_PULL_ALLOC(ndr, r->out.level_out);
14831                 ZERO_STRUCTP(r->out.level_out);
14832                 NDR_PULL_ALLOC(ndr, r->out.info);
14833                 ZERO_STRUCTP(r->out.info);
14834         }
14835         if (flags & NDR_OUT) {
14836                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14837                         NDR_PULL_ALLOC(ndr, r->out.level_out);
14838                 }
14839                 _mem_save_level_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
14840                 NDR_PULL_SET_MEM_CTX(ndr, r->out.level_out, LIBNDR_FLAG_REF_ALLOC);
14841                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.level_out));
14842                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_out_0, LIBNDR_FLAG_REF_ALLOC);
14843                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14844                         NDR_PULL_ALLOC(ndr, r->out.info);
14845                 }
14846                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
14847                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
14848                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, *r->out.level_out));
14849                 NDR_CHECK(ndr_pull_drsuapi_DsGetNT4ChangeLogInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
14850                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
14851                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14852         }
14853         return NDR_ERR_SUCCESS;
14854 }
14855
14856 _PUBLIC_ void ndr_print_drsuapi_DsGetNT4ChangeLog(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsGetNT4ChangeLog *r)
14857 {
14858         ndr_print_struct(ndr, name, "drsuapi_DsGetNT4ChangeLog");
14859         ndr->depth++;
14860         if (flags & NDR_SET_VALUES) {
14861                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14862         }
14863         if (flags & NDR_IN) {
14864                 ndr_print_struct(ndr, "in", "drsuapi_DsGetNT4ChangeLog");
14865                 ndr->depth++;
14866                 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
14867                 ndr->depth++;
14868                 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
14869                 ndr->depth--;
14870                 ndr_print_uint32(ndr, "level", r->in.level);
14871                 ndr_print_ptr(ndr, "req", r->in.req);
14872                 ndr->depth++;
14873                 ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
14874                 ndr_print_drsuapi_DsGetNT4ChangeLogRequest(ndr, "req", r->in.req);
14875                 ndr->depth--;
14876                 ndr->depth--;
14877         }
14878         if (flags & NDR_OUT) {
14879                 ndr_print_struct(ndr, "out", "drsuapi_DsGetNT4ChangeLog");
14880                 ndr->depth++;
14881                 ndr_print_ptr(ndr, "level_out", r->out.level_out);
14882                 ndr->depth++;
14883                 ndr_print_uint32(ndr, "level_out", *r->out.level_out);
14884                 ndr->depth--;
14885                 ndr_print_ptr(ndr, "info", r->out.info);
14886                 ndr->depth++;
14887                 ndr_print_set_switch_value(ndr, r->out.info, *r->out.level_out);
14888                 ndr_print_drsuapi_DsGetNT4ChangeLogInfo(ndr, "info", r->out.info);
14889                 ndr->depth--;
14890                 ndr_print_WERROR(ndr, "result", r->out.result);
14891                 ndr->depth--;
14892         }
14893         ndr->depth--;
14894 }
14895
14896 static enum ndr_err_code ndr_push_drsuapi_DsCrackNames(struct ndr_push *ndr, int flags, const struct drsuapi_DsCrackNames *r)
14897 {
14898         if (flags & NDR_IN) {
14899                 if (r->in.bind_handle == NULL) {
14900                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14901                 }
14902                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
14903                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
14904                 if (r->in.req == NULL) {
14905                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14906                 }
14907                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.req, r->in.level));
14908                 NDR_CHECK(ndr_push_drsuapi_DsNameRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
14909         }
14910         if (flags & NDR_OUT) {
14911                 if (r->out.level_out == NULL) {
14912                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14913                 }
14914                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.level_out));
14915                 if (r->out.ctr == NULL) {
14916                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14917                 }
14918                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
14919                 NDR_CHECK(ndr_push_drsuapi_DsNameCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
14920                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14921         }
14922         return NDR_ERR_SUCCESS;
14923 }
14924
14925 static enum ndr_err_code ndr_pull_drsuapi_DsCrackNames(struct ndr_pull *ndr, int flags, struct drsuapi_DsCrackNames *r)
14926 {
14927         TALLOC_CTX *_mem_save_bind_handle_0;
14928         TALLOC_CTX *_mem_save_req_0;
14929         TALLOC_CTX *_mem_save_level_out_0;
14930         TALLOC_CTX *_mem_save_ctr_0;
14931         if (flags & NDR_IN) {
14932                 ZERO_STRUCT(r->out);
14933
14934                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14935                         NDR_PULL_ALLOC(ndr, r->in.bind_handle);
14936                 }
14937                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
14938                 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
14939                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
14940                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
14941                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
14942                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14943                         NDR_PULL_ALLOC(ndr, r->in.req);
14944                 }
14945                 _mem_save_req_0 = NDR_PULL_GET_MEM_CTX(ndr);
14946                 NDR_PULL_SET_MEM_CTX(ndr, r->in.req, LIBNDR_FLAG_REF_ALLOC);
14947                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.req, r->in.level));
14948                 NDR_CHECK(ndr_pull_drsuapi_DsNameRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
14949                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_0, LIBNDR_FLAG_REF_ALLOC);
14950                 NDR_PULL_ALLOC(ndr, r->out.level_out);
14951                 ZERO_STRUCTP(r->out.level_out);
14952                 NDR_PULL_ALLOC(ndr, r->out.ctr);
14953                 ZERO_STRUCTP(r->out.ctr);
14954         }
14955         if (flags & NDR_OUT) {
14956                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14957                         NDR_PULL_ALLOC(ndr, r->out.level_out);
14958                 }
14959                 _mem_save_level_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
14960                 NDR_PULL_SET_MEM_CTX(ndr, r->out.level_out, LIBNDR_FLAG_REF_ALLOC);
14961                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.level_out));
14962                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_out_0, LIBNDR_FLAG_REF_ALLOC);
14963                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14964                         NDR_PULL_ALLOC(ndr, r->out.ctr);
14965                 }
14966                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
14967                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
14968                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
14969                 NDR_CHECK(ndr_pull_drsuapi_DsNameCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
14970                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
14971                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14972         }
14973         return NDR_ERR_SUCCESS;
14974 }
14975
14976 _PUBLIC_ void ndr_print_drsuapi_DsCrackNames(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsCrackNames *r)
14977 {
14978         ndr_print_struct(ndr, name, "drsuapi_DsCrackNames");
14979         ndr->depth++;
14980         if (flags & NDR_SET_VALUES) {
14981                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14982         }
14983         if (flags & NDR_IN) {
14984                 ndr_print_struct(ndr, "in", "drsuapi_DsCrackNames");
14985                 ndr->depth++;
14986                 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
14987                 ndr->depth++;
14988                 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
14989                 ndr->depth--;
14990                 ndr_print_uint32(ndr, "level", r->in.level);
14991                 ndr_print_ptr(ndr, "req", r->in.req);
14992                 ndr->depth++;
14993                 ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
14994                 ndr_print_drsuapi_DsNameRequest(ndr, "req", r->in.req);
14995                 ndr->depth--;
14996                 ndr->depth--;
14997         }
14998         if (flags & NDR_OUT) {
14999                 ndr_print_struct(ndr, "out", "drsuapi_DsCrackNames");
15000                 ndr->depth++;
15001                 ndr_print_ptr(ndr, "level_out", r->out.level_out);
15002                 ndr->depth++;
15003                 ndr_print_uint32(ndr, "level_out", *r->out.level_out);
15004                 ndr->depth--;
15005                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
15006                 ndr->depth++;
15007                 ndr_print_set_switch_value(ndr, r->out.ctr, *r->out.level_out);
15008                 ndr_print_drsuapi_DsNameCtr(ndr, "ctr", r->out.ctr);
15009                 ndr->depth--;
15010                 ndr_print_WERROR(ndr, "result", r->out.result);
15011                 ndr->depth--;
15012         }
15013         ndr->depth--;
15014 }
15015
15016 static enum ndr_err_code ndr_push_drsuapi_DsWriteAccountSpn(struct ndr_push *ndr, int flags, const struct drsuapi_DsWriteAccountSpn *r)
15017 {
15018         if (flags & NDR_IN) {
15019                 if (r->in.bind_handle == NULL) {
15020                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15021                 }
15022                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
15023                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15024                 if (r->in.req == NULL) {
15025                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15026                 }
15027                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.req, r->in.level));
15028                 NDR_CHECK(ndr_push_drsuapi_DsWriteAccountSpnRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
15029         }
15030         if (flags & NDR_OUT) {
15031                 if (r->out.level_out == NULL) {
15032                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15033                 }
15034                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.level_out));
15035                 if (r->out.res == NULL) {
15036                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15037                 }
15038                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.res, *r->out.level_out));
15039                 NDR_CHECK(ndr_push_drsuapi_DsWriteAccountSpnResult(ndr, NDR_SCALARS, r->out.res));
15040                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15041         }
15042         return NDR_ERR_SUCCESS;
15043 }
15044
15045 static enum ndr_err_code ndr_pull_drsuapi_DsWriteAccountSpn(struct ndr_pull *ndr, int flags, struct drsuapi_DsWriteAccountSpn *r)
15046 {
15047         TALLOC_CTX *_mem_save_bind_handle_0;
15048         TALLOC_CTX *_mem_save_req_0;
15049         TALLOC_CTX *_mem_save_level_out_0;
15050         TALLOC_CTX *_mem_save_res_0;
15051         if (flags & NDR_IN) {
15052                 ZERO_STRUCT(r->out);
15053
15054                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15055                         NDR_PULL_ALLOC(ndr, r->in.bind_handle);
15056                 }
15057                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15058                 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
15059                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
15060                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
15061                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15062                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15063                         NDR_PULL_ALLOC(ndr, r->in.req);
15064                 }
15065                 _mem_save_req_0 = NDR_PULL_GET_MEM_CTX(ndr);
15066                 NDR_PULL_SET_MEM_CTX(ndr, r->in.req, LIBNDR_FLAG_REF_ALLOC);
15067                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.req, r->in.level));
15068                 NDR_CHECK(ndr_pull_drsuapi_DsWriteAccountSpnRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
15069                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_0, LIBNDR_FLAG_REF_ALLOC);
15070                 NDR_PULL_ALLOC(ndr, r->out.level_out);
15071                 ZERO_STRUCTP(r->out.level_out);
15072                 NDR_PULL_ALLOC(ndr, r->out.res);
15073                 ZERO_STRUCTP(r->out.res);
15074         }
15075         if (flags & NDR_OUT) {
15076                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15077                         NDR_PULL_ALLOC(ndr, r->out.level_out);
15078                 }
15079                 _mem_save_level_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
15080                 NDR_PULL_SET_MEM_CTX(ndr, r->out.level_out, LIBNDR_FLAG_REF_ALLOC);
15081                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.level_out));
15082                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_out_0, LIBNDR_FLAG_REF_ALLOC);
15083                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15084                         NDR_PULL_ALLOC(ndr, r->out.res);
15085                 }
15086                 _mem_save_res_0 = NDR_PULL_GET_MEM_CTX(ndr);
15087                 NDR_PULL_SET_MEM_CTX(ndr, r->out.res, LIBNDR_FLAG_REF_ALLOC);
15088                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.res, *r->out.level_out));
15089                 NDR_CHECK(ndr_pull_drsuapi_DsWriteAccountSpnResult(ndr, NDR_SCALARS, r->out.res));
15090                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_res_0, LIBNDR_FLAG_REF_ALLOC);
15091                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15092         }
15093         return NDR_ERR_SUCCESS;
15094 }
15095
15096 _PUBLIC_ void ndr_print_drsuapi_DsWriteAccountSpn(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsWriteAccountSpn *r)
15097 {
15098         ndr_print_struct(ndr, name, "drsuapi_DsWriteAccountSpn");
15099         ndr->depth++;
15100         if (flags & NDR_SET_VALUES) {
15101                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15102         }
15103         if (flags & NDR_IN) {
15104                 ndr_print_struct(ndr, "in", "drsuapi_DsWriteAccountSpn");
15105                 ndr->depth++;
15106                 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
15107                 ndr->depth++;
15108                 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
15109                 ndr->depth--;
15110                 ndr_print_uint32(ndr, "level", r->in.level);
15111                 ndr_print_ptr(ndr, "req", r->in.req);
15112                 ndr->depth++;
15113                 ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
15114                 ndr_print_drsuapi_DsWriteAccountSpnRequest(ndr, "req", r->in.req);
15115                 ndr->depth--;
15116                 ndr->depth--;
15117         }
15118         if (flags & NDR_OUT) {
15119                 ndr_print_struct(ndr, "out", "drsuapi_DsWriteAccountSpn");
15120                 ndr->depth++;
15121                 ndr_print_ptr(ndr, "level_out", r->out.level_out);
15122                 ndr->depth++;
15123                 ndr_print_uint32(ndr, "level_out", *r->out.level_out);
15124                 ndr->depth--;
15125                 ndr_print_ptr(ndr, "res", r->out.res);
15126                 ndr->depth++;
15127                 ndr_print_set_switch_value(ndr, r->out.res, *r->out.level_out);
15128                 ndr_print_drsuapi_DsWriteAccountSpnResult(ndr, "res", r->out.res);
15129                 ndr->depth--;
15130                 ndr_print_WERROR(ndr, "result", r->out.result);
15131                 ndr->depth--;
15132         }
15133         ndr->depth--;
15134 }
15135
15136 static enum ndr_err_code ndr_push_drsuapi_DsRemoveDSServer(struct ndr_push *ndr, int flags, const struct drsuapi_DsRemoveDSServer *r)
15137 {
15138         if (flags & NDR_IN) {
15139                 if (r->in.bind_handle == NULL) {
15140                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15141                 }
15142                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
15143                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15144                 if (r->in.req == NULL) {
15145                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15146                 }
15147                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.req, r->in.level));
15148                 NDR_CHECK(ndr_push_drsuapi_DsRemoveDSServerRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
15149         }
15150         if (flags & NDR_OUT) {
15151                 if (r->out.level_out == NULL) {
15152                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15153                 }
15154                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.level_out));
15155                 if (r->out.res == NULL) {
15156                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15157                 }
15158                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.res, *r->out.level_out));
15159                 NDR_CHECK(ndr_push_drsuapi_DsRemoveDSServerResult(ndr, NDR_SCALARS, r->out.res));
15160                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15161         }
15162         return NDR_ERR_SUCCESS;
15163 }
15164
15165 static enum ndr_err_code ndr_pull_drsuapi_DsRemoveDSServer(struct ndr_pull *ndr, int flags, struct drsuapi_DsRemoveDSServer *r)
15166 {
15167         TALLOC_CTX *_mem_save_bind_handle_0;
15168         TALLOC_CTX *_mem_save_req_0;
15169         TALLOC_CTX *_mem_save_level_out_0;
15170         TALLOC_CTX *_mem_save_res_0;
15171         if (flags & NDR_IN) {
15172                 ZERO_STRUCT(r->out);
15173
15174                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15175                         NDR_PULL_ALLOC(ndr, r->in.bind_handle);
15176                 }
15177                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15178                 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
15179                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
15180                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
15181                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15182                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15183                         NDR_PULL_ALLOC(ndr, r->in.req);
15184                 }
15185                 _mem_save_req_0 = NDR_PULL_GET_MEM_CTX(ndr);
15186                 NDR_PULL_SET_MEM_CTX(ndr, r->in.req, LIBNDR_FLAG_REF_ALLOC);
15187                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.req, r->in.level));
15188                 NDR_CHECK(ndr_pull_drsuapi_DsRemoveDSServerRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
15189                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_0, LIBNDR_FLAG_REF_ALLOC);
15190                 NDR_PULL_ALLOC(ndr, r->out.level_out);
15191                 ZERO_STRUCTP(r->out.level_out);
15192                 NDR_PULL_ALLOC(ndr, r->out.res);
15193                 ZERO_STRUCTP(r->out.res);
15194         }
15195         if (flags & NDR_OUT) {
15196                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15197                         NDR_PULL_ALLOC(ndr, r->out.level_out);
15198                 }
15199                 _mem_save_level_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
15200                 NDR_PULL_SET_MEM_CTX(ndr, r->out.level_out, LIBNDR_FLAG_REF_ALLOC);
15201                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.level_out));
15202                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_out_0, LIBNDR_FLAG_REF_ALLOC);
15203                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15204                         NDR_PULL_ALLOC(ndr, r->out.res);
15205                 }
15206                 _mem_save_res_0 = NDR_PULL_GET_MEM_CTX(ndr);
15207                 NDR_PULL_SET_MEM_CTX(ndr, r->out.res, LIBNDR_FLAG_REF_ALLOC);
15208                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.res, *r->out.level_out));
15209                 NDR_CHECK(ndr_pull_drsuapi_DsRemoveDSServerResult(ndr, NDR_SCALARS, r->out.res));
15210                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_res_0, LIBNDR_FLAG_REF_ALLOC);
15211                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15212         }
15213         return NDR_ERR_SUCCESS;
15214 }
15215
15216 _PUBLIC_ void ndr_print_drsuapi_DsRemoveDSServer(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsRemoveDSServer *r)
15217 {
15218         ndr_print_struct(ndr, name, "drsuapi_DsRemoveDSServer");
15219         ndr->depth++;
15220         if (flags & NDR_SET_VALUES) {
15221                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15222         }
15223         if (flags & NDR_IN) {
15224                 ndr_print_struct(ndr, "in", "drsuapi_DsRemoveDSServer");
15225                 ndr->depth++;
15226                 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
15227                 ndr->depth++;
15228                 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
15229                 ndr->depth--;
15230                 ndr_print_uint32(ndr, "level", r->in.level);
15231                 ndr_print_ptr(ndr, "req", r->in.req);
15232                 ndr->depth++;
15233                 ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
15234                 ndr_print_drsuapi_DsRemoveDSServerRequest(ndr, "req", r->in.req);
15235                 ndr->depth--;
15236                 ndr->depth--;
15237         }
15238         if (flags & NDR_OUT) {
15239                 ndr_print_struct(ndr, "out", "drsuapi_DsRemoveDSServer");
15240                 ndr->depth++;
15241                 ndr_print_ptr(ndr, "level_out", r->out.level_out);
15242                 ndr->depth++;
15243                 ndr_print_uint32(ndr, "level_out", *r->out.level_out);
15244                 ndr->depth--;
15245                 ndr_print_ptr(ndr, "res", r->out.res);
15246                 ndr->depth++;
15247                 ndr_print_set_switch_value(ndr, r->out.res, *r->out.level_out);
15248                 ndr_print_drsuapi_DsRemoveDSServerResult(ndr, "res", r->out.res);
15249                 ndr->depth--;
15250                 ndr_print_WERROR(ndr, "result", r->out.result);
15251                 ndr->depth--;
15252         }
15253         ndr->depth--;
15254 }
15255
15256 static enum ndr_err_code ndr_push_DRSUAPI_REMOVE_DS_DOMAIN(struct ndr_push *ndr, int flags, const struct DRSUAPI_REMOVE_DS_DOMAIN *r)
15257 {
15258         if (flags & NDR_IN) {
15259         }
15260         if (flags & NDR_OUT) {
15261                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15262         }
15263         return NDR_ERR_SUCCESS;
15264 }
15265
15266 static enum ndr_err_code ndr_pull_DRSUAPI_REMOVE_DS_DOMAIN(struct ndr_pull *ndr, int flags, struct DRSUAPI_REMOVE_DS_DOMAIN *r)
15267 {
15268         if (flags & NDR_IN) {
15269         }
15270         if (flags & NDR_OUT) {
15271                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15272         }
15273         return NDR_ERR_SUCCESS;
15274 }
15275
15276 _PUBLIC_ void ndr_print_DRSUAPI_REMOVE_DS_DOMAIN(struct ndr_print *ndr, const char *name, int flags, const struct DRSUAPI_REMOVE_DS_DOMAIN *r)
15277 {
15278         ndr_print_struct(ndr, name, "DRSUAPI_REMOVE_DS_DOMAIN");
15279         ndr->depth++;
15280         if (flags & NDR_SET_VALUES) {
15281                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15282         }
15283         if (flags & NDR_IN) {
15284                 ndr_print_struct(ndr, "in", "DRSUAPI_REMOVE_DS_DOMAIN");
15285                 ndr->depth++;
15286                 ndr->depth--;
15287         }
15288         if (flags & NDR_OUT) {
15289                 ndr_print_struct(ndr, "out", "DRSUAPI_REMOVE_DS_DOMAIN");
15290                 ndr->depth++;
15291                 ndr_print_WERROR(ndr, "result", r->out.result);
15292                 ndr->depth--;
15293         }
15294         ndr->depth--;
15295 }
15296
15297 static enum ndr_err_code ndr_push_drsuapi_DsGetDomainControllerInfo(struct ndr_push *ndr, int flags, const struct drsuapi_DsGetDomainControllerInfo *r)
15298 {
15299         if (flags & NDR_IN) {
15300                 if (r->in.bind_handle == NULL) {
15301                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15302                 }
15303                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
15304                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.level));
15305                 if (r->in.req == NULL) {
15306                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15307                 }
15308                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.req, r->in.level));
15309                 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfoRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
15310         }
15311         if (flags & NDR_OUT) {
15312                 if (r->out.level_out == NULL) {
15313                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15314                 }
15315                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, *r->out.level_out));
15316                 if (r->out.ctr == NULL) {
15317                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15318                 }
15319                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
15320                 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
15321                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15322         }
15323         return NDR_ERR_SUCCESS;
15324 }
15325
15326 static enum ndr_err_code ndr_pull_drsuapi_DsGetDomainControllerInfo(struct ndr_pull *ndr, int flags, struct drsuapi_DsGetDomainControllerInfo *r)
15327 {
15328         TALLOC_CTX *_mem_save_bind_handle_0;
15329         TALLOC_CTX *_mem_save_req_0;
15330         TALLOC_CTX *_mem_save_level_out_0;
15331         TALLOC_CTX *_mem_save_ctr_0;
15332         if (flags & NDR_IN) {
15333                 ZERO_STRUCT(r->out);
15334
15335                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15336                         NDR_PULL_ALLOC(ndr, r->in.bind_handle);
15337                 }
15338                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15339                 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
15340                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
15341                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
15342                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.level));
15343                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15344                         NDR_PULL_ALLOC(ndr, r->in.req);
15345                 }
15346                 _mem_save_req_0 = NDR_PULL_GET_MEM_CTX(ndr);
15347                 NDR_PULL_SET_MEM_CTX(ndr, r->in.req, LIBNDR_FLAG_REF_ALLOC);
15348                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.req, r->in.level));
15349                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfoRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
15350                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_0, LIBNDR_FLAG_REF_ALLOC);
15351                 NDR_PULL_ALLOC(ndr, r->out.level_out);
15352                 ZERO_STRUCTP(r->out.level_out);
15353                 NDR_PULL_ALLOC(ndr, r->out.ctr);
15354                 ZERO_STRUCTP(r->out.ctr);
15355         }
15356         if (flags & NDR_OUT) {
15357                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15358                         NDR_PULL_ALLOC(ndr, r->out.level_out);
15359                 }
15360                 _mem_save_level_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
15361                 NDR_PULL_SET_MEM_CTX(ndr, r->out.level_out, LIBNDR_FLAG_REF_ALLOC);
15362                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, r->out.level_out));
15363                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_out_0, LIBNDR_FLAG_REF_ALLOC);
15364                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15365                         NDR_PULL_ALLOC(ndr, r->out.ctr);
15366                 }
15367                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
15368                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
15369                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
15370                 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
15371                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
15372                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15373         }
15374         return NDR_ERR_SUCCESS;
15375 }
15376
15377 _PUBLIC_ void ndr_print_drsuapi_DsGetDomainControllerInfo(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsGetDomainControllerInfo *r)
15378 {
15379         ndr_print_struct(ndr, name, "drsuapi_DsGetDomainControllerInfo");
15380         ndr->depth++;
15381         if (flags & NDR_SET_VALUES) {
15382                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15383         }
15384         if (flags & NDR_IN) {
15385                 ndr_print_struct(ndr, "in", "drsuapi_DsGetDomainControllerInfo");
15386                 ndr->depth++;
15387                 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
15388                 ndr->depth++;
15389                 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
15390                 ndr->depth--;
15391                 ndr_print_int32(ndr, "level", r->in.level);
15392                 ndr_print_ptr(ndr, "req", r->in.req);
15393                 ndr->depth++;
15394                 ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
15395                 ndr_print_drsuapi_DsGetDCInfoRequest(ndr, "req", r->in.req);
15396                 ndr->depth--;
15397                 ndr->depth--;
15398         }
15399         if (flags & NDR_OUT) {
15400                 ndr_print_struct(ndr, "out", "drsuapi_DsGetDomainControllerInfo");
15401                 ndr->depth++;
15402                 ndr_print_ptr(ndr, "level_out", r->out.level_out);
15403                 ndr->depth++;
15404                 ndr_print_int32(ndr, "level_out", *r->out.level_out);
15405                 ndr->depth--;
15406                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
15407                 ndr->depth++;
15408                 ndr_print_set_switch_value(ndr, r->out.ctr, *r->out.level_out);
15409                 ndr_print_drsuapi_DsGetDCInfoCtr(ndr, "ctr", r->out.ctr);
15410                 ndr->depth--;
15411                 ndr_print_WERROR(ndr, "result", r->out.result);
15412                 ndr->depth--;
15413         }
15414         ndr->depth--;
15415 }
15416
15417 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsAddEntry(struct ndr_push *ndr, int flags, const struct drsuapi_DsAddEntry *r)
15418 {
15419         if (flags & NDR_IN) {
15420                 if (r->in.bind_handle == NULL) {
15421                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15422                 }
15423                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
15424                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15425                 if (r->in.req == NULL) {
15426                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15427                 }
15428                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.req, r->in.level));
15429                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
15430         }
15431         if (flags & NDR_OUT) {
15432                 if (r->out.level_out == NULL) {
15433                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15434                 }
15435                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.level_out));
15436                 if (r->out.ctr == NULL) {
15437                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15438                 }
15439                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
15440                 NDR_CHECK(ndr_push_drsuapi_DsAddEntryCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
15441                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15442         }
15443         return NDR_ERR_SUCCESS;
15444 }
15445
15446 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsAddEntry(struct ndr_pull *ndr, int flags, struct drsuapi_DsAddEntry *r)
15447 {
15448         TALLOC_CTX *_mem_save_bind_handle_0;
15449         TALLOC_CTX *_mem_save_req_0;
15450         TALLOC_CTX *_mem_save_level_out_0;
15451         TALLOC_CTX *_mem_save_ctr_0;
15452         if (flags & NDR_IN) {
15453                 ZERO_STRUCT(r->out);
15454
15455                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15456                         NDR_PULL_ALLOC(ndr, r->in.bind_handle);
15457                 }
15458                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15459                 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
15460                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
15461                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
15462                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15463                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15464                         NDR_PULL_ALLOC(ndr, r->in.req);
15465                 }
15466                 _mem_save_req_0 = NDR_PULL_GET_MEM_CTX(ndr);
15467                 NDR_PULL_SET_MEM_CTX(ndr, r->in.req, LIBNDR_FLAG_REF_ALLOC);
15468                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.req, r->in.level));
15469                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
15470                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_0, LIBNDR_FLAG_REF_ALLOC);
15471                 NDR_PULL_ALLOC(ndr, r->out.level_out);
15472                 ZERO_STRUCTP(r->out.level_out);
15473                 NDR_PULL_ALLOC(ndr, r->out.ctr);
15474                 ZERO_STRUCTP(r->out.ctr);
15475         }
15476         if (flags & NDR_OUT) {
15477                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15478                         NDR_PULL_ALLOC(ndr, r->out.level_out);
15479                 }
15480                 _mem_save_level_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
15481                 NDR_PULL_SET_MEM_CTX(ndr, r->out.level_out, LIBNDR_FLAG_REF_ALLOC);
15482                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.level_out));
15483                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_out_0, LIBNDR_FLAG_REF_ALLOC);
15484                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15485                         NDR_PULL_ALLOC(ndr, r->out.ctr);
15486                 }
15487                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
15488                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
15489                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
15490                 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
15491                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
15492                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15493         }
15494         return NDR_ERR_SUCCESS;
15495 }
15496
15497 _PUBLIC_ void ndr_print_drsuapi_DsAddEntry(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsAddEntry *r)
15498 {
15499         ndr_print_struct(ndr, name, "drsuapi_DsAddEntry");
15500         ndr->depth++;
15501         if (flags & NDR_SET_VALUES) {
15502                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15503         }
15504         if (flags & NDR_IN) {
15505                 ndr_print_struct(ndr, "in", "drsuapi_DsAddEntry");
15506                 ndr->depth++;
15507                 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
15508                 ndr->depth++;
15509                 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
15510                 ndr->depth--;
15511                 ndr_print_uint32(ndr, "level", r->in.level);
15512                 ndr_print_ptr(ndr, "req", r->in.req);
15513                 ndr->depth++;
15514                 ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
15515                 ndr_print_drsuapi_DsAddEntryRequest(ndr, "req", r->in.req);
15516                 ndr->depth--;
15517                 ndr->depth--;
15518         }
15519         if (flags & NDR_OUT) {
15520                 ndr_print_struct(ndr, "out", "drsuapi_DsAddEntry");
15521                 ndr->depth++;
15522                 ndr_print_ptr(ndr, "level_out", r->out.level_out);
15523                 ndr->depth++;
15524                 ndr_print_uint32(ndr, "level_out", *r->out.level_out);
15525                 ndr->depth--;
15526                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
15527                 ndr->depth++;
15528                 ndr_print_set_switch_value(ndr, r->out.ctr, *r->out.level_out);
15529                 ndr_print_drsuapi_DsAddEntryCtr(ndr, "ctr", r->out.ctr);
15530                 ndr->depth--;
15531                 ndr_print_WERROR(ndr, "result", r->out.result);
15532                 ndr->depth--;
15533         }
15534         ndr->depth--;
15535 }
15536
15537 static enum ndr_err_code ndr_push_drsuapi_DsExecuteKCC(struct ndr_push *ndr, int flags, const struct drsuapi_DsExecuteKCC *r)
15538 {
15539         if (flags & NDR_IN) {
15540                 if (r->in.bind_handle == NULL) {
15541                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15542                 }
15543                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
15544                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15545                 if (r->in.req == NULL) {
15546                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15547                 }
15548                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.req, r->in.level));
15549                 NDR_CHECK(ndr_push_drsuapi_DsExecuteKCCRequest(ndr, NDR_SCALARS, r->in.req));
15550         }
15551         if (flags & NDR_OUT) {
15552                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15553         }
15554         return NDR_ERR_SUCCESS;
15555 }
15556
15557 static enum ndr_err_code ndr_pull_drsuapi_DsExecuteKCC(struct ndr_pull *ndr, int flags, struct drsuapi_DsExecuteKCC *r)
15558 {
15559         TALLOC_CTX *_mem_save_bind_handle_0;
15560         TALLOC_CTX *_mem_save_req_0;
15561         if (flags & NDR_IN) {
15562                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15563                         NDR_PULL_ALLOC(ndr, r->in.bind_handle);
15564                 }
15565                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15566                 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
15567                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
15568                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
15569                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15570                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15571                         NDR_PULL_ALLOC(ndr, r->in.req);
15572                 }
15573                 _mem_save_req_0 = NDR_PULL_GET_MEM_CTX(ndr);
15574                 NDR_PULL_SET_MEM_CTX(ndr, r->in.req, LIBNDR_FLAG_REF_ALLOC);
15575                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.req, r->in.level));
15576                 NDR_CHECK(ndr_pull_drsuapi_DsExecuteKCCRequest(ndr, NDR_SCALARS, r->in.req));
15577                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_0, LIBNDR_FLAG_REF_ALLOC);
15578         }
15579         if (flags & NDR_OUT) {
15580                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15581         }
15582         return NDR_ERR_SUCCESS;
15583 }
15584
15585 _PUBLIC_ void ndr_print_drsuapi_DsExecuteKCC(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsExecuteKCC *r)
15586 {
15587         ndr_print_struct(ndr, name, "drsuapi_DsExecuteKCC");
15588         ndr->depth++;
15589         if (flags & NDR_SET_VALUES) {
15590                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15591         }
15592         if (flags & NDR_IN) {
15593                 ndr_print_struct(ndr, "in", "drsuapi_DsExecuteKCC");
15594                 ndr->depth++;
15595                 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
15596                 ndr->depth++;
15597                 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
15598                 ndr->depth--;
15599                 ndr_print_uint32(ndr, "level", r->in.level);
15600                 ndr_print_ptr(ndr, "req", r->in.req);
15601                 ndr->depth++;
15602                 ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
15603                 ndr_print_drsuapi_DsExecuteKCCRequest(ndr, "req", r->in.req);
15604                 ndr->depth--;
15605                 ndr->depth--;
15606         }
15607         if (flags & NDR_OUT) {
15608                 ndr_print_struct(ndr, "out", "drsuapi_DsExecuteKCC");
15609                 ndr->depth++;
15610                 ndr_print_WERROR(ndr, "result", r->out.result);
15611                 ndr->depth--;
15612         }
15613         ndr->depth--;
15614 }
15615
15616 static enum ndr_err_code ndr_push_drsuapi_DsReplicaGetInfo(struct ndr_push *ndr, int flags, const struct drsuapi_DsReplicaGetInfo *r)
15617 {
15618         if (flags & NDR_IN) {
15619                 if (r->in.bind_handle == NULL) {
15620                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15621                 }
15622                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
15623                 NDR_CHECK(ndr_push_drsuapi_DsReplicaGetInfoLevel(ndr, NDR_SCALARS, r->in.level));
15624                 if (r->in.req == NULL) {
15625                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15626                 }
15627                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.req, r->in.level));
15628                 NDR_CHECK(ndr_push_drsuapi_DsReplicaGetInfoRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
15629         }
15630         if (flags & NDR_OUT) {
15631                 if (r->out.info_type == NULL) {
15632                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15633                 }
15634                 NDR_CHECK(ndr_push_drsuapi_DsReplicaInfoType(ndr, NDR_SCALARS, *r->out.info_type));
15635                 if (r->out.info == NULL) {
15636                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15637                 }
15638                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, *r->out.info_type));
15639                 NDR_CHECK(ndr_push_drsuapi_DsReplicaInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
15640                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15641         }
15642         return NDR_ERR_SUCCESS;
15643 }
15644
15645 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaGetInfo(struct ndr_pull *ndr, int flags, struct drsuapi_DsReplicaGetInfo *r)
15646 {
15647         TALLOC_CTX *_mem_save_bind_handle_0;
15648         TALLOC_CTX *_mem_save_req_0;
15649         TALLOC_CTX *_mem_save_info_type_0;
15650         TALLOC_CTX *_mem_save_info_0;
15651         if (flags & NDR_IN) {
15652                 ZERO_STRUCT(r->out);
15653
15654                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15655                         NDR_PULL_ALLOC(ndr, r->in.bind_handle);
15656                 }
15657                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15658                 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
15659                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
15660                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
15661                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaGetInfoLevel(ndr, NDR_SCALARS, &r->in.level));
15662                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15663                         NDR_PULL_ALLOC(ndr, r->in.req);
15664                 }
15665                 _mem_save_req_0 = NDR_PULL_GET_MEM_CTX(ndr);
15666                 NDR_PULL_SET_MEM_CTX(ndr, r->in.req, LIBNDR_FLAG_REF_ALLOC);
15667                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.req, r->in.level));
15668                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaGetInfoRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
15669                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_0, LIBNDR_FLAG_REF_ALLOC);
15670                 NDR_PULL_ALLOC(ndr, r->out.info_type);
15671                 ZERO_STRUCTP(r->out.info_type);
15672                 NDR_PULL_ALLOC(ndr, r->out.info);
15673                 ZERO_STRUCTP(r->out.info);
15674         }
15675         if (flags & NDR_OUT) {
15676                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15677                         NDR_PULL_ALLOC(ndr, r->out.info_type);
15678                 }
15679                 _mem_save_info_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
15680                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info_type, LIBNDR_FLAG_REF_ALLOC);
15681                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaInfoType(ndr, NDR_SCALARS, r->out.info_type));
15682                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_type_0, LIBNDR_FLAG_REF_ALLOC);
15683                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15684                         NDR_PULL_ALLOC(ndr, r->out.info);
15685                 }
15686                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
15687                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
15688                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, *r->out.info_type));
15689                 NDR_CHECK(ndr_pull_drsuapi_DsReplicaInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
15690                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
15691                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15692         }
15693         return NDR_ERR_SUCCESS;
15694 }
15695
15696 _PUBLIC_ void ndr_print_drsuapi_DsReplicaGetInfo(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsReplicaGetInfo *r)
15697 {
15698         ndr_print_struct(ndr, name, "drsuapi_DsReplicaGetInfo");
15699         ndr->depth++;
15700         if (flags & NDR_SET_VALUES) {
15701                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15702         }
15703         if (flags & NDR_IN) {
15704                 ndr_print_struct(ndr, "in", "drsuapi_DsReplicaGetInfo");
15705                 ndr->depth++;
15706                 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
15707                 ndr->depth++;
15708                 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
15709                 ndr->depth--;
15710                 ndr_print_drsuapi_DsReplicaGetInfoLevel(ndr, "level", r->in.level);
15711                 ndr_print_ptr(ndr, "req", r->in.req);
15712                 ndr->depth++;
15713                 ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
15714                 ndr_print_drsuapi_DsReplicaGetInfoRequest(ndr, "req", r->in.req);
15715                 ndr->depth--;
15716                 ndr->depth--;
15717         }
15718         if (flags & NDR_OUT) {
15719                 ndr_print_struct(ndr, "out", "drsuapi_DsReplicaGetInfo");
15720                 ndr->depth++;
15721                 ndr_print_ptr(ndr, "info_type", r->out.info_type);
15722                 ndr->depth++;
15723                 ndr_print_drsuapi_DsReplicaInfoType(ndr, "info_type", *r->out.info_type);
15724                 ndr->depth--;
15725                 ndr_print_ptr(ndr, "info", r->out.info);
15726                 ndr->depth++;
15727                 ndr_print_set_switch_value(ndr, r->out.info, *r->out.info_type);
15728                 ndr_print_drsuapi_DsReplicaInfo(ndr, "info", r->out.info);
15729                 ndr->depth--;
15730                 ndr_print_WERROR(ndr, "result", r->out.result);
15731                 ndr->depth--;
15732         }
15733         ndr->depth--;
15734 }
15735
15736 static enum ndr_err_code ndr_push_DRSUAPI_ADD_SID_HISTORY(struct ndr_push *ndr, int flags, const struct DRSUAPI_ADD_SID_HISTORY *r)
15737 {
15738         if (flags & NDR_IN) {
15739         }
15740         if (flags & NDR_OUT) {
15741                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15742         }
15743         return NDR_ERR_SUCCESS;
15744 }
15745
15746 static enum ndr_err_code ndr_pull_DRSUAPI_ADD_SID_HISTORY(struct ndr_pull *ndr, int flags, struct DRSUAPI_ADD_SID_HISTORY *r)
15747 {
15748         if (flags & NDR_IN) {
15749         }
15750         if (flags & NDR_OUT) {
15751                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15752         }
15753         return NDR_ERR_SUCCESS;
15754 }
15755
15756 _PUBLIC_ void ndr_print_DRSUAPI_ADD_SID_HISTORY(struct ndr_print *ndr, const char *name, int flags, const struct DRSUAPI_ADD_SID_HISTORY *r)
15757 {
15758         ndr_print_struct(ndr, name, "DRSUAPI_ADD_SID_HISTORY");
15759         ndr->depth++;
15760         if (flags & NDR_SET_VALUES) {
15761                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15762         }
15763         if (flags & NDR_IN) {
15764                 ndr_print_struct(ndr, "in", "DRSUAPI_ADD_SID_HISTORY");
15765                 ndr->depth++;
15766                 ndr->depth--;
15767         }
15768         if (flags & NDR_OUT) {
15769                 ndr_print_struct(ndr, "out", "DRSUAPI_ADD_SID_HISTORY");
15770                 ndr->depth++;
15771                 ndr_print_WERROR(ndr, "result", r->out.result);
15772                 ndr->depth--;
15773         }
15774         ndr->depth--;
15775 }
15776
15777 static enum ndr_err_code ndr_push_drsuapi_DsGetMemberships2(struct ndr_push *ndr, int flags, const struct drsuapi_DsGetMemberships2 *r)
15778 {
15779         if (flags & NDR_IN) {
15780                 if (r->in.bind_handle == NULL) {
15781                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15782                 }
15783                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
15784                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15785                 if (r->in.req == NULL) {
15786                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15787                 }
15788                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.req, r->in.level));
15789                 NDR_CHECK(ndr_push_drsuapi_DsGetMemberships2Request(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
15790         }
15791         if (flags & NDR_OUT) {
15792                 if (r->out.level_out == NULL) {
15793                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15794                 }
15795                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.level_out));
15796                 if (r->out.ctr == NULL) {
15797                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15798                 }
15799                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
15800                 NDR_CHECK(ndr_push_drsuapi_DsGetMemberships2Ctr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
15801                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15802         }
15803         return NDR_ERR_SUCCESS;
15804 }
15805
15806 static enum ndr_err_code ndr_pull_drsuapi_DsGetMemberships2(struct ndr_pull *ndr, int flags, struct drsuapi_DsGetMemberships2 *r)
15807 {
15808         TALLOC_CTX *_mem_save_bind_handle_0;
15809         TALLOC_CTX *_mem_save_req_0;
15810         TALLOC_CTX *_mem_save_level_out_0;
15811         TALLOC_CTX *_mem_save_ctr_0;
15812         if (flags & NDR_IN) {
15813                 ZERO_STRUCT(r->out);
15814
15815                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15816                         NDR_PULL_ALLOC(ndr, r->in.bind_handle);
15817                 }
15818                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15819                 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
15820                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
15821                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
15822                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15823                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15824                         NDR_PULL_ALLOC(ndr, r->in.req);
15825                 }
15826                 _mem_save_req_0 = NDR_PULL_GET_MEM_CTX(ndr);
15827                 NDR_PULL_SET_MEM_CTX(ndr, r->in.req, LIBNDR_FLAG_REF_ALLOC);
15828                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.req, r->in.level));
15829                 NDR_CHECK(ndr_pull_drsuapi_DsGetMemberships2Request(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
15830                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_0, LIBNDR_FLAG_REF_ALLOC);
15831                 NDR_PULL_ALLOC(ndr, r->out.level_out);
15832                 ZERO_STRUCTP(r->out.level_out);
15833                 NDR_PULL_ALLOC(ndr, r->out.ctr);
15834                 ZERO_STRUCTP(r->out.ctr);
15835         }
15836         if (flags & NDR_OUT) {
15837                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15838                         NDR_PULL_ALLOC(ndr, r->out.level_out);
15839                 }
15840                 _mem_save_level_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
15841                 NDR_PULL_SET_MEM_CTX(ndr, r->out.level_out, LIBNDR_FLAG_REF_ALLOC);
15842                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.level_out));
15843                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_out_0, LIBNDR_FLAG_REF_ALLOC);
15844                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15845                         NDR_PULL_ALLOC(ndr, r->out.ctr);
15846                 }
15847                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
15848                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
15849                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
15850                 NDR_CHECK(ndr_pull_drsuapi_DsGetMemberships2Ctr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
15851                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
15852                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15853         }
15854         return NDR_ERR_SUCCESS;
15855 }
15856
15857 _PUBLIC_ void ndr_print_drsuapi_DsGetMemberships2(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsGetMemberships2 *r)
15858 {
15859         ndr_print_struct(ndr, name, "drsuapi_DsGetMemberships2");
15860         ndr->depth++;
15861         if (flags & NDR_SET_VALUES) {
15862                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15863         }
15864         if (flags & NDR_IN) {
15865                 ndr_print_struct(ndr, "in", "drsuapi_DsGetMemberships2");
15866                 ndr->depth++;
15867                 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
15868                 ndr->depth++;
15869                 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
15870                 ndr->depth--;
15871                 ndr_print_uint32(ndr, "level", r->in.level);
15872                 ndr_print_ptr(ndr, "req", r->in.req);
15873                 ndr->depth++;
15874                 ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
15875                 ndr_print_drsuapi_DsGetMemberships2Request(ndr, "req", r->in.req);
15876                 ndr->depth--;
15877                 ndr->depth--;
15878         }
15879         if (flags & NDR_OUT) {
15880                 ndr_print_struct(ndr, "out", "drsuapi_DsGetMemberships2");
15881                 ndr->depth++;
15882                 ndr_print_ptr(ndr, "level_out", r->out.level_out);
15883                 ndr->depth++;
15884                 ndr_print_uint32(ndr, "level_out", *r->out.level_out);
15885                 ndr->depth--;
15886                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
15887                 ndr->depth++;
15888                 ndr_print_set_switch_value(ndr, r->out.ctr, *r->out.level_out);
15889                 ndr_print_drsuapi_DsGetMemberships2Ctr(ndr, "ctr", r->out.ctr);
15890                 ndr->depth--;
15891                 ndr_print_WERROR(ndr, "result", r->out.result);
15892                 ndr->depth--;
15893         }
15894         ndr->depth--;
15895 }
15896
15897 static enum ndr_err_code ndr_push_DRSUAPI_REPLICA_VERIFY_OBJECTS(struct ndr_push *ndr, int flags, const struct DRSUAPI_REPLICA_VERIFY_OBJECTS *r)
15898 {
15899         if (flags & NDR_IN) {
15900         }
15901         if (flags & NDR_OUT) {
15902                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15903         }
15904         return NDR_ERR_SUCCESS;
15905 }
15906
15907 static enum ndr_err_code ndr_pull_DRSUAPI_REPLICA_VERIFY_OBJECTS(struct ndr_pull *ndr, int flags, struct DRSUAPI_REPLICA_VERIFY_OBJECTS *r)
15908 {
15909         if (flags & NDR_IN) {
15910         }
15911         if (flags & NDR_OUT) {
15912                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15913         }
15914         return NDR_ERR_SUCCESS;
15915 }
15916
15917 _PUBLIC_ void ndr_print_DRSUAPI_REPLICA_VERIFY_OBJECTS(struct ndr_print *ndr, const char *name, int flags, const struct DRSUAPI_REPLICA_VERIFY_OBJECTS *r)
15918 {
15919         ndr_print_struct(ndr, name, "DRSUAPI_REPLICA_VERIFY_OBJECTS");
15920         ndr->depth++;
15921         if (flags & NDR_SET_VALUES) {
15922                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15923         }
15924         if (flags & NDR_IN) {
15925                 ndr_print_struct(ndr, "in", "DRSUAPI_REPLICA_VERIFY_OBJECTS");
15926                 ndr->depth++;
15927                 ndr->depth--;
15928         }
15929         if (flags & NDR_OUT) {
15930                 ndr_print_struct(ndr, "out", "DRSUAPI_REPLICA_VERIFY_OBJECTS");
15931                 ndr->depth++;
15932                 ndr_print_WERROR(ndr, "result", r->out.result);
15933                 ndr->depth--;
15934         }
15935         ndr->depth--;
15936 }
15937
15938 static enum ndr_err_code ndr_push_DRSUAPI_GET_OBJECT_EXISTENCE(struct ndr_push *ndr, int flags, const struct DRSUAPI_GET_OBJECT_EXISTENCE *r)
15939 {
15940         if (flags & NDR_IN) {
15941         }
15942         if (flags & NDR_OUT) {
15943                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15944         }
15945         return NDR_ERR_SUCCESS;
15946 }
15947
15948 static enum ndr_err_code ndr_pull_DRSUAPI_GET_OBJECT_EXISTENCE(struct ndr_pull *ndr, int flags, struct DRSUAPI_GET_OBJECT_EXISTENCE *r)
15949 {
15950         if (flags & NDR_IN) {
15951         }
15952         if (flags & NDR_OUT) {
15953                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15954         }
15955         return NDR_ERR_SUCCESS;
15956 }
15957
15958 _PUBLIC_ void ndr_print_DRSUAPI_GET_OBJECT_EXISTENCE(struct ndr_print *ndr, const char *name, int flags, const struct DRSUAPI_GET_OBJECT_EXISTENCE *r)
15959 {
15960         ndr_print_struct(ndr, name, "DRSUAPI_GET_OBJECT_EXISTENCE");
15961         ndr->depth++;
15962         if (flags & NDR_SET_VALUES) {
15963                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15964         }
15965         if (flags & NDR_IN) {
15966                 ndr_print_struct(ndr, "in", "DRSUAPI_GET_OBJECT_EXISTENCE");
15967                 ndr->depth++;
15968                 ndr->depth--;
15969         }
15970         if (flags & NDR_OUT) {
15971                 ndr_print_struct(ndr, "out", "DRSUAPI_GET_OBJECT_EXISTENCE");
15972                 ndr->depth++;
15973                 ndr_print_WERROR(ndr, "result", r->out.result);
15974                 ndr->depth--;
15975         }
15976         ndr->depth--;
15977 }
15978
15979 static enum ndr_err_code ndr_push_drsuapi_QuerySitesByCost(struct ndr_push *ndr, int flags, const struct drsuapi_QuerySitesByCost *r)
15980 {
15981         if (flags & NDR_IN) {
15982                 if (r->in.bind_handle == NULL) {
15983                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15984                 }
15985                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
15986                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15987                 if (r->in.req == NULL) {
15988                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15989                 }
15990                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.req, r->in.level));
15991                 NDR_CHECK(ndr_push_drsuapi_QuerySitesByCostRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
15992         }
15993         if (flags & NDR_OUT) {
15994                 if (r->out.level_out == NULL) {
15995                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15996                 }
15997                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.level_out));
15998                 if (r->out.ctr == NULL) {
15999                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16000                 }
16001                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
16002                 NDR_CHECK(ndr_push_drsuapi_QuerySitesByCostCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
16003                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16004         }
16005         return NDR_ERR_SUCCESS;
16006 }
16007
16008 static enum ndr_err_code ndr_pull_drsuapi_QuerySitesByCost(struct ndr_pull *ndr, int flags, struct drsuapi_QuerySitesByCost *r)
16009 {
16010         TALLOC_CTX *_mem_save_bind_handle_0;
16011         TALLOC_CTX *_mem_save_req_0;
16012         TALLOC_CTX *_mem_save_level_out_0;
16013         TALLOC_CTX *_mem_save_ctr_0;
16014         if (flags & NDR_IN) {
16015                 ZERO_STRUCT(r->out);
16016
16017                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16018                         NDR_PULL_ALLOC(ndr, r->in.bind_handle);
16019                 }
16020                 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
16021                 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
16022                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
16023                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
16024                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
16025                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16026                         NDR_PULL_ALLOC(ndr, r->in.req);
16027                 }
16028                 _mem_save_req_0 = NDR_PULL_GET_MEM_CTX(ndr);
16029                 NDR_PULL_SET_MEM_CTX(ndr, r->in.req, LIBNDR_FLAG_REF_ALLOC);
16030                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.req, r->in.level));
16031                 NDR_CHECK(ndr_pull_drsuapi_QuerySitesByCostRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
16032                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_0, LIBNDR_FLAG_REF_ALLOC);
16033                 NDR_PULL_ALLOC(ndr, r->out.level_out);
16034                 ZERO_STRUCTP(r->out.level_out);
16035                 NDR_PULL_ALLOC(ndr, r->out.ctr);
16036                 ZERO_STRUCTP(r->out.ctr);
16037         }
16038         if (flags & NDR_OUT) {
16039                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16040                         NDR_PULL_ALLOC(ndr, r->out.level_out);
16041                 }
16042                 _mem_save_level_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
16043                 NDR_PULL_SET_MEM_CTX(ndr, r->out.level_out, LIBNDR_FLAG_REF_ALLOC);
16044                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.level_out));
16045                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_out_0, LIBNDR_FLAG_REF_ALLOC);
16046                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16047                         NDR_PULL_ALLOC(ndr, r->out.ctr);
16048                 }
16049                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
16050                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
16051                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
16052                 NDR_CHECK(ndr_pull_drsuapi_QuerySitesByCostCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
16053                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
16054                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16055         }
16056         return NDR_ERR_SUCCESS;
16057 }
16058
16059 _PUBLIC_ void ndr_print_drsuapi_QuerySitesByCost(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_QuerySitesByCost *r)
16060 {
16061         ndr_print_struct(ndr, name, "drsuapi_QuerySitesByCost");
16062         ndr->depth++;
16063         if (flags & NDR_SET_VALUES) {
16064                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16065         }
16066         if (flags & NDR_IN) {
16067                 ndr_print_struct(ndr, "in", "drsuapi_QuerySitesByCost");
16068                 ndr->depth++;
16069                 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
16070                 ndr->depth++;
16071                 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
16072                 ndr->depth--;
16073                 ndr_print_uint32(ndr, "level", r->in.level);
16074                 ndr_print_ptr(ndr, "req", r->in.req);
16075                 ndr->depth++;
16076                 ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
16077                 ndr_print_drsuapi_QuerySitesByCostRequest(ndr, "req", r->in.req);
16078                 ndr->depth--;
16079                 ndr->depth--;
16080         }
16081         if (flags & NDR_OUT) {
16082                 ndr_print_struct(ndr, "out", "drsuapi_QuerySitesByCost");
16083                 ndr->depth++;
16084                 ndr_print_ptr(ndr, "level_out", r->out.level_out);
16085                 ndr->depth++;
16086                 ndr_print_uint32(ndr, "level_out", *r->out.level_out);
16087                 ndr->depth--;
16088                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
16089                 ndr->depth++;
16090                 ndr_print_set_switch_value(ndr, r->out.ctr, *r->out.level_out);
16091                 ndr_print_drsuapi_QuerySitesByCostCtr(ndr, "ctr", r->out.ctr);
16092                 ndr->depth--;
16093                 ndr_print_WERROR(ndr, "result", r->out.result);
16094                 ndr->depth--;
16095         }
16096         ndr->depth--;
16097 }
16098
16099 static const struct ndr_interface_call drsuapi_calls[] = {
16100         {
16101                 "drsuapi_DsBind",
16102                 sizeof(struct drsuapi_DsBind),
16103                 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsBind,
16104                 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsBind,
16105                 (ndr_print_function_t) ndr_print_drsuapi_DsBind,
16106                 false,
16107         },
16108         {
16109                 "drsuapi_DsUnbind",
16110                 sizeof(struct drsuapi_DsUnbind),
16111                 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsUnbind,
16112                 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsUnbind,
16113                 (ndr_print_function_t) ndr_print_drsuapi_DsUnbind,
16114                 false,
16115         },
16116         {
16117                 "drsuapi_DsReplicaSync",
16118                 sizeof(struct drsuapi_DsReplicaSync),
16119                 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsReplicaSync,
16120                 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsReplicaSync,
16121                 (ndr_print_function_t) ndr_print_drsuapi_DsReplicaSync,
16122                 false,
16123         },
16124         {
16125                 "drsuapi_DsGetNCChanges",
16126                 sizeof(struct drsuapi_DsGetNCChanges),
16127                 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsGetNCChanges,
16128                 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsGetNCChanges,
16129                 (ndr_print_function_t) ndr_print_drsuapi_DsGetNCChanges,
16130                 false,
16131         },
16132         {
16133                 "drsuapi_DsReplicaUpdateRefs",
16134                 sizeof(struct drsuapi_DsReplicaUpdateRefs),
16135                 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsReplicaUpdateRefs,
16136                 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsReplicaUpdateRefs,
16137                 (ndr_print_function_t) ndr_print_drsuapi_DsReplicaUpdateRefs,
16138                 false,
16139         },
16140         {
16141                 "drsuapi_DsReplicaAdd",
16142                 sizeof(struct drsuapi_DsReplicaAdd),
16143                 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsReplicaAdd,
16144                 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsReplicaAdd,
16145                 (ndr_print_function_t) ndr_print_drsuapi_DsReplicaAdd,
16146                 false,
16147         },
16148         {
16149                 "drsuapi_DsReplicaDel",
16150                 sizeof(struct drsuapi_DsReplicaDel),
16151                 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsReplicaDel,
16152                 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsReplicaDel,
16153                 (ndr_print_function_t) ndr_print_drsuapi_DsReplicaDel,
16154                 false,
16155         },
16156         {
16157                 "drsuapi_DsReplicaMod",
16158                 sizeof(struct drsuapi_DsReplicaMod),
16159                 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsReplicaMod,
16160                 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsReplicaMod,
16161                 (ndr_print_function_t) ndr_print_drsuapi_DsReplicaMod,
16162                 false,
16163         },
16164         {
16165                 "DRSUAPI_VERIFY_NAMES",
16166                 sizeof(struct DRSUAPI_VERIFY_NAMES),
16167                 (ndr_push_flags_fn_t) ndr_push_DRSUAPI_VERIFY_NAMES,
16168                 (ndr_pull_flags_fn_t) ndr_pull_DRSUAPI_VERIFY_NAMES,
16169                 (ndr_print_function_t) ndr_print_DRSUAPI_VERIFY_NAMES,
16170                 false,
16171         },
16172         {
16173                 "drsuapi_DsGetMemberships",
16174                 sizeof(struct drsuapi_DsGetMemberships),
16175                 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsGetMemberships,
16176                 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsGetMemberships,
16177                 (ndr_print_function_t) ndr_print_drsuapi_DsGetMemberships,
16178                 false,
16179         },
16180         {
16181                 "DRSUAPI_INTER_DOMAIN_MOVE",
16182                 sizeof(struct DRSUAPI_INTER_DOMAIN_MOVE),
16183                 (ndr_push_flags_fn_t) ndr_push_DRSUAPI_INTER_DOMAIN_MOVE,
16184                 (ndr_pull_flags_fn_t) ndr_pull_DRSUAPI_INTER_DOMAIN_MOVE,
16185                 (ndr_print_function_t) ndr_print_DRSUAPI_INTER_DOMAIN_MOVE,
16186                 false,
16187         },
16188         {
16189                 "drsuapi_DsGetNT4ChangeLog",
16190                 sizeof(struct drsuapi_DsGetNT4ChangeLog),
16191                 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsGetNT4ChangeLog,
16192                 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsGetNT4ChangeLog,
16193                 (ndr_print_function_t) ndr_print_drsuapi_DsGetNT4ChangeLog,
16194                 false,
16195         },
16196         {
16197                 "drsuapi_DsCrackNames",
16198                 sizeof(struct drsuapi_DsCrackNames),
16199                 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsCrackNames,
16200                 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsCrackNames,
16201                 (ndr_print_function_t) ndr_print_drsuapi_DsCrackNames,
16202                 false,
16203         },
16204         {
16205                 "drsuapi_DsWriteAccountSpn",
16206                 sizeof(struct drsuapi_DsWriteAccountSpn),
16207                 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsWriteAccountSpn,
16208                 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsWriteAccountSpn,
16209                 (ndr_print_function_t) ndr_print_drsuapi_DsWriteAccountSpn,
16210                 false,
16211         },
16212         {
16213                 "drsuapi_DsRemoveDSServer",
16214                 sizeof(struct drsuapi_DsRemoveDSServer),
16215                 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsRemoveDSServer,
16216                 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsRemoveDSServer,
16217                 (ndr_print_function_t) ndr_print_drsuapi_DsRemoveDSServer,
16218                 false,
16219         },
16220         {
16221                 "DRSUAPI_REMOVE_DS_DOMAIN",
16222                 sizeof(struct DRSUAPI_REMOVE_DS_DOMAIN),
16223                 (ndr_push_flags_fn_t) ndr_push_DRSUAPI_REMOVE_DS_DOMAIN,
16224                 (ndr_pull_flags_fn_t) ndr_pull_DRSUAPI_REMOVE_DS_DOMAIN,
16225                 (ndr_print_function_t) ndr_print_DRSUAPI_REMOVE_DS_DOMAIN,
16226                 false,
16227         },
16228         {
16229                 "drsuapi_DsGetDomainControllerInfo",
16230                 sizeof(struct drsuapi_DsGetDomainControllerInfo),
16231                 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsGetDomainControllerInfo,
16232                 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsGetDomainControllerInfo,
16233                 (ndr_print_function_t) ndr_print_drsuapi_DsGetDomainControllerInfo,
16234                 false,
16235         },
16236         {
16237                 "drsuapi_DsAddEntry",
16238                 sizeof(struct drsuapi_DsAddEntry),
16239                 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsAddEntry,
16240                 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsAddEntry,
16241                 (ndr_print_function_t) ndr_print_drsuapi_DsAddEntry,
16242                 false,
16243         },
16244         {
16245                 "drsuapi_DsExecuteKCC",
16246                 sizeof(struct drsuapi_DsExecuteKCC),
16247                 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsExecuteKCC,
16248                 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsExecuteKCC,
16249                 (ndr_print_function_t) ndr_print_drsuapi_DsExecuteKCC,
16250                 false,
16251         },
16252         {
16253                 "drsuapi_DsReplicaGetInfo",
16254                 sizeof(struct drsuapi_DsReplicaGetInfo),
16255                 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsReplicaGetInfo,
16256                 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsReplicaGetInfo,
16257                 (ndr_print_function_t) ndr_print_drsuapi_DsReplicaGetInfo,
16258                 false,
16259         },
16260         {
16261                 "DRSUAPI_ADD_SID_HISTORY",
16262                 sizeof(struct DRSUAPI_ADD_SID_HISTORY),
16263                 (ndr_push_flags_fn_t) ndr_push_DRSUAPI_ADD_SID_HISTORY,
16264                 (ndr_pull_flags_fn_t) ndr_pull_DRSUAPI_ADD_SID_HISTORY,
16265                 (ndr_print_function_t) ndr_print_DRSUAPI_ADD_SID_HISTORY,
16266                 false,
16267         },
16268         {
16269                 "drsuapi_DsGetMemberships2",
16270                 sizeof(struct drsuapi_DsGetMemberships2),
16271                 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsGetMemberships2,
16272                 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsGetMemberships2,
16273                 (ndr_print_function_t) ndr_print_drsuapi_DsGetMemberships2,
16274                 false,
16275         },
16276         {
16277                 "DRSUAPI_REPLICA_VERIFY_OBJECTS",
16278                 sizeof(struct DRSUAPI_REPLICA_VERIFY_OBJECTS),
16279                 (ndr_push_flags_fn_t) ndr_push_DRSUAPI_REPLICA_VERIFY_OBJECTS,
16280                 (ndr_pull_flags_fn_t) ndr_pull_DRSUAPI_REPLICA_VERIFY_OBJECTS,
16281                 (ndr_print_function_t) ndr_print_DRSUAPI_REPLICA_VERIFY_OBJECTS,
16282                 false,
16283         },
16284         {
16285                 "DRSUAPI_GET_OBJECT_EXISTENCE",
16286                 sizeof(struct DRSUAPI_GET_OBJECT_EXISTENCE),
16287                 (ndr_push_flags_fn_t) ndr_push_DRSUAPI_GET_OBJECT_EXISTENCE,
16288                 (ndr_pull_flags_fn_t) ndr_pull_DRSUAPI_GET_OBJECT_EXISTENCE,
16289                 (ndr_print_function_t) ndr_print_DRSUAPI_GET_OBJECT_EXISTENCE,
16290                 false,
16291         },
16292         {
16293                 "drsuapi_QuerySitesByCost",
16294                 sizeof(struct drsuapi_QuerySitesByCost),
16295                 (ndr_push_flags_fn_t) ndr_push_drsuapi_QuerySitesByCost,
16296                 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_QuerySitesByCost,
16297                 (ndr_print_function_t) ndr_print_drsuapi_QuerySitesByCost,
16298                 false,
16299         },
16300         { NULL, 0, NULL, NULL, NULL, false }
16301 };
16302
16303 static const char * const drsuapi_endpoint_strings[] = {
16304         "ncacn_np:[\\pipe\\lsass]", 
16305         "ncacn_np:[\\pipe\\protected_storage]", 
16306         "ncacn_ip_tcp:", 
16307         "ncalrpc:", 
16308 };
16309
16310 static const struct ndr_interface_string_array drsuapi_endpoints = {
16311         .count  = 4,
16312         .names  = drsuapi_endpoint_strings
16313 };
16314
16315 static const char * const drsuapi_authservice_strings[] = {
16316         "ldap", 
16317 };
16318
16319 static const struct ndr_interface_string_array drsuapi_authservices = {
16320         .count  = 1,
16321         .names  = drsuapi_authservice_strings
16322 };
16323
16324
16325 const struct ndr_interface_table ndr_table_drsuapi = {
16326         .name           = "drsuapi",
16327         .syntax_id      = {
16328                 {0xe3514235,0x4b06,0x11d1,{0xab,0x04},{0x00,0xc0,0x4f,0xc2,0xdc,0xd2}},
16329                 NDR_DRSUAPI_VERSION
16330         },
16331         .helpstring     = NDR_DRSUAPI_HELPSTRING,
16332         .num_calls      = 25,
16333         .calls          = drsuapi_calls,
16334         .endpoints      = &drsuapi_endpoints,
16335         .authservices   = &drsuapi_authservices
16336 };
16337