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

📄 drsuapi.idl

📁 samba最新软件
💻 IDL
📖 第 1 页 / 共 4 页
字号:
		[range(0,0x00A00000)] uint32 length;		[size_is(length)] uint8 *data;	} drsuapi_DsGetNT4ChangeLogRequest1;	typedef [switch_type(uint32)] union {		[case(1)] drsuapi_DsGetNT4ChangeLogRequest1 req1;	} drsuapi_DsGetNT4ChangeLogRequest;	typedef struct {		[range(0,0x00A00000)] uint32 length1;		[range(0,0x00A00000)] uint32 length2;		hyper unknown1;		NTTIME time2;		hyper unknown3;		NTTIME time4;		hyper unknown5;		NTTIME time6;		NTSTATUS status;		[size_is(length1)] uint8 *data1;		[size_is(length2)] uint8 *data2;	} drsuapi_DsGetNT4ChangeLogInfo1;	typedef [switch_type(uint32)] union {		[case(1)] drsuapi_DsGetNT4ChangeLogInfo1 info1;	} drsuapi_DsGetNT4ChangeLogInfo;	[todo] WERROR drsuapi_DsGetNT4ChangeLog(		[in] policy_handle *bind_handle,		[in,out] uint32 level,		[in] [switch_is(level)] drsuapi_DsGetNT4ChangeLogRequest req,		[out] [switch_is(level)] drsuapi_DsGetNT4ChangeLogInfo info		);	/*****************/	/* Function 0x0c */	typedef [v1_enum] enum {		DRSUAPI_DS_NAME_STATUS_OK			= 0,		DRSUAPI_DS_NAME_STATUS_RESOLVE_ERROR		= 1,		DRSUAPI_DS_NAME_STATUS_NOT_FOUND		= 2,		DRSUAPI_DS_NAME_STATUS_NOT_UNIQUE		= 3,		DRSUAPI_DS_NAME_STATUS_NO_MAPPING		= 4,		DRSUAPI_DS_NAME_STATUS_DOMAIN_ONLY		= 5,		DRSUAPI_DS_NAME_STATUS_NO_SYNTACTICAL_MAPPING	= 6,		DRSUAPI_DS_NAME_STATUS_TRUST_REFERRAL		= 7	} drsuapi_DsNameStatus;	typedef [v1_enum] enum {		DRSUAPI_DS_NAME_FLAG_NO_FLAGS			= 0x0,		DRSUAPI_DS_NAME_FLAG_SYNTACTICAL_ONLY		= 0x1,		DRSUAPI_DS_NAME_FLAG_EVAL_AT_DC			= 0x2,		DRSUAPI_DS_NAME_FLAG_GCVERIFY			= 0x4,		DRSUAPI_DS_NAME_FLAG_TRUST_REFERRAL		= 0x8	} drsuapi_DsNameFlags;	typedef [v1_enum] enum {		DRSUAPI_DS_NAME_FORMAT_UKNOWN			= 0,		DRSUAPI_DS_NAME_FORMAT_FQDN_1779		= 1,		DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT		= 2,		DRSUAPI_DS_NAME_FORMAT_DISPLAY			= 3,		DRSUAPI_DS_NAME_FORMAT_GUID 			= 6,		DRSUAPI_DS_NAME_FORMAT_CANONICAL		= 7,		DRSUAPI_DS_NAME_FORMAT_USER_PRINCIPAL		= 8,		DRSUAPI_DS_NAME_FORMAT_CANONICAL_EX		= 9,		DRSUAPI_DS_NAME_FORMAT_SERVICE_PRINCIPAL	= 10,		DRSUAPI_DS_NAME_FORMAT_SID_OR_SID_HISTORY	= 11,		DRSUAPI_DS_NAME_FORMAT_DNS_DOMAIN		= 12	} drsuapi_DsNameFormat;	typedef struct {		[string,charset(UTF16)] uint16 *str;	} drsuapi_DsNameString;	typedef struct {		uint32 codepage; /* 0x000004e4 - 1252 is german codepage*/		uint32 language; /* 0x00000407 - german language ID*/		drsuapi_DsNameFlags format_flags;		drsuapi_DsNameFormat format_offered;		drsuapi_DsNameFormat format_desired;		[range(1,10000)] uint32 count;		[size_is(count)] drsuapi_DsNameString *names;	} drsuapi_DsNameRequest1;	typedef [switch_type(int32)] union {		[case(1)] drsuapi_DsNameRequest1 req1;	} drsuapi_DsNameRequest;	typedef struct {		drsuapi_DsNameStatus status;		[charset(UTF16),string] uint16 *dns_domain_name;		[charset(UTF16),string] uint16 *result_name;	} drsuapi_DsNameInfo1;	typedef struct {		uint32 count;		[size_is(count)] drsuapi_DsNameInfo1 *array;	} drsuapi_DsNameCtr1;	typedef [switch_type(int32)] union {		[case(1)] drsuapi_DsNameCtr1 *ctr1;	} drsuapi_DsNameCtr;	WERROR drsuapi_DsCrackNames(		[in] policy_handle *bind_handle,		[in, out] int32 level,		[in,switch_is(level)] drsuapi_DsNameRequest req,		[out,switch_is(level)] drsuapi_DsNameCtr ctr		);	/*****************/	/* Function 0x0d */	typedef [v1_enum] enum {		DRSUAPI_DS_SPN_OPERATION_ADD	= 0,		DRSUAPI_DS_SPN_OPERATION_REPLACE= 1,		DRSUAPI_DS_SPN_OPERATION_DELETE	= 2	} drsuapi_DsSpnOperation;	typedef struct {		drsuapi_DsSpnOperation operation;		uint32 unknown1;		[charset(UTF16),string] uint16 *object_dn;		[range(0,10000)] uint32 count;		[size_is(count)] drsuapi_DsNameString *spn_names;	} drsuapi_DsWriteAccountSpnRequest1;	typedef [switch_type(int32)] union {		[case(1)] drsuapi_DsWriteAccountSpnRequest1 req1;	} drsuapi_DsWriteAccountSpnRequest;	typedef struct {		WERROR status;	} drsuapi_DsWriteAccountSpnResult1;	typedef [switch_type(int32)] union {		[case(1)] drsuapi_DsWriteAccountSpnResult1 res1;	} drsuapi_DsWriteAccountSpnResult;	WERROR drsuapi_DsWriteAccountSpn(		[in] policy_handle *bind_handle,		[in,out] int32 level,		[in,switch_is(level)] drsuapi_DsWriteAccountSpnRequest req,		[out,switch_is(level)] drsuapi_DsWriteAccountSpnResult res		);	/*****************/        /* Function 0x0e */	typedef struct {		[charset(UTF16),string] uint16 *server_dn;		[charset(UTF16),string] uint16 *domain_dn;		uint32 unknown; /* 0x000000001 */	} drsuapi_DsRemoveDSServerRequest1;	typedef [switch_type(int32)] union {		[case(1)] drsuapi_DsRemoveDSServerRequest1 req1;	} drsuapi_DsRemoveDSServerRequest;	typedef struct {		WERROR status;	} drsuapi_DsRemoveDSServerResult1;	typedef [switch_type(int32)] union {		[case(1)] drsuapi_DsRemoveDSServerResult1 res1;	} drsuapi_DsRemoveDSServerResult;	WERROR drsuapi_DsRemoveDSServer(		[in] policy_handle *bind_handle,		[in,out] int32 level,		[in,switch_is(level)] drsuapi_DsRemoveDSServerRequest req,		[out,switch_is(level)] drsuapi_DsRemoveDSServerResult res		);	/*****************/        /* Function 0x0f */	[todo] WERROR DRSUAPI_REMOVE_DS_DOMAIN();	/*****************/        /* Function 0x10 */	typedef struct {		[charset(UTF16),string] uint16 *domain_name; /* netbios or dns */		int32 level; /* specifies the switch level for the request */	} drsuapi_DsGetDCInfoRequest1;	typedef [switch_type(int32)] union {		[case(1)] drsuapi_DsGetDCInfoRequest1 req1;	} drsuapi_DsGetDCInfoRequest;	typedef struct {		[charset(UTF16),string] uint16 *netbios_name;		[charset(UTF16),string] uint16 *dns_name;		[charset(UTF16),string] uint16 *site_name;		[charset(UTF16),string] uint16 *computer_dn;		[charset(UTF16),string] uint16 *server_dn;		uint32 is_pdc;		uint32 is_enabled;	} drsuapi_DsGetDCInfo1;	typedef struct {		[range(0,10000)] uint32 count;		[size_is(count)] drsuapi_DsGetDCInfo1 *array;	} drsuapi_DsGetDCInfoCtr1;	typedef struct {		[charset(UTF16),string] uint16 *netbios_name;		[charset(UTF16),string] uint16 *dns_name;		[charset(UTF16),string] uint16 *site_name;		[charset(UTF16),string] uint16 *site_dn;		[charset(UTF16),string] uint16 *computer_dn;		[charset(UTF16),string] uint16 *server_dn;		[charset(UTF16),string] uint16 *ntds_dn;		uint32 is_pdc;		uint32 is_enabled;		uint32 is_gc;		GUID site_guid;		GUID computer_guid;		GUID server_guid;		GUID ntds_guid;	} drsuapi_DsGetDCInfo2;	typedef struct {		[range(0,10000)] uint32 count;		[size_is(count)] drsuapi_DsGetDCInfo2 *array;	} drsuapi_DsGetDCInfoCtr2;	/*	 * this represents an active connection to the	 * Directory System Agent (DSA)	 * this can be via LDAP or DRSUAPI	 */	typedef struct {		[flag(NDR_BIG_ENDIAN)] ipv4address client_ip_address;		uint32 unknown2;		uint32 connection_time; /* in seconds */		uint32 unknown4;		uint32 unknown5;		uint32 unknown6;		/*		 * client_account can be the following:		 * "W2K3\Administrator"		 * "Administrator@W2K3"		 * "cn=Administrator,cn=Users,DC=w2k3,DC=vmnet1,DC=vm,DC=base"		 * ""		 * or NULL		 */		[charset(UTF16),string] uint16 *client_account;	} drsuapi_DsGetDCConnection01;	typedef struct {		[range(0,10000)] uint32 count;		[size_is(count)] drsuapi_DsGetDCConnection01 *array;	} drsuapi_DsGetDCConnectionCtr01;	typedef [v1_enum] enum {		DRSUAPI_DC_INFO_CTR_1  = 1,		DRSUAPI_DC_INFO_CTR_2  = 2,		DRSUAPI_DC_CONNECTION_CTR_01 = -1	} drsuapi_DsGetDCInfoCtrLevels;        typedef [switch_type(int32)] union {		[case(DRSUAPI_DC_INFO_CTR_1)]  drsuapi_DsGetDCInfoCtr1  ctr1;		[case(DRSUAPI_DC_INFO_CTR_2)]  drsuapi_DsGetDCInfoCtr2  ctr2;		[case(DRSUAPI_DC_CONNECTION_CTR_01)] drsuapi_DsGetDCConnectionCtr01 ctr01;	} drsuapi_DsGetDCInfoCtr;	WERROR drsuapi_DsGetDomainControllerInfo(		[in] policy_handle *bind_handle,		[in] int32 level,		[in,switch_is(level)] drsuapi_DsGetDCInfoRequest req,		[out] int32 level_out,		[out,switch_is(level_out)] drsuapi_DsGetDCInfoCtr ctr		);	/*****************/        /* Function 0x11 */	typedef [public,noprint] struct {		drsuapi_DsReplicaObjectListItem *next_object;		drsuapi_DsReplicaObject object;	} drsuapi_DsReplicaObjectListItem;	/*	 * The DsAddEntry() call which creates a nTDSDSA object,	 * also adds a servicePrincipalName in the following form	 * to the computer account of the new domain controller	 * referenced by the "serverReferenece" attribute.	 *	 * E3514235-4B06-11D1-AB04-00C04FC2DCD2/<new-ntdsdsa-object-guid-as-string>/<domain-dns-name>	 *	 * also note that the "serverReference" isn't added to the new object!	 */	const char *DRSUAPI_NTDSDSA_KRB5_SERVICE_GUID = "E3514235-4B06-11D1-AB04-00C04FC2DCD2";	/*	 * please note the the current idl	 * for DsAddEntry does only parse 	 * what I saw between 2 w2k3 boxes	 * in my dssync experiments I got some other replies	 * so all I want to say is that this is very incomplete yet...	 * --metze	 */	typedef struct {		drsuapi_DsReplicaObjectListItem first_object;	} drsuapi_DsAddEntryRequest2;	typedef [switch_type(int32)] union {		[case(2)] drsuapi_DsAddEntryRequest2 req2;	} drsuapi_DsAddEntryRequest;	typedef struct {		uint32 unknown1;		WERROR status;		uint32 unknown2;		uint16 unknown3;	} drsuapi_DsAddEntryErrorInfoX;	typedef struct {		[range(0,10485760)] uint32 size;		[size_is(size)] uint8 *data;	} drsuapi_DsAddEntryExtraErrorBuffer;	typedef struct {		drsuapi_DsAddEntryErrorInfoX error;		drsuapi_DsAttributeId attid;		uint32 unknown2;		drsuapi_DsAddEntryExtraErrorBuffer buffer;	} drsuapi_DsAddEntryExtraError1;	typedef /*[noprint]*/ struct {		drsuapi_DsAddEntryErrorListItem1 *next;		drsuapi_DsAddEntryExtraError1 error;	} drsuapi_DsAddEntryErrorListItem1;	typedef struct {		drsuapi_DsReplicaObjectIdentifier *id;		WERROR status;		drsuapi_DsAddEntryErrorListItem1 first;	} drsuapi_DsAddEntryErrorInfo1;	typedef [switch_type(uint32)] union {		[case(1)] drsuapi_DsAddEntryErrorInfo1 error1;/*		[case(2)] drsuapi_DsAddEntryErrorInfo2 error2;		[case(3)] drsuapi_DsAddEntryErrorInfo3 error3;*/		[case(4)] drsuapi_DsAddEntryErrorInfoX errorX;		[case(5)] drsuapi_DsAddEntryErrorInfoX errorX;		[case(6)] drsuapi_DsAddEntryErrorInfoX errorX;		[case(7)] drsuapi_DsAddEntryErrorInfoX errorX;	} drsuapi_DsAddEntryErrorInfo;	typedef struct {		WERROR status;		uint32 level;		[switch_is(level)] drsuapi_DsAddEntryErrorInfo *info;	} drsuapi_DsAddEntryError1;	typedef [switch_type(uint32)] union {		[case(1)] drsuapi_DsAddEntryError1 info1;	} drsuapi_DsAddEntryError;	typedef struct {		GUID guid;		dom_sid28 sid;	} drsuapi_DsReplicaObjectIdentifier2;	typedef struct {		drsuapi_DsReplicaObjectIdentifier *id;		uint32 unknown1;		drsuapi_DsAddEntryErrorInfoX error;		[range(0,10000)] uint32 count;		[size_is(count)] drsuapi_DsReplicaObjectIdentifier2 *objects;	} drsuapi_DsAddEntryCtr2;	typedef struct {		drsuapi_DsReplicaObjectIdentifier *id;		uint32 level;		[switch_is(level)] drsuapi_DsAddEntryError *error;		[range(0,10000)] uint32 count;		[size_is(count)] drsuapi_DsReplicaObjectIdentifier2 *objects;	} drsuapi_DsAddEntryCtr3;

⌨️ 快捷键说明

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