summaryrefslogtreecommitdiff
path: root/source4
diff options
context:
space:
mode:
Diffstat (limited to 'source4')
-rw-r--r--source4/librpc/idl/drsuapi.idl146
1 files changed, 75 insertions, 71 deletions
diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl
index a85871e28e..bc6b260d4a 100644
--- a/source4/librpc/idl/drsuapi.idl
+++ b/source4/librpc/idl/drsuapi.idl
@@ -11,53 +11,57 @@ interface drsuapi
{
/*****************/
/* Function 0x00 */
-
- const uint32 DRSUAPI_SUPPORTED_EXTENSION_BASE = 0x00000001;
- const uint32 DRSUAPI_SUPPORTED_EXTENSION_ASYNC_REPLICATION = 0x00000002;
- const uint32 DRSUAPI_SUPPORTED_EXTENSION_REMOVEAPI = 0x00000004;
- const uint32 DRSUAPI_SUPPORTED_EXTENSION_MOVEREQ_V2 = 0x00000008;
- const uint32 DRSUAPI_SUPPORTED_EXTENSION_GETCHG_COMPRESS = 0x00000010;
- const uint32 DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V1 = 0x00000020;
- const uint32 DRSUAPI_SUPPORTED_EXTENSION_RESTORE_USN_OPTIMIZATION = 0x00000040;
- const uint32 DRSUAPI_SUPPORTED_EXTENSION_00000080 = 0x00000080;
- const uint32 DRSUAPI_SUPPORTED_EXTENSION_KCC_EXECUTE = 0x00000100;
- const uint32 DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_V2 = 0x00000200;
- const uint32 DRSUAPI_SUPPORTED_EXTENSION_LINKED_VALUE_REPLICATION = 0x00000400;
- const uint32 DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V2 = 0x00000800;
- const uint32 DRSUAPI_SUPPORTED_EXTENSION_INSTANCE_TYPE_NOT_REQ_ON_MOD = 0x00001000;
- const uint32 DRSUAPI_SUPPORTED_EXTENSION_CRYPTO_BIND = 0x00002000;
- const uint32 DRSUAPI_SUPPORTED_EXTENSION_GET_REPL_INFO = 0x00004000;
- const uint32 DRSUAPI_SUPPORTED_EXTENSION_STRONG_ENCRYPTION = 0x00008000;
- const uint32 DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V01 = 0x00010000;
- const uint32 DRSUAPI_SUPPORTED_EXTENSION_TRANSITIVE_MEMBERSHIP = 0x00020000;
- const uint32 DRSUAPI_SUPPORTED_EXTENSION_ADD_SID_HISTORY = 0x00040000;
- const uint32 DRSUAPI_SUPPORTED_EXTENSION_POST_BETA3 = 0x00080000;
- const uint32 DRSUAPI_SUPPORTED_EXTENSION_00100000 = 0x00100000;
- const uint32 DRSUAPI_SUPPORTED_EXTENSION_GET_MEMBERSHIPS2 = 0x00200000;
- const uint32 DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V6 = 0x00400000;
- const uint32 DRSUAPI_SUPPORTED_EXTENSION_NONDOMAIN_NCS = 0x00800000;
- const uint32 DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V8 = 0x01000000;
- const uint32 DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V5 = 0x02000000;
- const uint32 DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V6 = 0x04000000;
- /* the following 3 are correctly be the same value */
- const uint32 DRSUAPI_SUPPORTED_EXTENSION_ADDENTRYREPLY_V3 = 0x08000000;
- const uint32 DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V7 = 0x08000000;
- const uint32 DRSUAPI_SUPPORTED_EXTENSION_VERIFY_OBJECT = 0x08000000;
- const uint32 DRSUAPI_SUPPORTED_EXTENSION_XPRESS_COMPRESS = 0x10000000;
- const uint32 DRSUAPI_SUPPORTED_EXTENSION_20000000 = 0x20000000;
- const uint32 DRSUAPI_SUPPORTED_EXTENSION_40000000 = 0x40000000;
- const uint32 DRSUAPI_SUPPORTED_EXTENSION_80000000 = 0x80000000;
+ 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 {
- uint32 supported_extensions;
+ drsuapi_SupportedExtensions supported_extensions;
GUID site_guid;
uint32 u1;
} drsuapi_DsBindInfo24;
/* this is used by w2k3 */
typedef struct {
- uint32 supported_extensions;
+ drsuapi_SupportedExtensions supported_extensions;
GUID site_guid;
uint32 u1;
uint32 repl_epoch;
@@ -171,7 +175,7 @@ interface drsuapi
/*****************/
/* Function 0x0c */
- typedef enum {
+ typedef [v1_enum] enum {
DRSUAPI_DS_NAME_STATUS_OK = 0,
DRSUAPI_DS_NAME_STATUS_RESOLVE_ERROR = 1,
DRSUAPI_DS_NAME_STATUS_NOT_FOUND = 2,
@@ -182,7 +186,7 @@ interface drsuapi
DRSUAPI_DS_NAME_STATUS_TRUST_REFERRAL = 7
} drsuapi_DsNameStatus;
- typedef enum {
+ 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,
@@ -190,7 +194,7 @@ interface drsuapi
DRSUAPI_DS_NAME_FLAG_TRUST_REFERRAL = 0x8
} drsuapi_DsNameFlags;
- typedef enum {
+ typedef [v1_enum] enum {
DRSUAPI_DS_NAME_FORMAT_UKNOWN = 0,
DRSUAPI_DS_NAME_FORMAT_FQDN_1779 = 1,
DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT = 2,
@@ -211,9 +215,9 @@ interface drsuapi
typedef struct {
uint32 unknown1; /* 0x000004e4 */
uint32 unknown2; /* 0x00000407 */
- uint32 format_flags;
- uint32 format_offered;
- uint32 format_desired;
+ 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;
@@ -223,7 +227,7 @@ interface drsuapi
} drsuapi_DsNameRequest;
typedef struct {
- uint32 status;
+ drsuapi_DsNameStatus status;
unistr *dns_domain_name;
unistr *result_name;
} drsuapi_DsNameInfo1;
@@ -246,15 +250,15 @@ interface drsuapi
/*****************/
/* Function 0x0d */
- typedef enum {
+ 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 {
- int32 operation;
- int32 unknown1;
+ drsuapi_DsSpnOperation operation;
+ uint32 unknown1;
unistr *object_dn;
[range(0,10000)] uint32 count;
[size_is(count)] drsuapi_DsNameString *spn_names;
@@ -373,12 +377,12 @@ interface drsuapi
/*****************/
/* Function 0x13 */
- typedef enum {
+ typedef [v1_enum] enum {
DRSUAPI_DS_REPLICA_GET_INFO = 1,
DRSUAPI_DS_REPLICA_GET_INFO2 = 2
} drsuapi_DsReplicaGetInfoLevel;
- typedef enum {
+ typedef [v1_enum] enum {
DRSUAPI_DS_REPLICA_INFO_NEIGHBORS = 0,
DRSUAPI_DS_REPLICA_INFO_CURSORS = 1,
DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA = 2,
@@ -397,13 +401,13 @@ interface drsuapi
} drsuapi_DsReplicaInfoType;
typedef struct {
- int32 info_type;
+ drsuapi_DsReplicaInfoType info_type;
unistr *object_dn;
GUID guid1;
} drsuapi_DsReplicaGetInfoRequest1;
typedef struct {
- int32 info_type;
+ drsuapi_DsReplicaInfoType info_type;
unistr *object_dn;
GUID guid1;
uint32 unknown1;
@@ -413,8 +417,8 @@ interface drsuapi
} drsuapi_DsReplicaGetInfoRequest2;
typedef union {
- [case(1)] drsuapi_DsReplicaGetInfoRequest1 req1;
- [case(2)] drsuapi_DsReplicaGetInfoRequest2 req2;
+ [case(DRSUAPI_DS_REPLICA_GET_INFO)] drsuapi_DsReplicaGetInfoRequest1 req1;
+ [case(DRSUAPI_DS_REPLICA_GET_INFO2)] drsuapi_DsReplicaGetInfoRequest2 req2;
} drsuapi_DsReplicaGetInfoRequest;
typedef struct {
@@ -625,28 +629,28 @@ interface drsuapi
} drsuapi_DsReplica06Ctr;
typedef union {
- [case(0)] drsuapi_DsReplicaNeighbourCtr *neighbours;
- [case(1)] drsuapi_DsReplicaCoursorCtr *coursors;
- [case(2)] drsuapi_DsReplicaObjMetaDataCtr *objmetadata;
- [case(3)] drsuapi_DsReplicaKccDsaFailuresCtr *connectfailures;
- [case(4)] drsuapi_DsReplicaKccDsaFailuresCtr *linkfailures;
- [case(5)] drsuapi_DsReplicaOpCtr *pendingops;
- [case(6)] drsuapi_DsReplicaAttrValMetaDataCtr *attrvalmetadata;
- [case(7)] drsuapi_DsReplicaCoursor2Ctr *coursors2;
- [case(8)] drsuapi_DsReplicaCoursor3Ctr *coursors3;
- [case(9)] drsuapi_DsReplicaObjMetaData2Ctr *objmetadata2;
- [case(10)] drsuapi_DsReplicaAttrValMetaData2Ctr *attrvalmetadata2;
- [case(-2)] drsuapi_DsReplicaNeighbourCtr *neighbours02;
- [case(-4)] drsuapi_DsReplicaConnection04Ctr *connections04;
- [case(-5)] drsuapi_DsReplicaCoursor05Ctr *coursors05;
- [case(-6)] drsuapi_DsReplica06Ctr *i06;
+ [case(DRSUAPI_DS_REPLICA_INFO_NEIGHBORS)] drsuapi_DsReplicaNeighbourCtr *neighbours;
+ [case(DRSUAPI_DS_REPLICA_INFO_CURSORS)] drsuapi_DsReplicaCoursorCtr *coursors;
+ [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_DsReplicaCoursor2Ctr *coursors2;
+ [case(DRSUAPI_DS_REPLICA_INFO_CURSORS3)] drsuapi_DsReplicaCoursor3Ctr *coursors3;
+ [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_CURSURS05)] drsuapi_DsReplicaCoursor05Ctr *coursors05;
+ [case(DRSUAPI_DS_REPLICA_INFO_06)] drsuapi_DsReplica06Ctr *i06;
} drsuapi_DsReplicaInfo;
WERROR drsuapi_DsReplicaGetInfo(
[in,ref] policy_handle *bind_handle,
- [in] int32 level,
+ [in] drsuapi_DsReplicaGetInfoLevel level,
[in,switch_is(level)] drsuapi_DsReplicaGetInfoRequest req,
- [out] int32 info_type,
+ [out] drsuapi_DsReplicaInfoType info_type,
[out,switch_is(info_type)] drsuapi_DsReplicaInfo info
);