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