1 /* header auto-generated by pidl */
5 #include "libcli/util/ntstatus.h"
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
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_DrsOptions */
19 #define DRSUAPI_DRS_ASYNC_OP ( 0x00000001 )
20 #define DRSUAPI_DRS_GETCHG_CHECK ( 0x00000002 )
21 #define DRSUAPI_DRS_UPDATE_NOTIFICATION ( 0x00000002 )
22 #define DRSUAPI_DRS_ADD_REF ( 0x00000004 )
23 #define DRSUAPI_DRS_SYNC_ALL ( 0x00000008 )
24 #define DRSUAPI_DRS_DEL_REF ( 0x00000008 )
25 #define DRSUAPI_DRS_WRIT_REP ( 0x00000010 )
26 #define DRSUAPI_DRS_INIT_SYNC ( 0x00000020 )
27 #define DRSUAPI_DRS_PER_SYNC ( 0x00000040 )
28 #define DRSUAPI_DRS_MAIL_REP ( 0x00000080 )
29 #define DRSUAPI_DRS_ASYNC_REP ( 0x00000100 )
30 #define DRSUAPI_DRS_IGNORE_ERROR ( 0x00000100 )
31 #define DRSUAPI_DRS_TWOWAY_SYNC ( 0x00000200 )
32 #define DRSUAPI_DRS_CRITICAL_ONLY ( 0x00000400 )
33 #define DRSUAPI_DRS_GET_ANC ( 0x00000800 )
34 #define DRSUAPI_DRS_GET_NC_SIZE ( 0x00001000 )
35 #define DRSUAPI_DRS_LOCAL_ONLY ( 0x00001000 )
36 #define DRSUAPI_DRS_SYNC_BYNAME ( 0x00004000 )
37 #define DRSUAPI_DRS_REF_OK ( 0x00004000 )
38 #define DRSUAPI_DRS_FULL_SYNC_NOW ( 0x00008000 )
39 #define DRSUAPI_DRS_NO_SOURCE ( 0x00008000 )
40 #define DRSUAPI_DRS_FULL_SYNC_IN_PROGRESS ( 0x00010000 )
41 #define DRSUAPI_DRS_FULL_SYNC_PACKET ( 0x00020000 )
42 #define DRSUAPI_DRS_SYNC_REQUEUE ( 0x00040000 )
43 #define DRSUAPI_DRS_SYNC_URGENT ( 0x00080000 )
44 #define DRSUAPI_DRS_REF_GCSPN ( 0x00100000 )
45 #define DRSUAPI_DRS_NO_DISCARD ( 0x00100000 )
46 #define DRSUAPI_DRS_NEVER_SYNCED ( 0x00200000 )
47 #define DRSUAPI_DRS_SPECIAL_SECRET_PROCESSING ( 0x00400000 )
48 #define DRSUAPI_DRS_INIT_SYNC_NOW ( 0x00800000 )
49 #define DRSUAPI_DRS_PREEMPTED ( 0x01000000 )
50 #define DRSUAPI_DRS_SYNC_FORCED ( 0x02000000 )
51 #define DRSUAPI_DRS_DISABLE_AUTO_SYNC ( 0x04000000 )
52 #define DRSUAPI_DRS_DISABLE_PERIODIC_SYNC ( 0x08000000 )
53 #define DRSUAPI_DRS_USE_COMPRESSION ( 0x10000000 )
54 #define DRSUAPI_DRS_NEVER_NOTIFY ( 0x20000000 )
55 #define DRSUAPI_DRS_SYNC_PAS ( 0x40000000 )
56 #define DRSUAPI_DRS_GET_ALL_GROUP_MEMBERSHIP ( 0x80000000 )
58 /* bitmap drsuapi_SupportedExtensions */
59 #define DRSUAPI_SUPPORTED_EXTENSION_BASE ( 0x00000001 )
60 #define DRSUAPI_SUPPORTED_EXTENSION_ASYNC_REPLICATION ( 0x00000002 )
61 #define DRSUAPI_SUPPORTED_EXTENSION_REMOVEAPI ( 0x00000004 )
62 #define DRSUAPI_SUPPORTED_EXTENSION_MOVEREQ_V2 ( 0x00000008 )
63 #define DRSUAPI_SUPPORTED_EXTENSION_GETCHG_COMPRESS ( 0x00000010 )
64 #define DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V1 ( 0x00000020 )
65 #define DRSUAPI_SUPPORTED_EXTENSION_RESTORE_USN_OPTIMIZATION ( 0x00000040 )
66 #define DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY ( 0x00000080 )
67 #define DRSUAPI_SUPPORTED_EXTENSION_KCC_EXECUTE ( 0x00000100 )
68 #define DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_V2 ( 0x00000200 )
69 #define DRSUAPI_SUPPORTED_EXTENSION_LINKED_VALUE_REPLICATION ( 0x00000400 )
70 #define DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V2 ( 0x00000800 )
71 #define DRSUAPI_SUPPORTED_EXTENSION_INSTANCE_TYPE_NOT_REQ_ON_MOD ( 0x00001000 )
72 #define DRSUAPI_SUPPORTED_EXTENSION_CRYPTO_BIND ( 0x00002000 )
73 #define DRSUAPI_SUPPORTED_EXTENSION_GET_REPL_INFO ( 0x00004000 )
74 #define DRSUAPI_SUPPORTED_EXTENSION_STRONG_ENCRYPTION ( 0x00008000 )
75 #define DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V01 ( 0x00010000 )
76 #define DRSUAPI_SUPPORTED_EXTENSION_TRANSITIVE_MEMBERSHIP ( 0x00020000 )
77 #define DRSUAPI_SUPPORTED_EXTENSION_ADD_SID_HISTORY ( 0x00040000 )
78 #define DRSUAPI_SUPPORTED_EXTENSION_POST_BETA3 ( 0x00080000 )
79 #define DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V5 ( 0x00100000 )
80 #define DRSUAPI_SUPPORTED_EXTENSION_GET_MEMBERSHIPS2 ( 0x00200000 )
81 #define DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V6 ( 0x00400000 )
82 #define DRSUAPI_SUPPORTED_EXTENSION_NONDOMAIN_NCS ( 0x00800000 )
83 #define DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V8 ( 0x01000000 )
84 #define DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V5 ( 0x02000000 )
85 #define DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V6 ( 0x04000000 )
86 #define DRSUAPI_SUPPORTED_EXTENSION_ADDENTRYREPLY_V3 ( 0x08000000 )
87 #define DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V7 ( 0x08000000 )
88 #define DRSUAPI_SUPPORTED_EXTENSION_VERIFY_OBJECT ( 0x08000000 )
89 #define DRSUAPI_SUPPORTED_EXTENSION_XPRESS_COMPRESS ( 0x10000000 )
90 #define DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V10 ( 0x20000000 )
91 #define DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART2 ( 0x40000000 )
92 #define DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART3 ( 0x80000000 )
94 /* bitmap drsuapi_SupportedExtensionsExt */
95 #define DRSUAPI_SUPPORTED_EXTENSION_ADAM ( 0x00000001 )
96 #define DRSUAPI_SUPPORTED_EXTENSION_LH_BETA2 ( 0x00000002 )
97 #define DRSUAPI_SUPPORTED_EXTENSION_RECYCLE_BIN ( 0x00000004 )
99 struct drsuapi_DsBindInfo24
{
100 uint32_t supported_extensions
;
101 struct GUID site_guid
;
105 struct drsuapi_DsBindInfo28
{
106 uint32_t supported_extensions
;
107 struct GUID site_guid
;
112 struct drsuapi_DsBindInfo48
{
113 uint32_t supported_extensions
;
114 struct GUID site_guid
;
117 uint32_t supported_extensions_ext
;
118 struct GUID config_dn_guid
;
121 struct drsuapi_DsBindInfoFallBack
{
122 DATA_BLOB info
;/* [flag(LIBNDR_FLAG_REMAINING)] */
125 union drsuapi_DsBindInfo
{
126 struct drsuapi_DsBindInfo24 info24
;/* [subcontext(4),case(24)] */
127 struct drsuapi_DsBindInfo28 info28
;/* [subcontext(4),case(28)] */
128 struct drsuapi_DsBindInfo48 info48
;/* [subcontext(4),case(48)] */
129 struct drsuapi_DsBindInfoFallBack FallBack
;/* [subcontext(4),default] */
130 }/* [nodiscriminant] */;
132 struct drsuapi_DsBindInfoCtr
{
133 uint32_t length
;/* [range(1,10000)] */
134 union drsuapi_DsBindInfo info
;/* [switch_is(length)] */
137 struct drsuapi_DsReplicaObjectIdentifier
{
138 uint32_t __ndr_size
;/* [value(ndr_size_drsuapi_DsReplicaObjectIdentifier(r,ndr->iconv_convenience,ndr->flags)-4)] */
139 uint32_t __ndr_size_sid
;/* [value(ndr_size_dom_sid28(&sid,ndr->flags))] */
141 struct dom_sid28 sid
;
142 uint32_t __ndr_size_dn
;/* [value(strlen_m(dn))] */
143 const char *dn
;/* [charset(UTF16),size_is(__ndr_size_dn+1)] */
144 }/* [gensize,public] */;
146 /* bitmap drsuapi_DsReplicaSyncOptions */
147 #define DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_OPERATION ( 0x00000001 )
148 #define DRSUAPI_DS_REPLICA_SYNC_WRITEABLE ( 0x00000002 )
149 #define DRSUAPI_DS_REPLICA_SYNC_PERIODIC ( 0x00000004 )
150 #define DRSUAPI_DS_REPLICA_SYNC_INTERSITE_MESSAGING ( 0x00000008 )
151 #define DRSUAPI_DS_REPLICA_SYNC_ALL_SOURCES ( 0x00000010 )
152 #define DRSUAPI_DS_REPLICA_SYNC_FULL ( 0x00000020 )
153 #define DRSUAPI_DS_REPLICA_SYNC_URGENT ( 0x00000040 )
154 #define DRSUAPI_DS_REPLICA_SYNC_NO_DISCARD ( 0x00000080 )
155 #define DRSUAPI_DS_REPLICA_SYNC_FORCE ( 0x00000100 )
156 #define DRSUAPI_DS_REPLICA_SYNC_ADD_REFERENCE ( 0x00000200 )
157 #define DRSUAPI_DS_REPLICA_SYNC_NEVER_COMPLETED ( 0x00000400 )
158 #define DRSUAPI_DS_REPLICA_SYNC_TWO_WAY ( 0x00000800 )
159 #define DRSUAPI_DS_REPLICA_SYNC_NEVER_NOTIFY ( 0x00001000 )
160 #define DRSUAPI_DS_REPLICA_SYNC_INITIAL ( 0x00002000 )
161 #define DRSUAPI_DS_REPLICA_SYNC_USE_COMPRESSION ( 0x00004000 )
162 #define DRSUAPI_DS_REPLICA_SYNC_ABANDONED ( 0x00008000 )
163 #define DRSUAPI_DS_REPLICA_SYNC_INITIAL_IN_PROGRESS ( 0x00010000 )
164 #define DRSUAPI_DS_REPLICA_SYNC_PARTIAL_ATTRIBUTE_SET ( 0x00020000 )
165 #define DRSUAPI_DS_REPLICA_SYNC_REQUEUE ( 0x00040000 )
166 #define DRSUAPI_DS_REPLICA_SYNC_NOTIFICATION ( 0x00080000 )
167 #define DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_REPLICA ( 0x00100000 )
168 #define DRSUAPI_DS_REPLICA_SYNC_CRITICAL ( 0x00200000 )
169 #define DRSUAPI_DS_REPLICA_SYNC_FULL_IN_PROGRESS ( 0x00400000 )
170 #define DRSUAPI_DS_REPLICA_SYNC_PREEMPTED ( 0x00800000 )
172 struct drsuapi_DsReplicaSyncRequest1
{
173 struct drsuapi_DsReplicaObjectIdentifier
*naming_context
;/* [unique] */
174 struct GUID source_dsa_guid
;
175 const char * other_info
;/* [unique,flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
179 union drsuapi_DsReplicaSyncRequest
{
180 struct drsuapi_DsReplicaSyncRequest1 req1
;/* [case] */
181 }/* [switch_type(int32)] */;
183 struct drsuapi_DsReplicaHighWaterMark
{
184 uint64_t tmp_highest_usn
;
185 uint64_t reserved_usn
;
186 uint64_t highest_usn
;
189 struct drsuapi_DsReplicaCursor
{
190 struct GUID source_dsa_invocation_id
;
191 uint64_t highest_usn
;
194 struct drsuapi_DsReplicaCursorCtrEx
{
195 uint32_t version
;/* [value] */
196 uint32_t reserved1
;/* [value(0)] */
197 uint32_t count
;/* [range(0,0x100000)] */
198 uint32_t reserved2
;/* [value(0)] */
199 struct drsuapi_DsReplicaCursor
*cursors
;/* [size_is(count)] */
202 enum drsuapi_DsExtendedOperation
203 #ifndef USE_UINT_ENUMS
205 DRSUAPI_EXOP_NONE
=(int)(0x00000000),
206 DRSUAPI_EXOP_FSMO_REQ_ROLE
=(int)(0x00000001),
207 DRSUAPI_EXOP_FSMO_RID_ALLOC
=(int)(0x00000002),
208 DRSUAPI_EXOP_FSMO_RID_REQ_ROLE
=(int)(0x00000003),
209 DRSUAPI_EXOP_FSMO_REQ_PDC
=(int)(0x00000004),
210 DRSUAPI_EXOP_FSMO_ABANDON_ROLE
=(int)(0x00000005),
211 DRSUAPI_EXOP_REPL_OBJ
=(int)(0x00000006),
212 DRSUAPI_EXOP_REPL_SECRET
=(int)(0x00000007)
215 { __donnot_use_enum_drsuapi_DsExtendedOperation
=0x7FFFFFFF}
216 #define DRSUAPI_EXOP_NONE ( 0x00000000 )
217 #define DRSUAPI_EXOP_FSMO_REQ_ROLE ( 0x00000001 )
218 #define DRSUAPI_EXOP_FSMO_RID_ALLOC ( 0x00000002 )
219 #define DRSUAPI_EXOP_FSMO_RID_REQ_ROLE ( 0x00000003 )
220 #define DRSUAPI_EXOP_FSMO_REQ_PDC ( 0x00000004 )
221 #define DRSUAPI_EXOP_FSMO_ABANDON_ROLE ( 0x00000005 )
222 #define DRSUAPI_EXOP_REPL_OBJ ( 0x00000006 )
223 #define DRSUAPI_EXOP_REPL_SECRET ( 0x00000007 )
227 enum drsuapi_DsExtendedError
228 #ifndef USE_UINT_ENUMS
230 DRSUAPI_EXOP_ERR_NONE
=(int)(0x00000000),
231 DRSUAPI_EXOP_ERR_SUCCESS
=(int)(0x00000001),
232 DRSUAPI_EXOP_ERR_UNKNOWN_OP
=(int)(0x00000002),
233 DRSUAPI_EXOP_ERR_FSMO_NOT_OWNER
=(int)(0x00000003),
234 DRSUAPI_EXOP_ERR_UPDATE_ERR
=(int)(0x00000004),
235 DRSUAPI_EXOP_ERR_EXCEPTION
=(int)(0x00000005),
236 DRSUAPI_EXOP_ERR_UNKNOWN_CALLER
=(int)(0x00000006),
237 DRSUAPI_EXOP_ERR_RID_ALLOC
=(int)(0x00000007),
238 DRSUAPI_EXOP_ERR_FSMO_OWNER_DELETED
=(int)(0x00000008),
239 DRSUAPI_EXOP_ERR_FMSO_PENDING_OP
=(int)(0x00000009),
240 DRSUAPI_EXOP_ERR_MISMATCH
=(int)(0x0000000A),
241 DRSUAPI_EXOP_ERR_COULDNT_CONTACT
=(int)(0x0000000B),
242 DRSUAPI_EXOP_ERR_FSMO_REFUSING_ROLES
=(int)(0x0000000C),
243 DRSUAPI_EXOP_ERR_DIR_ERROR
=(int)(0x0000000D),
244 DRSUAPI_EXOP_ERR_FSMO_MISSING_SETTINGS
=(int)(0x0000000E),
245 DRSUAPI_EXOP_ERR_ACCESS_DENIED
=(int)(0x0000000F),
246 DRSUAPI_EXOP_ERR_PARAM_ERROR
=(int)(0x00000010)
249 { __donnot_use_enum_drsuapi_DsExtendedError
=0x7FFFFFFF}
250 #define DRSUAPI_EXOP_ERR_NONE ( 0x00000000 )
251 #define DRSUAPI_EXOP_ERR_SUCCESS ( 0x00000001 )
252 #define DRSUAPI_EXOP_ERR_UNKNOWN_OP ( 0x00000002 )
253 #define DRSUAPI_EXOP_ERR_FSMO_NOT_OWNER ( 0x00000003 )
254 #define DRSUAPI_EXOP_ERR_UPDATE_ERR ( 0x00000004 )
255 #define DRSUAPI_EXOP_ERR_EXCEPTION ( 0x00000005 )
256 #define DRSUAPI_EXOP_ERR_UNKNOWN_CALLER ( 0x00000006 )
257 #define DRSUAPI_EXOP_ERR_RID_ALLOC ( 0x00000007 )
258 #define DRSUAPI_EXOP_ERR_FSMO_OWNER_DELETED ( 0x00000008 )
259 #define DRSUAPI_EXOP_ERR_FMSO_PENDING_OP ( 0x00000009 )
260 #define DRSUAPI_EXOP_ERR_MISMATCH ( 0x0000000A )
261 #define DRSUAPI_EXOP_ERR_COULDNT_CONTACT ( 0x0000000B )
262 #define DRSUAPI_EXOP_ERR_FSMO_REFUSING_ROLES ( 0x0000000C )
263 #define DRSUAPI_EXOP_ERR_DIR_ERROR ( 0x0000000D )
264 #define DRSUAPI_EXOP_ERR_FSMO_MISSING_SETTINGS ( 0x0000000E )
265 #define DRSUAPI_EXOP_ERR_ACCESS_DENIED ( 0x0000000F )
266 #define DRSUAPI_EXOP_ERR_PARAM_ERROR ( 0x00000010 )
270 struct drsuapi_DsGetNCChangesRequest5
{
271 struct GUID destination_dsa_guid
;
272 struct GUID source_dsa_invocation_id
;
273 struct drsuapi_DsReplicaObjectIdentifier
*naming_context
;/* [ref] */
274 struct drsuapi_DsReplicaHighWaterMark highwatermark
;
275 struct drsuapi_DsReplicaCursorCtrEx
*uptodateness_vector
;/* [unique] */
276 uint32_t replica_flags
;
277 uint32_t max_object_count
;
278 uint32_t max_ndr_size
;
279 enum drsuapi_DsExtendedOperation extended_op
;
283 struct drsuapi_DsReplicaOID
{
284 uint32_t length
;/* [range(0,10000)] */
285 uint8_t *binary_oid
;/* [unique,size_is(length)] */
288 struct drsuapi_DsReplicaOIDMapping
{
290 struct drsuapi_DsReplicaOID oid
;
293 struct drsuapi_DsReplicaOIDMapping_Ctr
{
294 uint32_t num_mappings
;/* [range(0,0x100000)] */
295 struct drsuapi_DsReplicaOIDMapping
*mappings
;/* [unique,size_is(num_mappings)] */
298 enum drsuapi_DsObjectClassId
299 #ifndef USE_UINT_ENUMS
301 DRSUAPI_OBJECTCLASS_top
=(int)(0x00010000),
302 DRSUAPI_OBJECTCLASS_classSchema
=(int)(0x0003000d),
303 DRSUAPI_OBJECTCLASS_attributeSchema
=(int)(0x0003000e)
306 { __donnot_use_enum_drsuapi_DsObjectClassId
=0x7FFFFFFF}
307 #define DRSUAPI_OBJECTCLASS_top ( 0x00010000 )
308 #define DRSUAPI_OBJECTCLASS_classSchema ( 0x0003000d )
309 #define DRSUAPI_OBJECTCLASS_attributeSchema ( 0x0003000e )
313 enum drsuapi_DsAttributeId
314 #ifndef USE_UINT_ENUMS
316 DRSUAPI_ATTRIBUTE_objectClass
=(int)(0x00000000),
317 DRSUAPI_ATTRIBUTE_cn
=(int)(0x00000003),
318 DRSUAPI_ATTRIBUTE_description
=(int)(0x0000000d),
319 DRSUAPI_ATTRIBUTE_member
=(int)(0x0000001f),
320 DRSUAPI_ATTRIBUTE_instanceType
=(int)(0x00020001),
321 DRSUAPI_ATTRIBUTE_whenCreated
=(int)(0x00020002),
322 DRSUAPI_ATTRIBUTE_possSuperiors
=(int)(0x00020008),
323 DRSUAPI_ATTRIBUTE_hasMasterNCs
=(int)(0x0002000e),
324 DRSUAPI_ATTRIBUTE_subClassOf
=(int)(0x00020015),
325 DRSUAPI_ATTRIBUTE_governsID
=(int)(0x00020016),
326 DRSUAPI_ATTRIBUTE_mustContain
=(int)(0x00020018),
327 DRSUAPI_ATTRIBUTE_mayContain
=(int)(0x00020019),
328 DRSUAPI_ATTRIBUTE_rDNAttId
=(int)(0x0002001A),
329 DRSUAPI_ATTRIBUTE_attributeID
=(int)(0x0002001e),
330 DRSUAPI_ATTRIBUTE_attributeSyntax
=(int)(0x00020020),
331 DRSUAPI_ATTRIBUTE_isSingleValued
=(int)(0x00020021),
332 DRSUAPI_ATTRIBUTE_rangeLower
=(int)(0x00020022),
333 DRSUAPI_ATTRIBUTE_rangeUpper
=(int)(0x00020023),
334 DRSUAPI_ATTRIBUTE_dMDLocation
=(int)(0x00020024),
335 DRSUAPI_ATTRIBUTE_objectVersion
=(int)(0x0002004c),
336 DRSUAPI_ATTRIBUTE_invocationId
=(int)(0x00020073),
337 DRSUAPI_ATTRIBUTE_showInAdvancedViewOnly
=(int)(0x000200a9),
338 DRSUAPI_ATTRIBUTE_adminDisplayName
=(int)(0x000200c2),
339 DRSUAPI_ATTRIBUTE_adminDescription
=(int)(0x000200e2),
340 DRSUAPI_ATTRIBUTE_oMSyntax
=(int)(0x000200e7),
341 DRSUAPI_ATTRIBUTE_ntSecurityDescriptor
=(int)(0x00020119),
342 DRSUAPI_ATTRIBUTE_searchFlags
=(int)(0x0002014e),
343 DRSUAPI_ATTRIBUTE_auxiliaryClass
=(int)(0x0002015f),
344 DRSUAPI_ATTRIBUTE_lDAPDisplayName
=(int)(0x000201cc),
345 DRSUAPI_ATTRIBUTE_name
=(int)(0x00090001),
346 DRSUAPI_ATTRIBUTE_userAccountControl
=(int)(0x00090008),
347 DRSUAPI_ATTRIBUTE_currentValue
=(int)(0x0009001b),
348 DRSUAPI_ATTRIBUTE_homeDirectory
=(int)(0x0009002c),
349 DRSUAPI_ATTRIBUTE_homeDrive
=(int)(0x0009002d),
350 DRSUAPI_ATTRIBUTE_scriptPath
=(int)(0x0009003e),
351 DRSUAPI_ATTRIBUTE_profilePath
=(int)(0x0009008b),
352 DRSUAPI_ATTRIBUTE_objectSid
=(int)(0x00090092),
353 DRSUAPI_ATTRIBUTE_schemaIDGUID
=(int)(0x00090094),
354 DRSUAPI_ATTRIBUTE_dBCSPwd
=(int)(0x00090037),
355 DRSUAPI_ATTRIBUTE_logonHours
=(int)(0x00090040),
356 DRSUAPI_ATTRIBUTE_userWorkstations
=(int)(0x00090056),
357 DRSUAPI_ATTRIBUTE_unicodePwd
=(int)(0x0009005a),
358 DRSUAPI_ATTRIBUTE_ntPwdHistory
=(int)(0x0009005e),
359 DRSUAPI_ATTRIBUTE_priorValue
=(int)(0x00090064),
360 DRSUAPI_ATTRIBUTE_supplementalCredentials
=(int)(0x0009007d),
361 DRSUAPI_ATTRIBUTE_trustAuthIncoming
=(int)(0x00090081),
362 DRSUAPI_ATTRIBUTE_trustAuthOutgoing
=(int)(0x00090087),
363 DRSUAPI_ATTRIBUTE_lmPwdHistory
=(int)(0x000900a0),
364 DRSUAPI_ATTRIBUTE_systemPossSuperiors
=(int)(0x000900c3),
365 DRSUAPI_ATTRIBUTE_systemMayContain
=(int)(0x000900c4),
366 DRSUAPI_ATTRIBUTE_systemMustContain
=(int)(0x000900c5),
367 DRSUAPI_ATTRIBUTE_systemAuxiliaryClass
=(int)(0x000900c6),
368 DRSUAPI_ATTRIBUTE_sAMAccountName
=(int)(0x000900dd),
369 DRSUAPI_ATTRIBUTE_sAMAccountType
=(int)(0x0009012e),
370 DRSUAPI_ATTRIBUTE_fSMORoleOwner
=(int)(0x00090171),
371 DRSUAPI_ATTRIBUTE_systemFlags
=(int)(0x00090177),
372 DRSUAPI_ATTRIBUTE_serverReference
=(int)(0x00090203),
373 DRSUAPI_ATTRIBUTE_serverReferenceBL
=(int)(0x00090204),
374 DRSUAPI_ATTRIBUTE_initialAuthIncoming
=(int)(0x0009021b),
375 DRSUAPI_ATTRIBUTE_initialAuthOutgoing
=(int)(0x0009021c),
376 DRSUAPI_ATTRIBUTE_wellKnownObjects
=(int)(0x0009026a),
377 DRSUAPI_ATTRIBUTE_dNSHostName
=(int)(0x0009026b),
378 DRSUAPI_ATTRIBUTE_isMemberOfPartialAttributeSet
=(int)(0x0009027f),
379 DRSUAPI_ATTRIBUTE_userPrincipalName
=(int)(0x00090290),
380 DRSUAPI_ATTRIBUTE_groupType
=(int)(0x000902ee),
381 DRSUAPI_ATTRIBUTE_servicePrincipalName
=(int)(0x00090303),
382 DRSUAPI_ATTRIBUTE_objectCategory
=(int)(0x0009030e),
383 DRSUAPI_ATTRIBUTE_gPLink
=(int)(0x0009037b),
384 DRSUAPI_ATTRIBUTE_transportAddressAttribute
=(int)(0x0009037f),
385 DRSUAPI_ATTRIBUTE_msDS_Behavior_Version
=(int)(0x000905b3),
386 DRSUAPI_ATTRIBUTE_msDS_KeyVersionNumber
=(int)(0x000906f6),
387 DRSUAPI_ATTRIBUTE_msDS_HasDomainNCs
=(int)(0x0009071c),
388 DRSUAPI_ATTRIBUTE_msDS_hasMasterNCs
=(int)(0x0009072c),
389 DRSUAPI_ATTRIBUTE_NONE
=(int)(0xFFFFFFFF)
392 { __donnot_use_enum_drsuapi_DsAttributeId
=0x7FFFFFFF}
393 #define DRSUAPI_ATTRIBUTE_objectClass ( 0x00000000 )
394 #define DRSUAPI_ATTRIBUTE_cn ( 0x00000003 )
395 #define DRSUAPI_ATTRIBUTE_description ( 0x0000000d )
396 #define DRSUAPI_ATTRIBUTE_member ( 0x0000001f )
397 #define DRSUAPI_ATTRIBUTE_instanceType ( 0x00020001 )
398 #define DRSUAPI_ATTRIBUTE_whenCreated ( 0x00020002 )
399 #define DRSUAPI_ATTRIBUTE_possSuperiors ( 0x00020008 )
400 #define DRSUAPI_ATTRIBUTE_hasMasterNCs ( 0x0002000e )
401 #define DRSUAPI_ATTRIBUTE_subClassOf ( 0x00020015 )
402 #define DRSUAPI_ATTRIBUTE_governsID ( 0x00020016 )
403 #define DRSUAPI_ATTRIBUTE_mustContain ( 0x00020018 )
404 #define DRSUAPI_ATTRIBUTE_mayContain ( 0x00020019 )
405 #define DRSUAPI_ATTRIBUTE_rDNAttId ( 0x0002001A )
406 #define DRSUAPI_ATTRIBUTE_attributeID ( 0x0002001e )
407 #define DRSUAPI_ATTRIBUTE_attributeSyntax ( 0x00020020 )
408 #define DRSUAPI_ATTRIBUTE_isSingleValued ( 0x00020021 )
409 #define DRSUAPI_ATTRIBUTE_rangeLower ( 0x00020022 )
410 #define DRSUAPI_ATTRIBUTE_rangeUpper ( 0x00020023 )
411 #define DRSUAPI_ATTRIBUTE_dMDLocation ( 0x00020024 )
412 #define DRSUAPI_ATTRIBUTE_objectVersion ( 0x0002004c )
413 #define DRSUAPI_ATTRIBUTE_invocationId ( 0x00020073 )
414 #define DRSUAPI_ATTRIBUTE_showInAdvancedViewOnly ( 0x000200a9 )
415 #define DRSUAPI_ATTRIBUTE_adminDisplayName ( 0x000200c2 )
416 #define DRSUAPI_ATTRIBUTE_adminDescription ( 0x000200e2 )
417 #define DRSUAPI_ATTRIBUTE_oMSyntax ( 0x000200e7 )
418 #define DRSUAPI_ATTRIBUTE_ntSecurityDescriptor ( 0x00020119 )
419 #define DRSUAPI_ATTRIBUTE_searchFlags ( 0x0002014e )
420 #define DRSUAPI_ATTRIBUTE_auxiliaryClass ( 0x0002015f )
421 #define DRSUAPI_ATTRIBUTE_lDAPDisplayName ( 0x000201cc )
422 #define DRSUAPI_ATTRIBUTE_name ( 0x00090001 )
423 #define DRSUAPI_ATTRIBUTE_userAccountControl ( 0x00090008 )
424 #define DRSUAPI_ATTRIBUTE_currentValue ( 0x0009001b )
425 #define DRSUAPI_ATTRIBUTE_homeDirectory ( 0x0009002c )
426 #define DRSUAPI_ATTRIBUTE_homeDrive ( 0x0009002d )
427 #define DRSUAPI_ATTRIBUTE_scriptPath ( 0x0009003e )
428 #define DRSUAPI_ATTRIBUTE_profilePath ( 0x0009008b )
429 #define DRSUAPI_ATTRIBUTE_objectSid ( 0x00090092 )
430 #define DRSUAPI_ATTRIBUTE_schemaIDGUID ( 0x00090094 )
431 #define DRSUAPI_ATTRIBUTE_dBCSPwd ( 0x00090037 )
432 #define DRSUAPI_ATTRIBUTE_logonHours ( 0x00090040 )
433 #define DRSUAPI_ATTRIBUTE_userWorkstations ( 0x00090056 )
434 #define DRSUAPI_ATTRIBUTE_unicodePwd ( 0x0009005a )
435 #define DRSUAPI_ATTRIBUTE_ntPwdHistory ( 0x0009005e )
436 #define DRSUAPI_ATTRIBUTE_priorValue ( 0x00090064 )
437 #define DRSUAPI_ATTRIBUTE_supplementalCredentials ( 0x0009007d )
438 #define DRSUAPI_ATTRIBUTE_trustAuthIncoming ( 0x00090081 )
439 #define DRSUAPI_ATTRIBUTE_trustAuthOutgoing ( 0x00090087 )
440 #define DRSUAPI_ATTRIBUTE_lmPwdHistory ( 0x000900a0 )
441 #define DRSUAPI_ATTRIBUTE_systemPossSuperiors ( 0x000900c3 )
442 #define DRSUAPI_ATTRIBUTE_systemMayContain ( 0x000900c4 )
443 #define DRSUAPI_ATTRIBUTE_systemMustContain ( 0x000900c5 )
444 #define DRSUAPI_ATTRIBUTE_systemAuxiliaryClass ( 0x000900c6 )
445 #define DRSUAPI_ATTRIBUTE_sAMAccountName ( 0x000900dd )
446 #define DRSUAPI_ATTRIBUTE_sAMAccountType ( 0x0009012e )
447 #define DRSUAPI_ATTRIBUTE_fSMORoleOwner ( 0x00090171 )
448 #define DRSUAPI_ATTRIBUTE_systemFlags ( 0x00090177 )
449 #define DRSUAPI_ATTRIBUTE_serverReference ( 0x00090203 )
450 #define DRSUAPI_ATTRIBUTE_serverReferenceBL ( 0x00090204 )
451 #define DRSUAPI_ATTRIBUTE_initialAuthIncoming ( 0x0009021b )
452 #define DRSUAPI_ATTRIBUTE_initialAuthOutgoing ( 0x0009021c )
453 #define DRSUAPI_ATTRIBUTE_wellKnownObjects ( 0x0009026a )
454 #define DRSUAPI_ATTRIBUTE_dNSHostName ( 0x0009026b )
455 #define DRSUAPI_ATTRIBUTE_isMemberOfPartialAttributeSet ( 0x0009027f )
456 #define DRSUAPI_ATTRIBUTE_userPrincipalName ( 0x00090290 )
457 #define DRSUAPI_ATTRIBUTE_groupType ( 0x000902ee )
458 #define DRSUAPI_ATTRIBUTE_servicePrincipalName ( 0x00090303 )
459 #define DRSUAPI_ATTRIBUTE_objectCategory ( 0x0009030e )
460 #define DRSUAPI_ATTRIBUTE_gPLink ( 0x0009037b )
461 #define DRSUAPI_ATTRIBUTE_transportAddressAttribute ( 0x0009037f )
462 #define DRSUAPI_ATTRIBUTE_msDS_Behavior_Version ( 0x000905b3 )
463 #define DRSUAPI_ATTRIBUTE_msDS_KeyVersionNumber ( 0x000906f6 )
464 #define DRSUAPI_ATTRIBUTE_msDS_HasDomainNCs ( 0x0009071c )
465 #define DRSUAPI_ATTRIBUTE_msDS_hasMasterNCs ( 0x0009072c )
466 #define DRSUAPI_ATTRIBUTE_NONE ( 0xFFFFFFFF )
470 struct drsuapi_DsPartialAttributeSet
{
471 uint32_t version
;/* [value] */
472 uint32_t reserved1
;/* [value(0)] */
473 uint32_t num_attids
;/* [range(1,0x100000)] */
474 enum drsuapi_DsAttributeId
*attids
;/* [size_is(num_attids)] */
477 struct drsuapi_DsGetNCChangesRequest8
{
478 struct GUID destination_dsa_guid
;
479 struct GUID source_dsa_invocation_id
;
480 struct drsuapi_DsReplicaObjectIdentifier
*naming_context
;/* [ref] */
481 struct drsuapi_DsReplicaHighWaterMark highwatermark
;
482 struct drsuapi_DsReplicaCursorCtrEx
*uptodateness_vector
;/* [unique] */
483 uint32_t replica_flags
;
484 uint32_t max_object_count
;
485 uint32_t max_ndr_size
;
486 enum drsuapi_DsExtendedOperation extended_op
;
488 struct drsuapi_DsPartialAttributeSet
*partial_attribute_set
;/* [unique] */
489 struct drsuapi_DsPartialAttributeSet
*partial_attribute_set_ex
;/* [unique] */
490 struct drsuapi_DsReplicaOIDMapping_Ctr mapping_ctr
;
493 struct drsuapi_DsGetNCChangesRequest10
{
494 struct GUID destination_dsa_guid
;
495 struct GUID source_dsa_invocation_id
;
496 struct drsuapi_DsReplicaObjectIdentifier
*naming_context
;/* [ref] */
497 struct drsuapi_DsReplicaHighWaterMark highwatermark
;
498 struct drsuapi_DsReplicaCursorCtrEx
*uptodateness_vector
;/* [unique] */
499 uint32_t replica_flags
;
500 uint32_t max_object_count
;
501 uint32_t max_ndr_size
;
502 enum drsuapi_DsExtendedOperation extended_op
;
504 struct drsuapi_DsPartialAttributeSet
*partial_attribute_set
;/* [unique] */
505 struct drsuapi_DsPartialAttributeSet
*partial_attribute_set_ex
;/* [unique] */
506 struct drsuapi_DsReplicaOIDMapping_Ctr mapping_ctr
;
510 union drsuapi_DsGetNCChangesRequest
{
511 struct drsuapi_DsGetNCChangesRequest5 req5
;/* [case(5)] */
512 struct drsuapi_DsGetNCChangesRequest8 req8
;/* [case(8)] */
513 struct drsuapi_DsGetNCChangesRequest10 req10
;/* [case(10)] */
514 }/* [switch_type(int32)] */;
516 struct drsuapi_DsReplicaCursor2
{
517 struct GUID source_dsa_invocation_id
;
518 uint64_t highest_usn
;
519 NTTIME last_sync_success
;
522 struct drsuapi_DsReplicaCursor2CtrEx
{
523 uint32_t version
;/* [value(2)] */
524 uint32_t reserved1
;/* [value(0)] */
525 uint32_t count
;/* [range(0,0x100000)] */
526 uint32_t reserved2
;/* [value(0)] */
527 struct drsuapi_DsReplicaCursor2
*cursors
;/* [size_is(count)] */
530 struct drsuapi_DsAttributeValue
{
531 uint32_t __ndr_size
;/* [value(ndr_size_DATA_BLOB(0,blob,0)),range(0,10485760)] */
532 DATA_BLOB
*blob
;/* [unique] */
535 struct drsuapi_DsAttributeValueCtr
{
536 uint32_t num_values
;/* [range(0,10485760)] */
537 struct drsuapi_DsAttributeValue
*values
;/* [unique,size_is(num_values)] */
540 struct drsuapi_DsReplicaObjectIdentifier3
{
541 uint32_t __ndr_size
;/* [value(ndr_size_drsuapi_DsReplicaObjectIdentifier3(r,ndr->iconv_convenience,ndr->flags))] */
542 uint32_t __ndr_size_sid
;/* [value(ndr_size_dom_sid28(&sid,ndr->flags))] */
544 struct dom_sid28 sid
;
545 uint32_t __ndr_size_dn
;/* [value(strlen_m(dn))] */
546 const char *dn
;/* [charset(UTF16)] */
547 }/* [gensize,public] */;
549 struct drsuapi_DsReplicaObjectIdentifier3Binary
{
550 uint32_t __ndr_size
;/* [value(ndr_size_drsuapi_DsReplicaObjectIdentifier3Binary_without_Binary(r,ndr->iconv_convenience,ndr->flags))] */
551 uint32_t __ndr_size_sid
;/* [value(ndr_size_dom_sid28(&sid,ndr->flags))] */
553 struct dom_sid28 sid
;
554 uint32_t __ndr_size_dn
;/* [value(strlen_m(dn))] */
555 const char *dn
;/* [charset(UTF16)] */
556 uint32_t __ndr_size_binary
;/* [value(binary.length+4)] */
557 DATA_BLOB binary
;/* [flag(LIBNDR_FLAG_REMAINING)] */
560 struct drsuapi_DsReplicaAttribute
{
561 enum drsuapi_DsAttributeId attid
;
562 struct drsuapi_DsAttributeValueCtr value_ctr
;
565 struct drsuapi_DsReplicaAttributeCtr
{
566 uint32_t num_attributes
;/* [range(0,1048576)] */
567 struct drsuapi_DsReplicaAttribute
*attributes
;/* [unique,size_is(num_attributes)] */
570 /* bitmap drsuapi_DsReplicaObjectFlags */
571 #define DRSUAPI_DS_REPLICA_OBJECT_FROM_MASTER ( 0x00000001 )
572 #define DRSUAPI_DS_REPLICA_OBJECT_DYNAMIC ( 0x00000002 )
573 #define DRSUAPI_DS_REPLICA_OBJECT_REMOTE_MODIFY ( 0x00010000 )
575 struct drsuapi_DsReplicaObject
{
576 struct drsuapi_DsReplicaObjectIdentifier
*identifier
;/* [unique] */
578 struct drsuapi_DsReplicaAttributeCtr attribute_ctr
;
581 struct drsuapi_DsReplicaMetaData
{
583 NTTIME originating_change_time
;
584 struct GUID originating_invocation_id
;
585 uint64_t originating_usn
;
588 struct drsuapi_DsReplicaMetaDataCtr
{
589 uint32_t count
;/* [range(0,1048576)] */
590 struct drsuapi_DsReplicaMetaData
*meta_data
;/* [size_is(count)] */
593 struct drsuapi_DsReplicaObjectListItemEx
{
594 struct drsuapi_DsReplicaObjectListItemEx
*next_object
;/* [unique] */
595 struct drsuapi_DsReplicaObject object
;
596 uint32_t is_nc_prefix
;
597 struct GUID
*parent_object_guid
;/* [unique] */
598 struct drsuapi_DsReplicaMetaDataCtr
*meta_data_ctr
;/* [unique] */
599 }/* [noprint,public] */;
601 struct drsuapi_DsGetNCChangesCtr1
{
602 struct GUID source_dsa_guid
;
603 struct GUID source_dsa_invocation_id
;
604 struct drsuapi_DsReplicaObjectIdentifier
*naming_context
;/* [unique] */
605 struct drsuapi_DsReplicaHighWaterMark old_highwatermark
;
606 struct drsuapi_DsReplicaHighWaterMark new_highwatermark
;
607 struct drsuapi_DsReplicaCursorCtrEx
*uptodateness_vector
;/* [unique] */
608 struct drsuapi_DsReplicaOIDMapping_Ctr mapping_ctr
;
609 enum drsuapi_DsExtendedError extended_ret
;
610 uint32_t object_count
;
611 uint32_t __ndr_size
;/* [value(ndr_size_drsuapi_DsGetNCChangesCtr1(r,ndr->iconv_convenience,ndr->flags)+55)] */
612 struct drsuapi_DsReplicaObjectListItemEx
*first_object
;/* [unique] */
614 }/* [gensize,public] */;
616 /* bitmap drsuapi_DsLinkedAttributeFlags */
617 #define DRSUAPI_DS_LINKED_ATTRIBUTE_FLAG_ACTIVE ( 0x00000001 )
619 struct drsuapi_DsReplicaLinkedAttribute
{
620 struct drsuapi_DsReplicaObjectIdentifier
*identifier
;/* [unique] */
621 enum drsuapi_DsAttributeId attid
;
622 struct drsuapi_DsAttributeValue value
;
624 NTTIME originating_add_time
;
625 struct drsuapi_DsReplicaMetaData meta_data
;
628 struct drsuapi_DsGetNCChangesCtr6
{
629 struct GUID source_dsa_guid
;
630 struct GUID source_dsa_invocation_id
;
631 struct drsuapi_DsReplicaObjectIdentifier
*naming_context
;/* [unique] */
632 struct drsuapi_DsReplicaHighWaterMark old_highwatermark
;
633 struct drsuapi_DsReplicaHighWaterMark new_highwatermark
;
634 struct drsuapi_DsReplicaCursor2CtrEx
*uptodateness_vector
;/* [unique] */
635 struct drsuapi_DsReplicaOIDMapping_Ctr mapping_ctr
;
636 enum drsuapi_DsExtendedError extended_ret
;
637 uint32_t object_count
;
638 uint32_t __ndr_size
;/* [value(ndr_size_drsuapi_DsGetNCChangesCtr6(r,ndr->iconv_convenience,ndr->flags)+55)] */
639 struct drsuapi_DsReplicaObjectListItemEx
*first_object
;/* [unique] */
641 uint32_t nc_object_count
;
642 uint32_t nc_linked_attributes_count
;
643 uint32_t linked_attributes_count
;/* [range(0,1048576)] */
644 struct drsuapi_DsReplicaLinkedAttribute
*linked_attributes
;/* [unique,size_is(linked_attributes_count)] */
646 }/* [gensize,public] */;
648 struct drsuapi_DsGetNCChangesCtr1TS
{
649 struct drsuapi_DsGetNCChangesCtr1 ctr1
;/* [subcontext(0xFFFFFC01)] */
652 struct drsuapi_DsGetNCChangesCtr6TS
{
653 struct drsuapi_DsGetNCChangesCtr6 ctr6
;/* [subcontext(0xFFFFFC01)] */
656 struct drsuapi_DsGetNCChangesMSZIPCtr1
{
657 uint32_t decompressed_length
;
658 uint32_t compressed_length
;
659 struct drsuapi_DsGetNCChangesCtr1TS
*ts
;/* [unique,compression(NDR_COMPRESSION_MSZIP,compressed_length,decompressed_length),subcontext_size(compressed_length),subcontext(4)] */
662 struct drsuapi_DsGetNCChangesMSZIPCtr6
{
663 uint32_t decompressed_length
;
664 uint32_t compressed_length
;
665 struct drsuapi_DsGetNCChangesCtr6TS
*ts
;/* [unique,compression(NDR_COMPRESSION_MSZIP,compressed_length,decompressed_length),subcontext_size(compressed_length),subcontext(4)] */
668 struct drsuapi_DsGetNCChangesXPRESSCtr1
{
669 uint32_t decompressed_length
;
670 uint32_t compressed_length
;
671 struct drsuapi_DsGetNCChangesCtr1TS
*ts
;/* [unique,compression(NDR_COMPRESSION_XPRESS,compressed_length,decompressed_length),subcontext_size(compressed_length),subcontext(4)] */
674 struct drsuapi_DsGetNCChangesXPRESSCtr6
{
675 uint32_t decompressed_length
;
676 uint32_t compressed_length
;
677 struct drsuapi_DsGetNCChangesCtr6TS
*ts
;/* [unique,compression(NDR_COMPRESSION_XPRESS,compressed_length,decompressed_length),subcontext_size(compressed_length),subcontext(4)] */
680 enum drsuapi_DsGetNCChangesCompressionType
681 #ifndef USE_UINT_ENUMS
683 DRSUAPI_COMPRESSION_TYPE_MSZIP
=(int)(2),
684 DRSUAPI_COMPRESSION_TYPE_XPRESS
=(int)(3)
687 { __donnot_use_enum_drsuapi_DsGetNCChangesCompressionType
=0x7FFFFFFF}
688 #define DRSUAPI_COMPRESSION_TYPE_MSZIP ( 2 )
689 #define DRSUAPI_COMPRESSION_TYPE_XPRESS ( 3 )
693 union drsuapi_DsGetNCChangesCompressedCtr
{
694 struct drsuapi_DsGetNCChangesMSZIPCtr1 mszip1
;/* [case(1|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16))] */
695 struct drsuapi_DsGetNCChangesMSZIPCtr6 mszip6
;/* [case(6|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16))] */
696 struct drsuapi_DsGetNCChangesXPRESSCtr1 xpress1
;/* [case(1|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16))] */
697 struct drsuapi_DsGetNCChangesXPRESSCtr6 xpress6
;/* [case(6|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16))] */
698 }/* [nodiscriminant,flag(LIBNDR_PRINT_ARRAY_HEX)] */;
700 struct drsuapi_DsGetNCChangesCtr2
{
701 struct drsuapi_DsGetNCChangesMSZIPCtr1 mszip1
;
704 struct drsuapi_DsGetNCChangesCtr7
{
705 int32_t level
;/* [range(0,6)] */
706 enum drsuapi_DsGetNCChangesCompressionType type
;/* [range(2,3)] */
707 union drsuapi_DsGetNCChangesCompressedCtr ctr
;/* [switch_is(level|(type<<16))] */
710 union drsuapi_DsGetNCChangesCtr
{
711 struct drsuapi_DsGetNCChangesCtr1 ctr1
;/* [case] */
712 struct drsuapi_DsGetNCChangesCtr2 ctr2
;/* [case(2)] */
713 struct drsuapi_DsGetNCChangesCtr6 ctr6
;/* [case(6)] */
714 struct drsuapi_DsGetNCChangesCtr7 ctr7
;/* [case(7)] */
715 }/* [switch_type(int32)] */;
717 struct drsuapi_DsReplicaUpdateRefsRequest1
{
718 struct drsuapi_DsReplicaObjectIdentifier
*naming_context
;/* [ref] */
719 const char *dest_dsa_dns_name
;/* [ref,charset(DOS)] */
720 struct GUID dest_dsa_guid
;
724 union drsuapi_DsReplicaUpdateRefsRequest
{
725 struct drsuapi_DsReplicaUpdateRefsRequest1 req1
;/* [case] */
726 }/* [switch_type(int32)] */;
728 struct drsuapi_DsReplicaAddRequest1
{
729 struct drsuapi_DsReplicaObjectIdentifier
*naming_context
;/* [ref] */
730 const char *source_dsa_address
;/* [unique,charset(UTF16)] */
731 uint8_t schedule
[84];
735 struct drsuapi_DsReplicaAddRequest2
{
736 struct drsuapi_DsReplicaObjectIdentifier
*naming_context
;/* [ref] */
737 struct drsuapi_DsReplicaObjectIdentifier
*source_dsa_dn
;/* [unique] */
738 struct drsuapi_DsReplicaObjectIdentifier
*transport_dn
;/* [unique] */
739 const char *source_dsa_address
;/* [unique,charset(UTF16)] */
740 uint8_t schedule
[84];
744 union drsuapi_DsReplicaAddRequest
{
745 struct drsuapi_DsReplicaAddRequest1 req1
;/* [case] */
746 struct drsuapi_DsReplicaAddRequest2 req2
;/* [case(2)] */
747 }/* [switch_type(int32)] */;
749 struct drsuapi_DsReplicaDelRequest1
{
750 struct drsuapi_DsReplicaObjectIdentifier
*naming_context
;/* [ref] */
751 const char *source_dsa_address
;/* [unique,charset(UTF16)] */
755 union drsuapi_DsReplicaDelRequest
{
756 struct drsuapi_DsReplicaDelRequest1 req1
;/* [case] */
757 }/* [switch_type(int32)] */;
759 struct drsuapi_DsReplicaModRequest1
{
760 struct drsuapi_DsReplicaObjectIdentifier
*naming_context
;/* [ref] */
761 struct GUID source_dra
;
762 const char *source_dra_address
;/* [unique,charset(UTF16)] */
763 uint8_t schedule
[84];
764 uint32_t replica_flags
;
765 uint32_t modify_fields
;
769 union drsuapi_DsReplicaModRequest
{
770 struct drsuapi_DsReplicaModRequest1 req1
;/* [case] */
771 }/* [switch_type(int32)] */;
773 enum drsuapi_DsMembershipType
774 #ifndef USE_UINT_ENUMS
776 DRSUAPI_DS_MEMBERSHIP_TYPE_UNIVERSAL_AND_DOMAIN_GROUPS
=(int)(1),
777 DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_LOCAL_GROUPS
=(int)(2),
778 DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_GROUPS
=(int)(3),
779 DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_LOCAL_GROUPS2
=(int)(4),
780 DRSUAPI_DS_MEMBERSHIP_TYPE_UNIVERSAL_GROUPS
=(int)(5),
781 DRSUAPI_DS_MEMBERSHIP_TYPE_GROUPMEMBERS
=(int)(6),
782 DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_GROUPS2
=(int)(7)
785 { __donnot_use_enum_drsuapi_DsMembershipType
=0x7FFFFFFF}
786 #define DRSUAPI_DS_MEMBERSHIP_TYPE_UNIVERSAL_AND_DOMAIN_GROUPS ( 1 )
787 #define DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_LOCAL_GROUPS ( 2 )
788 #define DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_GROUPS ( 3 )
789 #define DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_LOCAL_GROUPS2 ( 4 )
790 #define DRSUAPI_DS_MEMBERSHIP_TYPE_UNIVERSAL_GROUPS ( 5 )
791 #define DRSUAPI_DS_MEMBERSHIP_TYPE_GROUPMEMBERS ( 6 )
792 #define DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_GROUPS2 ( 7 )
796 struct drsuapi_DsGetMembershipsCtr1
{
798 uint32_t num_memberships
;/* [range(0,10000)] */
799 uint32_t num_sids
;/* [range(0,10000)] */
800 struct drsuapi_DsReplicaObjectIdentifier
**info_array
;/* [unique,size_is(num_memberships)] */
801 uint32_t *group_attrs
;/* [unique,size_is(num_memberships)] */
802 struct dom_sid28
**sids
;/* [unique,size_is(num_sids)] */
805 union drsuapi_DsGetMembershipsCtr
{
806 struct drsuapi_DsGetMembershipsCtr1 ctr1
;/* [case] */
807 }/* [switch_type(int32)] */;
809 struct drsuapi_DsGetMembershipsRequest1
{
810 uint32_t count
;/* [range(1,10000)] */
811 struct drsuapi_DsReplicaObjectIdentifier
**info_array
;/* [unique,size_is(count)] */
813 enum drsuapi_DsMembershipType type
;
814 struct drsuapi_DsReplicaObjectIdentifier
*domain
;/* [unique] */
817 union drsuapi_DsGetMembershipsRequest
{
818 struct drsuapi_DsGetMembershipsRequest1 req1
;/* [case] */
819 }/* [switch_type(int32)] */;
821 struct drsuapi_DsGetNT4ChangeLogRequest1
{
824 uint32_t length
;/* [range(0,0x00A00000)] */
825 uint8_t *data
;/* [unique,size_is(length)] */
828 union drsuapi_DsGetNT4ChangeLogRequest
{
829 struct drsuapi_DsGetNT4ChangeLogRequest1 req1
;/* [case] */
830 }/* [switch_type(uint32)] */;
832 struct drsuapi_DsGetNT4ChangeLogInfo1
{
833 uint32_t length1
;/* [range(0,0x00A00000)] */
834 uint32_t length2
;/* [range(0,0x00A00000)] */
842 uint8_t *data1
;/* [unique,size_is(length1)] */
843 uint8_t *data2
;/* [unique,size_is(length2)] */
846 union drsuapi_DsGetNT4ChangeLogInfo
{
847 struct drsuapi_DsGetNT4ChangeLogInfo1 info1
;/* [case] */
848 }/* [switch_type(uint32)] */;
850 enum drsuapi_DsNameStatus
851 #ifndef USE_UINT_ENUMS
853 DRSUAPI_DS_NAME_STATUS_OK
=(int)(0),
854 DRSUAPI_DS_NAME_STATUS_RESOLVE_ERROR
=(int)(1),
855 DRSUAPI_DS_NAME_STATUS_NOT_FOUND
=(int)(2),
856 DRSUAPI_DS_NAME_STATUS_NOT_UNIQUE
=(int)(3),
857 DRSUAPI_DS_NAME_STATUS_NO_MAPPING
=(int)(4),
858 DRSUAPI_DS_NAME_STATUS_DOMAIN_ONLY
=(int)(5),
859 DRSUAPI_DS_NAME_STATUS_NO_SYNTACTICAL_MAPPING
=(int)(6),
860 DRSUAPI_DS_NAME_STATUS_TRUST_REFERRAL
=(int)(7)
863 { __donnot_use_enum_drsuapi_DsNameStatus
=0x7FFFFFFF}
864 #define DRSUAPI_DS_NAME_STATUS_OK ( 0 )
865 #define DRSUAPI_DS_NAME_STATUS_RESOLVE_ERROR ( 1 )
866 #define DRSUAPI_DS_NAME_STATUS_NOT_FOUND ( 2 )
867 #define DRSUAPI_DS_NAME_STATUS_NOT_UNIQUE ( 3 )
868 #define DRSUAPI_DS_NAME_STATUS_NO_MAPPING ( 4 )
869 #define DRSUAPI_DS_NAME_STATUS_DOMAIN_ONLY ( 5 )
870 #define DRSUAPI_DS_NAME_STATUS_NO_SYNTACTICAL_MAPPING ( 6 )
871 #define DRSUAPI_DS_NAME_STATUS_TRUST_REFERRAL ( 7 )
875 enum drsuapi_DsNameFlags
876 #ifndef USE_UINT_ENUMS
878 DRSUAPI_DS_NAME_FLAG_NO_FLAGS
=(int)(0x0),
879 DRSUAPI_DS_NAME_FLAG_SYNTACTICAL_ONLY
=(int)(0x1),
880 DRSUAPI_DS_NAME_FLAG_EVAL_AT_DC
=(int)(0x2),
881 DRSUAPI_DS_NAME_FLAG_GCVERIFY
=(int)(0x4),
882 DRSUAPI_DS_NAME_FLAG_TRUST_REFERRAL
=(int)(0x8)
885 { __donnot_use_enum_drsuapi_DsNameFlags
=0x7FFFFFFF}
886 #define DRSUAPI_DS_NAME_FLAG_NO_FLAGS ( 0x0 )
887 #define DRSUAPI_DS_NAME_FLAG_SYNTACTICAL_ONLY ( 0x1 )
888 #define DRSUAPI_DS_NAME_FLAG_EVAL_AT_DC ( 0x2 )
889 #define DRSUAPI_DS_NAME_FLAG_GCVERIFY ( 0x4 )
890 #define DRSUAPI_DS_NAME_FLAG_TRUST_REFERRAL ( 0x8 )
894 enum drsuapi_DsNameFormat
895 #ifndef USE_UINT_ENUMS
897 DRSUAPI_DS_NAME_FORMAT_UNKNOWN
=(int)(0),
898 DRSUAPI_DS_NAME_FORMAT_FQDN_1779
=(int)(1),
899 DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT
=(int)(2),
900 DRSUAPI_DS_NAME_FORMAT_DISPLAY
=(int)(3),
901 DRSUAPI_DS_NAME_FORMAT_GUID
=(int)(6),
902 DRSUAPI_DS_NAME_FORMAT_CANONICAL
=(int)(7),
903 DRSUAPI_DS_NAME_FORMAT_USER_PRINCIPAL
=(int)(8),
904 DRSUAPI_DS_NAME_FORMAT_CANONICAL_EX
=(int)(9),
905 DRSUAPI_DS_NAME_FORMAT_SERVICE_PRINCIPAL
=(int)(10),
906 DRSUAPI_DS_NAME_FORMAT_SID_OR_SID_HISTORY
=(int)(11),
907 DRSUAPI_DS_NAME_FORMAT_DNS_DOMAIN
=(int)(12)
910 { __donnot_use_enum_drsuapi_DsNameFormat
=0x7FFFFFFF}
911 #define DRSUAPI_DS_NAME_FORMAT_UNKNOWN ( 0 )
912 #define DRSUAPI_DS_NAME_FORMAT_FQDN_1779 ( 1 )
913 #define DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT ( 2 )
914 #define DRSUAPI_DS_NAME_FORMAT_DISPLAY ( 3 )
915 #define DRSUAPI_DS_NAME_FORMAT_GUID ( 6 )
916 #define DRSUAPI_DS_NAME_FORMAT_CANONICAL ( 7 )
917 #define DRSUAPI_DS_NAME_FORMAT_USER_PRINCIPAL ( 8 )
918 #define DRSUAPI_DS_NAME_FORMAT_CANONICAL_EX ( 9 )
919 #define DRSUAPI_DS_NAME_FORMAT_SERVICE_PRINCIPAL ( 10 )
920 #define DRSUAPI_DS_NAME_FORMAT_SID_OR_SID_HISTORY ( 11 )
921 #define DRSUAPI_DS_NAME_FORMAT_DNS_DOMAIN ( 12 )
925 struct drsuapi_DsNameString
{
926 const char *str
;/* [unique,charset(UTF16)] */
929 struct drsuapi_DsNameRequest1
{
932 enum drsuapi_DsNameFlags format_flags
;
933 enum drsuapi_DsNameFormat format_offered
;
934 enum drsuapi_DsNameFormat format_desired
;
935 uint32_t count
;/* [range(1,10000)] */
936 struct drsuapi_DsNameString
*names
;/* [unique,size_is(count)] */
939 union drsuapi_DsNameRequest
{
940 struct drsuapi_DsNameRequest1 req1
;/* [case] */
941 }/* [switch_type(int32)] */;
943 struct drsuapi_DsNameInfo1
{
944 enum drsuapi_DsNameStatus status
;
945 const char *dns_domain_name
;/* [unique,charset(UTF16)] */
946 const char *result_name
;/* [unique,charset(UTF16)] */
949 struct drsuapi_DsNameCtr1
{
951 struct drsuapi_DsNameInfo1
*array
;/* [unique,size_is(count)] */
954 union drsuapi_DsNameCtr
{
955 struct drsuapi_DsNameCtr1
*ctr1
;/* [unique,case] */
956 }/* [switch_type(int32)] */;
958 enum drsuapi_DsSpnOperation
959 #ifndef USE_UINT_ENUMS
961 DRSUAPI_DS_SPN_OPERATION_ADD
=(int)(0),
962 DRSUAPI_DS_SPN_OPERATION_REPLACE
=(int)(1),
963 DRSUAPI_DS_SPN_OPERATION_DELETE
=(int)(2)
966 { __donnot_use_enum_drsuapi_DsSpnOperation
=0x7FFFFFFF}
967 #define DRSUAPI_DS_SPN_OPERATION_ADD ( 0 )
968 #define DRSUAPI_DS_SPN_OPERATION_REPLACE ( 1 )
969 #define DRSUAPI_DS_SPN_OPERATION_DELETE ( 2 )
973 struct drsuapi_DsWriteAccountSpnRequest1
{
974 enum drsuapi_DsSpnOperation operation
;
976 const char *object_dn
;/* [unique,charset(UTF16)] */
977 uint32_t count
;/* [range(0,10000)] */
978 struct drsuapi_DsNameString
*spn_names
;/* [unique,size_is(count)] */
981 union drsuapi_DsWriteAccountSpnRequest
{
982 struct drsuapi_DsWriteAccountSpnRequest1 req1
;/* [case] */
983 }/* [switch_type(int32)] */;
985 struct drsuapi_DsWriteAccountSpnResult1
{
989 union drsuapi_DsWriteAccountSpnResult
{
990 struct drsuapi_DsWriteAccountSpnResult1 res1
;/* [case] */
991 }/* [switch_type(int32)] */;
993 struct drsuapi_DsRemoveDSServerRequest1
{
994 const char *server_dn
;/* [unique,charset(UTF16)] */
995 const char *domain_dn
;/* [unique,charset(UTF16)] */
999 union drsuapi_DsRemoveDSServerRequest
{
1000 struct drsuapi_DsRemoveDSServerRequest1 req1
;/* [case] */
1001 }/* [switch_type(int32)] */;
1003 struct drsuapi_DsRemoveDSServerResult1
{
1004 uint32_t last_dc_in_domain
;
1007 union drsuapi_DsRemoveDSServerResult
{
1008 struct drsuapi_DsRemoveDSServerResult1 res1
;/* [case] */
1009 }/* [switch_type(int32)] */;
1011 struct drsuapi_DsGetDCInfoRequest1
{
1012 const char *domain_name
;/* [unique,charset(UTF16)] */
1016 union drsuapi_DsGetDCInfoRequest
{
1017 struct drsuapi_DsGetDCInfoRequest1 req1
;/* [case] */
1018 }/* [switch_type(int32)] */;
1020 struct drsuapi_DsGetDCInfo1
{
1021 const char *netbios_name
;/* [unique,charset(UTF16)] */
1022 const char *dns_name
;/* [unique,charset(UTF16)] */
1023 const char *site_name
;/* [unique,charset(UTF16)] */
1024 const char *computer_dn
;/* [unique,charset(UTF16)] */
1025 const char *server_dn
;/* [unique,charset(UTF16)] */
1027 uint32_t is_enabled
;
1030 struct drsuapi_DsGetDCInfoCtr1
{
1031 uint32_t count
;/* [range(0,10000)] */
1032 struct drsuapi_DsGetDCInfo1
*array
;/* [unique,size_is(count)] */
1035 struct drsuapi_DsGetDCInfo2
{
1036 const char *netbios_name
;/* [unique,charset(UTF16)] */
1037 const char *dns_name
;/* [unique,charset(UTF16)] */
1038 const char *site_name
;/* [unique,charset(UTF16)] */
1039 const char *site_dn
;/* [unique,charset(UTF16)] */
1040 const char *computer_dn
;/* [unique,charset(UTF16)] */
1041 const char *server_dn
;/* [unique,charset(UTF16)] */
1042 const char *ntds_dn
;/* [unique,charset(UTF16)] */
1044 uint32_t is_enabled
;
1046 struct GUID site_guid
;
1047 struct GUID computer_guid
;
1048 struct GUID server_guid
;
1049 struct GUID ntds_guid
;
1052 struct drsuapi_DsGetDCInfoCtr2
{
1053 uint32_t count
;/* [range(0,10000)] */
1054 struct drsuapi_DsGetDCInfo2
*array
;/* [unique,size_is(count)] */
1057 struct drsuapi_DsGetDCInfo3
{
1058 const char *netbios_name
;/* [unique,charset(UTF16)] */
1059 const char *dns_name
;/* [unique,charset(UTF16)] */
1060 const char *site_name
;/* [unique,charset(UTF16)] */
1061 const char *site_dn
;/* [unique,charset(UTF16)] */
1062 const char *computer_dn
;/* [unique,charset(UTF16)] */
1063 const char *server_dn
;/* [unique,charset(UTF16)] */
1064 const char *ntds_dn
;/* [unique,charset(UTF16)] */
1066 uint32_t is_enabled
;
1069 struct GUID site_guid
;
1070 struct GUID computer_guid
;
1071 struct GUID server_guid
;
1072 struct GUID ntds_guid
;
1075 struct drsuapi_DsGetDCInfoCtr3
{
1076 uint32_t count
;/* [range(0,10000)] */
1077 struct drsuapi_DsGetDCInfo3
*array
;/* [unique,size_is(count)] */
1080 struct drsuapi_DsGetDCConnection01
{
1081 const char * client_ip_address
;/* [flag(LIBNDR_FLAG_BIGENDIAN)] */
1083 uint32_t connection_time
;
1087 const char *client_account
;/* [unique,charset(UTF16)] */
1090 struct drsuapi_DsGetDCConnectionCtr01
{
1091 uint32_t count
;/* [range(0,10000)] */
1092 struct drsuapi_DsGetDCConnection01
*array
;/* [unique,size_is(count)] */
1095 enum drsuapi_DsGetDCInfoCtrLevels
1096 #ifndef USE_UINT_ENUMS
1098 DRSUAPI_DC_INFO_CTR_1
=(int)(1),
1099 DRSUAPI_DC_INFO_CTR_2
=(int)(2),
1100 DRSUAPI_DC_INFO_CTR_3
=(int)(3),
1101 DRSUAPI_DC_CONNECTION_CTR_01
=(int)(-1)
1104 { __donnot_use_enum_drsuapi_DsGetDCInfoCtrLevels
=0x7FFFFFFF}
1105 #define DRSUAPI_DC_INFO_CTR_1 ( 1 )
1106 #define DRSUAPI_DC_INFO_CTR_2 ( 2 )
1107 #define DRSUAPI_DC_INFO_CTR_3 ( 3 )
1108 #define DRSUAPI_DC_CONNECTION_CTR_01 ( -1 )
1112 union drsuapi_DsGetDCInfoCtr
{
1113 struct drsuapi_DsGetDCInfoCtr1 ctr1
;/* [case(DRSUAPI_DC_INFO_CTR_1)] */
1114 struct drsuapi_DsGetDCInfoCtr2 ctr2
;/* [case(DRSUAPI_DC_INFO_CTR_2)] */
1115 struct drsuapi_DsGetDCInfoCtr3 ctr3
;/* [case(DRSUAPI_DC_INFO_CTR_3)] */
1116 struct drsuapi_DsGetDCConnectionCtr01 ctr01
;/* [case(DRSUAPI_DC_CONNECTION_CTR_01)] */
1117 }/* [switch_type(int32)] */;
1119 struct drsuapi_DsReplicaObjectListItem
{
1120 struct drsuapi_DsReplicaObjectListItem
*next_object
;/* [unique] */
1121 struct drsuapi_DsReplicaObject object
;
1122 }/* [noprint,public] */;
1124 struct drsuapi_DsAddEntryRequest2
{
1125 struct drsuapi_DsReplicaObjectListItem first_object
;
1128 union drsuapi_DsAddEntryRequest
{
1129 struct drsuapi_DsAddEntryRequest2 req2
;/* [case(2)] */
1130 }/* [switch_type(int32)] */;
1132 struct drsuapi_DsAddEntryErrorInfoX
{
1139 struct drsuapi_DsAddEntryExtraErrorBuffer
{
1140 uint32_t size
;/* [range(0,10485760)] */
1141 uint8_t *data
;/* [unique,size_is(size)] */
1144 struct drsuapi_DsAddEntryExtraError1
{
1145 struct drsuapi_DsAddEntryErrorInfoX error
;
1146 enum drsuapi_DsAttributeId attid
;
1148 struct drsuapi_DsAddEntryExtraErrorBuffer buffer
;
1151 struct drsuapi_DsAddEntryErrorListItem1
{
1152 struct drsuapi_DsAddEntryErrorListItem1
*next
;/* [unique] */
1153 struct drsuapi_DsAddEntryExtraError1 error
;
1156 struct drsuapi_DsAddEntryErrorInfo1
{
1157 struct drsuapi_DsReplicaObjectIdentifier
*id
;/* [unique] */
1159 struct drsuapi_DsAddEntryErrorListItem1 first
;
1162 union drsuapi_DsAddEntryErrorInfo
{
1163 struct drsuapi_DsAddEntryErrorInfo1 error1
;/* [case] */
1164 struct drsuapi_DsAddEntryErrorInfoX errorX
;/* [case(4)] */
1165 }/* [switch_type(uint32)] */;
1167 struct drsuapi_DsAddEntryError1
{
1170 union drsuapi_DsAddEntryErrorInfo
*info
;/* [unique,switch_is(level)] */
1173 union drsuapi_DsAddEntryError
{
1174 struct drsuapi_DsAddEntryError1 info1
;/* [case] */
1175 }/* [switch_type(uint32)] */;
1177 struct drsuapi_DsReplicaObjectIdentifier2
{
1179 struct dom_sid28 sid
;
1182 struct drsuapi_DsAddEntryCtr2
{
1183 struct drsuapi_DsReplicaObjectIdentifier
*id
;/* [unique] */
1185 struct drsuapi_DsAddEntryErrorInfoX error
;
1186 uint32_t count
;/* [range(0,10000)] */
1187 struct drsuapi_DsReplicaObjectIdentifier2
*objects
;/* [unique,size_is(count)] */
1190 struct drsuapi_DsAddEntryCtr3
{
1191 struct drsuapi_DsReplicaObjectIdentifier
*id
;/* [unique] */
1193 union drsuapi_DsAddEntryError
*error
;/* [unique,switch_is(level)] */
1194 uint32_t count
;/* [range(0,10000)] */
1195 struct drsuapi_DsReplicaObjectIdentifier2
*objects
;/* [unique,size_is(count)] */
1198 union drsuapi_DsAddEntryCtr
{
1199 struct drsuapi_DsAddEntryCtr2 ctr2
;/* [case(2)] */
1200 struct drsuapi_DsAddEntryCtr3 ctr3
;/* [case(3)] */
1201 }/* [switch_type(int32)] */;
1203 /* bitmap drsuapi_DsExecuteKCCFlags */
1204 #define DRSUAPI_DS_EXECUTE_KCC_ASYNCHRONOUS_OPERATION ( 0x00000001 )
1205 #define DRSUAPI_DS_EXECUTE_KCC_DAMPED ( 0x00000002 )
1207 struct drsuapi_DsExecuteKCC1
{
1212 union drsuapi_DsExecuteKCCRequest
{
1213 struct drsuapi_DsExecuteKCC1 ctr1
;/* [case] */
1214 }/* [switch_type(uint32)] */;
1216 enum drsuapi_DsReplicaGetInfoLevel
1217 #ifndef USE_UINT_ENUMS
1219 DRSUAPI_DS_REPLICA_GET_INFO
=(int)(1),
1220 DRSUAPI_DS_REPLICA_GET_INFO2
=(int)(2)
1223 { __donnot_use_enum_drsuapi_DsReplicaGetInfoLevel
=0x7FFFFFFF}
1224 #define DRSUAPI_DS_REPLICA_GET_INFO ( 1 )
1225 #define DRSUAPI_DS_REPLICA_GET_INFO2 ( 2 )
1229 enum drsuapi_DsReplicaInfoType
1230 #ifndef USE_UINT_ENUMS
1232 DRSUAPI_DS_REPLICA_INFO_NEIGHBORS
=(int)(0),
1233 DRSUAPI_DS_REPLICA_INFO_CURSORS
=(int)(1),
1234 DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA
=(int)(2),
1235 DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES
=(int)(3),
1236 DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES
=(int)(4),
1237 DRSUAPI_DS_REPLICA_INFO_PENDING_OPS
=(int)(5),
1238 DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA
=(int)(6),
1239 DRSUAPI_DS_REPLICA_INFO_CURSORS2
=(int)(7),
1240 DRSUAPI_DS_REPLICA_INFO_CURSORS3
=(int)(8),
1241 DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2
=(int)(9),
1242 DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2
=(int)(10),
1243 DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02
=(int)(-2),
1244 DRSUAPI_DS_REPLICA_INFO_CONNECTIONS04
=(int)(-4),
1245 DRSUAPI_DS_REPLICA_INFO_CURSORS05
=(int)(-5),
1246 DRSUAPI_DS_REPLICA_INFO_06
=(int)(-6)
1249 { __donnot_use_enum_drsuapi_DsReplicaInfoType
=0x7FFFFFFF}
1250 #define DRSUAPI_DS_REPLICA_INFO_NEIGHBORS ( 0 )
1251 #define DRSUAPI_DS_REPLICA_INFO_CURSORS ( 1 )
1252 #define DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA ( 2 )
1253 #define DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES ( 3 )
1254 #define DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES ( 4 )
1255 #define DRSUAPI_DS_REPLICA_INFO_PENDING_OPS ( 5 )
1256 #define DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA ( 6 )
1257 #define DRSUAPI_DS_REPLICA_INFO_CURSORS2 ( 7 )
1258 #define DRSUAPI_DS_REPLICA_INFO_CURSORS3 ( 8 )
1259 #define DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2 ( 9 )
1260 #define DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2 ( 10 )
1261 #define DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02 ( -2 )
1262 #define DRSUAPI_DS_REPLICA_INFO_CONNECTIONS04 ( -4 )
1263 #define DRSUAPI_DS_REPLICA_INFO_CURSORS05 ( -5 )
1264 #define DRSUAPI_DS_REPLICA_INFO_06 ( -6 )
1268 struct drsuapi_DsReplicaGetInfoRequest1
{
1269 enum drsuapi_DsReplicaInfoType info_type
;
1270 const char *object_dn
;/* [unique,charset(UTF16)] */
1274 struct drsuapi_DsReplicaGetInfoRequest2
{
1275 enum drsuapi_DsReplicaInfoType info_type
;
1276 const char *object_dn
;/* [unique,charset(UTF16)] */
1279 const char *string1
;/* [unique,charset(UTF16)] */
1280 const char *string2
;/* [unique,charset(UTF16)] */
1281 uint32_t enumeration_context
;
1284 union drsuapi_DsReplicaGetInfoRequest
{
1285 struct drsuapi_DsReplicaGetInfoRequest1 req1
;/* [case(DRSUAPI_DS_REPLICA_GET_INFO)] */
1286 struct drsuapi_DsReplicaGetInfoRequest2 req2
;/* [case(DRSUAPI_DS_REPLICA_GET_INFO2)] */
1287 }/* [switch_type(drsuapi_DsReplicaGetInfoLevel)] */;
1289 struct drsuapi_DsReplicaNeighbour
{
1290 const char *naming_context_dn
;/* [unique,charset(UTF16)] */
1291 const char *source_dsa_obj_dn
;/* [unique,charset(UTF16)] */
1292 const char *source_dsa_address
;/* [unique,charset(UTF16)] */
1293 const char *transport_obj_dn
;/* [unique,charset(UTF16)] */
1294 uint32_t replica_flags
;
1296 struct GUID naming_context_obj_guid
;
1297 struct GUID source_dsa_obj_guid
;
1298 struct GUID source_dsa_invocation_id
;
1299 struct GUID transport_obj_guid
;
1300 uint64_t tmp_highest_usn
;
1301 uint64_t highest_usn
;
1302 NTTIME last_success
;
1303 NTTIME last_attempt
;
1304 WERROR result_last_attempt
;
1305 uint32_t consecutive_sync_failures
;
1308 struct drsuapi_DsReplicaNeighbourCtr
{
1311 struct drsuapi_DsReplicaNeighbour
*array
;/* [size_is(count)] */
1314 struct drsuapi_DsReplicaCursorCtr
{
1317 struct drsuapi_DsReplicaCursor
*array
;/* [size_is(count)] */
1320 struct drsuapi_DsReplicaObjMetaData
{
1321 const char *attribute_name
;/* [unique,charset(UTF16)] */
1323 NTTIME originating_change_time
;
1324 struct GUID originating_invocation_id
;
1325 uint64_t originating_usn
;
1329 struct drsuapi_DsReplicaObjMetaDataCtr
{
1332 struct drsuapi_DsReplicaObjMetaData
*array
;/* [size_is(count)] */
1335 struct drsuapi_DsReplicaKccDsaFailure
{
1336 const char *dsa_obj_dn
;/* [unique,charset(UTF16)] */
1337 struct GUID dsa_obj_guid
;
1338 NTTIME first_failure
;
1339 uint32_t num_failures
;
1343 struct drsuapi_DsReplicaKccDsaFailuresCtr
{
1346 struct drsuapi_DsReplicaKccDsaFailure
*array
;/* [size_is(count)] */
1349 enum drsuapi_DsReplicaOpType
1350 #ifndef USE_UINT_ENUMS
1352 DRSUAPI_DS_REPLICA_OP_TYPE_SYNC
=(int)(0),
1353 DRSUAPI_DS_REPLICA_OP_TYPE_ADD
=(int)(1),
1354 DRSUAPI_DS_REPLICA_OP_TYPE_DELETE
=(int)(2),
1355 DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY
=(int)(3),
1356 DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS
=(int)(4)
1359 { __donnot_use_enum_drsuapi_DsReplicaOpType
=0x7FFFFFFF}
1360 #define DRSUAPI_DS_REPLICA_OP_TYPE_SYNC ( 0 )
1361 #define DRSUAPI_DS_REPLICA_OP_TYPE_ADD ( 1 )
1362 #define DRSUAPI_DS_REPLICA_OP_TYPE_DELETE ( 2 )
1363 #define DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY ( 3 )
1364 #define DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS ( 4 )
1368 struct drsuapi_DsReplicaOp
{
1369 NTTIME operation_start
;
1370 uint32_t serial_num
;
1372 enum drsuapi_DsReplicaOpType operation_type
;
1374 const char *nc_dn
;/* [unique,charset(UTF16)] */
1375 const char *remote_dsa_obj_dn
;/* [unique,charset(UTF16)] */
1376 const char *remote_dsa_address
;/* [unique,charset(UTF16)] */
1377 struct GUID nc_obj_guid
;
1378 struct GUID remote_dsa_obj_guid
;
1381 struct drsuapi_DsReplicaOpCtr
{
1384 struct drsuapi_DsReplicaOp
*array
;/* [size_is(count)] */
1387 struct drsuapi_DsReplicaAttrValMetaData
{
1388 const char *attribute_name
;/* [unique,charset(UTF16)] */
1389 const char *object_dn
;/* [unique,charset(UTF16)] */
1390 uint32_t __ndr_size_binary
;/* [value(ndr_size_DATA_BLOB(0,binary,0))] */
1391 DATA_BLOB
*binary
;/* [unique] */
1395 NTTIME originating_change_time
;
1396 struct GUID originating_invocation_id
;
1397 uint64_t originating_usn
;
1401 struct drsuapi_DsReplicaAttrValMetaDataCtr
{
1403 uint32_t enumeration_context
;
1404 struct drsuapi_DsReplicaAttrValMetaData
*array
;/* [size_is(count)] */
1407 struct drsuapi_DsReplicaCursor2Ctr
{
1409 uint32_t enumeration_context
;
1410 struct drsuapi_DsReplicaCursor2
*array
;/* [size_is(count)] */
1413 struct drsuapi_DsReplicaCursor3
{
1414 struct GUID source_dsa_invocation_id
;
1415 uint64_t highest_usn
;
1416 NTTIME last_sync_success
;
1417 const char *source_dsa_obj_dn
;/* [unique,charset(UTF16)] */
1420 struct drsuapi_DsReplicaCursor3Ctr
{
1422 uint32_t enumeration_context
;
1423 struct drsuapi_DsReplicaCursor3
*array
;/* [size_is(count)] */
1426 struct drsuapi_DsReplicaObjMetaData2
{
1427 const char *attribute_name
;/* [unique,charset(UTF16)] */
1429 NTTIME originating_change_time
;
1430 struct GUID originating_invocation_id
;
1431 uint64_t originating_usn
;
1433 const char *originating_dsa_dn
;/* [unique,charset(UTF16)] */
1436 struct drsuapi_DsReplicaObjMetaData2Ctr
{
1438 uint32_t enumeration_context
;
1439 struct drsuapi_DsReplicaObjMetaData2
*array
;/* [size_is(count)] */
1442 struct drsuapi_DsReplicaAttrValMetaData2
{
1443 const char *attribute_name
;/* [unique,charset(UTF16)] */
1444 const char *object_dn
;/* [unique,charset(UTF16)] */
1445 uint32_t __ndr_size_binary
;/* [value(ndr_size_DATA_BLOB(0,binary,0))] */
1446 DATA_BLOB
*binary
;/* [unique] */
1450 NTTIME originating_change_time
;
1451 struct GUID originating_invocation_id
;
1452 uint64_t originating_usn
;
1454 const char *originating_dsa_dn
;/* [unique,charset(UTF16)] */
1457 struct drsuapi_DsReplicaAttrValMetaData2Ctr
{
1459 uint32_t enumeration_context
;
1460 struct drsuapi_DsReplicaAttrValMetaData2
*array
;/* [size_is(count)] */
1463 struct drsuapi_DsReplicaConnection04
{
1467 struct GUID bind_guid
;
1469 const char * client_ip_address
;/* [flag(LIBNDR_FLAG_BIGENDIAN)] */
1473 struct drsuapi_DsReplicaConnection04Ctr
{
1474 uint32_t count
;/* [range(0,10000)] */
1476 struct drsuapi_DsReplicaConnection04
*array
;/* [size_is(count)] */
1479 struct drsuapi_DsReplica06
{
1480 const char *str1
;/* [unique,charset(UTF16)] */
1490 struct drsuapi_DsReplica06Ctr
{
1491 uint32_t count
;/* [range(0,256)] */
1493 struct drsuapi_DsReplica06
*array
;/* [size_is(count)] */
1496 union drsuapi_DsReplicaInfo
{
1497 struct drsuapi_DsReplicaNeighbourCtr
*neighbours
;/* [unique,case(DRSUAPI_DS_REPLICA_INFO_NEIGHBORS)] */
1498 struct drsuapi_DsReplicaCursorCtr
*cursors
;/* [unique,case(DRSUAPI_DS_REPLICA_INFO_CURSORS)] */
1499 struct drsuapi_DsReplicaObjMetaDataCtr
*objmetadata
;/* [unique,case(DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA)] */
1500 struct drsuapi_DsReplicaKccDsaFailuresCtr
*connectfailures
;/* [unique,case(DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES)] */
1501 struct drsuapi_DsReplicaKccDsaFailuresCtr
*linkfailures
;/* [unique,case(DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES)] */
1502 struct drsuapi_DsReplicaOpCtr
*pendingops
;/* [unique,case(DRSUAPI_DS_REPLICA_INFO_PENDING_OPS)] */
1503 struct drsuapi_DsReplicaAttrValMetaDataCtr
*attrvalmetadata
;/* [unique,case(DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA)] */
1504 struct drsuapi_DsReplicaCursor2Ctr
*cursors2
;/* [unique,case(DRSUAPI_DS_REPLICA_INFO_CURSORS2)] */
1505 struct drsuapi_DsReplicaCursor3Ctr
*cursors3
;/* [unique,case(DRSUAPI_DS_REPLICA_INFO_CURSORS3)] */
1506 struct drsuapi_DsReplicaObjMetaData2Ctr
*objmetadata2
;/* [unique,case(DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2)] */
1507 struct drsuapi_DsReplicaAttrValMetaData2Ctr
*attrvalmetadata2
;/* [unique,case(DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2)] */
1508 struct drsuapi_DsReplicaNeighbourCtr
*neighbours02
;/* [unique,case(DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02)] */
1509 struct drsuapi_DsReplicaConnection04Ctr
*connections04
;/* [unique,case(DRSUAPI_DS_REPLICA_INFO_CONNECTIONS04)] */
1510 struct drsuapi_DsReplicaCursorCtrEx
*cursors05
;/* [unique,case(DRSUAPI_DS_REPLICA_INFO_CURSORS05)] */
1511 struct drsuapi_DsReplica06Ctr
*i06
;/* [unique,case(DRSUAPI_DS_REPLICA_INFO_06)] */
1512 }/* [switch_type(drsuapi_DsReplicaInfoType)] */;
1514 struct drsuapi_DsGetMemberships2Ctr1
{
1515 uint32_t num_entries
;/* [range(0,10000)] */
1516 struct drsuapi_DsGetMembershipsCtr1
**ctrl_array
;/* [unique,size_is(num_entries)] */
1519 union drsuapi_DsGetMemberships2Ctr
{
1520 struct drsuapi_DsGetMembershipsCtr1 ctr1
;/* [case] */
1521 }/* [switch_type(int32)] */;
1523 struct drsuapi_DsGetMemberships2Request1
{
1524 uint32_t num_req
;/* [range(1,10000)] */
1525 struct drsuapi_DsGetMembershipsRequest1
**req_array
;/* [unique,size_is(num_req)] */
1528 union drsuapi_DsGetMemberships2Request
{
1529 struct drsuapi_DsGetMemberships2Request1 req1
;/* [case] */
1530 }/* [switch_type(int32)] */;
1532 struct drsuapi_DsSiteCostInfo
{
1537 struct drsuapi_QuerySitesByCostCtr1
{
1538 uint32_t num_info
;/* [range(0,10000)] */
1539 struct drsuapi_DsSiteCostInfo
*info
;/* [unique,size_is(num_info)] */
1543 union drsuapi_QuerySitesByCostCtr
{
1544 struct drsuapi_QuerySitesByCostCtr1 ctr1
;/* [case] */
1545 }/* [switch_type(int32)] */;
1547 struct drsuapi_QuerySitesByCostRequest1
{
1548 const char *site_from
;/* [unique,charset(UTF16)] */
1549 uint32_t num_req
;/* [range(1,10000)] */
1550 const char **site_to
;/* [unique,charset(UTF16),size_is(num_req)] */
1554 union drsuapi_QuerySitesByCostRequest
{
1555 struct drsuapi_QuerySitesByCostRequest1 req1
;/* [case] */
1556 }/* [switch_type(int32)] */;
1559 struct drsuapi_DsBind
{
1561 struct GUID
*bind_guid
;/* [unique] */
1562 struct drsuapi_DsBindInfoCtr
*bind_info
;/* [unique] */
1566 struct policy_handle
*bind_handle
;/* [ref] */
1567 struct drsuapi_DsBindInfoCtr
*bind_info
;/* [unique] */
1574 struct drsuapi_DsUnbind
{
1576 struct policy_handle
*bind_handle
;/* [ref] */
1580 struct policy_handle
*bind_handle
;/* [ref] */
1587 struct drsuapi_DsReplicaSync
{
1589 struct policy_handle
*bind_handle
;/* [ref] */
1591 union drsuapi_DsReplicaSyncRequest req
;/* [switch_is(level)] */
1601 struct drsuapi_DsGetNCChanges
{
1603 struct policy_handle
*bind_handle
;/* [ref] */
1605 union drsuapi_DsGetNCChangesRequest
*req
;/* [ref,switch_is(level)] */
1609 int32_t *level_out
;/* [ref] */
1610 union drsuapi_DsGetNCChangesCtr
*ctr
;/* [ref,switch_is(*level_out)] */
1617 struct drsuapi_DsReplicaUpdateRefs
{
1619 struct policy_handle
*bind_handle
;/* [ref] */
1621 union drsuapi_DsReplicaUpdateRefsRequest req
;/* [switch_is(level)] */
1631 struct drsuapi_DsReplicaAdd
{
1633 struct policy_handle
*bind_handle
;/* [ref] */
1635 union drsuapi_DsReplicaAddRequest req
;/* [switch_is(level)] */
1645 struct drsuapi_DsReplicaDel
{
1647 struct policy_handle
*bind_handle
;/* [ref] */
1649 union drsuapi_DsReplicaDelRequest req
;/* [switch_is(level)] */
1659 struct drsuapi_DsReplicaMod
{
1661 struct policy_handle
*bind_handle
;/* [ref] */
1663 union drsuapi_DsReplicaModRequest req
;/* [switch_is(level)] */
1673 struct DRSUAPI_VERIFY_NAMES
{
1681 struct drsuapi_DsGetMemberships
{
1683 struct policy_handle
*bind_handle
;/* [ref] */
1685 union drsuapi_DsGetMembershipsRequest
*req
;/* [ref,switch_is(level)] */
1689 int32_t *level_out
;/* [ref] */
1690 union drsuapi_DsGetMembershipsCtr
*ctr
;/* [ref,switch_is(*level_out)] */
1697 struct DRSUAPI_INTER_DOMAIN_MOVE
{
1705 struct drsuapi_DsGetNT4ChangeLog
{
1707 struct policy_handle
*bind_handle
;/* [ref] */
1709 union drsuapi_DsGetNT4ChangeLogRequest
*req
;/* [ref,switch_is(level)] */
1713 uint32_t *level_out
;/* [ref] */
1714 union drsuapi_DsGetNT4ChangeLogInfo
*info
;/* [ref,switch_is(*level_out)] */
1721 struct drsuapi_DsCrackNames
{
1723 struct policy_handle
*bind_handle
;/* [ref] */
1725 union drsuapi_DsNameRequest
*req
;/* [ref,switch_is(level)] */
1729 int32_t *level_out
;/* [ref] */
1730 union drsuapi_DsNameCtr
*ctr
;/* [ref,switch_is(*level_out)] */
1737 struct drsuapi_DsWriteAccountSpn
{
1739 struct policy_handle
*bind_handle
;/* [ref] */
1741 union drsuapi_DsWriteAccountSpnRequest
*req
;/* [ref,switch_is(level)] */
1745 int32_t *level_out
;/* [ref] */
1746 union drsuapi_DsWriteAccountSpnResult
*res
;/* [ref,switch_is(*level_out)] */
1753 struct drsuapi_DsRemoveDSServer
{
1755 struct policy_handle
*bind_handle
;/* [ref] */
1757 union drsuapi_DsRemoveDSServerRequest
*req
;/* [ref,switch_is(level)] */
1761 int32_t *level_out
;/* [ref] */
1762 union drsuapi_DsRemoveDSServerResult
*res
;/* [ref,switch_is(*level_out)] */
1769 struct DRSUAPI_REMOVE_DS_DOMAIN
{
1777 struct drsuapi_DsGetDomainControllerInfo
{
1779 struct policy_handle
*bind_handle
;/* [ref] */
1781 union drsuapi_DsGetDCInfoRequest
*req
;/* [ref,switch_is(level)] */
1785 int32_t *level_out
;/* [ref] */
1786 union drsuapi_DsGetDCInfoCtr
*ctr
;/* [ref,switch_is(*level_out)] */
1793 struct drsuapi_DsAddEntry
{
1795 struct policy_handle
*bind_handle
;/* [ref] */
1797 union drsuapi_DsAddEntryRequest
*req
;/* [ref,switch_is(level)] */
1801 int32_t *level_out
;/* [ref] */
1802 union drsuapi_DsAddEntryCtr
*ctr
;/* [ref,switch_is(*level_out)] */
1809 struct drsuapi_DsExecuteKCC
{
1811 struct policy_handle
*bind_handle
;/* [ref] */
1813 union drsuapi_DsExecuteKCCRequest
*req
;/* [ref,switch_is(level)] */
1823 struct drsuapi_DsReplicaGetInfo
{
1825 struct policy_handle
*bind_handle
;/* [ref] */
1826 enum drsuapi_DsReplicaGetInfoLevel level
;
1827 union drsuapi_DsReplicaGetInfoRequest
*req
;/* [ref,switch_is(level)] */
1831 enum drsuapi_DsReplicaInfoType
*info_type
;/* [ref] */
1832 union drsuapi_DsReplicaInfo
*info
;/* [ref,switch_is(*info_type)] */
1839 struct DRSUAPI_ADD_SID_HISTORY
{
1847 struct drsuapi_DsGetMemberships2
{
1849 struct policy_handle
*bind_handle
;/* [ref] */
1851 union drsuapi_DsGetMemberships2Request
*req
;/* [ref,switch_is(level)] */
1855 int32_t *level_out
;/* [ref] */
1856 union drsuapi_DsGetMemberships2Ctr
*ctr
;/* [ref,switch_is(*level_out)] */
1863 struct DRSUAPI_REPLICA_VERIFY_OBJECTS
{
1871 struct DRSUAPI_GET_OBJECT_EXISTENCE
{
1879 struct drsuapi_QuerySitesByCost
{
1881 struct policy_handle
*bind_handle
;/* [ref] */
1883 union drsuapi_QuerySitesByCostRequest
*req
;/* [ref,switch_is(level)] */
1887 int32_t *level_out
;/* [ref] */
1888 union drsuapi_QuerySitesByCostCtr
*ctr
;/* [ref,switch_is(*level_out)] */
1894 #endif /* _HEADER_drsuapi */