📄 drsuapi.idl
字号:
typedef [switch_type(int32)] union { [case(2)] drsuapi_DsAddEntryCtr2 ctr2; [case(3)] drsuapi_DsAddEntryCtr3 ctr3; } drsuapi_DsAddEntryCtr; [public] WERROR drsuapi_DsAddEntry( [in] policy_handle *bind_handle, [in,out] int32 level, [in,switch_is(level)] drsuapi_DsAddEntryRequest req, [out,switch_is(level)] drsuapi_DsAddEntryCtr ctr ); /*****************/ /* Function 0x12 */ [todo] WERROR DRSUAPI_EXECUTE_KCC(); /*****************/ /* Function 0x13 */ typedef [v1_enum] enum { DRSUAPI_DS_REPLICA_GET_INFO = 1, DRSUAPI_DS_REPLICA_GET_INFO2 = 2 } drsuapi_DsReplicaGetInfoLevel; typedef [v1_enum] enum { DRSUAPI_DS_REPLICA_INFO_NEIGHBORS = 0, DRSUAPI_DS_REPLICA_INFO_CURSORS = 1, DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA = 2, DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES = 3, DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES = 4, DRSUAPI_DS_REPLICA_INFO_PENDING_OPS = 5, DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA = 6, DRSUAPI_DS_REPLICA_INFO_CURSORS2 = 7, DRSUAPI_DS_REPLICA_INFO_CURSORS3 = 8, DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2 = 9, DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2 = 10, DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02 = -2, DRSUAPI_DS_REPLICA_INFO_CONNECTIONS04 = -4, DRSUAPI_DS_REPLICA_INFO_CURSORS05 = -5, DRSUAPI_DS_REPLICA_INFO_06 = -6 } drsuapi_DsReplicaInfoType; typedef struct { drsuapi_DsReplicaInfoType info_type; [charset(UTF16),string] uint16 *object_dn; GUID guid1; } drsuapi_DsReplicaGetInfoRequest1; typedef struct { drsuapi_DsReplicaInfoType info_type; [charset(UTF16),string] uint16 *object_dn; GUID guid1; uint32 unknown1; [charset(UTF16),string] uint16 *string1; [charset(UTF16),string] uint16 *string2; uint32 unknown2; } drsuapi_DsReplicaGetInfoRequest2; typedef [switch_type(drsuapi_DsReplicaGetInfoLevel)] union { [case(DRSUAPI_DS_REPLICA_GET_INFO)] drsuapi_DsReplicaGetInfoRequest1 req1; [case(DRSUAPI_DS_REPLICA_GET_INFO2)] drsuapi_DsReplicaGetInfoRequest2 req2; } drsuapi_DsReplicaGetInfoRequest; typedef struct { [charset(UTF16),string] uint16 *naming_context_dn; [charset(UTF16),string] uint16 *source_dsa_obj_dn; [charset(UTF16),string] uint16 *source_dsa_address; [charset(UTF16),string] uint16 *transport_obj_dn; drsuapi_DsReplicaNeighbourFlags replica_flags; uint32 reserved; GUID naming_context_obj_guid; GUID source_dsa_obj_guid; GUID source_dsa_invocation_id; GUID transport_obj_guid; hyper tmp_highest_usn; hyper highest_usn; NTTIME last_success; NTTIME last_attempt; WERROR result_last_attempt; uint32 consecutive_sync_failures; } drsuapi_DsReplicaNeighbour; typedef struct { uint32 count; uint32 reserved; [size_is(count)] drsuapi_DsReplicaNeighbour array[]; } drsuapi_DsReplicaNeighbourCtr; typedef struct { uint32 count; uint32 reserved; [size_is(count)] drsuapi_DsReplicaCursor array[]; } drsuapi_DsReplicaCursorCtr; typedef struct { [charset(UTF16),string] uint16 *attribute_name; uint32 version; NTTIME originating_change_time; GUID originating_invocation_id; hyper originating_usn; hyper local_usn; } drsuapi_DsReplicaObjMetaData; typedef struct { uint32 count; uint32 reserved; [size_is(count)] drsuapi_DsReplicaObjMetaData array[]; } drsuapi_DsReplicaObjMetaDataCtr; typedef struct { [charset(UTF16),string] uint16 *dsa_obj_dn; GUID dsa_obj_guid; NTTIME first_failure; uint32 num_failures; WERROR last_result; } drsuapi_DsReplicaKccDsaFailure; typedef struct { uint32 count; uint32 reserved; [size_is(count)] drsuapi_DsReplicaKccDsaFailure array[]; } drsuapi_DsReplicaKccDsaFailuresCtr; typedef enum { DRSUAPI_DS_REPLICA_OP_TYPE_SYNC = 0, DRSUAPI_DS_REPLICA_OP_TYPE_ADD = 1, DRSUAPI_DS_REPLICA_OP_TYPE_DELETE = 2, DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY = 3, DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS = 4 } drsuapi_DsReplicaOpType; typedef [switch_type(drsuapi_DsReplicaOpType)] union { [case(DRSUAPI_DS_REPLICA_OP_TYPE_SYNC)] drsuapi_DsReplicaSyncOptions sync; [case(DRSUAPI_DS_REPLICA_OP_TYPE_ADD)] drsuapi_DsReplicaAddOptions add; [case(DRSUAPI_DS_REPLICA_OP_TYPE_DELETE)] drsuapi_DsReplicaDeleteOptions delete; [case(DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY)] drsuapi_DsReplicaModifyOptions modify; [case(DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS)] drsuapi_DsReplicaUpdateRefsOptions update_refs; [default] uint32 unknown; } drsuapi_DsRplicaOpOptions; typedef struct { NTTIME operation_start; uint32 serial_num; /* unique till reboot */ uint32 priority; drsuapi_DsReplicaOpType operation_type; [switch_is(operation_type)] drsuapi_DsRplicaOpOptions options; [charset(UTF16),string] uint16 *nc_dn; [charset(UTF16),string] uint16 *remote_dsa_obj_dn; [charset(UTF16),string] uint16 *remote_dsa_address; GUID nc_obj_guid; GUID remote_dsa_obj_guid; } drsuapi_DsReplicaOp; typedef struct { NTTIME time; uint32 count; [size_is(count)] drsuapi_DsReplicaOp array[]; } drsuapi_DsReplicaOpCtr; typedef struct { [charset(UTF16),string] uint16 *attribute_name; [charset(UTF16),string] uint16 *object_dn; [value(ndr_size_DATA_BLOB(0,binary,0))] uint32 __ndr_size_binary; DATA_BLOB *binary; NTTIME deleted; NTTIME created; uint32 version; NTTIME originating_change_time; GUID originating_invocation_id; hyper originating_usn; hyper local_usn; } drsuapi_DsReplicaAttrValMetaData; typedef struct { uint32 count; int32 enumeration_context; [size_is(count)] drsuapi_DsReplicaAttrValMetaData array[]; } drsuapi_DsReplicaAttrValMetaDataCtr; typedef struct { uint32 count; int32 enumeration_context; [size_is(count)] drsuapi_DsReplicaCursor2 array[]; } drsuapi_DsReplicaCursor2Ctr; typedef struct { GUID source_dsa_invocation_id; hyper highest_usn; NTTIME last_sync_success; [charset(UTF16),string] uint16 *source_dsa_obj_dn; } drsuapi_DsReplicaCursor3; typedef struct { uint32 count; int32 enumeration_context; [size_is(count)] drsuapi_DsReplicaCursor3 array[]; } drsuapi_DsReplicaCursor3Ctr; typedef struct { [charset(UTF16),string] uint16 *attribute_name; uint32 version; NTTIME originating_change_time; GUID originating_invocation_id; hyper originating_usn; hyper local_usn; [charset(UTF16),string] uint16 *originating_dsa_dn; } drsuapi_DsReplicaObjMetaData2; typedef struct { uint32 count; int32 enumeration_context; [size_is(count)] drsuapi_DsReplicaObjMetaData2 array[]; } drsuapi_DsReplicaObjMetaData2Ctr; typedef struct { [charset(UTF16),string] uint16 *attribute_name; [charset(UTF16),string] uint16 *object_dn; [value(ndr_size_DATA_BLOB(0,binary,0))] uint32 __ndr_size_binary; DATA_BLOB *binary; NTTIME deleted; NTTIME created; uint32 version; NTTIME originating_change_time; GUID originating_invocation_id; hyper originating_usn; hyper local_usn; [charset(UTF16),string] uint16 *originating_dsa_dn; } drsuapi_DsReplicaAttrValMetaData2; typedef struct { uint32 count; int32 enumeration_context; [size_is(count)] drsuapi_DsReplicaAttrValMetaData2 array[]; } drsuapi_DsReplicaAttrValMetaData2Ctr; typedef struct { hyper u1; /* session number? */ uint32 u2; uint32 u3; GUID bind_guid; NTTIME_1sec bind_time; [flag(NDR_BIG_ENDIAN)] ipv4address client_ip_address; uint32 u5; /* this is the same value the client used as u1 in the DsBindInfoX struct */ } drsuapi_DsReplicaConnection04; typedef struct { [range(0,10000)] uint32 count; uint32 reserved; [size_is(count)] drsuapi_DsReplicaConnection04 array[]; } drsuapi_DsReplicaConnection04Ctr; typedef struct { [charset(UTF16),string] uint16 *str1; uint32 u1; uint32 u2; uint32 u3; uint32 u4; uint32 u5; hyper u6; uint32 u7; } drsuapi_DsReplica06; typedef struct { [range(0,256)] uint32 count; uint32 reserved; [size_is(count)] drsuapi_DsReplica06 array[]; } drsuapi_DsReplica06Ctr; typedef [switch_type(drsuapi_DsReplicaInfoType)] union { [case(DRSUAPI_DS_REPLICA_INFO_NEIGHBORS)] drsuapi_DsReplicaNeighbourCtr *neighbours; [case(DRSUAPI_DS_REPLICA_INFO_CURSORS)] drsuapi_DsReplicaCursorCtr *cursors; [case(DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA)] drsuapi_DsReplicaObjMetaDataCtr *objmetadata; [case(DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES)] drsuapi_DsReplicaKccDsaFailuresCtr *connectfailures; [case(DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES)] drsuapi_DsReplicaKccDsaFailuresCtr *linkfailures; [case(DRSUAPI_DS_REPLICA_INFO_PENDING_OPS)] drsuapi_DsReplicaOpCtr *pendingops; [case(DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA)] drsuapi_DsReplicaAttrValMetaDataCtr *attrvalmetadata; [case(DRSUAPI_DS_REPLICA_INFO_CURSORS2)] drsuapi_DsReplicaCursor2Ctr *cursors2; [case(DRSUAPI_DS_REPLICA_INFO_CURSORS3)] drsuapi_DsReplicaCursor3Ctr *cursors3; [case(DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2)] drsuapi_DsReplicaObjMetaData2Ctr *objmetadata2; [case(DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2)] drsuapi_DsReplicaAttrValMetaData2Ctr *attrvalmetadata2; [case(DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02)] drsuapi_DsReplicaNeighbourCtr *neighbours02; [case(DRSUAPI_DS_REPLICA_INFO_CONNECTIONS04)] drsuapi_DsReplicaConnection04Ctr *connections04; [case(DRSUAPI_DS_REPLICA_INFO_CURSORS05)] drsuapi_DsReplicaCursorCtrEx *cursors05; [case(DRSUAPI_DS_REPLICA_INFO_06)] drsuapi_DsReplica06Ctr *i06; } drsuapi_DsReplicaInfo; WERROR drsuapi_DsReplicaGetInfo( [in] policy_handle *bind_handle, [in] drsuapi_DsReplicaGetInfoLevel level, [in,switch_is(level)] drsuapi_DsReplicaGetInfoRequest req, [out] drsuapi_DsReplicaInfoType info_type, [out,switch_is(info_type)] drsuapi_DsReplicaInfo info ); /*****************/ /* Function 0x14 */ [todo] WERROR DRSUAPI_ADD_SID_HISTORY(); /*****************/ /* Function 0x15 */ typedef struct { [range(0,10000)] uint32 num_entries; [size_is(num_entries)] drsuapi_DsGetMembershipsCtr1 **ctrl_array; } drsuapi_DsGetMemberships2Ctr1; typedef [switch_type(int32)] union { [case(1)] drsuapi_DsGetMembershipsCtr1 ctr1; } drsuapi_DsGetMemberships2Ctr; typedef struct { [range(1,10000)] uint32 num_req; [size_is(num_req)] drsuapi_DsGetMembershipsRequest1 **req_array; } drsuapi_DsGetMemberships2Request1; typedef [switch_type(int32)] union { [case(1)] drsuapi_DsGetMemberships2Request1 req1; } drsuapi_DsGetMemberships2Request; WERROR drsuapi_DsGetMemberships2( [in] policy_handle *bind_handle, [in,out] int32 level, [in] [switch_is(level)] drsuapi_DsGetMemberships2Request req, [out] [switch_is(level)] drsuapi_DsGetMemberships2Ctr ctr ); /*****************/ /* Function 0x16 */ [todo] WERROR DRSUAPI_REPLICA_VERIFY_OBJECTS(); /*****************/ /* Function 0x17 */ [todo] WERROR DRSUAPI_GET_OBJECT_EXISTENCE(); /*****************/ /* Function 0x18 */ typedef struct { WERROR error_code; uint32 site_cost; } drsuapi_DsSiteCostInfo; typedef struct { [range(0,10000)] uint32 num_info; [size_is(num_info)] drsuapi_DsSiteCostInfo *info; uint32 unknown; } drsuapi_QuerySitesByCostCtr1; typedef [switch_type(int32)] union { [case(1)] drsuapi_QuerySitesByCostCtr1 ctr1; } drsuapi_QuerySitesByCostCtr; typedef struct { [charset(UTF16),string] uint16 *site_from; [range(1,10000)] uint32 num_req; [size_is(num_req)] [charset(UTF16),string] uint16 **site_to; uint32 flags; } drsuapi_QuerySitesByCostRequest1; typedef [switch_type(int32)] union { [case(1)] drsuapi_QuerySitesByCostRequest1 req1; } drsuapi_QuerySitesByCostRequest; WERROR drsuapi_QuerySitesByCost( [in] policy_handle *bind_handle, [in] int32 level, [in] [switch_is(level)] drsuapi_QuerySitesByCostRequest req, [out] int32 level_out, [out] [switch_is(level_out)] drsuapi_QuerySitesByCostCtr ctr );}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -