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