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