From 922f196442a8b16a0b4b2b11a0c9cc9f414b087c Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Wed, 5 Jan 2005 16:48:58 +0000 Subject: r4541: make use of new enum and bitmap features metze (This used to be commit fd96a07c5a1f4969bfd04ffd3b6990a2dad41cf4) --- source4/librpc/idl/drsuapi.idl | 146 +++++++++++++++++++++-------------------- 1 file changed, 75 insertions(+), 71 deletions(-) (limited to 'source4/librpc/idl') 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 ); -- cgit