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