⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 drsuapi.idl

📁 samba最新软件
💻 IDL
📖 第 1 页 / 共 4 页
字号:
#include "idl_types.h"import "security.idl", "misc.idl", "samr.idl";[   uuid("e3514235-4b06-11d1-ab04-00c04fc2dcd2"),  version(4.0),  endpoint("ncacn_np:[\\pipe\\lsass]","ncacn_np:[\\pipe\\protected_storage]", "ncacn_ip_tcp:", "ncalrpc:"),  authservice("ldap"),  helpstring("Active Directory Replication"),  helper("librpc/ndr/ndr_drsuapi.h"),  pointer_default(unique)]interface drsuapi{	typedef bitmap samr_GroupAttrs samr_GroupAttrs;	/*****************/        /* Function 0x00 */        typedef [bitmap32bit] bitmap {		DRSUAPI_SUPPORTED_EXTENSION_BASE			= 0x00000001,		DRSUAPI_SUPPORTED_EXTENSION_ASYNC_REPLICATION		= 0x00000002,		DRSUAPI_SUPPORTED_EXTENSION_REMOVEAPI			= 0x00000004,		DRSUAPI_SUPPORTED_EXTENSION_MOVEREQ_V2			= 0x00000008,		DRSUAPI_SUPPORTED_EXTENSION_GETCHG_COMPRESS		= 0x00000010,		DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V1			= 0x00000020,		DRSUAPI_SUPPORTED_EXTENSION_RESTORE_USN_OPTIMIZATION	= 0x00000040,		DRSUAPI_SUPPORTED_EXTENSION_00000080			= 0x00000080,		DRSUAPI_SUPPORTED_EXTENSION_KCC_EXECUTE			= 0x00000100,		DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_V2			= 0x00000200,		DRSUAPI_SUPPORTED_EXTENSION_LINKED_VALUE_REPLICATION	= 0x00000400,		DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V2			= 0x00000800,		DRSUAPI_SUPPORTED_EXTENSION_INSTANCE_TYPE_NOT_REQ_ON_MOD= 0x00001000,		DRSUAPI_SUPPORTED_EXTENSION_CRYPTO_BIND			= 0x00002000,		DRSUAPI_SUPPORTED_EXTENSION_GET_REPL_INFO		= 0x00004000,		DRSUAPI_SUPPORTED_EXTENSION_STRONG_ENCRYPTION		= 0x00008000,		DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V01			= 0x00010000,		DRSUAPI_SUPPORTED_EXTENSION_TRANSITIVE_MEMBERSHIP	= 0x00020000,		DRSUAPI_SUPPORTED_EXTENSION_ADD_SID_HISTORY		= 0x00040000,		DRSUAPI_SUPPORTED_EXTENSION_POST_BETA3			= 0x00080000,		DRSUAPI_SUPPORTED_EXTENSION_00100000			= 0x00100000,		DRSUAPI_SUPPORTED_EXTENSION_GET_MEMBERSHIPS2		= 0x00200000,		DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V6		= 0x00400000,		DRSUAPI_SUPPORTED_EXTENSION_NONDOMAIN_NCS		= 0x00800000,		DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V8		= 0x01000000,		DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V5		= 0x02000000,		DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V6		= 0x04000000,		/*		 * the following 3 have the same value		 * repadmin.exe /bind says that		 */		DRSUAPI_SUPPORTED_EXTENSION_ADDENTRYREPLY_V3		= 0x08000000,		DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V7		= 0x08000000,		DRSUAPI_SUPPORTED_EXTENSION_VERIFY_OBJECT		= 0x08000000,		DRSUAPI_SUPPORTED_EXTENSION_XPRESS_COMPRESS		= 0x10000000,		DRSUAPI_SUPPORTED_EXTENSION_20000000			= 0x20000000,		DRSUAPI_SUPPORTED_EXTENSION_40000000			= 0x40000000,		DRSUAPI_SUPPORTED_EXTENSION_80000000			= 0x80000000	} drsuapi_SupportedExtensions;	/* this is used by w2k */	typedef struct {		drsuapi_SupportedExtensions supported_extensions;		GUID site_guid;		uint32 u1;	} drsuapi_DsBindInfo24;	/* this is used by w2k3 */	typedef struct {		drsuapi_SupportedExtensions supported_extensions;		GUID site_guid;		uint32 u1;		uint32 repl_epoch;	} drsuapi_DsBindInfo28;	typedef struct {		[flag(NDR_REMAINING)] DATA_BLOB info;	} drsuapi_DsBindInfoFallBack;	typedef [nodiscriminant] union {		[case(24)][subcontext(4)] drsuapi_DsBindInfo24 info24;		[case(28)][subcontext(4)] drsuapi_DsBindInfo28 info28;		[default][subcontext(4)] drsuapi_DsBindInfoFallBack FallBack;	} drsuapi_DsBindInfo;	/* the drsuapi_DsBindInfoCtr was this before	 * typedef [flag(NDR_PAHEX)] struct {	 *	[range(1,10000)] uint32 length;	 *	[size_is(length)] uint8 data[];	 * } drsuapi_DsBindInfo;	 *	 * but we don't want the caller to manually decode this blob,	 * so we're doing it here	 */	typedef struct {		[range(1,10000)] uint32 length;		[switch_is(length)] drsuapi_DsBindInfo info;	} drsuapi_DsBindInfoCtr;	/* this is a magic guid you need to pass to DsBind to make drsuapi_DsWriteAccountSpn() work	 * 	 * maybe the bind_guid could also be the invocation_id see drsuapi_DsReplicaConnection04	 */	const char *DRSUAPI_DS_BIND_GUID = "e24d201a-4fd6-11d1-a3da-0000f875ae0d";	/* 	 * this magic guid are needed to fetch the whole tree with drsuapi_DsGetNCChanges()	 * as administrator and this values are also used in the destination_dsa_guid field	 * of drsuapi_DsGetNCChangesReq5/8 and the source_dsa_guid is zero.	 */	const char *DRSUAPI_DS_BIND_GUID_W2K	= "6abec3d1-3054-41c8-a362-5a0c5b7d5d71";	const char *DRSUAPI_DS_BIND_GUID_W2K3	= "6afab99c-6e26-464a-975f-f58f105218bc";	[public] WERROR drsuapi_DsBind(		[in,unique]	    GUID *bind_guid,		[in,out,unique]    drsuapi_DsBindInfoCtr *bind_info,		[out]   policy_handle *bind_handle		);	/*****************/        /* Function 0x01 */	WERROR drsuapi_DsUnbind(		[in,out] policy_handle *bind_handle		);	/*****************/	/* Function 0x02 */	typedef [public,gensize] struct {		[value(ndr_size_drsuapi_DsReplicaObjectIdentifier(r, ndr->flags)-4)] uint32 __ndr_size;		[value(ndr_size_dom_sid28(&sid, ndr->flags))]  uint32 __ndr_size_sid;		GUID guid;		dom_sid28 sid;		[value(strlen_m(dn))] uint32 __ndr_size_dn;		[charset(UTF16),size_is(__ndr_size_dn+1)] uint16 dn[];	} drsuapi_DsReplicaObjectIdentifier;	typedef [public] bitmap {		DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_OPERATION	= 0x00000001,		DRSUAPI_DS_REPLICA_SYNC_WRITEABLE		= 0x00000002,		DRSUAPI_DS_REPLICA_SYNC_PERIODIC		= 0x00000004,		DRSUAPI_DS_REPLICA_SYNC_INTERSITE_MESSAGING	= 0x00000008,		DRSUAPI_DS_REPLICA_SYNC_ALL_SOURCES		= 0x00000010,		DRSUAPI_DS_REPLICA_SYNC_FULL			= 0x00000020,		DRSUAPI_DS_REPLICA_SYNC_URGENT			= 0x00000040,		DRSUAPI_DS_REPLICA_SYNC_NO_DISCARD		= 0x00000080,		DRSUAPI_DS_REPLICA_SYNC_FORCE			= 0x00000100,		DRSUAPI_DS_REPLICA_SYNC_ADD_REFERENCE		= 0x00000200,		DRSUAPI_DS_REPLICA_SYNC_NEVER_COMPLETED		= 0x00000400,		DRSUAPI_DS_REPLICA_SYNC_TWO_WAY			= 0x00000800,		DRSUAPI_DS_REPLICA_SYNC_NEVER_NOTIFY		= 0x00001000,		DRSUAPI_DS_REPLICA_SYNC_INITIAL			= 0x00002000,		DRSUAPI_DS_REPLICA_SYNC_USE_COMPRESSION		= 0x00004000,		DRSUAPI_DS_REPLICA_SYNC_ABANDONED		= 0x00008000,		DRSUAPI_DS_REPLICA_SYNC_INITIAL_IN_PROGRESS	= 0x00010000,		DRSUAPI_DS_REPLICA_SYNC_PARTIAL_ATTRIBUTE_SET	= 0x00020000,		DRSUAPI_DS_REPLICA_SYNC_REQUEUE			= 0x00040000,		DRSUAPI_DS_REPLICA_SYNC_NOTIFICATION		= 0x00080000,		DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_REPLICA	= 0x00100000,		DRSUAPI_DS_REPLICA_SYNC_CRITICAL		= 0x00200000,		DRSUAPI_DS_REPLICA_SYNC_FULL_IN_PROGRESS	= 0x00400000,		DRSUAPI_DS_REPLICA_SYNC_PREEMPTED		= 0x00800000	} drsuapi_DsReplicaSyncOptions;	typedef struct {		drsuapi_DsReplicaObjectIdentifier *naming_context;		GUID source_dsa_guid;		astring *other_info; /* I assume this is related to the repsFromTo1OtherInfo dns_name */		drsuapi_DsReplicaSyncOptions options;	} drsuapi_DsReplicaSyncRequest1;	typedef [switch_type(int32)] union {		[case(1)] drsuapi_DsReplicaSyncRequest1 req1;	} drsuapi_DsReplicaSyncRequest;	WERROR drsuapi_DsReplicaSync(		[in] policy_handle *bind_handle,		[in] int32 level,		[in,switch_is(level)] drsuapi_DsReplicaSyncRequest req		);	/*****************/	/* Function 0x03 */	typedef [public] struct {		hyper tmp_highest_usn; /* updated after each object update */		hyper reserved_usn;		hyper highest_usn; /* updated after a full replication cycle */	} drsuapi_DsReplicaHighWaterMark;	typedef [public] struct {		GUID source_dsa_invocation_id; /* the 'invocationId' field of the CN=NTDS Settings object */		hyper highest_usn;  /* updated after a full replication cycle */	} drsuapi_DsReplicaCursor;	typedef struct {		uint32 u1;		uint32 u2;		[range(0,0x100000)] uint32 count;		uint32 u3;		[size_is(count)] drsuapi_DsReplicaCursor cursors[];	} drsuapi_DsReplicaCursorCtrEx;	typedef [public] bitmap {		/* the _WRITEABLE flag indicates a replication with all attributes		 *		 * --metze		 */		DRSUAPI_DS_REPLICA_NEIGHBOUR_WRITEABLE				= 0x00000010,		DRSUAPI_DS_REPLICA_NEIGHBOUR_SYNC_ON_STARTUP			= 0x00000020,		DRSUAPI_DS_REPLICA_NEIGHBOUR_DO_SCHEDULED_SYNCS			= 0x00000040,		DRSUAPI_DS_REPLICA_NEIGHBOUR_USE_ASYNC_INTERSIDE_TRANSPORT	= 0x00000080,		DRSUAPI_DS_REPLICA_NEIGHBOUR_TWO_WAY_SYNC			= 0x00000200,		DRSUAPI_DS_REPLICA_NEIGHBOUR_RETURN_OBJECT_PARENTS		= 0x00000800,		DRSUAPI_DS_REPLICA_NEIGHBOUR_FULL_IN_PROGRESS			= 0x00001000, /* was 0x00010000, */		DRSUAPI_DS_REPLICA_NEIGHBOUR_FULL_NEXT_PACKET			= 0x00002000, /* was 0x00020000, */		DRSUAPI_DS_REPLICA_NEIGHBOUR_NEVER_SYNCED			= 0x00200000,		DRSUAPI_DS_REPLICA_NEIGHBOUR_PREEMPTED				= 0x01000000,		DRSUAPI_DS_REPLICA_NEIGHBOUR_IGNORE_CHANGE_NOTIFICATIONS	= 0x04000000,		DRSUAPI_DS_REPLICA_NEIGHBOUR_DISABLE_SCHEDULED_SYNC		= 0x08000000,		/* 		 * the following NOTE applies to DsGetNCChangesRequest5:		 *  - the data is only compressed when 10 or more objects are replicated		 *  - but there could also be a size limit of 35 KBytes or something like that		 *  - the reply is DsGetNCChangesCtr2		 *  - maybe the same applies to DsGetNCChangesRequest8...		 *		 *  --metze		 */		DRSUAPI_DS_REPLICA_NEIGHBOUR_COMPRESS_CHANGES			= 0x10000000,		DRSUAPI_DS_REPLICA_NEIGHBOUR_NO_CHANGE_NOTIFICATIONS		= 0x20000000,		DRSUAPI_DS_REPLICA_NEIGHBOUR_PARTIAL_ATTRIBUTE_SET		= 0x40000000	} drsuapi_DsReplicaNeighbourFlags;	typedef struct {		GUID destination_dsa_guid;		GUID source_dsa_invocation_id; /* the 'invocationId' field of the CN=NTDS Settings object */		[ref] drsuapi_DsReplicaObjectIdentifier *naming_context;		drsuapi_DsReplicaHighWaterMark highwatermark;		drsuapi_DsReplicaCursorCtrEx *uptodateness_vector;		drsuapi_DsReplicaNeighbourFlags replica_flags;		uint32 max_object_count; /* w2k3 uses min(133,max(100,max_object_count)) */		uint32 max_ndr_size; /* w2k3 seems to ignore this */		uint32 unknown4;		hyper h1;	} drsuapi_DsGetNCChangesRequest5;	/*	 * In DRSUAPI all attributes with syntax 2.5.5.2	 * are identified by uint32 values	 *	 * the following table shows the mapping used between the two representations	 * e.g. - objectClass 'nTDSDSA' has governsID: 1.2.840.113556.1.5.7000.47	 *        and a UINT32-ID of '0x0017002F'.	 *      - so the OID 1.2.840.113556.1.5.7000.47 is splitted into a	 *        OID-prefix: 1.2.840.113556.1.5.7000	 *	  and a value: 47 => 0x2F	 *      - the mapping table gives a UINT32-prefix: 0x00170000	 *      - and the UINT32-ID is 0x0017002F = 0x00170000 | 0x2F	 *	 * This prefix mapping table is replied in the drsuapi_DsReplicaOIDMapping_Ctr	 * array. The following are the default mappings of w2k3	 *	 * OID-prefix			=> UINT32-Id prefix	 *	 * 2.5.4.*			=> 0x00000000 (standard attributes RFC2256 core.schema)	 * 2.5.6.*			=> 0x00010000 (standard object classes RFC2256 core.schema)	 * 1.2.840.113556.1.2.*   	=> 0x00020000	 * 1.2.840.113556.1.3.*		=> 0x00030000	 * 2.5.5.*			=> 0x00080000 (attributeSyntax OID's)	 * 1.2.840.113556.1.4.*		=> 0x00090000	 * 1.2.840.113556.1.5.*		=> 0x000A0000	 * 2.16.840.1.113730.3.*	=> 0x00140000	 * 0.9.2342.19200300.100.1.*	=> 0x00150000	 * 2.16.840.1.113730.3.1.*	=> 0x00160000	 * 1.2.840.113556.1.5.7000.*	=> 0x00170000	 * 2.5.21.*			=> 0x00180000 (attrs for SubSchema)	 * 2.5.18.*			=> 0x00190000 (createTimeStamp,modifyTimeStamp, SubSchema)	 * 2.5.20.*			=> 0x001A0000	 * 1.3.6.1.4.1.1466.101.119.*	=> 0x001B0000 (dynamicObject, entryTTL)	 * 2.16.840.1.113730.3.2.*	=> 0x001C0000	 * 1.3.6.1.4.1.250.1.*		=> 0x001D0000	 * 1.2.840.113549.1.9.*   	=> 0x001E0000 (unstructuredAddress,unstructuredName)	 * 0.9.2342.19200300.100.4.*	=> 0x001F0000	 *	 * Here's a list of used 'attributeSyntax' OID's	 *	 * 2.5.5.1	=> Object(DS-DN) string	 *		   struct drsuapi_DsObjectIdentifier3	 *	 * 2.5.5.2	=> OID-string	 *		=> all values are represented as uint32 values in drsuapi	 *		=> governsID, attributeID and attributeSyntax returned as OID-Strings in LDAP	 *		=> mayContain, mustContain and all other attributes with 2.5.5.2 syntax	 *		   are returned as attribute names	 *	 * 2.5.5.4	=> String(Teletex) case-insensitive string with teletex charset	 *	 * 2.5.5.5	=> String(IA5) case-sensitive string	 *	 * 2.5.5.6	=> String(Numeric)	 *		=> eg. internationalISDNNumber	 *	 * 2.5.5.7	=> Object(DN-Binary) B:<byte count>:<bytes>:<object DN>	 *		=> e.g. wellKnownObjects	 *	 * 2.5.5.8	=> BOOL	 *	 * 2.5.5.9	=> int32	 *	 * 2.5.5.10	=> DATA_BLOB	 *		=> struct GUID	 *	 * 2.5.5.11	=> LDAP timestring	 *		=> NTTIME_1sec	 *	 * 2.5.5.12	=> String(Unicode) case-insensitive string	 *		=> 'standard strings'	 *	 * 2.5.5.13	=> Object(Presentation-Address) string	 *		=> used in objectClass applicationEntity	 *	 * 2.5.5.14	=> Object(DN-String) S:<char count>:<string>:<object DN>	 *		=> not used	 *	 * 2.5.5.15	=> ntSecurityDescriptor	 *	 * 2.5.5.16	=> int64	 *	 * 2.5.5.17	=> dom_sid	 */	typedef [nopush,nopull] struct {		[range(0,10000),value(ndr_size_drsuapi_DsReplicaOID_oid(oid, 0))] uint32 __ndr_size;		[size_is(__ndr_size),charset(DOS)] uint8 *oid; /* it's encoded with asn1_write_OID_String() */	} drsuapi_DsReplicaOID;	typedef struct {		uint32 id_prefix;		drsuapi_DsReplicaOID oid;	} drsuapi_DsReplicaOIDMapping;	typedef [public] struct {		[range(0,0x100000)] uint32 num_mappings;		[size_is(num_mappings)] drsuapi_DsReplicaOIDMapping *mappings;	} drsuapi_DsReplicaOIDMapping_Ctr;	typedef [flag(NDR_PAHEX),v1_enum] enum {		DRSUAPI_OBJECTCLASS_top			= 0x00010000,		DRSUAPI_OBJECTCLASS_classSchema		= 0x0003000d,		DRSUAPI_OBJECTCLASS_attributeSchema	= 0x0003000e	} drsuapi_DsObjectClassId;	typedef [flag(NDR_PAHEX),v1_enum,public] enum {		DRSUAPI_ATTRIBUTE_objectClass			= 0x00000000,		DRSUAPI_ATTRIBUTE_description			= 0x0000000d,		DRSUAPI_ATTRIBUTE_member			= 0x0000001f,		DRSUAPI_ATTRIBUTE_instanceType			= 0x00020001,		DRSUAPI_ATTRIBUTE_whenCreated			= 0x00020002,		DRSUAPI_ATTRIBUTE_hasMasterNCs			= 0x0002000e,		DRSUAPI_ATTRIBUTE_governsID			= 0x00020016,		DRSUAPI_ATTRIBUTE_attributeID			= 0x0002001e,		DRSUAPI_ATTRIBUTE_attributeSyntax		= 0x00020020,		DRSUAPI_ATTRIBUTE_isSingleValued		= 0x00020021,		DRSUAPI_ATTRIBUTE_rangeLower			= 0x00020022,		DRSUAPI_ATTRIBUTE_rangeUpper			= 0x00020023,		DRSUAPI_ATTRIBUTE_dMDLocation			= 0x00020024,		DRSUAPI_ATTRIBUTE_objectVersion			= 0x0002004c,		DRSUAPI_ATTRIBUTE_invocationId			= 0x00020073,		DRSUAPI_ATTRIBUTE_showInAdvancedViewOnly	= 0x000200a9,		DRSUAPI_ATTRIBUTE_adminDisplayName		= 0x000200c2,		DRSUAPI_ATTRIBUTE_adminDescription		= 0x000200e2,		DRSUAPI_ATTRIBUTE_oMSyntax			= 0x000200e7,		DRSUAPI_ATTRIBUTE_ntSecurityDescriptor		= 0x00020119,		DRSUAPI_ATTRIBUTE_searchFlags			= 0x0002014e,		DRSUAPI_ATTRIBUTE_lDAPDisplayName		= 0x000201cc,		DRSUAPI_ATTRIBUTE_name				= 0x00090001,		DRSUAPI_ATTRIBUTE_currentValue			= 0x0009001b,

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -