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