/* header auto-generated by pidl */ #include #include "libcli/util/ntstatus.h" #include "librpc/gen_ndr/security.h" #include "librpc/gen_ndr/misc.h" #include "librpc/gen_ndr/samr.h" #ifndef _HEADER_drsuapi #define _HEADER_drsuapi #define DRSUAPI_DS_BIND_GUID ( "e24d201a-4fd6-11d1-a3da-0000f875ae0d" ) #define DRSUAPI_DS_BIND_GUID_W2K ( "6abec3d1-3054-41c8-a362-5a0c5b7d5d71" ) #define DRSUAPI_DS_BIND_GUID_W2K3 ( "6afab99c-6e26-464a-975f-f58f105218bc" ) #define DRSUAPI_DS_MEMBERSHIP_FLAG_GROUP_ATTR ( 0x1 ) #define DRSUAPI_NTDSDSA_KRB5_SERVICE_GUID ( "E3514235-4B06-11D1-AB04-00C04FC2DCD2" ) /* bitmap drsuapi_DrsOptions */ #define DRSUAPI_DRS_ASYNC_OP ( 0x00000001 ) #define DRSUAPI_DRS_GETCHG_CHECK ( 0x00000002 ) #define DRSUAPI_DRS_UPDATE_NOTIFICATION ( 0x00000002 ) #define DRSUAPI_DRS_ADD_REF ( 0x00000004 ) #define DRSUAPI_DRS_SYNC_ALL ( 0x00000008 ) #define DRSUAPI_DRS_DEL_REF ( 0x00000008 ) #define DRSUAPI_DRS_WRIT_REP ( 0x00000010 ) #define DRSUAPI_DRS_INIT_SYNC ( 0x00000020 ) #define DRSUAPI_DRS_PER_SYNC ( 0x00000040 ) #define DRSUAPI_DRS_MAIL_REP ( 0x00000080 ) #define DRSUAPI_DRS_ASYNC_REP ( 0x00000100 ) #define DRSUAPI_DRS_IGNORE_ERROR ( 0x00000100 ) #define DRSUAPI_DRS_TWOWAY_SYNC ( 0x00000200 ) #define DRSUAPI_DRS_CRITICAL_ONLY ( 0x00000400 ) #define DRSUAPI_DRS_GET_ANC ( 0x00000800 ) #define DRSUAPI_DRS_GET_NC_SIZE ( 0x00001000 ) #define DRSUAPI_DRS_LOCAL_ONLY ( 0x00001000 ) #define DRSUAPI_DRS_NONGC_RO_REP ( 0x00002000 ) #define DRSUAPI_DRS_SYNC_BYNAME ( 0x00004000 ) #define DRSUAPI_DRS_REF_OK ( 0x00004000 ) #define DRSUAPI_DRS_FULL_SYNC_NOW ( 0x00008000 ) #define DRSUAPI_DRS_NO_SOURCE ( 0x00008000 ) #define DRSUAPI_DRS_FULL_SYNC_IN_PROGRESS ( 0x00010000 ) #define DRSUAPI_DRS_FULL_SYNC_PACKET ( 0x00020000 ) #define DRSUAPI_DRS_SYNC_REQUEUE ( 0x00040000 ) #define DRSUAPI_DRS_SYNC_URGENT ( 0x00080000 ) #define DRSUAPI_DRS_REF_GCSPN ( 0x00100000 ) #define DRSUAPI_DRS_NO_DISCARD ( 0x00100000 ) #define DRSUAPI_DRS_NEVER_SYNCED ( 0x00200000 ) #define DRSUAPI_DRS_SPECIAL_SECRET_PROCESSING ( 0x00400000 ) #define DRSUAPI_DRS_INIT_SYNC_NOW ( 0x00800000 ) #define DRSUAPI_DRS_PREEMPTED ( 0x01000000 ) #define DRSUAPI_DRS_SYNC_FORCED ( 0x02000000 ) #define DRSUAPI_DRS_DISABLE_AUTO_SYNC ( 0x04000000 ) #define DRSUAPI_DRS_DISABLE_PERIODIC_SYNC ( 0x08000000 ) #define DRSUAPI_DRS_USE_COMPRESSION ( 0x10000000 ) #define DRSUAPI_DRS_NEVER_NOTIFY ( 0x20000000 ) #define DRSUAPI_DRS_SYNC_PAS ( 0x40000000 ) #define DRSUAPI_DRS_GET_ALL_GROUP_MEMBERSHIP ( 0x80000000 ) /* bitmap drsuapi_SupportedExtensions */ #define DRSUAPI_SUPPORTED_EXTENSION_BASE ( 0x00000001 ) #define DRSUAPI_SUPPORTED_EXTENSION_ASYNC_REPLICATION ( 0x00000002 ) #define DRSUAPI_SUPPORTED_EXTENSION_REMOVEAPI ( 0x00000004 ) #define DRSUAPI_SUPPORTED_EXTENSION_MOVEREQ_V2 ( 0x00000008 ) #define DRSUAPI_SUPPORTED_EXTENSION_GETCHG_COMPRESS ( 0x00000010 ) #define DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V1 ( 0x00000020 ) #define DRSUAPI_SUPPORTED_EXTENSION_RESTORE_USN_OPTIMIZATION ( 0x00000040 ) #define DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY ( 0x00000080 ) #define DRSUAPI_SUPPORTED_EXTENSION_KCC_EXECUTE ( 0x00000100 ) #define DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_V2 ( 0x00000200 ) #define DRSUAPI_SUPPORTED_EXTENSION_LINKED_VALUE_REPLICATION ( 0x00000400 ) #define DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V2 ( 0x00000800 ) #define DRSUAPI_SUPPORTED_EXTENSION_INSTANCE_TYPE_NOT_REQ_ON_MOD ( 0x00001000 ) #define DRSUAPI_SUPPORTED_EXTENSION_CRYPTO_BIND ( 0x00002000 ) #define DRSUAPI_SUPPORTED_EXTENSION_GET_REPL_INFO ( 0x00004000 ) #define DRSUAPI_SUPPORTED_EXTENSION_STRONG_ENCRYPTION ( 0x00008000 ) #define DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V01 ( 0x00010000 ) #define DRSUAPI_SUPPORTED_EXTENSION_TRANSITIVE_MEMBERSHIP ( 0x00020000 ) #define DRSUAPI_SUPPORTED_EXTENSION_ADD_SID_HISTORY ( 0x00040000 ) #define DRSUAPI_SUPPORTED_EXTENSION_POST_BETA3 ( 0x00080000 ) #define DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V5 ( 0x00100000 ) #define DRSUAPI_SUPPORTED_EXTENSION_GET_MEMBERSHIPS2 ( 0x00200000 ) #define DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V6 ( 0x00400000 ) #define DRSUAPI_SUPPORTED_EXTENSION_NONDOMAIN_NCS ( 0x00800000 ) #define DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V8 ( 0x01000000 ) #define DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V5 ( 0x02000000 ) #define DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V6 ( 0x04000000 ) #define DRSUAPI_SUPPORTED_EXTENSION_ADDENTRYREPLY_V3 ( 0x08000000 ) #define DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V7 ( 0x08000000 ) #define DRSUAPI_SUPPORTED_EXTENSION_VERIFY_OBJECT ( 0x08000000 ) #define DRSUAPI_SUPPORTED_EXTENSION_XPRESS_COMPRESS ( 0x10000000 ) #define DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V10 ( 0x20000000 ) #define DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART2 ( 0x40000000 ) #define DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART3 ( 0x80000000 ) /* bitmap drsuapi_SupportedExtensionsExt */ #define DRSUAPI_SUPPORTED_EXTENSION_ADAM ( 0x00000001 ) #define DRSUAPI_SUPPORTED_EXTENSION_LH_BETA2 ( 0x00000002 ) #define DRSUAPI_SUPPORTED_EXTENSION_RECYCLE_BIN ( 0x00000004 ) struct drsuapi_DsBindInfo24 { uint32_t supported_extensions; struct GUID site_guid; uint32_t pid; }; struct drsuapi_DsBindInfo28 { uint32_t supported_extensions; struct GUID site_guid; uint32_t pid; uint32_t repl_epoch; }; struct drsuapi_DsBindInfo48 { uint32_t supported_extensions; struct GUID site_guid; uint32_t pid; uint32_t repl_epoch; uint32_t supported_extensions_ext; struct GUID config_dn_guid; }; struct drsuapi_DsBindInfoFallBack { DATA_BLOB info;/* [flag(LIBNDR_FLAG_REMAINING)] */ }; union drsuapi_DsBindInfo { struct drsuapi_DsBindInfo24 info24;/* [subcontext(4),case(24)] */ struct drsuapi_DsBindInfo28 info28;/* [subcontext(4),case(28)] */ struct drsuapi_DsBindInfo48 info48;/* [subcontext(4),case(48)] */ struct drsuapi_DsBindInfoFallBack FallBack;/* [subcontext(4),default] */ }/* [nodiscriminant] */; struct drsuapi_DsBindInfoCtr { uint32_t length;/* [range(1,10000)] */ union drsuapi_DsBindInfo info;/* [switch_is(length)] */ }; struct drsuapi_DsReplicaObjectIdentifier { uint32_t __ndr_size;/* [value(ndr_size_drsuapi_DsReplicaObjectIdentifier(r,ndr->iconv_convenience,ndr->flags)-4)] */ uint32_t __ndr_size_sid;/* [value(ndr_size_dom_sid28(&sid,ndr->flags))] */ struct GUID guid; struct dom_sid28 sid; uint32_t __ndr_size_dn;/* [value(strlen_m(dn))] */ const char *dn;/* [charset(UTF16),size_is(__ndr_size_dn+1)] */ }/* [gensize,public] */; struct drsuapi_DsReplicaSyncRequest1 { struct drsuapi_DsReplicaObjectIdentifier *naming_context;/* [ref] */ struct GUID source_dsa_guid; const char * source_dsa_dns;/* [unique,flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */ uint32_t options; }; union drsuapi_DsReplicaSyncRequest { struct drsuapi_DsReplicaSyncRequest1 req1;/* [case] */ }/* [switch_type(uint32)] */; struct drsuapi_DsReplicaHighWaterMark { uint64_t tmp_highest_usn; uint64_t reserved_usn; uint64_t highest_usn; }/* [public] */; struct drsuapi_DsReplicaCursor { struct GUID source_dsa_invocation_id; uint64_t highest_usn; }/* [public] */; struct drsuapi_DsReplicaCursorCtrEx { uint32_t version;/* [value] */ uint32_t reserved1;/* [value(0)] */ uint32_t count;/* [range(0,0x100000)] */ uint32_t reserved2;/* [value(0)] */ struct drsuapi_DsReplicaCursor *cursors;/* [size_is(count)] */ }; enum drsuapi_DsExtendedOperation #ifndef USE_UINT_ENUMS { DRSUAPI_EXOP_NONE=(int)(0x00000000), DRSUAPI_EXOP_FSMO_REQ_ROLE=(int)(0x00000001), DRSUAPI_EXOP_FSMO_RID_ALLOC=(int)(0x00000002), DRSUAPI_EXOP_FSMO_RID_REQ_ROLE=(int)(0x00000003), DRSUAPI_EXOP_FSMO_REQ_PDC=(int)(0x00000004), DRSUAPI_EXOP_FSMO_ABANDON_ROLE=(int)(0x00000005), DRSUAPI_EXOP_REPL_OBJ=(int)(0x00000006), DRSUAPI_EXOP_REPL_SECRET=(int)(0x00000007) } #else { __donnot_use_enum_drsuapi_DsExtendedOperation=0x7FFFFFFF} #define DRSUAPI_EXOP_NONE ( 0x00000000 ) #define DRSUAPI_EXOP_FSMO_REQ_ROLE ( 0x00000001 ) #define DRSUAPI_EXOP_FSMO_RID_ALLOC ( 0x00000002 ) #define DRSUAPI_EXOP_FSMO_RID_REQ_ROLE ( 0x00000003 ) #define DRSUAPI_EXOP_FSMO_REQ_PDC ( 0x00000004 ) #define DRSUAPI_EXOP_FSMO_ABANDON_ROLE ( 0x00000005 ) #define DRSUAPI_EXOP_REPL_OBJ ( 0x00000006 ) #define DRSUAPI_EXOP_REPL_SECRET ( 0x00000007 ) #endif ; enum drsuapi_DsExtendedError #ifndef USE_UINT_ENUMS { DRSUAPI_EXOP_ERR_NONE=(int)(0x00000000), DRSUAPI_EXOP_ERR_SUCCESS=(int)(0x00000001), DRSUAPI_EXOP_ERR_UNKNOWN_OP=(int)(0x00000002), DRSUAPI_EXOP_ERR_FSMO_NOT_OWNER=(int)(0x00000003), DRSUAPI_EXOP_ERR_UPDATE_ERR=(int)(0x00000004), DRSUAPI_EXOP_ERR_EXCEPTION=(int)(0x00000005), DRSUAPI_EXOP_ERR_UNKNOWN_CALLER=(int)(0x00000006), DRSUAPI_EXOP_ERR_RID_ALLOC=(int)(0x00000007), DRSUAPI_EXOP_ERR_FSMO_OWNER_DELETED=(int)(0x00000008), DRSUAPI_EXOP_ERR_FMSO_PENDING_OP=(int)(0x00000009), DRSUAPI_EXOP_ERR_MISMATCH=(int)(0x0000000A), DRSUAPI_EXOP_ERR_COULDNT_CONTACT=(int)(0x0000000B), DRSUAPI_EXOP_ERR_FSMO_REFUSING_ROLES=(int)(0x0000000C), DRSUAPI_EXOP_ERR_DIR_ERROR=(int)(0x0000000D), DRSUAPI_EXOP_ERR_FSMO_MISSING_SETTINGS=(int)(0x0000000E), DRSUAPI_EXOP_ERR_ACCESS_DENIED=(int)(0x0000000F), DRSUAPI_EXOP_ERR_PARAM_ERROR=(int)(0x00000010) } #else { __donnot_use_enum_drsuapi_DsExtendedError=0x7FFFFFFF} #define DRSUAPI_EXOP_ERR_NONE ( 0x00000000 ) #define DRSUAPI_EXOP_ERR_SUCCESS ( 0x00000001 ) #define DRSUAPI_EXOP_ERR_UNKNOWN_OP ( 0x00000002 ) #define DRSUAPI_EXOP_ERR_FSMO_NOT_OWNER ( 0x00000003 ) #define DRSUAPI_EXOP_ERR_UPDATE_ERR ( 0x00000004 ) #define DRSUAPI_EXOP_ERR_EXCEPTION ( 0x00000005 ) #define DRSUAPI_EXOP_ERR_UNKNOWN_CALLER ( 0x00000006 ) #define DRSUAPI_EXOP_ERR_RID_ALLOC ( 0x00000007 ) #define DRSUAPI_EXOP_ERR_FSMO_OWNER_DELETED ( 0x00000008 ) #define DRSUAPI_EXOP_ERR_FMSO_PENDING_OP ( 0x00000009 ) #define DRSUAPI_EXOP_ERR_MISMATCH ( 0x0000000A ) #define DRSUAPI_EXOP_ERR_COULDNT_CONTACT ( 0x0000000B ) #define DRSUAPI_EXOP_ERR_FSMO_REFUSING_ROLES ( 0x0000000C ) #define DRSUAPI_EXOP_ERR_DIR_ERROR ( 0x0000000D ) #define DRSUAPI_EXOP_ERR_FSMO_MISSING_SETTINGS ( 0x0000000E ) #define DRSUAPI_EXOP_ERR_ACCESS_DENIED ( 0x0000000F ) #define DRSUAPI_EXOP_ERR_PARAM_ERROR ( 0x00000010 ) #endif ; struct drsuapi_DsGetNCChangesRequest5 { struct GUID destination_dsa_guid; struct GUID source_dsa_invocation_id; struct drsuapi_DsReplicaObjectIdentifier *naming_context;/* [ref] */ struct drsuapi_DsReplicaHighWaterMark highwatermark; struct drsuapi_DsReplicaCursorCtrEx *uptodateness_vector;/* [unique] */ uint32_t replica_flags; uint32_t max_object_count; uint32_t max_ndr_size; enum drsuapi_DsExtendedOperation extended_op; uint64_t fsmo_info; }; struct drsuapi_DsReplicaOID { uint32_t length;/* [range(0,10000)] */ uint8_t *binary_oid;/* [unique,size_is(length)] */ }/* [noprint] */; struct drsuapi_DsReplicaOIDMapping { uint32_t id_prefix; struct drsuapi_DsReplicaOID oid; }; struct drsuapi_DsReplicaOIDMapping_Ctr { uint32_t num_mappings;/* [range(0,0x100000)] */ struct drsuapi_DsReplicaOIDMapping *mappings;/* [unique,size_is(num_mappings)] */ }/* [public] */; enum drsuapi_DsObjectClassId #ifndef USE_UINT_ENUMS { DRSUAPI_OBJECTCLASS_top=(int)(0x00010000), DRSUAPI_OBJECTCLASS_classSchema=(int)(0x0003000d), DRSUAPI_OBJECTCLASS_attributeSchema=(int)(0x0003000e) } #else { __donnot_use_enum_drsuapi_DsObjectClassId=0x7FFFFFFF} #define DRSUAPI_OBJECTCLASS_top ( 0x00010000 ) #define DRSUAPI_OBJECTCLASS_classSchema ( 0x0003000d ) #define DRSUAPI_OBJECTCLASS_attributeSchema ( 0x0003000e ) #endif ; enum drsuapi_DsAttributeId #ifndef USE_UINT_ENUMS { DRSUAPI_ATTRIBUTE_objectClass=(int)(0x00000000), DRSUAPI_ATTRIBUTE_cn=(int)(0x00000003), DRSUAPI_ATTRIBUTE_description=(int)(0x0000000d), DRSUAPI_ATTRIBUTE_member=(int)(0x0000001f), DRSUAPI_ATTRIBUTE_instanceType=(int)(0x00020001), DRSUAPI_ATTRIBUTE_whenCreated=(int)(0x00020002), DRSUAPI_ATTRIBUTE_possSuperiors=(int)(0x00020008), DRSUAPI_ATTRIBUTE_hasMasterNCs=(int)(0x0002000e), DRSUAPI_ATTRIBUTE_subClassOf=(int)(0x00020015), DRSUAPI_ATTRIBUTE_governsID=(int)(0x00020016), DRSUAPI_ATTRIBUTE_mustContain=(int)(0x00020018), DRSUAPI_ATTRIBUTE_mayContain=(int)(0x00020019), DRSUAPI_ATTRIBUTE_rDNAttId=(int)(0x0002001A), DRSUAPI_ATTRIBUTE_attributeID=(int)(0x0002001e), DRSUAPI_ATTRIBUTE_attributeSyntax=(int)(0x00020020), DRSUAPI_ATTRIBUTE_isSingleValued=(int)(0x00020021), DRSUAPI_ATTRIBUTE_rangeLower=(int)(0x00020022), DRSUAPI_ATTRIBUTE_rangeUpper=(int)(0x00020023), DRSUAPI_ATTRIBUTE_dMDLocation=(int)(0x00020024), DRSUAPI_ATTRIBUTE_objectVersion=(int)(0x0002004c), DRSUAPI_ATTRIBUTE_invocationId=(int)(0x00020073), DRSUAPI_ATTRIBUTE_showInAdvancedViewOnly=(int)(0x000200a9), DRSUAPI_ATTRIBUTE_adminDisplayName=(int)(0x000200c2), DRSUAPI_ATTRIBUTE_adminDescription=(int)(0x000200e2), DRSUAPI_ATTRIBUTE_oMSyntax=(int)(0x000200e7), DRSUAPI_ATTRIBUTE_ntSecurityDescriptor=(int)(0x00020119), DRSUAPI_ATTRIBUTE_searchFlags=(int)(0x0002014e), DRSUAPI_ATTRIBUTE_auxiliaryClass=(int)(0x0002015f), DRSUAPI_ATTRIBUTE_lDAPDisplayName=(int)(0x000201cc), DRSUAPI_ATTRIBUTE_name=(int)(0x00090001), DRSUAPI_ATTRIBUTE_userAccountControl=(int)(0x00090008), DRSUAPI_ATTRIBUTE_currentValue=(int)(0x0009001b), DRSUAPI_ATTRIBUTE_homeDirectory=(int)(0x0009002c), DRSUAPI_ATTRIBUTE_homeDrive=(int)(0x0009002d), DRSUAPI_ATTRIBUTE_scriptPath=(int)(0x0009003e), DRSUAPI_ATTRIBUTE_profilePath=(int)(0x0009008b), DRSUAPI_ATTRIBUTE_objectSid=(int)(0x00090092), DRSUAPI_ATTRIBUTE_schemaIDGUID=(int)(0x00090094), DRSUAPI_ATTRIBUTE_dBCSPwd=(int)(0x00090037), DRSUAPI_ATTRIBUTE_logonHours=(int)(0x00090040), DRSUAPI_ATTRIBUTE_userWorkstations=(int)(0x00090056), DRSUAPI_ATTRIBUTE_unicodePwd=(int)(0x0009005a), DRSUAPI_ATTRIBUTE_ntPwdHistory=(int)(0x0009005e), DRSUAPI_ATTRIBUTE_priorValue=(int)(0x00090064), DRSUAPI_ATTRIBUTE_supplementalCredentials=(int)(0x0009007d), DRSUAPI_ATTRIBUTE_trustAuthIncoming=(int)(0x00090081), DRSUAPI_ATTRIBUTE_trustAuthOutgoing=(int)(0x00090087), DRSUAPI_ATTRIBUTE_lmPwdHistory=(int)(0x000900a0), DRSUAPI_ATTRIBUTE_systemPossSuperiors=(int)(0x000900c3), DRSUAPI_ATTRIBUTE_systemMayContain=(int)(0x000900c4), DRSUAPI_ATTRIBUTE_systemMustContain=(int)(0x000900c5), DRSUAPI_ATTRIBUTE_systemAuxiliaryClass=(int)(0x000900c6), DRSUAPI_ATTRIBUTE_sAMAccountName=(int)(0x000900dd), DRSUAPI_ATTRIBUTE_sAMAccountType=(int)(0x0009012e), DRSUAPI_ATTRIBUTE_options=(int)(0x00090133), DRSUAPI_ATTRIBUTE_fSMORoleOwner=(int)(0x00090171), DRSUAPI_ATTRIBUTE_systemFlags=(int)(0x00090177), DRSUAPI_ATTRIBUTE_serverReference=(int)(0x00090203), DRSUAPI_ATTRIBUTE_serverReferenceBL=(int)(0x00090204), DRSUAPI_ATTRIBUTE_initialAuthIncoming=(int)(0x0009021b), DRSUAPI_ATTRIBUTE_initialAuthOutgoing=(int)(0x0009021c), DRSUAPI_ATTRIBUTE_wellKnownObjects=(int)(0x0009026a), DRSUAPI_ATTRIBUTE_dNSHostName=(int)(0x0009026b), DRSUAPI_ATTRIBUTE_isMemberOfPartialAttributeSet=(int)(0x0009027f), DRSUAPI_ATTRIBUTE_userPrincipalName=(int)(0x00090290), DRSUAPI_ATTRIBUTE_groupType=(int)(0x000902ee), DRSUAPI_ATTRIBUTE_servicePrincipalName=(int)(0x00090303), DRSUAPI_ATTRIBUTE_objectCategory=(int)(0x0009030e), DRSUAPI_ATTRIBUTE_gPLink=(int)(0x0009037b), DRSUAPI_ATTRIBUTE_transportAddressAttribute=(int)(0x0009037f), DRSUAPI_ATTRIBUTE_msDS_Behavior_Version=(int)(0x000905b3), DRSUAPI_ATTRIBUTE_msDS_KeyVersionNumber=(int)(0x000906f6), DRSUAPI_ATTRIBUTE_msDS_HasDomainNCs=(int)(0x0009071c), DRSUAPI_ATTRIBUTE_msDS_hasMasterNCs=(int)(0x0009072c), DRSUAPI_ATTRIBUTE_NONE=(int)(0xFFFFFFFF) } #else { __donnot_use_enum_drsuapi_DsAttributeId=0x7FFFFFFF} #define DRSUAPI_ATTRIBUTE_objectClass ( 0x00000000 ) #define DRSUAPI_ATTRIBUTE_cn ( 0x00000003 ) #define DRSUAPI_ATTRIBUTE_description ( 0x0000000d ) #define DRSUAPI_ATTRIBUTE_member ( 0x0000001f ) #define DRSUAPI_ATTRIBUTE_instanceType ( 0x00020001 ) #define DRSUAPI_ATTRIBUTE_whenCreated ( 0x00020002 ) #define DRSUAPI_ATTRIBUTE_possSuperiors ( 0x00020008 ) #define DRSUAPI_ATTRIBUTE_hasMasterNCs ( 0x0002000e ) #define DRSUAPI_ATTRIBUTE_subClassOf ( 0x00020015 ) #define DRSUAPI_ATTRIBUTE_governsID ( 0x00020016 ) #define DRSUAPI_ATTRIBUTE_mustContain ( 0x00020018 ) #define DRSUAPI_ATTRIBUTE_mayContain ( 0x00020019 ) #define DRSUAPI_ATTRIBUTE_rDNAttId ( 0x0002001A ) #define DRSUAPI_ATTRIBUTE_attributeID ( 0x0002001e ) #define DRSUAPI_ATTRIBUTE_attributeSyntax ( 0x00020020 ) #define DRSUAPI_ATTRIBUTE_isSingleValued ( 0x00020021 ) #define DRSUAPI_ATTRIBUTE_rangeLower ( 0x00020022 ) #define DRSUAPI_ATTRIBUTE_rangeUpper ( 0x00020023 ) #define DRSUAPI_ATTRIBUTE_dMDLocation ( 0x00020024 ) #define DRSUAPI_ATTRIBUTE_objectVersion ( 0x0002004c ) #define DRSUAPI_ATTRIBUTE_invocationId ( 0x00020073 ) #define DRSUAPI_ATTRIBUTE_showInAdvancedViewOnly ( 0x000200a9 ) #define DRSUAPI_ATTRIBUTE_adminDisplayName ( 0x000200c2 ) #define DRSUAPI_ATTRIBUTE_adminDescription ( 0x000200e2 ) #define DRSUAPI_ATTRIBUTE_oMSyntax ( 0x000200e7 ) #define DRSUAPI_ATTRIBUTE_ntSecurityDescriptor ( 0x00020119 ) #define DRSUAPI_ATTRIBUTE_searchFlags ( 0x0002014e ) #define DRSUAPI_ATTRIBUTE_auxiliaryClass ( 0x0002015f ) #define DRSUAPI_ATTRIBUTE_lDAPDisplayName ( 0x000201cc ) #define DRSUAPI_ATTRIBUTE_name ( 0x00090001 ) #define DRSUAPI_ATTRIBUTE_userAccountControl ( 0x00090008 ) #define DRSUAPI_ATTRIBUTE_currentValue ( 0x0009001b ) #define DRSUAPI_ATTRIBUTE_homeDirectory ( 0x0009002c ) #define DRSUAPI_ATTRIBUTE_homeDrive ( 0x0009002d ) #define DRSUAPI_ATTRIBUTE_scriptPath ( 0x0009003e ) #define DRSUAPI_ATTRIBUTE_profilePath ( 0x0009008b ) #define DRSUAPI_ATTRIBUTE_objectSid ( 0x00090092 ) #define DRSUAPI_ATTRIBUTE_schemaIDGUID ( 0x00090094 ) #define DRSUAPI_ATTRIBUTE_dBCSPwd ( 0x00090037 ) #define DRSUAPI_ATTRIBUTE_logonHours ( 0x00090040 ) #define DRSUAPI_ATTRIBUTE_userWorkstations ( 0x00090056 ) #define DRSUAPI_ATTRIBUTE_unicodePwd ( 0x0009005a ) #define DRSUAPI_ATTRIBUTE_ntPwdHistory ( 0x0009005e ) #define DRSUAPI_ATTRIBUTE_priorValue ( 0x00090064 ) #define DRSUAPI_ATTRIBUTE_supplementalCredentials ( 0x0009007d ) #define DRSUAPI_ATTRIBUTE_trustAuthIncoming ( 0x00090081 ) #define DRSUAPI_ATTRIBUTE_trustAuthOutgoing ( 0x00090087 ) #define DRSUAPI_ATTRIBUTE_lmPwdHistory ( 0x000900a0 ) #define DRSUAPI_ATTRIBUTE_systemPossSuperiors ( 0x000900c3 ) #define DRSUAPI_ATTRIBUTE_systemMayContain ( 0x000900c4 ) #define DRSUAPI_ATTRIBUTE_systemMustContain ( 0x000900c5 ) #define DRSUAPI_ATTRIBUTE_systemAuxiliaryClass ( 0x000900c6 ) #define DRSUAPI_ATTRIBUTE_sAMAccountName ( 0x000900dd ) #define DRSUAPI_ATTRIBUTE_sAMAccountType ( 0x0009012e ) #define DRSUAPI_ATTRIBUTE_options ( 0x00090133 ) #define DRSUAPI_ATTRIBUTE_fSMORoleOwner ( 0x00090171 ) #define DRSUAPI_ATTRIBUTE_systemFlags ( 0x00090177 ) #define DRSUAPI_ATTRIBUTE_serverReference ( 0x00090203 ) #define DRSUAPI_ATTRIBUTE_serverReferenceBL ( 0x00090204 ) #define DRSUAPI_ATTRIBUTE_initialAuthIncoming ( 0x0009021b ) #define DRSUAPI_ATTRIBUTE_initialAuthOutgoing ( 0x0009021c ) #define DRSUAPI_ATTRIBUTE_wellKnownObjects ( 0x0009026a ) #define DRSUAPI_ATTRIBUTE_dNSHostName ( 0x0009026b ) #define DRSUAPI_ATTRIBUTE_isMemberOfPartialAttributeSet ( 0x0009027f ) #define DRSUAPI_ATTRIBUTE_userPrincipalName ( 0x00090290 ) #define DRSUAPI_ATTRIBUTE_groupType ( 0x000902ee ) #define DRSUAPI_ATTRIBUTE_servicePrincipalName ( 0x00090303 ) #define DRSUAPI_ATTRIBUTE_objectCategory ( 0x0009030e ) #define DRSUAPI_ATTRIBUTE_gPLink ( 0x0009037b ) #define DRSUAPI_ATTRIBUTE_transportAddressAttribute ( 0x0009037f ) #define DRSUAPI_ATTRIBUTE_msDS_Behavior_Version ( 0x000905b3 ) #define DRSUAPI_ATTRIBUTE_msDS_KeyVersionNumber ( 0x000906f6 ) #define DRSUAPI_ATTRIBUTE_msDS_HasDomainNCs ( 0x0009071c ) #define DRSUAPI_ATTRIBUTE_msDS_hasMasterNCs ( 0x0009072c ) #define DRSUAPI_ATTRIBUTE_NONE ( 0xFFFFFFFF ) #endif ; struct drsuapi_DsPartialAttributeSet { uint32_t version;/* [value] */ uint32_t reserved1;/* [value(0)] */ uint32_t num_attids;/* [range(1,0x100000)] */ enum drsuapi_DsAttributeId *attids;/* [size_is(num_attids)] */ }; struct drsuapi_DsGetNCChangesRequest8 { struct GUID destination_dsa_guid; struct GUID source_dsa_invocation_id; struct drsuapi_DsReplicaObjectIdentifier *naming_context;/* [ref] */ struct drsuapi_DsReplicaHighWaterMark highwatermark; struct drsuapi_DsReplicaCursorCtrEx *uptodateness_vector;/* [unique] */ uint32_t replica_flags; uint32_t max_object_count; uint32_t max_ndr_size; enum drsuapi_DsExtendedOperation extended_op; uint64_t fsmo_info; struct drsuapi_DsPartialAttributeSet *partial_attribute_set;/* [unique] */ struct drsuapi_DsPartialAttributeSet *partial_attribute_set_ex;/* [unique] */ struct drsuapi_DsReplicaOIDMapping_Ctr mapping_ctr; }; struct drsuapi_DsGetNCChangesRequest10 { struct GUID destination_dsa_guid; struct GUID source_dsa_invocation_id; struct drsuapi_DsReplicaObjectIdentifier *naming_context;/* [ref] */ struct drsuapi_DsReplicaHighWaterMark highwatermark; struct drsuapi_DsReplicaCursorCtrEx *uptodateness_vector;/* [unique] */ uint32_t replica_flags; uint32_t max_object_count; uint32_t max_ndr_size; enum drsuapi_DsExtendedOperation extended_op; uint64_t fsmo_info; struct drsuapi_DsPartialAttributeSet *partial_attribute_set;/* [unique] */ struct drsuapi_DsPartialAttributeSet *partial_attribute_set_ex;/* [unique] */ struct drsuapi_DsReplicaOIDMapping_Ctr mapping_ctr; uint32_t more_flags; }; union drsuapi_DsGetNCChangesRequest { struct drsuapi_DsGetNCChangesRequest5 req5;/* [case(5)] */ struct drsuapi_DsGetNCChangesRequest8 req8;/* [case(8)] */ struct drsuapi_DsGetNCChangesRequest10 req10;/* [case(10)] */ }/* [switch_type(uint32)] */; struct drsuapi_DsReplicaCursor2 { struct GUID source_dsa_invocation_id; uint64_t highest_usn; NTTIME last_sync_success; }/* [public] */; struct drsuapi_DsReplicaCursor2CtrEx { uint32_t version;/* [value(2)] */ uint32_t reserved1;/* [value(0)] */ uint32_t count;/* [range(0,0x100000)] */ uint32_t reserved2;/* [value(0)] */ struct drsuapi_DsReplicaCursor2 *cursors;/* [size_is(count)] */ }; struct drsuapi_DsAttributeValue { uint32_t __ndr_size;/* [value(ndr_size_DATA_BLOB(0,blob,0)),range(0,10485760)] */ DATA_BLOB *blob;/* [unique] */ }; struct drsuapi_DsAttributeValueCtr { uint32_t num_values;/* [range(0,10485760)] */ struct drsuapi_DsAttributeValue *values;/* [unique,size_is(num_values)] */ }; struct drsuapi_DsReplicaObjectIdentifier3 { uint32_t __ndr_size;/* [value(ndr_size_drsuapi_DsReplicaObjectIdentifier3(r,ndr->iconv_convenience,ndr->flags))] */ uint32_t __ndr_size_sid;/* [value(ndr_size_dom_sid28(&sid,ndr->flags))] */ struct GUID guid; struct dom_sid28 sid; uint32_t __ndr_size_dn;/* [value(strlen_m(dn))] */ const char *dn;/* [charset(UTF16)] */ }/* [gensize,public] */; struct drsuapi_DsReplicaObjectIdentifier3Binary { uint32_t __ndr_size;/* [value(ndr_size_drsuapi_DsReplicaObjectIdentifier3Binary_without_Binary(r,ndr->iconv_convenience,ndr->flags))] */ uint32_t __ndr_size_sid;/* [value(ndr_size_dom_sid28(&sid,ndr->flags))] */ struct GUID guid; struct dom_sid28 sid; uint32_t __ndr_size_dn;/* [value(strlen_m(dn))] */ const char *dn;/* [charset(UTF16)] */ uint32_t __ndr_size_binary;/* [value(binary.length+4)] */ DATA_BLOB binary;/* [flag(LIBNDR_FLAG_REMAINING)] */ }/* [public] */; struct drsuapi_DsReplicaAttribute { enum drsuapi_DsAttributeId attid; struct drsuapi_DsAttributeValueCtr value_ctr; }/* [public] */; struct drsuapi_DsReplicaAttributeCtr { uint32_t num_attributes;/* [range(0,1048576)] */ struct drsuapi_DsReplicaAttribute *attributes;/* [unique,size_is(num_attributes)] */ }; /* bitmap drsuapi_DsReplicaObjectFlags */ #define DRSUAPI_DS_REPLICA_OBJECT_FROM_MASTER ( 0x00000001 ) #define DRSUAPI_DS_REPLICA_OBJECT_DYNAMIC ( 0x00000002 ) #define DRSUAPI_DS_REPLICA_OBJECT_REMOTE_MODIFY ( 0x00010000 ) struct drsuapi_DsReplicaObject { struct drsuapi_DsReplicaObjectIdentifier *identifier;/* [unique] */ uint32_t flags; struct drsuapi_DsReplicaAttributeCtr attribute_ctr; }/* [public] */; struct drsuapi_DsReplicaMetaData { uint32_t version; NTTIME originating_change_time; struct GUID originating_invocation_id; uint64_t originating_usn; }; struct drsuapi_DsReplicaMetaDataCtr { uint32_t count;/* [range(0,1048576)] */ struct drsuapi_DsReplicaMetaData *meta_data;/* [size_is(count)] */ }/* [public] */; struct drsuapi_DsReplicaObjectListItemEx { struct drsuapi_DsReplicaObjectListItemEx *next_object;/* [unique] */ struct drsuapi_DsReplicaObject object; uint32_t is_nc_prefix; struct GUID *parent_object_guid;/* [unique] */ struct drsuapi_DsReplicaMetaDataCtr *meta_data_ctr;/* [unique] */ }/* [noprint,public] */; struct drsuapi_DsGetNCChangesCtr1 { struct GUID source_dsa_guid; struct GUID source_dsa_invocation_id; struct drsuapi_DsReplicaObjectIdentifier *naming_context;/* [unique] */ struct drsuapi_DsReplicaHighWaterMark old_highwatermark; struct drsuapi_DsReplicaHighWaterMark new_highwatermark; struct drsuapi_DsReplicaCursorCtrEx *uptodateness_vector;/* [unique] */ struct drsuapi_DsReplicaOIDMapping_Ctr mapping_ctr; enum drsuapi_DsExtendedError extended_ret; uint32_t object_count; uint32_t __ndr_size;/* [value(ndr_size_drsuapi_DsGetNCChangesCtr1(r,ndr->iconv_convenience,ndr->flags)+55)] */ struct drsuapi_DsReplicaObjectListItemEx *first_object;/* [unique] */ uint32_t more_data; }/* [gensize,public] */; /* bitmap drsuapi_DsLinkedAttributeFlags */ #define DRSUAPI_DS_LINKED_ATTRIBUTE_FLAG_ACTIVE ( 0x00000001 ) struct drsuapi_DsReplicaLinkedAttribute { struct drsuapi_DsReplicaObjectIdentifier *identifier;/* [unique] */ enum drsuapi_DsAttributeId attid; struct drsuapi_DsAttributeValue value; uint32_t flags; NTTIME originating_add_time; struct drsuapi_DsReplicaMetaData meta_data; }/* [public] */; struct drsuapi_DsGetNCChangesCtr6 { struct GUID source_dsa_guid; struct GUID source_dsa_invocation_id; struct drsuapi_DsReplicaObjectIdentifier *naming_context;/* [unique] */ struct drsuapi_DsReplicaHighWaterMark old_highwatermark; struct drsuapi_DsReplicaHighWaterMark new_highwatermark; struct drsuapi_DsReplicaCursor2CtrEx *uptodateness_vector;/* [unique] */ struct drsuapi_DsReplicaOIDMapping_Ctr mapping_ctr; enum drsuapi_DsExtendedError extended_ret; uint32_t object_count; uint32_t __ndr_size;/* [value(ndr_size_drsuapi_DsGetNCChangesCtr6(r,ndr->iconv_convenience,ndr->flags)+55)] */ struct drsuapi_DsReplicaObjectListItemEx *first_object;/* [unique] */ uint32_t more_data; uint32_t nc_object_count; uint32_t nc_linked_attributes_count; uint32_t linked_attributes_count;/* [range(0,1048576)] */ struct drsuapi_DsReplicaLinkedAttribute *linked_attributes;/* [unique,size_is(linked_attributes_count)] */ WERROR drs_error; }/* [gensize,public] */; struct drsuapi_DsGetNCChangesCtr1TS { struct drsuapi_DsGetNCChangesCtr1 ctr1;/* [subcontext(0xFFFFFC01)] */ }/* [public] */; struct drsuapi_DsGetNCChangesCtr6TS { struct drsuapi_DsGetNCChangesCtr6 ctr6;/* [subcontext(0xFFFFFC01)] */ }/* [public] */; struct drsuapi_DsGetNCChangesMSZIPCtr1 { uint32_t decompressed_length; uint32_t compressed_length; struct drsuapi_DsGetNCChangesCtr1TS *ts;/* [unique,compression(NDR_COMPRESSION_MSZIP,compressed_length,decompressed_length),subcontext_size(compressed_length),subcontext(4)] */ }/* [nopush] */; struct drsuapi_DsGetNCChangesMSZIPCtr6 { uint32_t decompressed_length; uint32_t compressed_length; struct drsuapi_DsGetNCChangesCtr6TS *ts;/* [unique,compression(NDR_COMPRESSION_MSZIP,compressed_length,decompressed_length),subcontext_size(compressed_length),subcontext(4)] */ }/* [nopush] */; struct drsuapi_DsGetNCChangesXPRESSCtr1 { uint32_t decompressed_length; uint32_t compressed_length; struct drsuapi_DsGetNCChangesCtr1TS *ts;/* [unique,compression(NDR_COMPRESSION_XPRESS,compressed_length,decompressed_length),subcontext_size(compressed_length),subcontext(4)] */ }/* [nopush] */; struct drsuapi_DsGetNCChangesXPRESSCtr6 { uint32_t decompressed_length; uint32_t compressed_length; struct drsuapi_DsGetNCChangesCtr6TS *ts;/* [unique,compression(NDR_COMPRESSION_XPRESS,compressed_length,decompressed_length),subcontext_size(compressed_length),subcontext(4)] */ }/* [nopush] */; enum drsuapi_DsGetNCChangesCompressionType #ifndef USE_UINT_ENUMS { DRSUAPI_COMPRESSION_TYPE_MSZIP=(int)(2), DRSUAPI_COMPRESSION_TYPE_XPRESS=(int)(3) } #else { __donnot_use_enum_drsuapi_DsGetNCChangesCompressionType=0x7FFFFFFF} #define DRSUAPI_COMPRESSION_TYPE_MSZIP ( 2 ) #define DRSUAPI_COMPRESSION_TYPE_XPRESS ( 3 ) #endif ; union drsuapi_DsGetNCChangesCompressedCtr { struct drsuapi_DsGetNCChangesMSZIPCtr1 mszip1;/* [case(1|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16))] */ struct drsuapi_DsGetNCChangesMSZIPCtr6 mszip6;/* [case(6|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16))] */ struct drsuapi_DsGetNCChangesXPRESSCtr1 xpress1;/* [case(1|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16))] */ struct drsuapi_DsGetNCChangesXPRESSCtr6 xpress6;/* [case(6|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16))] */ }/* [nodiscriminant,flag(LIBNDR_PRINT_ARRAY_HEX)] */; struct drsuapi_DsGetNCChangesCtr2 { struct drsuapi_DsGetNCChangesMSZIPCtr1 mszip1; }; struct drsuapi_DsGetNCChangesCtr7 { uint32_t level;/* [range(0,6)] */ enum drsuapi_DsGetNCChangesCompressionType type;/* [range(2,3)] */ union drsuapi_DsGetNCChangesCompressedCtr ctr;/* [switch_is(level|(type<<16))] */ }; union drsuapi_DsGetNCChangesCtr { struct drsuapi_DsGetNCChangesCtr1 ctr1;/* [case] */ struct drsuapi_DsGetNCChangesCtr2 ctr2;/* [case(2)] */ struct drsuapi_DsGetNCChangesCtr6 ctr6;/* [case(6)] */ struct drsuapi_DsGetNCChangesCtr7 ctr7;/* [case(7)] */ }/* [switch_type(uint32)] */; struct drsuapi_DsReplicaUpdateRefsRequest1 { struct drsuapi_DsReplicaObjectIdentifier *naming_context;/* [ref] */ const char *dest_dsa_dns_name;/* [ref,charset(DOS)] */ struct GUID dest_dsa_guid; uint32_t options; }; union drsuapi_DsReplicaUpdateRefsRequest { struct drsuapi_DsReplicaUpdateRefsRequest1 req1;/* [case] */ }/* [switch_type(uint32)] */; struct drsuapi_DsReplicaAddRequest1 { struct drsuapi_DsReplicaObjectIdentifier *naming_context;/* [ref] */ const char *source_dsa_address;/* [unique,charset(UTF16)] */ uint8_t schedule[84]; uint32_t options; }; struct drsuapi_DsReplicaAddRequest2 { struct drsuapi_DsReplicaObjectIdentifier *naming_context;/* [ref] */ struct drsuapi_DsReplicaObjectIdentifier *source_dsa_dn;/* [unique] */ struct drsuapi_DsReplicaObjectIdentifier *transport_dn;/* [unique] */ const char *source_dsa_address;/* [unique,charset(UTF16)] */ uint8_t schedule[84]; uint32_t options; }; union drsuapi_DsReplicaAddRequest { struct drsuapi_DsReplicaAddRequest1 req1;/* [case] */ struct drsuapi_DsReplicaAddRequest2 req2;/* [case(2)] */ }/* [switch_type(uint32)] */; struct drsuapi_DsReplicaDelRequest1 { struct drsuapi_DsReplicaObjectIdentifier *naming_context;/* [ref] */ const char *source_dsa_address;/* [unique,charset(UTF16)] */ uint32_t options; }; union drsuapi_DsReplicaDelRequest { struct drsuapi_DsReplicaDelRequest1 req1;/* [case] */ }/* [switch_type(uint32)] */; struct drsuapi_DsReplicaModRequest1 { struct drsuapi_DsReplicaObjectIdentifier *naming_context;/* [ref] */ struct GUID source_dra; const char *source_dra_address;/* [unique,charset(UTF16)] */ uint8_t schedule[84]; uint32_t replica_flags; uint32_t modify_fields; uint32_t options; }; union drsuapi_DsReplicaModRequest { struct drsuapi_DsReplicaModRequest1 req1;/* [case] */ }/* [switch_type(uint32)] */; enum drsuapi_DsMembershipType #ifndef USE_UINT_ENUMS { DRSUAPI_DS_MEMBERSHIP_TYPE_UNIVERSAL_AND_DOMAIN_GROUPS=(int)(1), DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_LOCAL_GROUPS=(int)(2), DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_GROUPS=(int)(3), DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_LOCAL_GROUPS2=(int)(4), DRSUAPI_DS_MEMBERSHIP_TYPE_UNIVERSAL_GROUPS=(int)(5), DRSUAPI_DS_MEMBERSHIP_TYPE_GROUPMEMBERS=(int)(6), DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_GROUPS2=(int)(7) } #else { __donnot_use_enum_drsuapi_DsMembershipType=0x7FFFFFFF} #define DRSUAPI_DS_MEMBERSHIP_TYPE_UNIVERSAL_AND_DOMAIN_GROUPS ( 1 ) #define DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_LOCAL_GROUPS ( 2 ) #define DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_GROUPS ( 3 ) #define DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_LOCAL_GROUPS2 ( 4 ) #define DRSUAPI_DS_MEMBERSHIP_TYPE_UNIVERSAL_GROUPS ( 5 ) #define DRSUAPI_DS_MEMBERSHIP_TYPE_GROUPMEMBERS ( 6 ) #define DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_GROUPS2 ( 7 ) #endif ; struct drsuapi_DsGetMembershipsCtr1 { NTSTATUS status; uint32_t num_memberships;/* [range(0,10000)] */ uint32_t num_sids;/* [range(0,10000)] */ struct drsuapi_DsReplicaObjectIdentifier **info_array;/* [unique,size_is(num_memberships)] */ uint32_t *group_attrs;/* [unique,size_is(num_memberships)] */ struct dom_sid28 **sids;/* [unique,size_is(num_sids)] */ }; union drsuapi_DsGetMembershipsCtr { struct drsuapi_DsGetMembershipsCtr1 ctr1;/* [case] */ }/* [switch_type(uint32)] */; struct drsuapi_DsGetMembershipsRequest1 { uint32_t count;/* [range(1,10000)] */ struct drsuapi_DsReplicaObjectIdentifier **info_array;/* [unique,size_is(count)] */ uint32_t flags; enum drsuapi_DsMembershipType type;/* [range(1,7)] */ struct drsuapi_DsReplicaObjectIdentifier *domain;/* [unique] */ }; union drsuapi_DsGetMembershipsRequest { struct drsuapi_DsGetMembershipsRequest1 req1;/* [case] */ }/* [switch_type(uint32)] */; /* bitmap drsuapi_DsGetNT4ChangeLogFlags */ #define DRSUAPI_NT4_CHANGELOG_GET_CHANGELOG ( 0x00000001 ) #define DRSUAPI_NT4_CHANGELOG_GET_SERIAL_NUMBERS ( 0x00000002 ) struct drsuapi_DsGetNT4ChangeLogRequest1 { uint32_t flags; uint32_t preferred_maximum_length; uint32_t restart_length;/* [range(0,0x00A00000)] */ uint8_t *restart_data;/* [unique,size_is(restart_length)] */ }; union drsuapi_DsGetNT4ChangeLogRequest { struct drsuapi_DsGetNT4ChangeLogRequest1 req1;/* [case] */ }/* [switch_type(uint32)] */; struct drsuapi_DsGetNT4ChangeLogInfo1 { uint32_t restart_length;/* [range(0,0x00A00000)] */ uint32_t log_length;/* [range(0,0x00A00000)] */ uint64_t sam_serial_number; NTTIME sam_creation_time; uint64_t builtin_serial_number; NTTIME builtin_creation_time; uint64_t lsa_serial_number; NTTIME lsa_creation_time; NTSTATUS status; uint8_t *restart_data;/* [unique,size_is(restart_length)] */ uint8_t *log_data;/* [unique,size_is(log_length)] */ }; union drsuapi_DsGetNT4ChangeLogInfo { struct drsuapi_DsGetNT4ChangeLogInfo1 info1;/* [case] */ }/* [switch_type(uint32)] */; enum drsuapi_DsNameStatus #ifndef USE_UINT_ENUMS { DRSUAPI_DS_NAME_STATUS_OK=(int)(0), DRSUAPI_DS_NAME_STATUS_RESOLVE_ERROR=(int)(1), DRSUAPI_DS_NAME_STATUS_NOT_FOUND=(int)(2), DRSUAPI_DS_NAME_STATUS_NOT_UNIQUE=(int)(3), DRSUAPI_DS_NAME_STATUS_NO_MAPPING=(int)(4), DRSUAPI_DS_NAME_STATUS_DOMAIN_ONLY=(int)(5), DRSUAPI_DS_NAME_STATUS_NO_SYNTACTICAL_MAPPING=(int)(6), DRSUAPI_DS_NAME_STATUS_TRUST_REFERRAL=(int)(7) } #else { __donnot_use_enum_drsuapi_DsNameStatus=0x7FFFFFFF} #define DRSUAPI_DS_NAME_STATUS_OK ( 0 ) #define DRSUAPI_DS_NAME_STATUS_RESOLVE_ERROR ( 1 ) #define DRSUAPI_DS_NAME_STATUS_NOT_FOUND ( 2 ) #define DRSUAPI_DS_NAME_STATUS_NOT_UNIQUE ( 3 ) #define DRSUAPI_DS_NAME_STATUS_NO_MAPPING ( 4 ) #define DRSUAPI_DS_NAME_STATUS_DOMAIN_ONLY ( 5 ) #define DRSUAPI_DS_NAME_STATUS_NO_SYNTACTICAL_MAPPING ( 6 ) #define DRSUAPI_DS_NAME_STATUS_TRUST_REFERRAL ( 7 ) #endif ; enum drsuapi_DsNameFlags #ifndef USE_UINT_ENUMS { DRSUAPI_DS_NAME_FLAG_NO_FLAGS=(int)(0x0), DRSUAPI_DS_NAME_FLAG_SYNTACTICAL_ONLY=(int)(0x1), DRSUAPI_DS_NAME_FLAG_EVAL_AT_DC=(int)(0x2), DRSUAPI_DS_NAME_FLAG_GCVERIFY=(int)(0x4), DRSUAPI_DS_NAME_FLAG_TRUST_REFERRAL=(int)(0x8) } #else { __donnot_use_enum_drsuapi_DsNameFlags=0x7FFFFFFF} #define DRSUAPI_DS_NAME_FLAG_NO_FLAGS ( 0x0 ) #define DRSUAPI_DS_NAME_FLAG_SYNTACTICAL_ONLY ( 0x1 ) #define DRSUAPI_DS_NAME_FLAG_EVAL_AT_DC ( 0x2 ) #define DRSUAPI_DS_NAME_FLAG_GCVERIFY ( 0x4 ) #define DRSUAPI_DS_NAME_FLAG_TRUST_REFERRAL ( 0x8 ) #endif ; enum drsuapi_DsNameFormat #ifndef USE_UINT_ENUMS { DRSUAPI_DS_NAME_FORMAT_UNKNOWN=(int)(0), DRSUAPI_DS_NAME_FORMAT_FQDN_1779=(int)(1), DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT=(int)(2), DRSUAPI_DS_NAME_FORMAT_DISPLAY=(int)(3), DRSUAPI_DS_NAME_FORMAT_GUID=(int)(6), DRSUAPI_DS_NAME_FORMAT_CANONICAL=(int)(7), DRSUAPI_DS_NAME_FORMAT_USER_PRINCIPAL=(int)(8), DRSUAPI_DS_NAME_FORMAT_CANONICAL_EX=(int)(9), DRSUAPI_DS_NAME_FORMAT_SERVICE_PRINCIPAL=(int)(10), DRSUAPI_DS_NAME_FORMAT_SID_OR_SID_HISTORY=(int)(11), DRSUAPI_DS_NAME_FORMAT_DNS_DOMAIN=(int)(12) } #else { __donnot_use_enum_drsuapi_DsNameFormat=0x7FFFFFFF} #define DRSUAPI_DS_NAME_FORMAT_UNKNOWN ( 0 ) #define DRSUAPI_DS_NAME_FORMAT_FQDN_1779 ( 1 ) #define DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT ( 2 ) #define DRSUAPI_DS_NAME_FORMAT_DISPLAY ( 3 ) #define DRSUAPI_DS_NAME_FORMAT_GUID ( 6 ) #define DRSUAPI_DS_NAME_FORMAT_CANONICAL ( 7 ) #define DRSUAPI_DS_NAME_FORMAT_USER_PRINCIPAL ( 8 ) #define DRSUAPI_DS_NAME_FORMAT_CANONICAL_EX ( 9 ) #define DRSUAPI_DS_NAME_FORMAT_SERVICE_PRINCIPAL ( 10 ) #define DRSUAPI_DS_NAME_FORMAT_SID_OR_SID_HISTORY ( 11 ) #define DRSUAPI_DS_NAME_FORMAT_DNS_DOMAIN ( 12 ) #endif ; struct drsuapi_DsNameString { const char *str;/* [unique,charset(UTF16)] */ }; struct drsuapi_DsNameRequest1 { uint32_t codepage; uint32_t language; enum drsuapi_DsNameFlags format_flags; enum drsuapi_DsNameFormat format_offered; enum drsuapi_DsNameFormat format_desired; uint32_t count;/* [range(1,10000)] */ struct drsuapi_DsNameString *names;/* [unique,size_is(count)] */ }; union drsuapi_DsNameRequest { struct drsuapi_DsNameRequest1 req1;/* [case] */ }/* [switch_type(uint32)] */; struct drsuapi_DsNameInfo1 { enum drsuapi_DsNameStatus status; const char *dns_domain_name;/* [unique,charset(UTF16)] */ const char *result_name;/* [unique,charset(UTF16)] */ }; struct drsuapi_DsNameCtr1 { uint32_t count; struct drsuapi_DsNameInfo1 *array;/* [unique,size_is(count)] */ }; union drsuapi_DsNameCtr { struct drsuapi_DsNameCtr1 *ctr1;/* [unique,case] */ }/* [switch_type(uint32)] */; enum drsuapi_DsSpnOperation #ifndef USE_UINT_ENUMS { DRSUAPI_DS_SPN_OPERATION_ADD=(int)(0), DRSUAPI_DS_SPN_OPERATION_REPLACE=(int)(1), DRSUAPI_DS_SPN_OPERATION_DELETE=(int)(2) } #else { __donnot_use_enum_drsuapi_DsSpnOperation=0x7FFFFFFF} #define DRSUAPI_DS_SPN_OPERATION_ADD ( 0 ) #define DRSUAPI_DS_SPN_OPERATION_REPLACE ( 1 ) #define DRSUAPI_DS_SPN_OPERATION_DELETE ( 2 ) #endif ; struct drsuapi_DsWriteAccountSpnRequest1 { enum drsuapi_DsSpnOperation operation; uint32_t unknown1; const char *object_dn;/* [unique,charset(UTF16)] */ uint32_t count;/* [range(0,10000)] */ struct drsuapi_DsNameString *spn_names;/* [unique,size_is(count)] */ }; union drsuapi_DsWriteAccountSpnRequest { struct drsuapi_DsWriteAccountSpnRequest1 req1;/* [case] */ }/* [switch_type(uint32)] */; struct drsuapi_DsWriteAccountSpnResult1 { WERROR status; }; union drsuapi_DsWriteAccountSpnResult { struct drsuapi_DsWriteAccountSpnResult1 res1;/* [case] */ }/* [switch_type(uint32)] */; struct drsuapi_DsRemoveDSServerRequest1 { const char *server_dn;/* [unique,charset(UTF16)] */ const char *domain_dn;/* [unique,charset(UTF16)] */ uint32_t commit; }; union drsuapi_DsRemoveDSServerRequest { struct drsuapi_DsRemoveDSServerRequest1 req1;/* [case] */ }/* [switch_type(uint32)] */; struct drsuapi_DsRemoveDSServerResult1 { uint32_t last_dc_in_domain; }; union drsuapi_DsRemoveDSServerResult { struct drsuapi_DsRemoveDSServerResult1 res1;/* [case] */ }/* [switch_type(uint32)] */; struct drsuapi_DsGetDCInfoRequest1 { const char *domain_name;/* [unique,charset(UTF16)] */ int32_t level; }; union drsuapi_DsGetDCInfoRequest { struct drsuapi_DsGetDCInfoRequest1 req1;/* [case] */ }/* [switch_type(int32)] */; struct drsuapi_DsGetDCInfo1 { const char *netbios_name;/* [unique,charset(UTF16)] */ const char *dns_name;/* [unique,charset(UTF16)] */ const char *site_name;/* [unique,charset(UTF16)] */ const char *computer_dn;/* [unique,charset(UTF16)] */ const char *server_dn;/* [unique,charset(UTF16)] */ uint32_t is_pdc; uint32_t is_enabled; }; struct drsuapi_DsGetDCInfoCtr1 { uint32_t count;/* [range(0,10000)] */ struct drsuapi_DsGetDCInfo1 *array;/* [unique,size_is(count)] */ }; struct drsuapi_DsGetDCInfo2 { const char *netbios_name;/* [unique,charset(UTF16)] */ const char *dns_name;/* [unique,charset(UTF16)] */ const char *site_name;/* [unique,charset(UTF16)] */ const char *site_dn;/* [unique,charset(UTF16)] */ const char *computer_dn;/* [unique,charset(UTF16)] */ const char *server_dn;/* [unique,charset(UTF16)] */ const char *ntds_dn;/* [unique,charset(UTF16)] */ uint32_t is_pdc; uint32_t is_enabled; uint32_t is_gc; struct GUID site_guid; struct GUID computer_guid; struct GUID server_guid; struct GUID ntds_guid; }; struct drsuapi_DsGetDCInfoCtr2 { uint32_t count;/* [range(0,10000)] */ struct drsuapi_DsGetDCInfo2 *array;/* [unique,size_is(count)] */ }; struct drsuapi_DsGetDCInfo3 { const char *netbios_name;/* [unique,charset(UTF16)] */ const char *dns_name;/* [unique,charset(UTF16)] */ const char *site_name;/* [unique,charset(UTF16)] */ const char *site_dn;/* [unique,charset(UTF16)] */ const char *computer_dn;/* [unique,charset(UTF16)] */ const char *server_dn;/* [unique,charset(UTF16)] */ const char *ntds_dn;/* [unique,charset(UTF16)] */ uint32_t is_pdc; uint32_t is_enabled; uint32_t is_gc; uint32_t is_rodc; struct GUID site_guid; struct GUID computer_guid; struct GUID server_guid; struct GUID ntds_guid; }; struct drsuapi_DsGetDCInfoCtr3 { uint32_t count;/* [range(0,10000)] */ struct drsuapi_DsGetDCInfo3 *array;/* [unique,size_is(count)] */ }; struct drsuapi_DsGetDCConnection01 { const char * client_ip_address;/* [flag(LIBNDR_FLAG_BIGENDIAN)] */ uint32_t unknown2; uint32_t connection_time; uint32_t unknown4; uint32_t unknown5; uint32_t unknown6; const char *client_account;/* [unique,charset(UTF16)] */ }; struct drsuapi_DsGetDCConnectionCtr01 { uint32_t count;/* [range(0,10000)] */ struct drsuapi_DsGetDCConnection01 *array;/* [unique,size_is(count)] */ }; enum drsuapi_DsGetDCInfoCtrLevels #ifndef USE_UINT_ENUMS { DRSUAPI_DC_INFO_CTR_1=(int)(1), DRSUAPI_DC_INFO_CTR_2=(int)(2), DRSUAPI_DC_INFO_CTR_3=(int)(3), DRSUAPI_DC_CONNECTION_CTR_01=(int)(-1) } #else { __donnot_use_enum_drsuapi_DsGetDCInfoCtrLevels=0x7FFFFFFF} #define DRSUAPI_DC_INFO_CTR_1 ( 1 ) #define DRSUAPI_DC_INFO_CTR_2 ( 2 ) #define DRSUAPI_DC_INFO_CTR_3 ( 3 ) #define DRSUAPI_DC_CONNECTION_CTR_01 ( -1 ) #endif ; union drsuapi_DsGetDCInfoCtr { struct drsuapi_DsGetDCInfoCtr1 ctr1;/* [case(DRSUAPI_DC_INFO_CTR_1)] */ struct drsuapi_DsGetDCInfoCtr2 ctr2;/* [case(DRSUAPI_DC_INFO_CTR_2)] */ struct drsuapi_DsGetDCInfoCtr3 ctr3;/* [case(DRSUAPI_DC_INFO_CTR_3)] */ struct drsuapi_DsGetDCConnectionCtr01 ctr01;/* [case(DRSUAPI_DC_CONNECTION_CTR_01)] */ }/* [switch_type(int32)] */; struct drsuapi_DsReplicaObjectListItem { struct drsuapi_DsReplicaObjectListItem *next_object;/* [unique] */ struct drsuapi_DsReplicaObject object; }/* [noprint,public] */; struct drsuapi_DsAddEntryRequest2 { struct drsuapi_DsReplicaObjectListItem first_object; }; union drsuapi_DsAddEntryRequest { struct drsuapi_DsAddEntryRequest2 req2;/* [case(2)] */ }/* [switch_type(int32)] */; struct drsuapi_DsAddEntryErrorInfoX { uint32_t unknown1; WERROR status; uint32_t unknown2; uint16_t unknown3; }; struct drsuapi_DsAddEntryExtraErrorBuffer { uint32_t size;/* [range(0,10485760)] */ uint8_t *data;/* [unique,size_is(size)] */ }; struct drsuapi_DsAddEntryExtraError1 { struct drsuapi_DsAddEntryErrorInfoX error; enum drsuapi_DsAttributeId attid; uint32_t unknown2; struct drsuapi_DsAddEntryExtraErrorBuffer buffer; }; struct drsuapi_DsAddEntryErrorListItem1 { struct drsuapi_DsAddEntryErrorListItem1 *next;/* [unique] */ struct drsuapi_DsAddEntryExtraError1 error; }; struct drsuapi_DsAddEntryErrorInfo1 { struct drsuapi_DsReplicaObjectIdentifier *id;/* [unique] */ WERROR status; struct drsuapi_DsAddEntryErrorListItem1 first; }; union drsuapi_DsAddEntryErrorInfo { struct drsuapi_DsAddEntryErrorInfo1 error1;/* [case] */ struct drsuapi_DsAddEntryErrorInfoX errorX;/* [case(4)] */ }/* [switch_type(uint32)] */; struct drsuapi_DsAddEntryError1 { WERROR status; uint32_t level; union drsuapi_DsAddEntryErrorInfo *info;/* [unique,switch_is(level)] */ }; union drsuapi_DsAddEntryError { struct drsuapi_DsAddEntryError1 info1;/* [case] */ }/* [switch_type(uint32)] */; struct drsuapi_DsReplicaObjectIdentifier2 { struct GUID guid; struct dom_sid28 sid; }; struct drsuapi_DsAddEntryCtr2 { struct drsuapi_DsReplicaObjectIdentifier *id;/* [unique] */ uint32_t unknown1; struct drsuapi_DsAddEntryErrorInfoX error; uint32_t count;/* [range(0,10000)] */ struct drsuapi_DsReplicaObjectIdentifier2 *objects;/* [unique,size_is(count)] */ }; struct drsuapi_DsAddEntryCtr3 { struct drsuapi_DsReplicaObjectIdentifier *id;/* [unique] */ uint32_t level; union drsuapi_DsAddEntryError *error;/* [unique,switch_is(level)] */ uint32_t count;/* [range(0,10000)] */ struct drsuapi_DsReplicaObjectIdentifier2 *objects;/* [unique,size_is(count)] */ }; union drsuapi_DsAddEntryCtr { struct drsuapi_DsAddEntryCtr2 ctr2;/* [case(2)] */ struct drsuapi_DsAddEntryCtr3 ctr3;/* [case(3)] */ }/* [switch_type(int32)] */; /* bitmap drsuapi_DsExecuteKCCFlags */ #define DRSUAPI_DS_EXECUTE_KCC_ASYNCHRONOUS_OPERATION ( 0x00000001 ) #define DRSUAPI_DS_EXECUTE_KCC_DAMPED ( 0x00000002 ) struct drsuapi_DsExecuteKCC1 { uint32_t taskID; uint32_t flags; }; union drsuapi_DsExecuteKCCRequest { struct drsuapi_DsExecuteKCC1 ctr1;/* [case] */ }/* [switch_type(uint32)] */; enum drsuapi_DsReplicaGetInfoLevel #ifndef USE_UINT_ENUMS { DRSUAPI_DS_REPLICA_GET_INFO=(int)(1), DRSUAPI_DS_REPLICA_GET_INFO2=(int)(2) } #else { __donnot_use_enum_drsuapi_DsReplicaGetInfoLevel=0x7FFFFFFF} #define DRSUAPI_DS_REPLICA_GET_INFO ( 1 ) #define DRSUAPI_DS_REPLICA_GET_INFO2 ( 2 ) #endif ; enum drsuapi_DsReplicaInfoType #ifndef USE_UINT_ENUMS { DRSUAPI_DS_REPLICA_INFO_NEIGHBORS=(int)(0), DRSUAPI_DS_REPLICA_INFO_CURSORS=(int)(1), DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA=(int)(2), DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES=(int)(3), DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES=(int)(4), DRSUAPI_DS_REPLICA_INFO_PENDING_OPS=(int)(5), DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA=(int)(6), DRSUAPI_DS_REPLICA_INFO_CURSORS2=(int)(7), DRSUAPI_DS_REPLICA_INFO_CURSORS3=(int)(8), DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2=(int)(9), DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2=(int)(10), DRSUAPI_DS_REPLICA_INFO_REPSTO=(int)(-2), DRSUAPI_DS_REPLICA_INFO_CLIENT_CONTEXTS=(int)(-4), DRSUAPI_DS_REPLICA_INFO_UPTODATE_VECTOR_V1=(int)(-5), DRSUAPI_DS_REPLICA_INFO_SERVER_OUTGOING_CALLS=(int)(-6) } #else { __donnot_use_enum_drsuapi_DsReplicaInfoType=0x7FFFFFFF} #define DRSUAPI_DS_REPLICA_INFO_NEIGHBORS ( 0 ) #define DRSUAPI_DS_REPLICA_INFO_CURSORS ( 1 ) #define DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA ( 2 ) #define DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES ( 3 ) #define DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES ( 4 ) #define DRSUAPI_DS_REPLICA_INFO_PENDING_OPS ( 5 ) #define DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA ( 6 ) #define DRSUAPI_DS_REPLICA_INFO_CURSORS2 ( 7 ) #define DRSUAPI_DS_REPLICA_INFO_CURSORS3 ( 8 ) #define DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2 ( 9 ) #define DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2 ( 10 ) #define DRSUAPI_DS_REPLICA_INFO_REPSTO ( -2 ) #define DRSUAPI_DS_REPLICA_INFO_CLIENT_CONTEXTS ( -4 ) #define DRSUAPI_DS_REPLICA_INFO_UPTODATE_VECTOR_V1 ( -5 ) #define DRSUAPI_DS_REPLICA_INFO_SERVER_OUTGOING_CALLS ( -6 ) #endif ; struct drsuapi_DsReplicaGetInfoRequest1 { enum drsuapi_DsReplicaInfoType info_type; const char *object_dn;/* [unique,charset(UTF16)] */ struct GUID source_dsa_guid; }; struct drsuapi_DsReplicaGetInfoRequest2 { enum drsuapi_DsReplicaInfoType info_type; const char *object_dn;/* [unique,charset(UTF16)] */ struct GUID source_dsa_guid; uint32_t flags; const char *attribute_name;/* [unique,charset(UTF16)] */ const char *value_dn_str;/* [unique,charset(UTF16)] */ uint32_t enumeration_context; }; union drsuapi_DsReplicaGetInfoRequest { struct drsuapi_DsReplicaGetInfoRequest1 req1;/* [case(DRSUAPI_DS_REPLICA_GET_INFO)] */ struct drsuapi_DsReplicaGetInfoRequest2 req2;/* [case(DRSUAPI_DS_REPLICA_GET_INFO2)] */ }/* [switch_type(drsuapi_DsReplicaGetInfoLevel)] */; struct drsuapi_DsReplicaNeighbour { const char *naming_context_dn;/* [unique,charset(UTF16)] */ const char *source_dsa_obj_dn;/* [unique,charset(UTF16)] */ const char *source_dsa_address;/* [unique,charset(UTF16)] */ const char *transport_obj_dn;/* [unique,charset(UTF16)] */ uint32_t replica_flags; uint32_t reserved; struct GUID naming_context_obj_guid; struct GUID source_dsa_obj_guid; struct GUID source_dsa_invocation_id; struct GUID transport_obj_guid; uint64_t tmp_highest_usn; uint64_t highest_usn; NTTIME last_success; NTTIME last_attempt; WERROR result_last_attempt; uint32_t consecutive_sync_failures; }; struct drsuapi_DsReplicaNeighbourCtr { uint32_t count; uint32_t reserved; struct drsuapi_DsReplicaNeighbour *array;/* [size_is(count)] */ }; struct drsuapi_DsReplicaCursorCtr { uint32_t count; uint32_t reserved; struct drsuapi_DsReplicaCursor *array;/* [size_is(count)] */ }; struct drsuapi_DsReplicaObjMetaData { const char *attribute_name;/* [unique,charset(UTF16)] */ uint32_t version; NTTIME originating_change_time; struct GUID originating_invocation_id; uint64_t originating_usn; uint64_t local_usn; }; struct drsuapi_DsReplicaObjMetaDataCtr { uint32_t count; uint32_t reserved; struct drsuapi_DsReplicaObjMetaData *array;/* [size_is(count)] */ }; struct drsuapi_DsReplicaKccDsaFailure { const char *dsa_obj_dn;/* [unique,charset(UTF16)] */ struct GUID dsa_obj_guid; NTTIME first_failure; uint32_t num_failures; WERROR last_result; }; struct drsuapi_DsReplicaKccDsaFailuresCtr { uint32_t count; uint32_t reserved; struct drsuapi_DsReplicaKccDsaFailure *array;/* [size_is(count)] */ }; enum drsuapi_DsReplicaOpType #ifndef USE_UINT_ENUMS { DRSUAPI_DS_REPLICA_OP_TYPE_SYNC=(int)(0), DRSUAPI_DS_REPLICA_OP_TYPE_ADD=(int)(1), DRSUAPI_DS_REPLICA_OP_TYPE_DELETE=(int)(2), DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY=(int)(3), DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS=(int)(4) } #else { __donnot_use_enum_drsuapi_DsReplicaOpType=0x7FFFFFFF} #define DRSUAPI_DS_REPLICA_OP_TYPE_SYNC ( 0 ) #define DRSUAPI_DS_REPLICA_OP_TYPE_ADD ( 1 ) #define DRSUAPI_DS_REPLICA_OP_TYPE_DELETE ( 2 ) #define DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY ( 3 ) #define DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS ( 4 ) #endif ; struct drsuapi_DsReplicaOp { NTTIME operation_start; uint32_t serial_num; uint32_t priority; enum drsuapi_DsReplicaOpType operation_type; uint32_t options; const char *nc_dn;/* [unique,charset(UTF16)] */ const char *remote_dsa_obj_dn;/* [unique,charset(UTF16)] */ const char *remote_dsa_address;/* [unique,charset(UTF16)] */ struct GUID nc_obj_guid; struct GUID remote_dsa_obj_guid; }; struct drsuapi_DsReplicaOpCtr { NTTIME time; uint32_t count; struct drsuapi_DsReplicaOp *array;/* [size_is(count)] */ }; struct drsuapi_DsReplicaAttrValMetaData { const char *attribute_name;/* [unique,charset(UTF16)] */ const char *object_dn;/* [unique,charset(UTF16)] */ uint32_t __ndr_size_binary;/* [value(ndr_size_DATA_BLOB(0,binary,0))] */ DATA_BLOB *binary;/* [unique] */ NTTIME deleted; NTTIME created; uint32_t version; NTTIME originating_change_time; struct GUID originating_invocation_id; uint64_t originating_usn; uint64_t local_usn; }; struct drsuapi_DsReplicaAttrValMetaDataCtr { uint32_t count; uint32_t enumeration_context; struct drsuapi_DsReplicaAttrValMetaData *array;/* [size_is(count)] */ }; struct drsuapi_DsReplicaCursor2Ctr { uint32_t count; uint32_t enumeration_context; struct drsuapi_DsReplicaCursor2 *array;/* [size_is(count)] */ }; struct drsuapi_DsReplicaCursor3 { struct GUID source_dsa_invocation_id; uint64_t highest_usn; NTTIME last_sync_success; const char *source_dsa_obj_dn;/* [unique,charset(UTF16)] */ }; struct drsuapi_DsReplicaCursor3Ctr { uint32_t count; uint32_t enumeration_context; struct drsuapi_DsReplicaCursor3 *array;/* [size_is(count)] */ }; struct drsuapi_DsReplicaObjMetaData2 { const char *attribute_name;/* [unique,charset(UTF16)] */ uint32_t version; NTTIME originating_change_time; struct GUID originating_invocation_id; uint64_t originating_usn; uint64_t local_usn; const char *originating_dsa_dn;/* [unique,charset(UTF16)] */ }; struct drsuapi_DsReplicaObjMetaData2Ctr { uint32_t count; uint32_t enumeration_context; struct drsuapi_DsReplicaObjMetaData2 *array;/* [size_is(count)] */ }; struct drsuapi_DsReplicaAttrValMetaData2 { const char *attribute_name;/* [unique,charset(UTF16)] */ const char *object_dn;/* [unique,charset(UTF16)] */ uint32_t __ndr_size_binary;/* [value(ndr_size_DATA_BLOB(0,binary,0))] */ DATA_BLOB *binary;/* [unique] */ NTTIME deleted; NTTIME created; uint32_t version; NTTIME originating_change_time; struct GUID originating_invocation_id; uint64_t originating_usn; uint64_t local_usn; const char *originating_dsa_dn;/* [unique,charset(UTF16)] */ }; struct drsuapi_DsReplicaAttrValMetaData2Ctr { uint32_t count; uint32_t enumeration_context; struct drsuapi_DsReplicaAttrValMetaData2 *array;/* [size_is(count)] */ }; struct drsuapi_DsReplicaConnection04 { uint64_t u1; uint32_t u2; uint32_t u3; struct GUID bind_guid; NTTIME bind_time; const char * client_ip_address;/* [flag(LIBNDR_FLAG_BIGENDIAN)] */ uint32_t u5; }; struct drsuapi_DsReplicaConnection04Ctr { uint32_t count;/* [range(0,10000)] */ uint32_t reserved; struct drsuapi_DsReplicaConnection04 *array;/* [size_is(count)] */ }; struct drsuapi_DsReplica06 { const char *str1;/* [unique,charset(UTF16)] */ uint32_t u1; uint32_t u2; uint32_t u3; uint32_t u4; uint32_t u5; uint64_t u6; uint32_t u7; }; struct drsuapi_DsReplica06Ctr { uint32_t count;/* [range(0,256)] */ uint32_t reserved; struct drsuapi_DsReplica06 *array;/* [size_is(count)] */ }; union drsuapi_DsReplicaInfo { struct drsuapi_DsReplicaNeighbourCtr *neighbours;/* [unique,case(DRSUAPI_DS_REPLICA_INFO_NEIGHBORS)] */ struct drsuapi_DsReplicaCursorCtr *cursors;/* [unique,case(DRSUAPI_DS_REPLICA_INFO_CURSORS)] */ struct drsuapi_DsReplicaObjMetaDataCtr *objmetadata;/* [unique,case(DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA)] */ struct drsuapi_DsReplicaKccDsaFailuresCtr *connectfailures;/* [unique,case(DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES)] */ struct drsuapi_DsReplicaKccDsaFailuresCtr *linkfailures;/* [unique,case(DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES)] */ struct drsuapi_DsReplicaOpCtr *pendingops;/* [unique,case(DRSUAPI_DS_REPLICA_INFO_PENDING_OPS)] */ struct drsuapi_DsReplicaAttrValMetaDataCtr *attrvalmetadata;/* [unique,case(DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA)] */ struct drsuapi_DsReplicaCursor2Ctr *cursors2;/* [unique,case(DRSUAPI_DS_REPLICA_INFO_CURSORS2)] */ struct drsuapi_DsReplicaCursor3Ctr *cursors3;/* [unique,case(DRSUAPI_DS_REPLICA_INFO_CURSORS3)] */ struct drsuapi_DsReplicaObjMetaData2Ctr *objmetadata2;/* [unique,case(DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2)] */ struct drsuapi_DsReplicaAttrValMetaData2Ctr *attrvalmetadata2;/* [unique,case(DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2)] */ struct drsuapi_DsReplicaNeighbourCtr *repsto;/* [unique,case(DRSUAPI_DS_REPLICA_INFO_REPSTO)] */ struct drsuapi_DsReplicaConnection04Ctr *clientctx;/* [unique,case(DRSUAPI_DS_REPLICA_INFO_CLIENT_CONTEXTS)] */ struct drsuapi_DsReplicaCursorCtrEx *udv1;/* [unique,case(DRSUAPI_DS_REPLICA_INFO_UPTODATE_VECTOR_V1)] */ struct drsuapi_DsReplica06Ctr *srvoutgoingcalls;/* [unique,case(DRSUAPI_DS_REPLICA_INFO_SERVER_OUTGOING_CALLS)] */ }/* [switch_type(drsuapi_DsReplicaInfoType)] */; struct drsuapi_DsGetMemberships2Ctr1 { uint32_t num_entries;/* [range(0,10000)] */ struct drsuapi_DsGetMembershipsCtr1 **ctrl_array;/* [unique,size_is(num_entries)] */ }; union drsuapi_DsGetMemberships2Ctr { struct drsuapi_DsGetMembershipsCtr1 ctr1;/* [case] */ }/* [switch_type(uint32)] */; struct drsuapi_DsGetMemberships2Request1 { uint32_t num_req;/* [range(1,10000)] */ struct drsuapi_DsGetMembershipsRequest1 **req_array;/* [unique,size_is(num_req)] */ }; union drsuapi_DsGetMemberships2Request { struct drsuapi_DsGetMemberships2Request1 req1;/* [case] */ }/* [switch_type(uint32)] */; struct drsuapi_DsSiteCostInfo { WERROR error_code; uint32_t site_cost; }; struct drsuapi_QuerySitesByCostCtr1 { uint32_t num_info;/* [range(0,10000)] */ struct drsuapi_DsSiteCostInfo *info;/* [unique,size_is(num_info)] */ uint32_t flags_reserved;/* [value(0)] */ }; union drsuapi_QuerySitesByCostCtr { struct drsuapi_QuerySitesByCostCtr1 ctr1;/* [case] */ }/* [switch_type(uint32)] */; struct drsuapi_QuerySitesByCostRequest1 { const char *site_from;/* [unique,charset(UTF16)] */ uint32_t num_req;/* [range(1,10000)] */ const char **site_to;/* [unique,charset(UTF16),size_is(num_req)] */ uint32_t flags; }; union drsuapi_QuerySitesByCostRequest { struct drsuapi_QuerySitesByCostRequest1 req1;/* [case] */ }/* [switch_type(uint32)] */; struct drsuapi_DsBind { struct { struct GUID *bind_guid;/* [unique] */ struct drsuapi_DsBindInfoCtr *bind_info;/* [unique] */ } in; struct { struct policy_handle *bind_handle;/* [ref] */ struct drsuapi_DsBindInfoCtr *bind_info;/* [unique] */ WERROR result; } out; }; struct drsuapi_DsUnbind { struct { struct policy_handle *bind_handle;/* [ref] */ } in; struct { struct policy_handle *bind_handle;/* [ref] */ WERROR result; } out; }; struct drsuapi_DsReplicaSync { struct { struct policy_handle *bind_handle;/* [ref] */ uint32_t level; union drsuapi_DsReplicaSyncRequest *req;/* [ref,switch_is(level)] */ } in; struct { WERROR result; } out; }; struct drsuapi_DsGetNCChanges { struct { struct policy_handle *bind_handle;/* [ref] */ uint32_t level; union drsuapi_DsGetNCChangesRequest *req;/* [ref,switch_is(level)] */ } in; struct { uint32_t *level_out;/* [ref] */ union drsuapi_DsGetNCChangesCtr *ctr;/* [ref,switch_is(*level_out)] */ WERROR result; } out; }; struct drsuapi_DsReplicaUpdateRefs { struct { struct policy_handle *bind_handle;/* [ref] */ uint32_t level; union drsuapi_DsReplicaUpdateRefsRequest req;/* [switch_is(level)] */ } in; struct { WERROR result; } out; }; struct drsuapi_DsReplicaAdd { struct { struct policy_handle *bind_handle;/* [ref] */ uint32_t level; union drsuapi_DsReplicaAddRequest req;/* [switch_is(level)] */ } in; struct { WERROR result; } out; }; struct drsuapi_DsReplicaDel { struct { struct policy_handle *bind_handle;/* [ref] */ uint32_t level; union drsuapi_DsReplicaDelRequest req;/* [switch_is(level)] */ } in; struct { WERROR result; } out; }; struct drsuapi_DsReplicaMod { struct { struct policy_handle *bind_handle;/* [ref] */ uint32_t level; union drsuapi_DsReplicaModRequest req;/* [switch_is(level)] */ } in; struct { WERROR result; } out; }; struct DRSUAPI_VERIFY_NAMES { struct { WERROR result; } out; }; struct drsuapi_DsGetMemberships { struct { struct policy_handle *bind_handle;/* [ref] */ uint32_t level; union drsuapi_DsGetMembershipsRequest *req;/* [ref,switch_is(level)] */ } in; struct { uint32_t *level_out;/* [ref] */ union drsuapi_DsGetMembershipsCtr *ctr;/* [ref,switch_is(*level_out)] */ WERROR result; } out; }; struct DRSUAPI_INTER_DOMAIN_MOVE { struct { WERROR result; } out; }; struct drsuapi_DsGetNT4ChangeLog { struct { struct policy_handle *bind_handle;/* [ref] */ uint32_t level; union drsuapi_DsGetNT4ChangeLogRequest *req;/* [ref,switch_is(level)] */ } in; struct { uint32_t *level_out;/* [ref] */ union drsuapi_DsGetNT4ChangeLogInfo *info;/* [ref,switch_is(*level_out)] */ WERROR result; } out; }; struct drsuapi_DsCrackNames { struct { struct policy_handle *bind_handle;/* [ref] */ uint32_t level; union drsuapi_DsNameRequest *req;/* [ref,switch_is(level)] */ } in; struct { uint32_t *level_out;/* [ref] */ union drsuapi_DsNameCtr *ctr;/* [ref,switch_is(*level_out)] */ WERROR result; } out; }; struct drsuapi_DsWriteAccountSpn { struct { struct policy_handle *bind_handle;/* [ref] */ uint32_t level; union drsuapi_DsWriteAccountSpnRequest *req;/* [ref,switch_is(level)] */ } in; struct { uint32_t *level_out;/* [ref] */ union drsuapi_DsWriteAccountSpnResult *res;/* [ref,switch_is(*level_out)] */ WERROR result; } out; }; struct drsuapi_DsRemoveDSServer { struct { struct policy_handle *bind_handle;/* [ref] */ uint32_t level; union drsuapi_DsRemoveDSServerRequest *req;/* [ref,switch_is(level)] */ } in; struct { uint32_t *level_out;/* [ref] */ union drsuapi_DsRemoveDSServerResult *res;/* [ref,switch_is(*level_out)] */ WERROR result; } out; }; struct DRSUAPI_REMOVE_DS_DOMAIN { struct { WERROR result; } out; }; struct drsuapi_DsGetDomainControllerInfo { struct { struct policy_handle *bind_handle;/* [ref] */ int32_t level; union drsuapi_DsGetDCInfoRequest *req;/* [ref,switch_is(level)] */ } in; struct { int32_t *level_out;/* [ref] */ union drsuapi_DsGetDCInfoCtr *ctr;/* [ref,switch_is(*level_out)] */ WERROR result; } out; }; struct drsuapi_DsAddEntry { struct { struct policy_handle *bind_handle;/* [ref] */ int32_t level; union drsuapi_DsAddEntryRequest *req;/* [ref,switch_is(level)] */ } in; struct { int32_t *level_out;/* [ref] */ union drsuapi_DsAddEntryCtr *ctr;/* [ref,switch_is(*level_out)] */ WERROR result; } out; }; struct drsuapi_DsExecuteKCC { struct { struct policy_handle *bind_handle;/* [ref] */ uint32_t level; union drsuapi_DsExecuteKCCRequest *req;/* [ref,switch_is(level)] */ } in; struct { WERROR result; } out; }; struct drsuapi_DsReplicaGetInfo { struct { struct policy_handle *bind_handle;/* [ref] */ enum drsuapi_DsReplicaGetInfoLevel level; union drsuapi_DsReplicaGetInfoRequest *req;/* [ref,switch_is(level)] */ } in; struct { enum drsuapi_DsReplicaInfoType *info_type;/* [ref] */ union drsuapi_DsReplicaInfo *info;/* [ref,switch_is(*info_type)] */ WERROR result; } out; }; struct DRSUAPI_ADD_SID_HISTORY { struct { WERROR result; } out; }; struct drsuapi_DsGetMemberships2 { struct { struct policy_handle *bind_handle;/* [ref] */ uint32_t level; union drsuapi_DsGetMemberships2Request *req;/* [ref,switch_is(level)] */ } in; struct { uint32_t *level_out;/* [ref] */ union drsuapi_DsGetMemberships2Ctr *ctr;/* [ref,switch_is(*level_out)] */ WERROR result; } out; }; struct DRSUAPI_REPLICA_VERIFY_OBJECTS { struct { WERROR result; } out; }; struct DRSUAPI_GET_OBJECT_EXISTENCE { struct { WERROR result; } out; }; struct drsuapi_QuerySitesByCost { struct { struct policy_handle *bind_handle;/* [ref] */ uint32_t level; union drsuapi_QuerySitesByCostRequest *req;/* [ref,switch_is(level)] */ } in; struct { uint32_t *level_out;/* [ref] */ union drsuapi_QuerySitesByCostCtr *ctr;/* [ref,switch_is(*level_out)] */ WERROR result; } out; }; #endif /* _HEADER_drsuapi */