1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-26 21:57:41 +03:00

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
(This used to be commit 58c6887da48c2ebdec14529cb81e7589101f7aae)
This commit is contained in:
Stefan Metzmacher 2005-05-13 12:22:21 +00:00 committed by Gerald (Jerry) Carter
parent 0b8b29f070
commit 6f76065690

View File

@ -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:<byte count>:<bytes>:<object DN>
* => 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:<char count>:<string>:<object DN>
* => 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 {