From 58c6887da48c2ebdec14529cb81e7589101f7aae Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Fri, 13 May 2005 12:22:21 +0000 Subject: [PATCH] r6781: -add some comments on how attributes and objectClasses are identified in DRSUAPI -and some comments on what the attribute syntaxes matches what internal datatypes metze --- source/librpc/idl/drsuapi.idl | 85 ++++++++++++++++++++++++++++++++++- 1 file changed, 83 insertions(+), 2 deletions(-) diff --git a/source/librpc/idl/drsuapi.idl b/source/librpc/idl/drsuapi.idl index 94ec5bf1bca..16b8da82b89 100644 --- a/source/librpc/idl/drsuapi.idl +++ b/source/librpc/idl/drsuapi.idl @@ -282,9 +282,90 @@ interface drsuapi [size_is(count)] drsuapi_DsReplicaCoursor2 coursors[]; } drsuapi_DsReplicaCoursor2CtrEx; + /* + * In DRSUAPI the objectClasses and attributes + * are identified by uint32 values, but in the schema + * they are identified by the governsID (objectClasses) + * and attributeID (attributes) + * + * 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 + * + * 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 + * 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.20.* => 0x001A0000 + * 2.16.840.1.113730.3.2.* => 0x001C0000 + * 1.3.6.1.4.1.250.1.* => 0x001D0000 + * 0.9.2342.19200300.100.4.* => 0x001F0000 + * + * 1.2.840.113549.1.9.* (unstructuredAddress,unstructuredName) + * 1.3.6.1.4.1.1466.101.119.2 (dynamicObject) + * 1.3.6.1.4.1.1466.101.119.3 (entryTTL) + * 2.5.18.* (createTimeStamp,modifyTimeStamp, SubSchema) + * 2.5.21.* (attrs for SubSchema) + * + * 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 + * => mayContain, mustContain... also have this syntax but have string values + * + * 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::: + * => 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::: + * => not used + * + * 2.5.5.15 => ntSecurityDescriptor + * + * 2.5.5.16 => int64 + * + * 2.5.5.17 => dom_sid + */ + typedef [v1_enum] enum { - DRSUAPI_OBJECTCLASS_top = 0x00010000, - DRSUAPI_OBJECTCLASS_test = 0x00000000 + DRSUAPI_OBJECTCLASS_top = 0x00010000 } drsuapi_DsObjectClassId; typedef [v1_enum,public] enum { -- 2.34.1