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