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