idl: switched to using the WSPP names for the 'neighbour' DRS options
[abartlet/samba.git/.git] / librpc / gen_ndr / drsuapi.h
1 /* header auto-generated by pidl */
2
3 #include <stdint.h>
4
5 #include "libcli/util/ntstatus.h"
6
7 #include "librpc/gen_ndr/security.h"
8 #include "librpc/gen_ndr/misc.h"
9 #include "librpc/gen_ndr/samr.h"
10 #ifndef _HEADER_drsuapi
11 #define _HEADER_drsuapi
12
13 #define DRSUAPI_DS_BIND_GUID    ( "e24d201a-4fd6-11d1-a3da-0000f875ae0d" )
14 #define DRSUAPI_DS_BIND_GUID_W2K        ( "6abec3d1-3054-41c8-a362-5a0c5b7d5d71" )
15 #define DRSUAPI_DS_BIND_GUID_W2K3       ( "6afab99c-6e26-464a-975f-f58f105218bc" )
16 #define DRSUAPI_DS_MEMBERSHIP_FLAG_GROUP_ATTR   ( 0x1 )
17 #define DRSUAPI_NTDSDSA_KRB5_SERVICE_GUID       ( "E3514235-4B06-11D1-AB04-00C04FC2DCD2" )
18 /* bitmap drsuapi_DrsOptions */
19 #define DRSUAPI_DRS_ASYNC_OP ( 0x00000001 )
20 #define DRSUAPI_DRS_GETCHG_CHECK ( 0x00000002 )
21 #define DRSUAPI_DRS_UPDATE_NOTIFICATION ( 0x00000002 )
22 #define DRSUAPI_DRS_ADD_REF ( 0x00000004 )
23 #define DRSUAPI_DRS_SYNC_ALL ( 0x00000008 )
24 #define DRSUAPI_DRS_DEL_REF ( 0x00000008 )
25 #define DRSUAPI_DRS_WRIT_REP ( 0x00000010 )
26 #define DRSUAPI_DRS_INIT_SYNC ( 0x00000020 )
27 #define DRSUAPI_DRS_PER_SYNC ( 0x00000040 )
28 #define DRSUAPI_DRS_MAIL_REP ( 0x00000080 )
29 #define DRSUAPI_DRS_ASYNC_REP ( 0x00000100 )
30 #define DRSUAPI_DRS_IGNORE_ERROR ( 0x00000100 )
31 #define DRSUAPI_DRS_TWOWAY_SYNC ( 0x00000200 )
32 #define DRSUAPI_DRS_CRITICAL_ONLY ( 0x00000400 )
33 #define DRSUAPI_DRS_GET_ANC ( 0x00000800 )
34 #define DRSUAPI_DRS_GET_NC_SIZE ( 0x00001000 )
35 #define DRSUAPI_DRS_LOCAL_ONLY ( 0x00001000 )
36 #define DRSUAPI_DRS_SYNC_BYNAME ( 0x00004000 )
37 #define DRSUAPI_DRS_REF_OK ( 0x00004000 )
38 #define DRSUAPI_DRS_FULL_SYNC_NOW ( 0x00008000 )
39 #define DRSUAPI_DRS_NO_SOURCE ( 0x00008000 )
40 #define DRSUAPI_DRS_FULL_SYNC_IN_PROGRESS ( 0x00010000 )
41 #define DRSUAPI_DRS_FULL_SYNC_PACKET ( 0x00020000 )
42 #define DRSUAPI_DRS_SYNC_REQUEUE ( 0x00040000 )
43 #define DRSUAPI_DRS_SYNC_URGENT ( 0x00080000 )
44 #define DRSUAPI_DRS_REF_GCSPN ( 0x00100000 )
45 #define DRSUAPI_DRS_NO_DISCARD ( 0x00100000 )
46 #define DRSUAPI_DRS_NEVER_SYNCED ( 0x00200000 )
47 #define DRSUAPI_DRS_SPECIAL_SECRET_PROCESSING ( 0x00400000 )
48 #define DRSUAPI_DRS_INIT_SYNC_NOW ( 0x00800000 )
49 #define DRSUAPI_DRS_PREEMPTED ( 0x01000000 )
50 #define DRSUAPI_DRS_SYNC_FORCED ( 0x02000000 )
51 #define DRSUAPI_DRS_DISABLE_AUTO_SYNC ( 0x04000000 )
52 #define DRSUAPI_DRS_DISABLE_PERIODIC_SYNC ( 0x08000000 )
53 #define DRSUAPI_DRS_USE_COMPRESSION ( 0x10000000 )
54 #define DRSUAPI_DRS_NEVER_NOTIFY ( 0x20000000 )
55 #define DRSUAPI_DRS_SYNC_PAS ( 0x40000000 )
56 #define DRSUAPI_DRS_GET_ALL_GROUP_MEMBERSHIP ( 0x80000000 )
57
58 /* bitmap drsuapi_SupportedExtensions */
59 #define DRSUAPI_SUPPORTED_EXTENSION_BASE ( 0x00000001 )
60 #define DRSUAPI_SUPPORTED_EXTENSION_ASYNC_REPLICATION ( 0x00000002 )
61 #define DRSUAPI_SUPPORTED_EXTENSION_REMOVEAPI ( 0x00000004 )
62 #define DRSUAPI_SUPPORTED_EXTENSION_MOVEREQ_V2 ( 0x00000008 )
63 #define DRSUAPI_SUPPORTED_EXTENSION_GETCHG_COMPRESS ( 0x00000010 )
64 #define DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V1 ( 0x00000020 )
65 #define DRSUAPI_SUPPORTED_EXTENSION_RESTORE_USN_OPTIMIZATION ( 0x00000040 )
66 #define DRSUAPI_SUPPORTED_EXTENSION_00000080 ( 0x00000080 )
67 #define DRSUAPI_SUPPORTED_EXTENSION_KCC_EXECUTE ( 0x00000100 )
68 #define DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_V2 ( 0x00000200 )
69 #define DRSUAPI_SUPPORTED_EXTENSION_LINKED_VALUE_REPLICATION ( 0x00000400 )
70 #define DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V2 ( 0x00000800 )
71 #define DRSUAPI_SUPPORTED_EXTENSION_INSTANCE_TYPE_NOT_REQ_ON_MOD ( 0x00001000 )
72 #define DRSUAPI_SUPPORTED_EXTENSION_CRYPTO_BIND ( 0x00002000 )
73 #define DRSUAPI_SUPPORTED_EXTENSION_GET_REPL_INFO ( 0x00004000 )
74 #define DRSUAPI_SUPPORTED_EXTENSION_STRONG_ENCRYPTION ( 0x00008000 )
75 #define DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V01 ( 0x00010000 )
76 #define DRSUAPI_SUPPORTED_EXTENSION_TRANSITIVE_MEMBERSHIP ( 0x00020000 )
77 #define DRSUAPI_SUPPORTED_EXTENSION_ADD_SID_HISTORY ( 0x00040000 )
78 #define DRSUAPI_SUPPORTED_EXTENSION_POST_BETA3 ( 0x00080000 )
79 #define DRSUAPI_SUPPORTED_EXTENSION_00100000 ( 0x00100000 )
80 #define DRSUAPI_SUPPORTED_EXTENSION_GET_MEMBERSHIPS2 ( 0x00200000 )
81 #define DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V6 ( 0x00400000 )
82 #define DRSUAPI_SUPPORTED_EXTENSION_NONDOMAIN_NCS ( 0x00800000 )
83 #define DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V8 ( 0x01000000 )
84 #define DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V5 ( 0x02000000 )
85 #define DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V6 ( 0x04000000 )
86 #define DRSUAPI_SUPPORTED_EXTENSION_ADDENTRYREPLY_V3 ( 0x08000000 )
87 #define DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V7 ( 0x08000000 )
88 #define DRSUAPI_SUPPORTED_EXTENSION_VERIFY_OBJECT ( 0x08000000 )
89 #define DRSUAPI_SUPPORTED_EXTENSION_XPRESS_COMPRESS ( 0x10000000 )
90 #define DRSUAPI_SUPPORTED_EXTENSION_20000000 ( 0x20000000 )
91 #define DRSUAPI_SUPPORTED_EXTENSION_40000000 ( 0x40000000 )
92 #define DRSUAPI_SUPPORTED_EXTENSION_80000000 ( 0x80000000 )
93
94 /* bitmap drsuapi_SupportedExtensionsExt */
95 #define DRSUAPI_SUPPORTED_EXTENSION_ADAM ( 0x00000001 )
96 #define DRSUAPI_SUPPORTED_EXTENSION_LH_BETA2 ( 0x00000002 )
97
98 struct drsuapi_DsBindInfo24 {
99         uint32_t supported_extensions;
100         struct GUID site_guid;
101         uint32_t pid;
102 };
103
104 struct drsuapi_DsBindInfo28 {
105         uint32_t supported_extensions;
106         struct GUID site_guid;
107         uint32_t pid;
108         uint32_t repl_epoch;
109 };
110
111 struct drsuapi_DsBindInfo48 {
112         uint32_t supported_extensions;
113         struct GUID site_guid;
114         uint32_t pid;
115         uint32_t repl_epoch;
116         uint32_t supported_extensions_ext;
117         struct GUID config_dn_guid;
118 };
119
120 struct drsuapi_DsBindInfoFallBack {
121         DATA_BLOB info;/* [flag(LIBNDR_FLAG_REMAINING)] */
122 };
123
124 union drsuapi_DsBindInfo {
125         struct drsuapi_DsBindInfo24 info24;/* [subcontext(4),case(24)] */
126         struct drsuapi_DsBindInfo28 info28;/* [subcontext(4),case(28)] */
127         struct drsuapi_DsBindInfo48 info48;/* [subcontext(4),case(48)] */
128         struct drsuapi_DsBindInfoFallBack FallBack;/* [subcontext(4),default] */
129 }/* [nodiscriminant] */;
130
131 struct drsuapi_DsBindInfoCtr {
132         uint32_t length;/* [range(1,10000)] */
133         union drsuapi_DsBindInfo info;/* [switch_is(length)] */
134 };
135
136 struct drsuapi_DsReplicaObjectIdentifier {
137         uint32_t __ndr_size;/* [value(ndr_size_drsuapi_DsReplicaObjectIdentifier(r,ndr->iconv_convenience,ndr->flags)-4)] */
138         uint32_t __ndr_size_sid;/* [value(ndr_size_dom_sid28(&sid,ndr->flags))] */
139         struct GUID guid;
140         struct dom_sid28 sid;
141         uint32_t __ndr_size_dn;/* [value(strlen_m(dn))] */
142         const char *dn;/* [charset(UTF16),size_is(__ndr_size_dn+1)] */
143 }/* [gensize,public] */;
144
145 /* bitmap drsuapi_DsReplicaSyncOptions */
146 #define DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_OPERATION ( 0x00000001 )
147 #define DRSUAPI_DS_REPLICA_SYNC_WRITEABLE ( 0x00000002 )
148 #define DRSUAPI_DS_REPLICA_SYNC_PERIODIC ( 0x00000004 )
149 #define DRSUAPI_DS_REPLICA_SYNC_INTERSITE_MESSAGING ( 0x00000008 )
150 #define DRSUAPI_DS_REPLICA_SYNC_ALL_SOURCES ( 0x00000010 )
151 #define DRSUAPI_DS_REPLICA_SYNC_FULL ( 0x00000020 )
152 #define DRSUAPI_DS_REPLICA_SYNC_URGENT ( 0x00000040 )
153 #define DRSUAPI_DS_REPLICA_SYNC_NO_DISCARD ( 0x00000080 )
154 #define DRSUAPI_DS_REPLICA_SYNC_FORCE ( 0x00000100 )
155 #define DRSUAPI_DS_REPLICA_SYNC_ADD_REFERENCE ( 0x00000200 )
156 #define DRSUAPI_DS_REPLICA_SYNC_NEVER_COMPLETED ( 0x00000400 )
157 #define DRSUAPI_DS_REPLICA_SYNC_TWO_WAY ( 0x00000800 )
158 #define DRSUAPI_DS_REPLICA_SYNC_NEVER_NOTIFY ( 0x00001000 )
159 #define DRSUAPI_DS_REPLICA_SYNC_INITIAL ( 0x00002000 )
160 #define DRSUAPI_DS_REPLICA_SYNC_USE_COMPRESSION ( 0x00004000 )
161 #define DRSUAPI_DS_REPLICA_SYNC_ABANDONED ( 0x00008000 )
162 #define DRSUAPI_DS_REPLICA_SYNC_INITIAL_IN_PROGRESS ( 0x00010000 )
163 #define DRSUAPI_DS_REPLICA_SYNC_PARTIAL_ATTRIBUTE_SET ( 0x00020000 )
164 #define DRSUAPI_DS_REPLICA_SYNC_REQUEUE ( 0x00040000 )
165 #define DRSUAPI_DS_REPLICA_SYNC_NOTIFICATION ( 0x00080000 )
166 #define DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_REPLICA ( 0x00100000 )
167 #define DRSUAPI_DS_REPLICA_SYNC_CRITICAL ( 0x00200000 )
168 #define DRSUAPI_DS_REPLICA_SYNC_FULL_IN_PROGRESS ( 0x00400000 )
169 #define DRSUAPI_DS_REPLICA_SYNC_PREEMPTED ( 0x00800000 )
170
171 struct drsuapi_DsReplicaSyncRequest1 {
172         struct drsuapi_DsReplicaObjectIdentifier *naming_context;/* [unique] */
173         struct GUID source_dsa_guid;
174         const char * other_info;/* [unique,flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
175         uint32_t options;
176 };
177
178 union drsuapi_DsReplicaSyncRequest {
179         struct drsuapi_DsReplicaSyncRequest1 req1;/* [case] */
180 }/* [switch_type(int32)] */;
181
182 struct drsuapi_DsReplicaHighWaterMark {
183         uint64_t tmp_highest_usn;
184         uint64_t reserved_usn;
185         uint64_t highest_usn;
186 }/* [public] */;
187
188 struct drsuapi_DsReplicaCursor {
189         struct GUID source_dsa_invocation_id;
190         uint64_t highest_usn;
191 }/* [public] */;
192
193 struct drsuapi_DsReplicaCursorCtrEx {
194         uint32_t version;/* [value] */
195         uint32_t reserved1;/* [value(0)] */
196         uint32_t count;/* [range(0,0x100000)] */
197         uint32_t reserved2;/* [value(0)] */
198         struct drsuapi_DsReplicaCursor *cursors;/* [size_is(count)] */
199 };
200
201 enum drsuapi_DsExtendedOperation
202 #ifndef USE_UINT_ENUMS
203  {
204         DRSUAPI_EXOP_NONE=(int)(0x00000000),
205         DRSUAPI_EXOP_FSMO_REQ_ROLE=(int)(0x00000001),
206         DRSUAPI_EXOP_FSMO_RID_ALLOC=(int)(0x00000002),
207         DRSUAPI_EXOP_FSMO_RID_REQ_ROLE=(int)(0x00000003),
208         DRSUAPI_EXOP_FSMO_REQ_PDC=(int)(0x00000004),
209         DRSUAPI_EXOP_FSMO_ABANDON_ROLE=(int)(0x00000005),
210         DRSUAPI_EXOP_REPL_OBJ=(int)(0x00000006),
211         DRSUAPI_EXOP_REPL_SECRET=(int)(0x00000007)
212 }
213 #else
214  { __donnot_use_enum_drsuapi_DsExtendedOperation=0x7FFFFFFF}
215 #define DRSUAPI_EXOP_NONE ( 0x00000000 )
216 #define DRSUAPI_EXOP_FSMO_REQ_ROLE ( 0x00000001 )
217 #define DRSUAPI_EXOP_FSMO_RID_ALLOC ( 0x00000002 )
218 #define DRSUAPI_EXOP_FSMO_RID_REQ_ROLE ( 0x00000003 )
219 #define DRSUAPI_EXOP_FSMO_REQ_PDC ( 0x00000004 )
220 #define DRSUAPI_EXOP_FSMO_ABANDON_ROLE ( 0x00000005 )
221 #define DRSUAPI_EXOP_REPL_OBJ ( 0x00000006 )
222 #define DRSUAPI_EXOP_REPL_SECRET ( 0x00000007 )
223 #endif
224 ;
225
226 enum drsuapi_DsExtendedError
227 #ifndef USE_UINT_ENUMS
228  {
229         DRSUAPI_EXOP_ERR_NONE=(int)(0x00000000),
230         DRSUAPI_EXOP_ERR_SUCCESS=(int)(0x00000001),
231         DRSUAPI_EXOP_ERR_UNKNOWN_OP=(int)(0x00000002),
232         DRSUAPI_EXOP_ERR_FSMO_NOT_OWNER=(int)(0x00000003),
233         DRSUAPI_EXOP_ERR_UPDATE_ERR=(int)(0x00000004),
234         DRSUAPI_EXOP_ERR_EXCEPTION=(int)(0x00000005),
235         DRSUAPI_EXOP_ERR_UNKNOWN_CALLER=(int)(0x00000006),
236         DRSUAPI_EXOP_ERR_RID_ALLOC=(int)(0x00000007),
237         DRSUAPI_EXOP_ERR_FSMO_OWNER_DELETED=(int)(0x00000008),
238         DRSUAPI_EXOP_ERR_FMSO_PENDING_OP=(int)(0x00000009),
239         DRSUAPI_EXOP_ERR_MISMATCH=(int)(0x0000000A),
240         DRSUAPI_EXOP_ERR_COULDNT_CONTACT=(int)(0x0000000B),
241         DRSUAPI_EXOP_ERR_FSMO_REFUSING_ROLES=(int)(0x0000000C),
242         DRSUAPI_EXOP_ERR_DIR_ERROR=(int)(0x0000000D),
243         DRSUAPI_EXOP_ERR_FSMO_MISSING_SETTINGS=(int)(0x0000000E),
244         DRSUAPI_EXOP_ERR_ACCESS_DENIED=(int)(0x0000000F),
245         DRSUAPI_EXOP_ERR_PARAM_ERROR=(int)(0x00000010)
246 }
247 #else
248  { __donnot_use_enum_drsuapi_DsExtendedError=0x7FFFFFFF}
249 #define DRSUAPI_EXOP_ERR_NONE ( 0x00000000 )
250 #define DRSUAPI_EXOP_ERR_SUCCESS ( 0x00000001 )
251 #define DRSUAPI_EXOP_ERR_UNKNOWN_OP ( 0x00000002 )
252 #define DRSUAPI_EXOP_ERR_FSMO_NOT_OWNER ( 0x00000003 )
253 #define DRSUAPI_EXOP_ERR_UPDATE_ERR ( 0x00000004 )
254 #define DRSUAPI_EXOP_ERR_EXCEPTION ( 0x00000005 )
255 #define DRSUAPI_EXOP_ERR_UNKNOWN_CALLER ( 0x00000006 )
256 #define DRSUAPI_EXOP_ERR_RID_ALLOC ( 0x00000007 )
257 #define DRSUAPI_EXOP_ERR_FSMO_OWNER_DELETED ( 0x00000008 )
258 #define DRSUAPI_EXOP_ERR_FMSO_PENDING_OP ( 0x00000009 )
259 #define DRSUAPI_EXOP_ERR_MISMATCH ( 0x0000000A )
260 #define DRSUAPI_EXOP_ERR_COULDNT_CONTACT ( 0x0000000B )
261 #define DRSUAPI_EXOP_ERR_FSMO_REFUSING_ROLES ( 0x0000000C )
262 #define DRSUAPI_EXOP_ERR_DIR_ERROR ( 0x0000000D )
263 #define DRSUAPI_EXOP_ERR_FSMO_MISSING_SETTINGS ( 0x0000000E )
264 #define DRSUAPI_EXOP_ERR_ACCESS_DENIED ( 0x0000000F )
265 #define DRSUAPI_EXOP_ERR_PARAM_ERROR ( 0x00000010 )
266 #endif
267 ;
268
269 struct drsuapi_DsGetNCChangesRequest5 {
270         struct GUID destination_dsa_guid;
271         struct GUID source_dsa_invocation_id;
272         struct drsuapi_DsReplicaObjectIdentifier *naming_context;/* [ref] */
273         struct drsuapi_DsReplicaHighWaterMark highwatermark;
274         struct drsuapi_DsReplicaCursorCtrEx *uptodateness_vector;/* [unique] */
275         uint32_t replica_flags;
276         uint32_t max_object_count;
277         uint32_t max_ndr_size;
278         enum drsuapi_DsExtendedOperation extended_op;
279         uint64_t fsmo_info;
280 };
281
282 struct drsuapi_DsReplicaOID {
283         uint32_t length;/* [range(0,10000)] */
284         uint8_t *binary_oid;/* [unique,size_is(length)] */
285 }/* [noprint] */;
286
287 struct drsuapi_DsReplicaOIDMapping {
288         uint32_t id_prefix;
289         struct drsuapi_DsReplicaOID oid;
290 };
291
292 struct drsuapi_DsReplicaOIDMapping_Ctr {
293         uint32_t num_mappings;/* [range(0,0x100000)] */
294         struct drsuapi_DsReplicaOIDMapping *mappings;/* [unique,size_is(num_mappings)] */
295 }/* [public] */;
296
297 enum drsuapi_DsObjectClassId
298 #ifndef USE_UINT_ENUMS
299  {
300         DRSUAPI_OBJECTCLASS_top=(int)(0x00010000),
301         DRSUAPI_OBJECTCLASS_classSchema=(int)(0x0003000d),
302         DRSUAPI_OBJECTCLASS_attributeSchema=(int)(0x0003000e)
303 }
304 #else
305  { __donnot_use_enum_drsuapi_DsObjectClassId=0x7FFFFFFF}
306 #define DRSUAPI_OBJECTCLASS_top ( 0x00010000 )
307 #define DRSUAPI_OBJECTCLASS_classSchema ( 0x0003000d )
308 #define DRSUAPI_OBJECTCLASS_attributeSchema ( 0x0003000e )
309 #endif
310 ;
311
312 enum drsuapi_DsAttributeId
313 #ifndef USE_UINT_ENUMS
314  {
315         DRSUAPI_ATTRIBUTE_objectClass=(int)(0x00000000),
316         DRSUAPI_ATTRIBUTE_cn=(int)(0x00000003),
317         DRSUAPI_ATTRIBUTE_description=(int)(0x0000000d),
318         DRSUAPI_ATTRIBUTE_member=(int)(0x0000001f),
319         DRSUAPI_ATTRIBUTE_instanceType=(int)(0x00020001),
320         DRSUAPI_ATTRIBUTE_whenCreated=(int)(0x00020002),
321         DRSUAPI_ATTRIBUTE_possSuperiors=(int)(0x00020008),
322         DRSUAPI_ATTRIBUTE_hasMasterNCs=(int)(0x0002000e),
323         DRSUAPI_ATTRIBUTE_subClassOf=(int)(0x00020015),
324         DRSUAPI_ATTRIBUTE_governsID=(int)(0x00020016),
325         DRSUAPI_ATTRIBUTE_mustContain=(int)(0x00020018),
326         DRSUAPI_ATTRIBUTE_mayContain=(int)(0x00020019),
327         DRSUAPI_ATTRIBUTE_rDNAttId=(int)(0x0002001A),
328         DRSUAPI_ATTRIBUTE_attributeID=(int)(0x0002001e),
329         DRSUAPI_ATTRIBUTE_attributeSyntax=(int)(0x00020020),
330         DRSUAPI_ATTRIBUTE_isSingleValued=(int)(0x00020021),
331         DRSUAPI_ATTRIBUTE_rangeLower=(int)(0x00020022),
332         DRSUAPI_ATTRIBUTE_rangeUpper=(int)(0x00020023),
333         DRSUAPI_ATTRIBUTE_dMDLocation=(int)(0x00020024),
334         DRSUAPI_ATTRIBUTE_objectVersion=(int)(0x0002004c),
335         DRSUAPI_ATTRIBUTE_invocationId=(int)(0x00020073),
336         DRSUAPI_ATTRIBUTE_showInAdvancedViewOnly=(int)(0x000200a9),
337         DRSUAPI_ATTRIBUTE_adminDisplayName=(int)(0x000200c2),
338         DRSUAPI_ATTRIBUTE_adminDescription=(int)(0x000200e2),
339         DRSUAPI_ATTRIBUTE_oMSyntax=(int)(0x000200e7),
340         DRSUAPI_ATTRIBUTE_ntSecurityDescriptor=(int)(0x00020119),
341         DRSUAPI_ATTRIBUTE_searchFlags=(int)(0x0002014e),
342         DRSUAPI_ATTRIBUTE_auxiliaryClass=(int)(0x0002015f),
343         DRSUAPI_ATTRIBUTE_lDAPDisplayName=(int)(0x000201cc),
344         DRSUAPI_ATTRIBUTE_name=(int)(0x00090001),
345         DRSUAPI_ATTRIBUTE_userAccountControl=(int)(0x00090008),
346         DRSUAPI_ATTRIBUTE_currentValue=(int)(0x0009001b),
347         DRSUAPI_ATTRIBUTE_homeDirectory=(int)(0x0009002c),
348         DRSUAPI_ATTRIBUTE_homeDrive=(int)(0x0009002d),
349         DRSUAPI_ATTRIBUTE_scriptPath=(int)(0x0009003e),
350         DRSUAPI_ATTRIBUTE_profilePath=(int)(0x0009008b),
351         DRSUAPI_ATTRIBUTE_objectSid=(int)(0x00090092),
352         DRSUAPI_ATTRIBUTE_schemaIDGUID=(int)(0x00090094),
353         DRSUAPI_ATTRIBUTE_dBCSPwd=(int)(0x00090037),
354         DRSUAPI_ATTRIBUTE_logonHours=(int)(0x00090040),
355         DRSUAPI_ATTRIBUTE_userWorkstations=(int)(0x00090056),
356         DRSUAPI_ATTRIBUTE_unicodePwd=(int)(0x0009005a),
357         DRSUAPI_ATTRIBUTE_ntPwdHistory=(int)(0x0009005e),
358         DRSUAPI_ATTRIBUTE_priorValue=(int)(0x00090064),
359         DRSUAPI_ATTRIBUTE_supplementalCredentials=(int)(0x0009007d),
360         DRSUAPI_ATTRIBUTE_trustAuthIncoming=(int)(0x00090081),
361         DRSUAPI_ATTRIBUTE_trustAuthOutgoing=(int)(0x00090087),
362         DRSUAPI_ATTRIBUTE_lmPwdHistory=(int)(0x000900a0),
363         DRSUAPI_ATTRIBUTE_systemPossSuperiors=(int)(0x000900c3),
364         DRSUAPI_ATTRIBUTE_systemMayContain=(int)(0x000900c4),
365         DRSUAPI_ATTRIBUTE_systemMustContain=(int)(0x000900c5),
366         DRSUAPI_ATTRIBUTE_systemAuxiliaryClass=(int)(0x000900c6),
367         DRSUAPI_ATTRIBUTE_sAMAccountName=(int)(0x000900dd),
368         DRSUAPI_ATTRIBUTE_sAMAccountType=(int)(0x0009012e),
369         DRSUAPI_ATTRIBUTE_fSMORoleOwner=(int)(0x00090171),
370         DRSUAPI_ATTRIBUTE_systemFlags=(int)(0x00090177),
371         DRSUAPI_ATTRIBUTE_serverReference=(int)(0x00090203),
372         DRSUAPI_ATTRIBUTE_serverReferenceBL=(int)(0x00090204),
373         DRSUAPI_ATTRIBUTE_initialAuthIncoming=(int)(0x0009021b),
374         DRSUAPI_ATTRIBUTE_initialAuthOutgoing=(int)(0x0009021c),
375         DRSUAPI_ATTRIBUTE_wellKnownObjects=(int)(0x0009026a),
376         DRSUAPI_ATTRIBUTE_dNSHostName=(int)(0x0009026b),
377         DRSUAPI_ATTRIBUTE_isMemberOfPartialAttributeSet=(int)(0x0009027f),
378         DRSUAPI_ATTRIBUTE_userPrincipalName=(int)(0x00090290),
379         DRSUAPI_ATTRIBUTE_groupType=(int)(0x000902ee),
380         DRSUAPI_ATTRIBUTE_servicePrincipalName=(int)(0x00090303),
381         DRSUAPI_ATTRIBUTE_objectCategory=(int)(0x0009030e),
382         DRSUAPI_ATTRIBUTE_gPLink=(int)(0x0009037b),
383         DRSUAPI_ATTRIBUTE_transportAddressAttribute=(int)(0x0009037f),
384         DRSUAPI_ATTRIBUTE_msDS_Behavior_Version=(int)(0x000905b3),
385         DRSUAPI_ATTRIBUTE_msDS_KeyVersionNumber=(int)(0x000906f6),
386         DRSUAPI_ATTRIBUTE_msDS_HasDomainNCs=(int)(0x0009071c),
387         DRSUAPI_ATTRIBUTE_msDS_hasMasterNCs=(int)(0x0009072c),
388         DRSUAPI_ATTRIBUTE_NONE=(int)(0xFFFFFFFF)
389 }
390 #else
391  { __donnot_use_enum_drsuapi_DsAttributeId=0x7FFFFFFF}
392 #define DRSUAPI_ATTRIBUTE_objectClass ( 0x00000000 )
393 #define DRSUAPI_ATTRIBUTE_cn ( 0x00000003 )
394 #define DRSUAPI_ATTRIBUTE_description ( 0x0000000d )
395 #define DRSUAPI_ATTRIBUTE_member ( 0x0000001f )
396 #define DRSUAPI_ATTRIBUTE_instanceType ( 0x00020001 )
397 #define DRSUAPI_ATTRIBUTE_whenCreated ( 0x00020002 )
398 #define DRSUAPI_ATTRIBUTE_possSuperiors ( 0x00020008 )
399 #define DRSUAPI_ATTRIBUTE_hasMasterNCs ( 0x0002000e )
400 #define DRSUAPI_ATTRIBUTE_subClassOf ( 0x00020015 )
401 #define DRSUAPI_ATTRIBUTE_governsID ( 0x00020016 )
402 #define DRSUAPI_ATTRIBUTE_mustContain ( 0x00020018 )
403 #define DRSUAPI_ATTRIBUTE_mayContain ( 0x00020019 )
404 #define DRSUAPI_ATTRIBUTE_rDNAttId ( 0x0002001A )
405 #define DRSUAPI_ATTRIBUTE_attributeID ( 0x0002001e )
406 #define DRSUAPI_ATTRIBUTE_attributeSyntax ( 0x00020020 )
407 #define DRSUAPI_ATTRIBUTE_isSingleValued ( 0x00020021 )
408 #define DRSUAPI_ATTRIBUTE_rangeLower ( 0x00020022 )
409 #define DRSUAPI_ATTRIBUTE_rangeUpper ( 0x00020023 )
410 #define DRSUAPI_ATTRIBUTE_dMDLocation ( 0x00020024 )
411 #define DRSUAPI_ATTRIBUTE_objectVersion ( 0x0002004c )
412 #define DRSUAPI_ATTRIBUTE_invocationId ( 0x00020073 )
413 #define DRSUAPI_ATTRIBUTE_showInAdvancedViewOnly ( 0x000200a9 )
414 #define DRSUAPI_ATTRIBUTE_adminDisplayName ( 0x000200c2 )
415 #define DRSUAPI_ATTRIBUTE_adminDescription ( 0x000200e2 )
416 #define DRSUAPI_ATTRIBUTE_oMSyntax ( 0x000200e7 )
417 #define DRSUAPI_ATTRIBUTE_ntSecurityDescriptor ( 0x00020119 )
418 #define DRSUAPI_ATTRIBUTE_searchFlags ( 0x0002014e )
419 #define DRSUAPI_ATTRIBUTE_auxiliaryClass ( 0x0002015f )
420 #define DRSUAPI_ATTRIBUTE_lDAPDisplayName ( 0x000201cc )
421 #define DRSUAPI_ATTRIBUTE_name ( 0x00090001 )
422 #define DRSUAPI_ATTRIBUTE_userAccountControl ( 0x00090008 )
423 #define DRSUAPI_ATTRIBUTE_currentValue ( 0x0009001b )
424 #define DRSUAPI_ATTRIBUTE_homeDirectory ( 0x0009002c )
425 #define DRSUAPI_ATTRIBUTE_homeDrive ( 0x0009002d )
426 #define DRSUAPI_ATTRIBUTE_scriptPath ( 0x0009003e )
427 #define DRSUAPI_ATTRIBUTE_profilePath ( 0x0009008b )
428 #define DRSUAPI_ATTRIBUTE_objectSid ( 0x00090092 )
429 #define DRSUAPI_ATTRIBUTE_schemaIDGUID ( 0x00090094 )
430 #define DRSUAPI_ATTRIBUTE_dBCSPwd ( 0x00090037 )
431 #define DRSUAPI_ATTRIBUTE_logonHours ( 0x00090040 )
432 #define DRSUAPI_ATTRIBUTE_userWorkstations ( 0x00090056 )
433 #define DRSUAPI_ATTRIBUTE_unicodePwd ( 0x0009005a )
434 #define DRSUAPI_ATTRIBUTE_ntPwdHistory ( 0x0009005e )
435 #define DRSUAPI_ATTRIBUTE_priorValue ( 0x00090064 )
436 #define DRSUAPI_ATTRIBUTE_supplementalCredentials ( 0x0009007d )
437 #define DRSUAPI_ATTRIBUTE_trustAuthIncoming ( 0x00090081 )
438 #define DRSUAPI_ATTRIBUTE_trustAuthOutgoing ( 0x00090087 )
439 #define DRSUAPI_ATTRIBUTE_lmPwdHistory ( 0x000900a0 )
440 #define DRSUAPI_ATTRIBUTE_systemPossSuperiors ( 0x000900c3 )
441 #define DRSUAPI_ATTRIBUTE_systemMayContain ( 0x000900c4 )
442 #define DRSUAPI_ATTRIBUTE_systemMustContain ( 0x000900c5 )
443 #define DRSUAPI_ATTRIBUTE_systemAuxiliaryClass ( 0x000900c6 )
444 #define DRSUAPI_ATTRIBUTE_sAMAccountName ( 0x000900dd )
445 #define DRSUAPI_ATTRIBUTE_sAMAccountType ( 0x0009012e )
446 #define DRSUAPI_ATTRIBUTE_fSMORoleOwner ( 0x00090171 )
447 #define DRSUAPI_ATTRIBUTE_systemFlags ( 0x00090177 )
448 #define DRSUAPI_ATTRIBUTE_serverReference ( 0x00090203 )
449 #define DRSUAPI_ATTRIBUTE_serverReferenceBL ( 0x00090204 )
450 #define DRSUAPI_ATTRIBUTE_initialAuthIncoming ( 0x0009021b )
451 #define DRSUAPI_ATTRIBUTE_initialAuthOutgoing ( 0x0009021c )
452 #define DRSUAPI_ATTRIBUTE_wellKnownObjects ( 0x0009026a )
453 #define DRSUAPI_ATTRIBUTE_dNSHostName ( 0x0009026b )
454 #define DRSUAPI_ATTRIBUTE_isMemberOfPartialAttributeSet ( 0x0009027f )
455 #define DRSUAPI_ATTRIBUTE_userPrincipalName ( 0x00090290 )
456 #define DRSUAPI_ATTRIBUTE_groupType ( 0x000902ee )
457 #define DRSUAPI_ATTRIBUTE_servicePrincipalName ( 0x00090303 )
458 #define DRSUAPI_ATTRIBUTE_objectCategory ( 0x0009030e )
459 #define DRSUAPI_ATTRIBUTE_gPLink ( 0x0009037b )
460 #define DRSUAPI_ATTRIBUTE_transportAddressAttribute ( 0x0009037f )
461 #define DRSUAPI_ATTRIBUTE_msDS_Behavior_Version ( 0x000905b3 )
462 #define DRSUAPI_ATTRIBUTE_msDS_KeyVersionNumber ( 0x000906f6 )
463 #define DRSUAPI_ATTRIBUTE_msDS_HasDomainNCs ( 0x0009071c )
464 #define DRSUAPI_ATTRIBUTE_msDS_hasMasterNCs ( 0x0009072c )
465 #define DRSUAPI_ATTRIBUTE_NONE ( 0xFFFFFFFF )
466 #endif
467 ;
468
469 struct drsuapi_DsPartialAttributeSet {
470         uint32_t version;/* [value] */
471         uint32_t reserved1;/* [value(0)] */
472         uint32_t num_attids;/* [range(1,0x100000)] */
473         enum drsuapi_DsAttributeId *attids;/* [size_is(num_attids)] */
474 };
475
476 struct drsuapi_DsGetNCChangesRequest8 {
477         struct GUID destination_dsa_guid;
478         struct GUID source_dsa_invocation_id;
479         struct drsuapi_DsReplicaObjectIdentifier *naming_context;/* [ref] */
480         struct drsuapi_DsReplicaHighWaterMark highwatermark;
481         struct drsuapi_DsReplicaCursorCtrEx *uptodateness_vector;/* [unique] */
482         uint32_t replica_flags;
483         uint32_t max_object_count;
484         uint32_t max_ndr_size;
485         enum drsuapi_DsExtendedOperation extended_op;
486         uint64_t fsmo_info;
487         struct drsuapi_DsPartialAttributeSet *partial_attribute_set;/* [unique] */
488         struct drsuapi_DsPartialAttributeSet *partial_attribute_set_ex;/* [unique] */
489         struct drsuapi_DsReplicaOIDMapping_Ctr mapping_ctr;
490 };
491
492 struct drsuapi_DsGetNCChangesRequest10 {
493         struct GUID destination_dsa_guid;
494         struct GUID source_dsa_invocation_id;
495         struct drsuapi_DsReplicaObjectIdentifier *naming_context;/* [ref] */
496         struct drsuapi_DsReplicaHighWaterMark highwatermark;
497         struct drsuapi_DsReplicaCursorCtrEx *uptodateness_vector;/* [unique] */
498         uint32_t replica_flags;
499         uint32_t max_object_count;
500         uint32_t max_ndr_size;
501         enum drsuapi_DsExtendedOperation extended_op;
502         uint64_t fsmo_info;
503         struct drsuapi_DsPartialAttributeSet *partial_attribute_set;/* [unique] */
504         struct drsuapi_DsPartialAttributeSet *partial_attribute_set_ex;/* [unique] */
505         struct drsuapi_DsReplicaOIDMapping_Ctr mapping_ctr;
506         uint32_t more_flags;
507 };
508
509 union drsuapi_DsGetNCChangesRequest {
510         struct drsuapi_DsGetNCChangesRequest5 req5;/* [case(5)] */
511         struct drsuapi_DsGetNCChangesRequest8 req8;/* [case(8)] */
512         struct drsuapi_DsGetNCChangesRequest10 req10;/* [case(10)] */
513 }/* [switch_type(int32)] */;
514
515 struct drsuapi_DsReplicaCursor2 {
516         struct GUID source_dsa_invocation_id;
517         uint64_t highest_usn;
518         NTTIME last_sync_success;
519 }/* [public] */;
520
521 struct drsuapi_DsReplicaCursor2CtrEx {
522         uint32_t version;/* [value(2)] */
523         uint32_t reserved1;/* [value(0)] */
524         uint32_t count;/* [range(0,0x100000)] */
525         uint32_t reserved2;/* [value(0)] */
526         struct drsuapi_DsReplicaCursor2 *cursors;/* [size_is(count)] */
527 };
528
529 struct drsuapi_DsAttributeValue {
530         uint32_t __ndr_size;/* [value(ndr_size_DATA_BLOB(0,blob,0)),range(0,10485760)] */
531         DATA_BLOB *blob;/* [unique] */
532 };
533
534 struct drsuapi_DsAttributeValueCtr {
535         uint32_t num_values;/* [range(0,10485760)] */
536         struct drsuapi_DsAttributeValue *values;/* [unique,size_is(num_values)] */
537 };
538
539 struct drsuapi_DsReplicaObjectIdentifier3 {
540         uint32_t __ndr_size;/* [value(ndr_size_drsuapi_DsReplicaObjectIdentifier3(r,ndr->iconv_convenience,ndr->flags))] */
541         uint32_t __ndr_size_sid;/* [value(ndr_size_dom_sid28(&sid,ndr->flags))] */
542         struct GUID guid;
543         struct dom_sid28 sid;
544         uint32_t __ndr_size_dn;/* [value(strlen_m(dn))] */
545         const char *dn;/* [charset(UTF16)] */
546 }/* [gensize,public] */;
547
548 struct drsuapi_DsReplicaObjectIdentifier3Binary {
549         uint32_t __ndr_size;/* [value(ndr_size_drsuapi_DsReplicaObjectIdentifier3Binary_without_Binary(r,ndr->iconv_convenience,ndr->flags))] */
550         uint32_t __ndr_size_sid;/* [value(ndr_size_dom_sid28(&sid,ndr->flags))] */
551         struct GUID guid;
552         struct dom_sid28 sid;
553         uint32_t __ndr_size_dn;/* [value(strlen_m(dn))] */
554         const char *dn;/* [charset(UTF16)] */
555         uint32_t __ndr_size_binary;/* [value(binary.length+4)] */
556         DATA_BLOB binary;/* [flag(LIBNDR_FLAG_REMAINING)] */
557 }/* [public] */;
558
559 struct drsuapi_DsReplicaAttribute {
560         enum drsuapi_DsAttributeId attid;
561         struct drsuapi_DsAttributeValueCtr value_ctr;
562 }/* [public] */;
563
564 struct drsuapi_DsReplicaAttributeCtr {
565         uint32_t num_attributes;/* [range(0,1048576)] */
566         struct drsuapi_DsReplicaAttribute *attributes;/* [unique,size_is(num_attributes)] */
567 };
568
569 /* bitmap drsuapi_DsReplicaObjectFlags */
570 #define DRSUAPI_DS_REPLICA_OBJECT_FROM_MASTER ( 0x00000001 )
571 #define DRSUAPI_DS_REPLICA_OBJECT_DYNAMIC ( 0x00000002 )
572 #define DRSUAPI_DS_REPLICA_OBJECT_REMOTE_MODIFY ( 0x00010000 )
573
574 struct drsuapi_DsReplicaObject {
575         struct drsuapi_DsReplicaObjectIdentifier *identifier;/* [unique] */
576         uint32_t flags;
577         struct drsuapi_DsReplicaAttributeCtr attribute_ctr;
578 }/* [public] */;
579
580 struct drsuapi_DsReplicaMetaData {
581         uint32_t version;
582         NTTIME originating_change_time;
583         struct GUID originating_invocation_id;
584         uint64_t originating_usn;
585 };
586
587 struct drsuapi_DsReplicaMetaDataCtr {
588         uint32_t count;/* [range(0,1048576)] */
589         struct drsuapi_DsReplicaMetaData *meta_data;/* [size_is(count)] */
590 }/* [public] */;
591
592 struct drsuapi_DsReplicaObjectListItemEx {
593         struct drsuapi_DsReplicaObjectListItemEx *next_object;/* [unique] */
594         struct drsuapi_DsReplicaObject object;
595         uint32_t is_nc_prefix;
596         struct GUID *parent_object_guid;/* [unique] */
597         struct drsuapi_DsReplicaMetaDataCtr *meta_data_ctr;/* [unique] */
598 }/* [noprint,public] */;
599
600 struct drsuapi_DsGetNCChangesCtr1 {
601         struct GUID source_dsa_guid;
602         struct GUID source_dsa_invocation_id;
603         struct drsuapi_DsReplicaObjectIdentifier *naming_context;/* [unique] */
604         struct drsuapi_DsReplicaHighWaterMark old_highwatermark;
605         struct drsuapi_DsReplicaHighWaterMark new_highwatermark;
606         struct drsuapi_DsReplicaCursorCtrEx *uptodateness_vector;/* [unique] */
607         struct drsuapi_DsReplicaOIDMapping_Ctr mapping_ctr;
608         enum drsuapi_DsExtendedError extended_ret;
609         uint32_t object_count;
610         uint32_t __ndr_size;/* [value(ndr_size_drsuapi_DsGetNCChangesCtr1(r,ndr->iconv_convenience,ndr->flags)+55)] */
611         struct drsuapi_DsReplicaObjectListItemEx *first_object;/* [unique] */
612         uint32_t more_data;
613 }/* [gensize,public] */;
614
615 /* bitmap drsuapi_DsLinkedAttributeFlags */
616 #define DRSUAPI_DS_LINKED_ATTRIBUTE_FLAG_ACTIVE ( 0x00000001 )
617
618 struct drsuapi_DsReplicaLinkedAttribute {
619         struct drsuapi_DsReplicaObjectIdentifier *identifier;/* [unique] */
620         enum drsuapi_DsAttributeId attid;
621         struct drsuapi_DsAttributeValue value;
622         uint32_t flags;
623         NTTIME originating_add_time;
624         struct drsuapi_DsReplicaMetaData meta_data;
625 }/* [public] */;
626
627 struct drsuapi_DsGetNCChangesCtr6 {
628         struct GUID source_dsa_guid;
629         struct GUID source_dsa_invocation_id;
630         struct drsuapi_DsReplicaObjectIdentifier *naming_context;/* [unique] */
631         struct drsuapi_DsReplicaHighWaterMark old_highwatermark;
632         struct drsuapi_DsReplicaHighWaterMark new_highwatermark;
633         struct drsuapi_DsReplicaCursor2CtrEx *uptodateness_vector;/* [unique] */
634         struct drsuapi_DsReplicaOIDMapping_Ctr mapping_ctr;
635         enum drsuapi_DsExtendedError extended_ret;
636         uint32_t object_count;
637         uint32_t __ndr_size;/* [value(ndr_size_drsuapi_DsGetNCChangesCtr6(r,ndr->iconv_convenience,ndr->flags)+55)] */
638         struct drsuapi_DsReplicaObjectListItemEx *first_object;/* [unique] */
639         uint32_t more_data;
640         uint32_t nc_object_count;
641         uint32_t nc_linked_attributes_count;
642         uint32_t linked_attributes_count;/* [range(0,1048576)] */
643         struct drsuapi_DsReplicaLinkedAttribute *linked_attributes;/* [unique,size_is(linked_attributes_count)] */
644         WERROR drs_error;
645 }/* [gensize,public] */;
646
647 struct drsuapi_DsGetNCChangesCtr1TS {
648         struct drsuapi_DsGetNCChangesCtr1 ctr1;/* [subcontext(0xFFFFFC01)] */
649 }/* [public] */;
650
651 struct drsuapi_DsGetNCChangesCtr6TS {
652         struct drsuapi_DsGetNCChangesCtr6 ctr6;/* [subcontext(0xFFFFFC01)] */
653 }/* [public] */;
654
655 struct drsuapi_DsGetNCChangesMSZIPCtr1 {
656         uint32_t decompressed_length;
657         uint32_t compressed_length;
658         struct drsuapi_DsGetNCChangesCtr1TS *ts;/* [unique,compression(NDR_COMPRESSION_MSZIP,compressed_length,decompressed_length),subcontext_size(compressed_length),subcontext(4)] */
659 }/* [nopush] */;
660
661 struct drsuapi_DsGetNCChangesMSZIPCtr6 {
662         uint32_t decompressed_length;
663         uint32_t compressed_length;
664         struct drsuapi_DsGetNCChangesCtr6TS *ts;/* [unique,compression(NDR_COMPRESSION_MSZIP,compressed_length,decompressed_length),subcontext_size(compressed_length),subcontext(4)] */
665 }/* [nopush] */;
666
667 struct drsuapi_DsGetNCChangesXPRESSCtr1 {
668         uint32_t decompressed_length;
669         uint32_t compressed_length;
670         struct drsuapi_DsGetNCChangesCtr1TS *ts;/* [unique,compression(NDR_COMPRESSION_XPRESS,compressed_length,decompressed_length),subcontext_size(compressed_length),subcontext(4)] */
671 }/* [nopush] */;
672
673 struct drsuapi_DsGetNCChangesXPRESSCtr6 {
674         uint32_t decompressed_length;
675         uint32_t compressed_length;
676         struct drsuapi_DsGetNCChangesCtr6TS *ts;/* [unique,compression(NDR_COMPRESSION_XPRESS,compressed_length,decompressed_length),subcontext_size(compressed_length),subcontext(4)] */
677 }/* [nopush] */;
678
679 enum drsuapi_DsGetNCChangesCompressionType
680 #ifndef USE_UINT_ENUMS
681  {
682         DRSUAPI_COMPRESSION_TYPE_MSZIP=(int)(2),
683         DRSUAPI_COMPRESSION_TYPE_XPRESS=(int)(3)
684 }
685 #else
686  { __donnot_use_enum_drsuapi_DsGetNCChangesCompressionType=0x7FFFFFFF}
687 #define DRSUAPI_COMPRESSION_TYPE_MSZIP ( 2 )
688 #define DRSUAPI_COMPRESSION_TYPE_XPRESS ( 3 )
689 #endif
690 ;
691
692 union drsuapi_DsGetNCChangesCompressedCtr {
693         struct drsuapi_DsGetNCChangesMSZIPCtr1 mszip1;/* [case(1|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16))] */
694         struct drsuapi_DsGetNCChangesMSZIPCtr6 mszip6;/* [case(6|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16))] */
695         struct drsuapi_DsGetNCChangesXPRESSCtr1 xpress1;/* [case(1|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16))] */
696         struct drsuapi_DsGetNCChangesXPRESSCtr6 xpress6;/* [case(6|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16))] */
697 }/* [nodiscriminant,flag(LIBNDR_PRINT_ARRAY_HEX)] */;
698
699 struct drsuapi_DsGetNCChangesCtr2 {
700         struct drsuapi_DsGetNCChangesMSZIPCtr1 mszip1;
701 };
702
703 struct drsuapi_DsGetNCChangesCtr7 {
704         int32_t level;/* [range(0,6)] */
705         enum drsuapi_DsGetNCChangesCompressionType type;/* [range(2,3)] */
706         union drsuapi_DsGetNCChangesCompressedCtr ctr;/* [switch_is(level|(type<<16))] */
707 };
708
709 union drsuapi_DsGetNCChangesCtr {
710         struct drsuapi_DsGetNCChangesCtr1 ctr1;/* [case] */
711         struct drsuapi_DsGetNCChangesCtr2 ctr2;/* [case(2)] */
712         struct drsuapi_DsGetNCChangesCtr6 ctr6;/* [case(6)] */
713         struct drsuapi_DsGetNCChangesCtr7 ctr7;/* [case(7)] */
714 }/* [switch_type(int32)] */;
715
716 struct drsuapi_DsReplicaUpdateRefsRequest1 {
717         struct drsuapi_DsReplicaObjectIdentifier *naming_context;/* [ref] */
718         const char *dest_dsa_dns_name;/* [ref,charset(DOS)] */
719         struct GUID dest_dsa_guid;
720         uint32_t options;
721 };
722
723 union drsuapi_DsReplicaUpdateRefsRequest {
724         struct drsuapi_DsReplicaUpdateRefsRequest1 req1;/* [case] */
725 }/* [switch_type(int32)] */;
726
727 struct drsuapi_DsReplicaAddRequest1 {
728         struct drsuapi_DsReplicaObjectIdentifier *naming_context;/* [ref] */
729         const char *source_dsa_address;/* [unique,charset(UTF16)] */
730         uint8_t schedule[84];
731         uint32_t options;
732 };
733
734 struct drsuapi_DsReplicaAddRequest2 {
735         struct drsuapi_DsReplicaObjectIdentifier *naming_context;/* [ref] */
736         struct drsuapi_DsReplicaObjectIdentifier *source_dsa_dn;/* [unique] */
737         struct drsuapi_DsReplicaObjectIdentifier *transport_dn;/* [unique] */
738         const char *source_dsa_address;/* [unique,charset(UTF16)] */
739         uint8_t schedule[84];
740         uint32_t options;
741 };
742
743 union drsuapi_DsReplicaAddRequest {
744         struct drsuapi_DsReplicaAddRequest1 req1;/* [case] */
745         struct drsuapi_DsReplicaAddRequest2 req2;/* [case(2)] */
746 }/* [switch_type(int32)] */;
747
748 struct drsuapi_DsReplicaDelRequest1 {
749         struct drsuapi_DsReplicaObjectIdentifier *naming_context;/* [ref] */
750         const char *source_dsa_address;/* [unique,charset(UTF16)] */
751         uint32_t options;
752 };
753
754 union drsuapi_DsReplicaDelRequest {
755         struct drsuapi_DsReplicaDelRequest1 req1;/* [case] */
756 }/* [switch_type(int32)] */;
757
758 struct drsuapi_DsReplicaModRequest1 {
759         struct drsuapi_DsReplicaObjectIdentifier *naming_context;/* [ref] */
760         struct GUID source_dra;
761         const char *source_dra_address;/* [unique,charset(UTF16)] */
762         uint8_t schedule[84];
763         uint32_t replica_flags;
764         uint32_t modify_fields;
765         uint32_t options;
766 };
767
768 union drsuapi_DsReplicaModRequest {
769         struct drsuapi_DsReplicaModRequest1 req1;/* [case] */
770 }/* [switch_type(int32)] */;
771
772 enum drsuapi_DsMembershipType
773 #ifndef USE_UINT_ENUMS
774  {
775         DRSUAPI_DS_MEMBERSHIP_TYPE_UNIVERSAL_AND_DOMAIN_GROUPS=(int)(1),
776         DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_LOCAL_GROUPS=(int)(2),
777         DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_GROUPS=(int)(3),
778         DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_LOCAL_GROUPS2=(int)(4),
779         DRSUAPI_DS_MEMBERSHIP_TYPE_UNIVERSAL_GROUPS=(int)(5),
780         DRSUAPI_DS_MEMBERSHIP_TYPE_GROUPMEMBERS=(int)(6),
781         DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_GROUPS2=(int)(7)
782 }
783 #else
784  { __donnot_use_enum_drsuapi_DsMembershipType=0x7FFFFFFF}
785 #define DRSUAPI_DS_MEMBERSHIP_TYPE_UNIVERSAL_AND_DOMAIN_GROUPS ( 1 )
786 #define DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_LOCAL_GROUPS ( 2 )
787 #define DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_GROUPS ( 3 )
788 #define DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_LOCAL_GROUPS2 ( 4 )
789 #define DRSUAPI_DS_MEMBERSHIP_TYPE_UNIVERSAL_GROUPS ( 5 )
790 #define DRSUAPI_DS_MEMBERSHIP_TYPE_GROUPMEMBERS ( 6 )
791 #define DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_GROUPS2 ( 7 )
792 #endif
793 ;
794
795 struct drsuapi_DsGetMembershipsCtr1 {
796         NTSTATUS status;
797         uint32_t num_memberships;/* [range(0,10000)] */
798         uint32_t num_sids;/* [range(0,10000)] */
799         struct drsuapi_DsReplicaObjectIdentifier **info_array;/* [unique,size_is(num_memberships)] */
800         uint32_t *group_attrs;/* [unique,size_is(num_memberships)] */
801         struct dom_sid28 **sids;/* [unique,size_is(num_sids)] */
802 };
803
804 union drsuapi_DsGetMembershipsCtr {
805         struct drsuapi_DsGetMembershipsCtr1 ctr1;/* [case] */
806 }/* [switch_type(int32)] */;
807
808 struct drsuapi_DsGetMembershipsRequest1 {
809         uint32_t count;/* [range(1,10000)] */
810         struct drsuapi_DsReplicaObjectIdentifier **info_array;/* [unique,size_is(count)] */
811         uint32_t flags;
812         enum drsuapi_DsMembershipType type;
813         struct drsuapi_DsReplicaObjectIdentifier *domain;/* [unique] */
814 };
815
816 union drsuapi_DsGetMembershipsRequest {
817         struct drsuapi_DsGetMembershipsRequest1 req1;/* [case] */
818 }/* [switch_type(int32)] */;
819
820 struct drsuapi_DsGetNT4ChangeLogRequest1 {
821         uint32_t unknown1;
822         uint32_t unknown2;
823         uint32_t length;/* [range(0,0x00A00000)] */
824         uint8_t *data;/* [unique,size_is(length)] */
825 };
826
827 union drsuapi_DsGetNT4ChangeLogRequest {
828         struct drsuapi_DsGetNT4ChangeLogRequest1 req1;/* [case] */
829 }/* [switch_type(uint32)] */;
830
831 struct drsuapi_DsGetNT4ChangeLogInfo1 {
832         uint32_t length1;/* [range(0,0x00A00000)] */
833         uint32_t length2;/* [range(0,0x00A00000)] */
834         uint64_t unknown1;
835         NTTIME time2;
836         uint64_t unknown3;
837         NTTIME time4;
838         uint64_t unknown5;
839         NTTIME time6;
840         NTSTATUS status;
841         uint8_t *data1;/* [unique,size_is(length1)] */
842         uint8_t *data2;/* [unique,size_is(length2)] */
843 };
844
845 union drsuapi_DsGetNT4ChangeLogInfo {
846         struct drsuapi_DsGetNT4ChangeLogInfo1 info1;/* [case] */
847 }/* [switch_type(uint32)] */;
848
849 enum drsuapi_DsNameStatus
850 #ifndef USE_UINT_ENUMS
851  {
852         DRSUAPI_DS_NAME_STATUS_OK=(int)(0),
853         DRSUAPI_DS_NAME_STATUS_RESOLVE_ERROR=(int)(1),
854         DRSUAPI_DS_NAME_STATUS_NOT_FOUND=(int)(2),
855         DRSUAPI_DS_NAME_STATUS_NOT_UNIQUE=(int)(3),
856         DRSUAPI_DS_NAME_STATUS_NO_MAPPING=(int)(4),
857         DRSUAPI_DS_NAME_STATUS_DOMAIN_ONLY=(int)(5),
858         DRSUAPI_DS_NAME_STATUS_NO_SYNTACTICAL_MAPPING=(int)(6),
859         DRSUAPI_DS_NAME_STATUS_TRUST_REFERRAL=(int)(7)
860 }
861 #else
862  { __donnot_use_enum_drsuapi_DsNameStatus=0x7FFFFFFF}
863 #define DRSUAPI_DS_NAME_STATUS_OK ( 0 )
864 #define DRSUAPI_DS_NAME_STATUS_RESOLVE_ERROR ( 1 )
865 #define DRSUAPI_DS_NAME_STATUS_NOT_FOUND ( 2 )
866 #define DRSUAPI_DS_NAME_STATUS_NOT_UNIQUE ( 3 )
867 #define DRSUAPI_DS_NAME_STATUS_NO_MAPPING ( 4 )
868 #define DRSUAPI_DS_NAME_STATUS_DOMAIN_ONLY ( 5 )
869 #define DRSUAPI_DS_NAME_STATUS_NO_SYNTACTICAL_MAPPING ( 6 )
870 #define DRSUAPI_DS_NAME_STATUS_TRUST_REFERRAL ( 7 )
871 #endif
872 ;
873
874 enum drsuapi_DsNameFlags
875 #ifndef USE_UINT_ENUMS
876  {
877         DRSUAPI_DS_NAME_FLAG_NO_FLAGS=(int)(0x0),
878         DRSUAPI_DS_NAME_FLAG_SYNTACTICAL_ONLY=(int)(0x1),
879         DRSUAPI_DS_NAME_FLAG_EVAL_AT_DC=(int)(0x2),
880         DRSUAPI_DS_NAME_FLAG_GCVERIFY=(int)(0x4),
881         DRSUAPI_DS_NAME_FLAG_TRUST_REFERRAL=(int)(0x8)
882 }
883 #else
884  { __donnot_use_enum_drsuapi_DsNameFlags=0x7FFFFFFF}
885 #define DRSUAPI_DS_NAME_FLAG_NO_FLAGS ( 0x0 )
886 #define DRSUAPI_DS_NAME_FLAG_SYNTACTICAL_ONLY ( 0x1 )
887 #define DRSUAPI_DS_NAME_FLAG_EVAL_AT_DC ( 0x2 )
888 #define DRSUAPI_DS_NAME_FLAG_GCVERIFY ( 0x4 )
889 #define DRSUAPI_DS_NAME_FLAG_TRUST_REFERRAL ( 0x8 )
890 #endif
891 ;
892
893 enum drsuapi_DsNameFormat
894 #ifndef USE_UINT_ENUMS
895  {
896         DRSUAPI_DS_NAME_FORMAT_UNKNOWN=(int)(0),
897         DRSUAPI_DS_NAME_FORMAT_FQDN_1779=(int)(1),
898         DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT=(int)(2),
899         DRSUAPI_DS_NAME_FORMAT_DISPLAY=(int)(3),
900         DRSUAPI_DS_NAME_FORMAT_GUID=(int)(6),
901         DRSUAPI_DS_NAME_FORMAT_CANONICAL=(int)(7),
902         DRSUAPI_DS_NAME_FORMAT_USER_PRINCIPAL=(int)(8),
903         DRSUAPI_DS_NAME_FORMAT_CANONICAL_EX=(int)(9),
904         DRSUAPI_DS_NAME_FORMAT_SERVICE_PRINCIPAL=(int)(10),
905         DRSUAPI_DS_NAME_FORMAT_SID_OR_SID_HISTORY=(int)(11),
906         DRSUAPI_DS_NAME_FORMAT_DNS_DOMAIN=(int)(12)
907 }
908 #else
909  { __donnot_use_enum_drsuapi_DsNameFormat=0x7FFFFFFF}
910 #define DRSUAPI_DS_NAME_FORMAT_UNKNOWN ( 0 )
911 #define DRSUAPI_DS_NAME_FORMAT_FQDN_1779 ( 1 )
912 #define DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT ( 2 )
913 #define DRSUAPI_DS_NAME_FORMAT_DISPLAY ( 3 )
914 #define DRSUAPI_DS_NAME_FORMAT_GUID ( 6 )
915 #define DRSUAPI_DS_NAME_FORMAT_CANONICAL ( 7 )
916 #define DRSUAPI_DS_NAME_FORMAT_USER_PRINCIPAL ( 8 )
917 #define DRSUAPI_DS_NAME_FORMAT_CANONICAL_EX ( 9 )
918 #define DRSUAPI_DS_NAME_FORMAT_SERVICE_PRINCIPAL ( 10 )
919 #define DRSUAPI_DS_NAME_FORMAT_SID_OR_SID_HISTORY ( 11 )
920 #define DRSUAPI_DS_NAME_FORMAT_DNS_DOMAIN ( 12 )
921 #endif
922 ;
923
924 struct drsuapi_DsNameString {
925         const char *str;/* [unique,charset(UTF16)] */
926 };
927
928 struct drsuapi_DsNameRequest1 {
929         uint32_t codepage;
930         uint32_t language;
931         enum drsuapi_DsNameFlags format_flags;
932         enum drsuapi_DsNameFormat format_offered;
933         enum drsuapi_DsNameFormat format_desired;
934         uint32_t count;/* [range(1,10000)] */
935         struct drsuapi_DsNameString *names;/* [unique,size_is(count)] */
936 };
937
938 union drsuapi_DsNameRequest {
939         struct drsuapi_DsNameRequest1 req1;/* [case] */
940 }/* [switch_type(int32)] */;
941
942 struct drsuapi_DsNameInfo1 {
943         enum drsuapi_DsNameStatus status;
944         const char *dns_domain_name;/* [unique,charset(UTF16)] */
945         const char *result_name;/* [unique,charset(UTF16)] */
946 };
947
948 struct drsuapi_DsNameCtr1 {
949         uint32_t count;
950         struct drsuapi_DsNameInfo1 *array;/* [unique,size_is(count)] */
951 };
952
953 union drsuapi_DsNameCtr {
954         struct drsuapi_DsNameCtr1 *ctr1;/* [unique,case] */
955 }/* [switch_type(int32)] */;
956
957 enum drsuapi_DsSpnOperation
958 #ifndef USE_UINT_ENUMS
959  {
960         DRSUAPI_DS_SPN_OPERATION_ADD=(int)(0),
961         DRSUAPI_DS_SPN_OPERATION_REPLACE=(int)(1),
962         DRSUAPI_DS_SPN_OPERATION_DELETE=(int)(2)
963 }
964 #else
965  { __donnot_use_enum_drsuapi_DsSpnOperation=0x7FFFFFFF}
966 #define DRSUAPI_DS_SPN_OPERATION_ADD ( 0 )
967 #define DRSUAPI_DS_SPN_OPERATION_REPLACE ( 1 )
968 #define DRSUAPI_DS_SPN_OPERATION_DELETE ( 2 )
969 #endif
970 ;
971
972 struct drsuapi_DsWriteAccountSpnRequest1 {
973         enum drsuapi_DsSpnOperation operation;
974         uint32_t unknown1;
975         const char *object_dn;/* [unique,charset(UTF16)] */
976         uint32_t count;/* [range(0,10000)] */
977         struct drsuapi_DsNameString *spn_names;/* [unique,size_is(count)] */
978 };
979
980 union drsuapi_DsWriteAccountSpnRequest {
981         struct drsuapi_DsWriteAccountSpnRequest1 req1;/* [case] */
982 }/* [switch_type(int32)] */;
983
984 struct drsuapi_DsWriteAccountSpnResult1 {
985         WERROR status;
986 };
987
988 union drsuapi_DsWriteAccountSpnResult {
989         struct drsuapi_DsWriteAccountSpnResult1 res1;/* [case] */
990 }/* [switch_type(int32)] */;
991
992 struct drsuapi_DsRemoveDSServerRequest1 {
993         const char *server_dn;/* [unique,charset(UTF16)] */
994         const char *domain_dn;/* [unique,charset(UTF16)] */
995         uint32_t commit;
996 };
997
998 union drsuapi_DsRemoveDSServerRequest {
999         struct drsuapi_DsRemoveDSServerRequest1 req1;/* [case] */
1000 }/* [switch_type(int32)] */;
1001
1002 struct drsuapi_DsRemoveDSServerResult1 {
1003         uint32_t last_dc_in_domain;
1004 };
1005
1006 union drsuapi_DsRemoveDSServerResult {
1007         struct drsuapi_DsRemoveDSServerResult1 res1;/* [case] */
1008 }/* [switch_type(int32)] */;
1009
1010 struct drsuapi_DsGetDCInfoRequest1 {
1011         const char *domain_name;/* [unique,charset(UTF16)] */
1012         int32_t level;
1013 };
1014
1015 union drsuapi_DsGetDCInfoRequest {
1016         struct drsuapi_DsGetDCInfoRequest1 req1;/* [case] */
1017 }/* [switch_type(int32)] */;
1018
1019 struct drsuapi_DsGetDCInfo1 {
1020         const char *netbios_name;/* [unique,charset(UTF16)] */
1021         const char *dns_name;/* [unique,charset(UTF16)] */
1022         const char *site_name;/* [unique,charset(UTF16)] */
1023         const char *computer_dn;/* [unique,charset(UTF16)] */
1024         const char *server_dn;/* [unique,charset(UTF16)] */
1025         uint32_t is_pdc;
1026         uint32_t is_enabled;
1027 };
1028
1029 struct drsuapi_DsGetDCInfoCtr1 {
1030         uint32_t count;/* [range(0,10000)] */
1031         struct drsuapi_DsGetDCInfo1 *array;/* [unique,size_is(count)] */
1032 };
1033
1034 struct drsuapi_DsGetDCInfo2 {
1035         const char *netbios_name;/* [unique,charset(UTF16)] */
1036         const char *dns_name;/* [unique,charset(UTF16)] */
1037         const char *site_name;/* [unique,charset(UTF16)] */
1038         const char *site_dn;/* [unique,charset(UTF16)] */
1039         const char *computer_dn;/* [unique,charset(UTF16)] */
1040         const char *server_dn;/* [unique,charset(UTF16)] */
1041         const char *ntds_dn;/* [unique,charset(UTF16)] */
1042         uint32_t is_pdc;
1043         uint32_t is_enabled;
1044         uint32_t is_gc;
1045         struct GUID site_guid;
1046         struct GUID computer_guid;
1047         struct GUID server_guid;
1048         struct GUID ntds_guid;
1049 };
1050
1051 struct drsuapi_DsGetDCInfoCtr2 {
1052         uint32_t count;/* [range(0,10000)] */
1053         struct drsuapi_DsGetDCInfo2 *array;/* [unique,size_is(count)] */
1054 };
1055
1056 struct drsuapi_DsGetDCInfo3 {
1057         const char *netbios_name;/* [unique,charset(UTF16)] */
1058         const char *dns_name;/* [unique,charset(UTF16)] */
1059         const char *site_name;/* [unique,charset(UTF16)] */
1060         const char *site_dn;/* [unique,charset(UTF16)] */
1061         const char *computer_dn;/* [unique,charset(UTF16)] */
1062         const char *server_dn;/* [unique,charset(UTF16)] */
1063         const char *ntds_dn;/* [unique,charset(UTF16)] */
1064         uint32_t is_pdc;
1065         uint32_t is_enabled;
1066         uint32_t is_gc;
1067         uint32_t is_rodc;
1068         struct GUID site_guid;
1069         struct GUID computer_guid;
1070         struct GUID server_guid;
1071         struct GUID ntds_guid;
1072 };
1073
1074 struct drsuapi_DsGetDCInfoCtr3 {
1075         uint32_t count;/* [range(0,10000)] */
1076         struct drsuapi_DsGetDCInfo3 *array;/* [unique,size_is(count)] */
1077 };
1078
1079 struct drsuapi_DsGetDCConnection01 {
1080         const char * client_ip_address;/* [flag(LIBNDR_FLAG_BIGENDIAN)] */
1081         uint32_t unknown2;
1082         uint32_t connection_time;
1083         uint32_t unknown4;
1084         uint32_t unknown5;
1085         uint32_t unknown6;
1086         const char *client_account;/* [unique,charset(UTF16)] */
1087 };
1088
1089 struct drsuapi_DsGetDCConnectionCtr01 {
1090         uint32_t count;/* [range(0,10000)] */
1091         struct drsuapi_DsGetDCConnection01 *array;/* [unique,size_is(count)] */
1092 };
1093
1094 enum drsuapi_DsGetDCInfoCtrLevels
1095 #ifndef USE_UINT_ENUMS
1096  {
1097         DRSUAPI_DC_INFO_CTR_1=(int)(1),
1098         DRSUAPI_DC_INFO_CTR_2=(int)(2),
1099         DRSUAPI_DC_INFO_CTR_3=(int)(3),
1100         DRSUAPI_DC_CONNECTION_CTR_01=(int)(-1)
1101 }
1102 #else
1103  { __donnot_use_enum_drsuapi_DsGetDCInfoCtrLevels=0x7FFFFFFF}
1104 #define DRSUAPI_DC_INFO_CTR_1 ( 1 )
1105 #define DRSUAPI_DC_INFO_CTR_2 ( 2 )
1106 #define DRSUAPI_DC_INFO_CTR_3 ( 3 )
1107 #define DRSUAPI_DC_CONNECTION_CTR_01 ( -1 )
1108 #endif
1109 ;
1110
1111 union drsuapi_DsGetDCInfoCtr {
1112         struct drsuapi_DsGetDCInfoCtr1 ctr1;/* [case(DRSUAPI_DC_INFO_CTR_1)] */
1113         struct drsuapi_DsGetDCInfoCtr2 ctr2;/* [case(DRSUAPI_DC_INFO_CTR_2)] */
1114         struct drsuapi_DsGetDCInfoCtr3 ctr3;/* [case(DRSUAPI_DC_INFO_CTR_3)] */
1115         struct drsuapi_DsGetDCConnectionCtr01 ctr01;/* [case(DRSUAPI_DC_CONNECTION_CTR_01)] */
1116 }/* [switch_type(int32)] */;
1117
1118 struct drsuapi_DsReplicaObjectListItem {
1119         struct drsuapi_DsReplicaObjectListItem *next_object;/* [unique] */
1120         struct drsuapi_DsReplicaObject object;
1121 }/* [noprint,public] */;
1122
1123 struct drsuapi_DsAddEntryRequest2 {
1124         struct drsuapi_DsReplicaObjectListItem first_object;
1125 };
1126
1127 union drsuapi_DsAddEntryRequest {
1128         struct drsuapi_DsAddEntryRequest2 req2;/* [case(2)] */
1129 }/* [switch_type(int32)] */;
1130
1131 struct drsuapi_DsAddEntryErrorInfoX {
1132         uint32_t unknown1;
1133         WERROR status;
1134         uint32_t unknown2;
1135         uint16_t unknown3;
1136 };
1137
1138 struct drsuapi_DsAddEntryExtraErrorBuffer {
1139         uint32_t size;/* [range(0,10485760)] */
1140         uint8_t *data;/* [unique,size_is(size)] */
1141 };
1142
1143 struct drsuapi_DsAddEntryExtraError1 {
1144         struct drsuapi_DsAddEntryErrorInfoX error;
1145         enum drsuapi_DsAttributeId attid;
1146         uint32_t unknown2;
1147         struct drsuapi_DsAddEntryExtraErrorBuffer buffer;
1148 };
1149
1150 struct drsuapi_DsAddEntryErrorListItem1 {
1151         struct drsuapi_DsAddEntryErrorListItem1 *next;/* [unique] */
1152         struct drsuapi_DsAddEntryExtraError1 error;
1153 };
1154
1155 struct drsuapi_DsAddEntryErrorInfo1 {
1156         struct drsuapi_DsReplicaObjectIdentifier *id;/* [unique] */
1157         WERROR status;
1158         struct drsuapi_DsAddEntryErrorListItem1 first;
1159 };
1160
1161 union drsuapi_DsAddEntryErrorInfo {
1162         struct drsuapi_DsAddEntryErrorInfo1 error1;/* [case] */
1163         struct drsuapi_DsAddEntryErrorInfoX errorX;/* [case(4)] */
1164 }/* [switch_type(uint32)] */;
1165
1166 struct drsuapi_DsAddEntryError1 {
1167         WERROR status;
1168         uint32_t level;
1169         union drsuapi_DsAddEntryErrorInfo *info;/* [unique,switch_is(level)] */
1170 };
1171
1172 union drsuapi_DsAddEntryError {
1173         struct drsuapi_DsAddEntryError1 info1;/* [case] */
1174 }/* [switch_type(uint32)] */;
1175
1176 struct drsuapi_DsReplicaObjectIdentifier2 {
1177         struct GUID guid;
1178         struct dom_sid28 sid;
1179 };
1180
1181 struct drsuapi_DsAddEntryCtr2 {
1182         struct drsuapi_DsReplicaObjectIdentifier *id;/* [unique] */
1183         uint32_t unknown1;
1184         struct drsuapi_DsAddEntryErrorInfoX error;
1185         uint32_t count;/* [range(0,10000)] */
1186         struct drsuapi_DsReplicaObjectIdentifier2 *objects;/* [unique,size_is(count)] */
1187 };
1188
1189 struct drsuapi_DsAddEntryCtr3 {
1190         struct drsuapi_DsReplicaObjectIdentifier *id;/* [unique] */
1191         uint32_t level;
1192         union drsuapi_DsAddEntryError *error;/* [unique,switch_is(level)] */
1193         uint32_t count;/* [range(0,10000)] */
1194         struct drsuapi_DsReplicaObjectIdentifier2 *objects;/* [unique,size_is(count)] */
1195 };
1196
1197 union drsuapi_DsAddEntryCtr {
1198         struct drsuapi_DsAddEntryCtr2 ctr2;/* [case(2)] */
1199         struct drsuapi_DsAddEntryCtr3 ctr3;/* [case(3)] */
1200 }/* [switch_type(int32)] */;
1201
1202 /* bitmap drsuapi_DsExecuteKCCFlags */
1203 #define DRSUAPI_DS_EXECUTE_KCC_ASYNCHRONOUS_OPERATION ( 0x00000001 )
1204 #define DRSUAPI_DS_EXECUTE_KCC_DAMPED ( 0x00000002 )
1205
1206 struct drsuapi_DsExecuteKCC1 {
1207         uint32_t taskID;
1208         uint32_t flags;
1209 };
1210
1211 union drsuapi_DsExecuteKCCRequest {
1212         struct drsuapi_DsExecuteKCC1 ctr1;/* [case] */
1213 }/* [switch_type(uint32)] */;
1214
1215 enum drsuapi_DsReplicaGetInfoLevel
1216 #ifndef USE_UINT_ENUMS
1217  {
1218         DRSUAPI_DS_REPLICA_GET_INFO=(int)(1),
1219         DRSUAPI_DS_REPLICA_GET_INFO2=(int)(2)
1220 }
1221 #else
1222  { __donnot_use_enum_drsuapi_DsReplicaGetInfoLevel=0x7FFFFFFF}
1223 #define DRSUAPI_DS_REPLICA_GET_INFO ( 1 )
1224 #define DRSUAPI_DS_REPLICA_GET_INFO2 ( 2 )
1225 #endif
1226 ;
1227
1228 enum drsuapi_DsReplicaInfoType
1229 #ifndef USE_UINT_ENUMS
1230  {
1231         DRSUAPI_DS_REPLICA_INFO_NEIGHBORS=(int)(0),
1232         DRSUAPI_DS_REPLICA_INFO_CURSORS=(int)(1),
1233         DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA=(int)(2),
1234         DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES=(int)(3),
1235         DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES=(int)(4),
1236         DRSUAPI_DS_REPLICA_INFO_PENDING_OPS=(int)(5),
1237         DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA=(int)(6),
1238         DRSUAPI_DS_REPLICA_INFO_CURSORS2=(int)(7),
1239         DRSUAPI_DS_REPLICA_INFO_CURSORS3=(int)(8),
1240         DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2=(int)(9),
1241         DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2=(int)(10),
1242         DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02=(int)(-2),
1243         DRSUAPI_DS_REPLICA_INFO_CONNECTIONS04=(int)(-4),
1244         DRSUAPI_DS_REPLICA_INFO_CURSORS05=(int)(-5),
1245         DRSUAPI_DS_REPLICA_INFO_06=(int)(-6)
1246 }
1247 #else
1248  { __donnot_use_enum_drsuapi_DsReplicaInfoType=0x7FFFFFFF}
1249 #define DRSUAPI_DS_REPLICA_INFO_NEIGHBORS ( 0 )
1250 #define DRSUAPI_DS_REPLICA_INFO_CURSORS ( 1 )
1251 #define DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA ( 2 )
1252 #define DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES ( 3 )
1253 #define DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES ( 4 )
1254 #define DRSUAPI_DS_REPLICA_INFO_PENDING_OPS ( 5 )
1255 #define DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA ( 6 )
1256 #define DRSUAPI_DS_REPLICA_INFO_CURSORS2 ( 7 )
1257 #define DRSUAPI_DS_REPLICA_INFO_CURSORS3 ( 8 )
1258 #define DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2 ( 9 )
1259 #define DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2 ( 10 )
1260 #define DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02 ( -2 )
1261 #define DRSUAPI_DS_REPLICA_INFO_CONNECTIONS04 ( -4 )
1262 #define DRSUAPI_DS_REPLICA_INFO_CURSORS05 ( -5 )
1263 #define DRSUAPI_DS_REPLICA_INFO_06 ( -6 )
1264 #endif
1265 ;
1266
1267 struct drsuapi_DsReplicaGetInfoRequest1 {
1268         enum drsuapi_DsReplicaInfoType info_type;
1269         const char *object_dn;/* [unique,charset(UTF16)] */
1270         struct GUID guid1;
1271 };
1272
1273 struct drsuapi_DsReplicaGetInfoRequest2 {
1274         enum drsuapi_DsReplicaInfoType info_type;
1275         const char *object_dn;/* [unique,charset(UTF16)] */
1276         struct GUID guid1;
1277         uint32_t flags;
1278         const char *string1;/* [unique,charset(UTF16)] */
1279         const char *string2;/* [unique,charset(UTF16)] */
1280         uint32_t enumeration_context;
1281 };
1282
1283 union drsuapi_DsReplicaGetInfoRequest {
1284         struct drsuapi_DsReplicaGetInfoRequest1 req1;/* [case(DRSUAPI_DS_REPLICA_GET_INFO)] */
1285         struct drsuapi_DsReplicaGetInfoRequest2 req2;/* [case(DRSUAPI_DS_REPLICA_GET_INFO2)] */
1286 }/* [switch_type(drsuapi_DsReplicaGetInfoLevel)] */;
1287
1288 struct drsuapi_DsReplicaNeighbour {
1289         const char *naming_context_dn;/* [unique,charset(UTF16)] */
1290         const char *source_dsa_obj_dn;/* [unique,charset(UTF16)] */
1291         const char *source_dsa_address;/* [unique,charset(UTF16)] */
1292         const char *transport_obj_dn;/* [unique,charset(UTF16)] */
1293         uint32_t replica_flags;
1294         uint32_t reserved;
1295         struct GUID naming_context_obj_guid;
1296         struct GUID source_dsa_obj_guid;
1297         struct GUID source_dsa_invocation_id;
1298         struct GUID transport_obj_guid;
1299         uint64_t tmp_highest_usn;
1300         uint64_t highest_usn;
1301         NTTIME last_success;
1302         NTTIME last_attempt;
1303         WERROR result_last_attempt;
1304         uint32_t consecutive_sync_failures;
1305 };
1306
1307 struct drsuapi_DsReplicaNeighbourCtr {
1308         uint32_t count;
1309         uint32_t reserved;
1310         struct drsuapi_DsReplicaNeighbour *array;/* [size_is(count)] */
1311 };
1312
1313 struct drsuapi_DsReplicaCursorCtr {
1314         uint32_t count;
1315         uint32_t reserved;
1316         struct drsuapi_DsReplicaCursor *array;/* [size_is(count)] */
1317 };
1318
1319 struct drsuapi_DsReplicaObjMetaData {
1320         const char *attribute_name;/* [unique,charset(UTF16)] */
1321         uint32_t version;
1322         NTTIME originating_change_time;
1323         struct GUID originating_invocation_id;
1324         uint64_t originating_usn;
1325         uint64_t local_usn;
1326 };
1327
1328 struct drsuapi_DsReplicaObjMetaDataCtr {
1329         uint32_t count;
1330         uint32_t reserved;
1331         struct drsuapi_DsReplicaObjMetaData *array;/* [size_is(count)] */
1332 };
1333
1334 struct drsuapi_DsReplicaKccDsaFailure {
1335         const char *dsa_obj_dn;/* [unique,charset(UTF16)] */
1336         struct GUID dsa_obj_guid;
1337         NTTIME first_failure;
1338         uint32_t num_failures;
1339         WERROR last_result;
1340 };
1341
1342 struct drsuapi_DsReplicaKccDsaFailuresCtr {
1343         uint32_t count;
1344         uint32_t reserved;
1345         struct drsuapi_DsReplicaKccDsaFailure *array;/* [size_is(count)] */
1346 };
1347
1348 enum drsuapi_DsReplicaOpType
1349 #ifndef USE_UINT_ENUMS
1350  {
1351         DRSUAPI_DS_REPLICA_OP_TYPE_SYNC=(int)(0),
1352         DRSUAPI_DS_REPLICA_OP_TYPE_ADD=(int)(1),
1353         DRSUAPI_DS_REPLICA_OP_TYPE_DELETE=(int)(2),
1354         DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY=(int)(3),
1355         DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS=(int)(4)
1356 }
1357 #else
1358  { __donnot_use_enum_drsuapi_DsReplicaOpType=0x7FFFFFFF}
1359 #define DRSUAPI_DS_REPLICA_OP_TYPE_SYNC ( 0 )
1360 #define DRSUAPI_DS_REPLICA_OP_TYPE_ADD ( 1 )
1361 #define DRSUAPI_DS_REPLICA_OP_TYPE_DELETE ( 2 )
1362 #define DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY ( 3 )
1363 #define DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS ( 4 )
1364 #endif
1365 ;
1366
1367 struct drsuapi_DsReplicaOp {
1368         NTTIME operation_start;
1369         uint32_t serial_num;
1370         uint32_t priority;
1371         enum drsuapi_DsReplicaOpType operation_type;
1372         uint32_t options;
1373         const char *nc_dn;/* [unique,charset(UTF16)] */
1374         const char *remote_dsa_obj_dn;/* [unique,charset(UTF16)] */
1375         const char *remote_dsa_address;/* [unique,charset(UTF16)] */
1376         struct GUID nc_obj_guid;
1377         struct GUID remote_dsa_obj_guid;
1378 };
1379
1380 struct drsuapi_DsReplicaOpCtr {
1381         NTTIME time;
1382         uint32_t count;
1383         struct drsuapi_DsReplicaOp *array;/* [size_is(count)] */
1384 };
1385
1386 struct drsuapi_DsReplicaAttrValMetaData {
1387         const char *attribute_name;/* [unique,charset(UTF16)] */
1388         const char *object_dn;/* [unique,charset(UTF16)] */
1389         uint32_t __ndr_size_binary;/* [value(ndr_size_DATA_BLOB(0,binary,0))] */
1390         DATA_BLOB *binary;/* [unique] */
1391         NTTIME deleted;
1392         NTTIME created;
1393         uint32_t version;
1394         NTTIME originating_change_time;
1395         struct GUID originating_invocation_id;
1396         uint64_t originating_usn;
1397         uint64_t local_usn;
1398 };
1399
1400 struct drsuapi_DsReplicaAttrValMetaDataCtr {
1401         uint32_t count;
1402         uint32_t enumeration_context;
1403         struct drsuapi_DsReplicaAttrValMetaData *array;/* [size_is(count)] */
1404 };
1405
1406 struct drsuapi_DsReplicaCursor2Ctr {
1407         uint32_t count;
1408         uint32_t enumeration_context;
1409         struct drsuapi_DsReplicaCursor2 *array;/* [size_is(count)] */
1410 };
1411
1412 struct drsuapi_DsReplicaCursor3 {
1413         struct GUID source_dsa_invocation_id;
1414         uint64_t highest_usn;
1415         NTTIME last_sync_success;
1416         const char *source_dsa_obj_dn;/* [unique,charset(UTF16)] */
1417 };
1418
1419 struct drsuapi_DsReplicaCursor3Ctr {
1420         uint32_t count;
1421         uint32_t enumeration_context;
1422         struct drsuapi_DsReplicaCursor3 *array;/* [size_is(count)] */
1423 };
1424
1425 struct drsuapi_DsReplicaObjMetaData2 {
1426         const char *attribute_name;/* [unique,charset(UTF16)] */
1427         uint32_t version;
1428         NTTIME originating_change_time;
1429         struct GUID originating_invocation_id;
1430         uint64_t originating_usn;
1431         uint64_t local_usn;
1432         const char *originating_dsa_dn;/* [unique,charset(UTF16)] */
1433 };
1434
1435 struct drsuapi_DsReplicaObjMetaData2Ctr {
1436         uint32_t count;
1437         uint32_t enumeration_context;
1438         struct drsuapi_DsReplicaObjMetaData2 *array;/* [size_is(count)] */
1439 };
1440
1441 struct drsuapi_DsReplicaAttrValMetaData2 {
1442         const char *attribute_name;/* [unique,charset(UTF16)] */
1443         const char *object_dn;/* [unique,charset(UTF16)] */
1444         uint32_t __ndr_size_binary;/* [value(ndr_size_DATA_BLOB(0,binary,0))] */
1445         DATA_BLOB *binary;/* [unique] */
1446         NTTIME deleted;
1447         NTTIME created;
1448         uint32_t version;
1449         NTTIME originating_change_time;
1450         struct GUID originating_invocation_id;
1451         uint64_t originating_usn;
1452         uint64_t local_usn;
1453         const char *originating_dsa_dn;/* [unique,charset(UTF16)] */
1454 };
1455
1456 struct drsuapi_DsReplicaAttrValMetaData2Ctr {
1457         uint32_t count;
1458         uint32_t enumeration_context;
1459         struct drsuapi_DsReplicaAttrValMetaData2 *array;/* [size_is(count)] */
1460 };
1461
1462 struct drsuapi_DsReplicaConnection04 {
1463         uint64_t u1;
1464         uint32_t u2;
1465         uint32_t u3;
1466         struct GUID bind_guid;
1467         NTTIME bind_time;
1468         const char * client_ip_address;/* [flag(LIBNDR_FLAG_BIGENDIAN)] */
1469         uint32_t u5;
1470 };
1471
1472 struct drsuapi_DsReplicaConnection04Ctr {
1473         uint32_t count;/* [range(0,10000)] */
1474         uint32_t reserved;
1475         struct drsuapi_DsReplicaConnection04 *array;/* [size_is(count)] */
1476 };
1477
1478 struct drsuapi_DsReplica06 {
1479         const char *str1;/* [unique,charset(UTF16)] */
1480         uint32_t u1;
1481         uint32_t u2;
1482         uint32_t u3;
1483         uint32_t u4;
1484         uint32_t u5;
1485         uint64_t u6;
1486         uint32_t u7;
1487 };
1488
1489 struct drsuapi_DsReplica06Ctr {
1490         uint32_t count;/* [range(0,256)] */
1491         uint32_t reserved;
1492         struct drsuapi_DsReplica06 *array;/* [size_is(count)] */
1493 };
1494
1495 union drsuapi_DsReplicaInfo {
1496         struct drsuapi_DsReplicaNeighbourCtr *neighbours;/* [unique,case(DRSUAPI_DS_REPLICA_INFO_NEIGHBORS)] */
1497         struct drsuapi_DsReplicaCursorCtr *cursors;/* [unique,case(DRSUAPI_DS_REPLICA_INFO_CURSORS)] */
1498         struct drsuapi_DsReplicaObjMetaDataCtr *objmetadata;/* [unique,case(DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA)] */
1499         struct drsuapi_DsReplicaKccDsaFailuresCtr *connectfailures;/* [unique,case(DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES)] */
1500         struct drsuapi_DsReplicaKccDsaFailuresCtr *linkfailures;/* [unique,case(DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES)] */
1501         struct drsuapi_DsReplicaOpCtr *pendingops;/* [unique,case(DRSUAPI_DS_REPLICA_INFO_PENDING_OPS)] */
1502         struct drsuapi_DsReplicaAttrValMetaDataCtr *attrvalmetadata;/* [unique,case(DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA)] */
1503         struct drsuapi_DsReplicaCursor2Ctr *cursors2;/* [unique,case(DRSUAPI_DS_REPLICA_INFO_CURSORS2)] */
1504         struct drsuapi_DsReplicaCursor3Ctr *cursors3;/* [unique,case(DRSUAPI_DS_REPLICA_INFO_CURSORS3)] */
1505         struct drsuapi_DsReplicaObjMetaData2Ctr *objmetadata2;/* [unique,case(DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2)] */
1506         struct drsuapi_DsReplicaAttrValMetaData2Ctr *attrvalmetadata2;/* [unique,case(DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2)] */
1507         struct drsuapi_DsReplicaNeighbourCtr *neighbours02;/* [unique,case(DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02)] */
1508         struct drsuapi_DsReplicaConnection04Ctr *connections04;/* [unique,case(DRSUAPI_DS_REPLICA_INFO_CONNECTIONS04)] */
1509         struct drsuapi_DsReplicaCursorCtrEx *cursors05;/* [unique,case(DRSUAPI_DS_REPLICA_INFO_CURSORS05)] */
1510         struct drsuapi_DsReplica06Ctr *i06;/* [unique,case(DRSUAPI_DS_REPLICA_INFO_06)] */
1511 }/* [switch_type(drsuapi_DsReplicaInfoType)] */;
1512
1513 struct drsuapi_DsGetMemberships2Ctr1 {
1514         uint32_t num_entries;/* [range(0,10000)] */
1515         struct drsuapi_DsGetMembershipsCtr1 **ctrl_array;/* [unique,size_is(num_entries)] */
1516 };
1517
1518 union drsuapi_DsGetMemberships2Ctr {
1519         struct drsuapi_DsGetMembershipsCtr1 ctr1;/* [case] */
1520 }/* [switch_type(int32)] */;
1521
1522 struct drsuapi_DsGetMemberships2Request1 {
1523         uint32_t num_req;/* [range(1,10000)] */
1524         struct drsuapi_DsGetMembershipsRequest1 **req_array;/* [unique,size_is(num_req)] */
1525 };
1526
1527 union drsuapi_DsGetMemberships2Request {
1528         struct drsuapi_DsGetMemberships2Request1 req1;/* [case] */
1529 }/* [switch_type(int32)] */;
1530
1531 struct drsuapi_DsSiteCostInfo {
1532         WERROR error_code;
1533         uint32_t site_cost;
1534 };
1535
1536 struct drsuapi_QuerySitesByCostCtr1 {
1537         uint32_t num_info;/* [range(0,10000)] */
1538         struct drsuapi_DsSiteCostInfo *info;/* [unique,size_is(num_info)] */
1539         uint32_t unknown;
1540 };
1541
1542 union drsuapi_QuerySitesByCostCtr {
1543         struct drsuapi_QuerySitesByCostCtr1 ctr1;/* [case] */
1544 }/* [switch_type(int32)] */;
1545
1546 struct drsuapi_QuerySitesByCostRequest1 {
1547         const char *site_from;/* [unique,charset(UTF16)] */
1548         uint32_t num_req;/* [range(1,10000)] */
1549         const char **site_to;/* [unique,charset(UTF16),size_is(num_req)] */
1550         uint32_t flags;
1551 };
1552
1553 union drsuapi_QuerySitesByCostRequest {
1554         struct drsuapi_QuerySitesByCostRequest1 req1;/* [case] */
1555 }/* [switch_type(int32)] */;
1556
1557
1558 struct drsuapi_DsBind {
1559         struct {
1560                 struct GUID *bind_guid;/* [unique] */
1561                 struct drsuapi_DsBindInfoCtr *bind_info;/* [unique] */
1562         } in;
1563
1564         struct {
1565                 struct policy_handle *bind_handle;/* [ref] */
1566                 struct drsuapi_DsBindInfoCtr *bind_info;/* [unique] */
1567                 WERROR result;
1568         } out;
1569
1570 };
1571
1572
1573 struct drsuapi_DsUnbind {
1574         struct {
1575                 struct policy_handle *bind_handle;/* [ref] */
1576         } in;
1577
1578         struct {
1579                 struct policy_handle *bind_handle;/* [ref] */
1580                 WERROR result;
1581         } out;
1582
1583 };
1584
1585
1586 struct drsuapi_DsReplicaSync {
1587         struct {
1588                 struct policy_handle *bind_handle;/* [ref] */
1589                 int32_t level;
1590                 union drsuapi_DsReplicaSyncRequest req;/* [switch_is(level)] */
1591         } in;
1592
1593         struct {
1594                 WERROR result;
1595         } out;
1596
1597 };
1598
1599
1600 struct drsuapi_DsGetNCChanges {
1601         struct {
1602                 struct policy_handle *bind_handle;/* [ref] */
1603                 int32_t level;
1604                 union drsuapi_DsGetNCChangesRequest *req;/* [ref,switch_is(level)] */
1605         } in;
1606
1607         struct {
1608                 int32_t *level_out;/* [ref] */
1609                 union drsuapi_DsGetNCChangesCtr *ctr;/* [ref,switch_is(*level_out)] */
1610                 WERROR result;
1611         } out;
1612
1613 };
1614
1615
1616 struct drsuapi_DsReplicaUpdateRefs {
1617         struct {
1618                 struct policy_handle *bind_handle;/* [ref] */
1619                 int32_t level;
1620                 union drsuapi_DsReplicaUpdateRefsRequest req;/* [switch_is(level)] */
1621         } in;
1622
1623         struct {
1624                 WERROR result;
1625         } out;
1626
1627 };
1628
1629
1630 struct drsuapi_DsReplicaAdd {
1631         struct {
1632                 struct policy_handle *bind_handle;/* [ref] */
1633                 int32_t level;
1634                 union drsuapi_DsReplicaAddRequest req;/* [switch_is(level)] */
1635         } in;
1636
1637         struct {
1638                 WERROR result;
1639         } out;
1640
1641 };
1642
1643
1644 struct drsuapi_DsReplicaDel {
1645         struct {
1646                 struct policy_handle *bind_handle;/* [ref] */
1647                 int32_t level;
1648                 union drsuapi_DsReplicaDelRequest req;/* [switch_is(level)] */
1649         } in;
1650
1651         struct {
1652                 WERROR result;
1653         } out;
1654
1655 };
1656
1657
1658 struct drsuapi_DsReplicaMod {
1659         struct {
1660                 struct policy_handle *bind_handle;/* [ref] */
1661                 int32_t level;
1662                 union drsuapi_DsReplicaModRequest req;/* [switch_is(level)] */
1663         } in;
1664
1665         struct {
1666                 WERROR result;
1667         } out;
1668
1669 };
1670
1671
1672 struct DRSUAPI_VERIFY_NAMES {
1673         struct {
1674                 WERROR result;
1675         } out;
1676
1677 };
1678
1679
1680 struct drsuapi_DsGetMemberships {
1681         struct {
1682                 struct policy_handle *bind_handle;/* [ref] */
1683                 int32_t level;
1684                 union drsuapi_DsGetMembershipsRequest *req;/* [ref,switch_is(level)] */
1685         } in;
1686
1687         struct {
1688                 int32_t *level_out;/* [ref] */
1689                 union drsuapi_DsGetMembershipsCtr *ctr;/* [ref,switch_is(*level_out)] */
1690                 WERROR result;
1691         } out;
1692
1693 };
1694
1695
1696 struct DRSUAPI_INTER_DOMAIN_MOVE {
1697         struct {
1698                 WERROR result;
1699         } out;
1700
1701 };
1702
1703
1704 struct drsuapi_DsGetNT4ChangeLog {
1705         struct {
1706                 struct policy_handle *bind_handle;/* [ref] */
1707                 uint32_t level;
1708                 union drsuapi_DsGetNT4ChangeLogRequest *req;/* [ref,switch_is(level)] */
1709         } in;
1710
1711         struct {
1712                 uint32_t *level_out;/* [ref] */
1713                 union drsuapi_DsGetNT4ChangeLogInfo *info;/* [ref,switch_is(*level_out)] */
1714                 WERROR result;
1715         } out;
1716
1717 };
1718
1719
1720 struct drsuapi_DsCrackNames {
1721         struct {
1722                 struct policy_handle *bind_handle;/* [ref] */
1723                 int32_t level;
1724                 union drsuapi_DsNameRequest *req;/* [ref,switch_is(level)] */
1725         } in;
1726
1727         struct {
1728                 int32_t *level_out;/* [ref] */
1729                 union drsuapi_DsNameCtr *ctr;/* [ref,switch_is(*level_out)] */
1730                 WERROR result;
1731         } out;
1732
1733 };
1734
1735
1736 struct drsuapi_DsWriteAccountSpn {
1737         struct {
1738                 struct policy_handle *bind_handle;/* [ref] */
1739                 int32_t level;
1740                 union drsuapi_DsWriteAccountSpnRequest *req;/* [ref,switch_is(level)] */
1741         } in;
1742
1743         struct {
1744                 int32_t *level_out;/* [ref] */
1745                 union drsuapi_DsWriteAccountSpnResult *res;/* [ref,switch_is(*level_out)] */
1746                 WERROR result;
1747         } out;
1748
1749 };
1750
1751
1752 struct drsuapi_DsRemoveDSServer {
1753         struct {
1754                 struct policy_handle *bind_handle;/* [ref] */
1755                 int32_t level;
1756                 union drsuapi_DsRemoveDSServerRequest *req;/* [ref,switch_is(level)] */
1757         } in;
1758
1759         struct {
1760                 int32_t *level_out;/* [ref] */
1761                 union drsuapi_DsRemoveDSServerResult *res;/* [ref,switch_is(*level_out)] */
1762                 WERROR result;
1763         } out;
1764
1765 };
1766
1767
1768 struct DRSUAPI_REMOVE_DS_DOMAIN {
1769         struct {
1770                 WERROR result;
1771         } out;
1772
1773 };
1774
1775
1776 struct drsuapi_DsGetDomainControllerInfo {
1777         struct {
1778                 struct policy_handle *bind_handle;/* [ref] */
1779                 int32_t level;
1780                 union drsuapi_DsGetDCInfoRequest *req;/* [ref,switch_is(level)] */
1781         } in;
1782
1783         struct {
1784                 int32_t *level_out;/* [ref] */
1785                 union drsuapi_DsGetDCInfoCtr *ctr;/* [ref,switch_is(*level_out)] */
1786                 WERROR result;
1787         } out;
1788
1789 };
1790
1791
1792 struct drsuapi_DsAddEntry {
1793         struct {
1794                 struct policy_handle *bind_handle;/* [ref] */
1795                 int32_t level;
1796                 union drsuapi_DsAddEntryRequest *req;/* [ref,switch_is(level)] */
1797         } in;
1798
1799         struct {
1800                 int32_t *level_out;/* [ref] */
1801                 union drsuapi_DsAddEntryCtr *ctr;/* [ref,switch_is(*level_out)] */
1802                 WERROR result;
1803         } out;
1804
1805 };
1806
1807
1808 struct drsuapi_DsExecuteKCC {
1809         struct {
1810                 struct policy_handle *bind_handle;/* [ref] */
1811                 uint32_t level;
1812                 union drsuapi_DsExecuteKCCRequest *req;/* [ref,switch_is(level)] */
1813         } in;
1814
1815         struct {
1816                 WERROR result;
1817         } out;
1818
1819 };
1820
1821
1822 struct drsuapi_DsReplicaGetInfo {
1823         struct {
1824                 struct policy_handle *bind_handle;/* [ref] */
1825                 enum drsuapi_DsReplicaGetInfoLevel level;
1826                 union drsuapi_DsReplicaGetInfoRequest *req;/* [ref,switch_is(level)] */
1827         } in;
1828
1829         struct {
1830                 enum drsuapi_DsReplicaInfoType *info_type;/* [ref] */
1831                 union drsuapi_DsReplicaInfo *info;/* [ref,switch_is(*info_type)] */
1832                 WERROR result;
1833         } out;
1834
1835 };
1836
1837
1838 struct DRSUAPI_ADD_SID_HISTORY {
1839         struct {
1840                 WERROR result;
1841         } out;
1842
1843 };
1844
1845
1846 struct drsuapi_DsGetMemberships2 {
1847         struct {
1848                 struct policy_handle *bind_handle;/* [ref] */
1849                 int32_t level;
1850                 union drsuapi_DsGetMemberships2Request *req;/* [ref,switch_is(level)] */
1851         } in;
1852
1853         struct {
1854                 int32_t *level_out;/* [ref] */
1855                 union drsuapi_DsGetMemberships2Ctr *ctr;/* [ref,switch_is(*level_out)] */
1856                 WERROR result;
1857         } out;
1858
1859 };
1860
1861
1862 struct DRSUAPI_REPLICA_VERIFY_OBJECTS {
1863         struct {
1864                 WERROR result;
1865         } out;
1866
1867 };
1868
1869
1870 struct DRSUAPI_GET_OBJECT_EXISTENCE {
1871         struct {
1872                 WERROR result;
1873         } out;
1874
1875 };
1876
1877
1878 struct drsuapi_QuerySitesByCost {
1879         struct {
1880                 struct policy_handle *bind_handle;/* [ref] */
1881                 int32_t level;
1882                 union drsuapi_QuerySitesByCostRequest *req;/* [ref,switch_is(level)] */
1883         } in;
1884
1885         struct {
1886                 int32_t *level_out;/* [ref] */
1887                 union drsuapi_QuerySitesByCostCtr *ctr;/* [ref,switch_is(*level_out)] */
1888                 WERROR result;
1889         } out;
1890
1891 };
1892
1893 #endif /* _HEADER_drsuapi */