Update RPC-LSA to (almost) pass against Windows 2008.
[kai/samba.git] / source / librpc / idl / lsa.idl
index 3159a7d16d30601cc912b140f423e8fe6eae6cef..408956b3fa802c33c77a2fe514c856c2f88c17a8 100644 (file)
@@ -4,7 +4,7 @@
   lsa interface definition
 */
 
-import "security.idl";
+import "misc.idl", "security.idl";
 
 [ uuid("12345778-1234-abcd-ef00-0123456789ab"),
   version(0.0),
@@ -14,6 +14,7 @@ import "security.idl";
 ] interface lsarpc
 {
        typedef bitmap security_secinfo security_secinfo;
+       typedef bitmap kerb_EncTypes kerb_EncTypes;
 
        typedef [public,noejs] struct {
                [value(2*strlen_m(string))] uint16 length;
@@ -94,12 +95,12 @@ import "security.idl";
 
        /******************/
        /* Function: 0x04 */
-       NTSTATUS lsa_SetSecObj ();
+       [todo] NTSTATUS lsa_SetSecObj ();
 
 
        /******************/
        /* Function: 0x05 */
-       NTSTATUS lsa_ChangePassword ();
+       [todo] NTSTATUS lsa_ChangePassword ();
 
 
        /******************/
@@ -273,7 +274,7 @@ import "security.idl";
 
        /******************/
        /* Function:       0x09 */
-       NTSTATUS lsa_ClearAuditLog ();
+       [todo] NTSTATUS lsa_ClearAuditLog ();
 
        /******************/
        /* Function: 0x0a */
@@ -338,7 +339,7 @@ import "security.idl";
 
        /******************/
        /* Function: 0x0e */
-       typedef enum {
+       typedef [public] enum {
                SID_NAME_USE_NONE = 0,/* NOTUSED */
                SID_NAME_USER     = 1, /* user */
                SID_NAME_DOM_GRP  = 2, /* domain group */
@@ -477,15 +478,15 @@ import "security.idl";
                );
 
        /* Function:           0x15 */
-       NTSTATUS lsa_GetQuotasForAccount();
+       [todo] NTSTATUS lsa_GetQuotasForAccount();
        
        /* Function:           0x16 */
-       NTSTATUS lsa_SetQuotasForAccount();
+       [todo] NTSTATUS lsa_SetQuotasForAccount();
        
        /* Function:    0x17 */
-       NTSTATUS lsa_GetSystemAccessAccount();
+       [todo] NTSTATUS lsa_GetSystemAccessAccount();
        /* Function:    0x18 */
-       NTSTATUS lsa_SetSystemAccessAccount();
+       [todo] NTSTATUS lsa_SetSystemAccessAccount();
 
        /* Function:        0x19 */
        NTSTATUS lsa_OpenTrustedDomain(
@@ -507,22 +508,53 @@ import "security.idl";
        } lsa_DATA_BUF2;
 
        typedef enum {
-               LSA_TRUSTED_DOMAIN_INFO_NAME             = 1,
-               LSA_TRUSTED_DOMAIN_INFO_CONTROLLERS_INFO = 2,
-               LSA_TRUSTED_DOMAIN_INFO_POSIX_OFFSET     = 3,
-               LSA_TRUSTED_DOMAIN_INFO_PASSWORD         = 4,
-               LSA_TRUSTED_DOMAIN_INFO_BASIC            = 5,
-               LSA_TRUSTED_DOMAIN_INFO_INFO_EX          = 6,
-               LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO        = 7,
-               LSA_TRUSTED_DOMAIN_INFO_FULL_INFO        = 8,
-               LSA_TRUSTED_DOMAIN_INFO_11               = 11,
-               LSA_TRUSTED_DOMAIN_INFO_INFO_ALL         = 12
+               LSA_TRUSTED_DOMAIN_INFO_NAME                  = 1,
+               LSA_TRUSTED_DOMAIN_INFO_CONTROLLERS           = 2,
+               LSA_TRUSTED_DOMAIN_INFO_POSIX_OFFSET          = 3,
+               LSA_TRUSTED_DOMAIN_INFO_PASSWORD              = 4,
+               LSA_TRUSTED_DOMAIN_INFO_BASIC                 = 5,
+               LSA_TRUSTED_DOMAIN_INFO_INFO_EX               = 6,
+               LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO             = 7,
+               LSA_TRUSTED_DOMAIN_INFO_FULL_INFO             = 8,
+               LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO_INTERNAL    = 9,
+               LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_INTERNAL    = 10,
+               LSA_TRUSTED_DOMAIN_INFO_INFO_EX2_INTERNAL     = 11,
+               LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_2_INTERNAL  = 12,
+               LSA_TRUSTED_DOMAIN_SUPPORTED_ENCRTYPION_TYPES = 13
        } lsa_TrustDomInfoEnum;
 
+       typedef [public,bitmap32bit] bitmap {
+               LSA_TRUST_DIRECTION_INBOUND  = 0x00000001,
+               LSA_TRUST_DIRECTION_OUTBOUND = 0x00000002
+       } lsa_TrustDirection;
+
+       typedef [v1_enum] enum {
+               LSA_TRUST_TYPE_DOWNLEVEL  = 0x00000001,
+               LSA_TRUST_TYPE_UPLEVEL    = 0x00000002,
+               LSA_TRUST_TYPE_MIT        = 0x00000003
+       } lsa_TrustType;
+
+       typedef [public,bitmap32bit] bitmap {
+               LSA_TRUST_ATTRIBUTE_NON_TRANSITIVE      = 0x00000001,
+               LSA_TRUST_ATTRIBUTE_UPLEVEL_ONLY        = 0x00000002,
+               LSA_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN  = 0x00000004,
+               LSA_TRUST_ATTRIBUTE_FOREST_TRANSITIVE   = 0x00000008,
+               LSA_TRUST_ATTRIBUTE_CROSS_ORGANIZATION  = 0x00000010,
+               LSA_TRUST_ATTRIBUTE_WITHIN_FOREST       = 0x00000020,
+               LSA_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL   = 0x00000040,
+               LSA_TRUST_ATTRIBUTE_USES_RC4_ENCRYPTION = 0x00000080
+       } lsa_TrustAttributes;
+
        typedef struct {
                lsa_StringLarge  netbios_name;
        } lsa_TrustDomainInfoName;
 
+
+       typedef struct {
+               uint32 entries;
+               [size_is(entries)] lsa_StringLarge  *netbios_names;
+       } lsa_TrustDomainInfoControllers;
+
        typedef struct {
                uint32         posix_offset;
        } lsa_TrustDomainInfoPosixOffset;
@@ -540,10 +572,10 @@ import "security.idl";
        typedef struct {
                lsa_StringLarge     domain_name;
                lsa_StringLarge     netbios_name;
-               dom_sid2      *sid;
-               uint32         trust_direction;
-               uint32         trust_type;
-               uint32         trust_attributes;
+               dom_sid2           *sid;
+               lsa_TrustDirection  trust_direction;
+               lsa_TrustType       trust_type;
+               lsa_TrustAttributes trust_attributes;
        } lsa_TrustDomainInfoInfoEx;
 
        typedef struct {
@@ -570,25 +602,46 @@ import "security.idl";
        typedef struct {
                lsa_TrustDomainInfoInfoEx      info_ex;
                lsa_DATA_BUF2                  data1;
-       } lsa_TrustDomainInfo11;
+       } lsa_TrustDomainInfoInfoEx2Internal;
 
        typedef struct {
                lsa_TrustDomainInfoInfoEx      info_ex;
                lsa_DATA_BUF2                  data1;
                lsa_TrustDomainInfoPosixOffset posix_offset;
                lsa_TrustDomainInfoAuthInfo    auth_info;
-       } lsa_TrustDomainInfoInfoAll;
+       } lsa_TrustDomainInfoInfo2Internal;
+
+       typedef struct {
+               kerb_EncTypes enc_types;
+       } lsa_TrustDomainInfoSupportedEncTypes;
 
        typedef [switch_type(lsa_TrustDomInfoEnum)] union {
-               [case(LSA_TRUSTED_DOMAIN_INFO_NAME)]         lsa_TrustDomainInfoName        name;
-               [case(LSA_TRUSTED_DOMAIN_INFO_POSIX_OFFSET)] lsa_TrustDomainInfoPosixOffset posix_offset;
-               [case(LSA_TRUSTED_DOMAIN_INFO_PASSWORD)]     lsa_TrustDomainInfoPassword    password;
-               [case(LSA_TRUSTED_DOMAIN_INFO_BASIC)]        lsa_TrustDomainInfoBasic       info_basic;
-               [case(LSA_TRUSTED_DOMAIN_INFO_INFO_EX)]      lsa_TrustDomainInfoInfoEx      info_ex;
-               [case(LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO)]    lsa_TrustDomainInfoAuthInfo    auth_info;
-               [case(LSA_TRUSTED_DOMAIN_INFO_FULL_INFO)]    lsa_TrustDomainInfoFullInfo    full_info;
-               [case(LSA_TRUSTED_DOMAIN_INFO_11)]           lsa_TrustDomainInfo11          info11;
-               [case(LSA_TRUSTED_DOMAIN_INFO_INFO_ALL)]     lsa_TrustDomainInfoInfoAll     info_all;
+               [case(LSA_TRUSTED_DOMAIN_INFO_NAME)]
+                       lsa_TrustDomainInfoName              name;
+               [case(LSA_TRUSTED_DOMAIN_INFO_CONTROLLERS)]
+                       lsa_TrustDomainInfoControllers   controllers;
+               [case(LSA_TRUSTED_DOMAIN_INFO_POSIX_OFFSET)]
+                       lsa_TrustDomainInfoPosixOffset       posix_offset;
+               [case(LSA_TRUSTED_DOMAIN_INFO_PASSWORD)]
+                       lsa_TrustDomainInfoPassword          password;
+               [case(LSA_TRUSTED_DOMAIN_INFO_BASIC)]
+                       lsa_TrustDomainInfoBasic             info_basic;
+               [case(LSA_TRUSTED_DOMAIN_INFO_INFO_EX)]
+                       lsa_TrustDomainInfoInfoEx            info_ex;
+               [case(LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO)]
+                       lsa_TrustDomainInfoAuthInfo          auth_info;
+               [case(LSA_TRUSTED_DOMAIN_INFO_FULL_INFO)]
+                       lsa_TrustDomainInfoFullInfo          full_info;
+               [case(LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO_INTERNAL)]
+                       lsa_TrustDomainInfoAuthInfo          auth_info_internal;
+               [case(LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_INTERNAL)]
+                       lsa_TrustDomainInfoFullInfo          full_info_internal;
+               [case(LSA_TRUSTED_DOMAIN_INFO_INFO_EX2_INTERNAL)]
+                       lsa_TrustDomainInfoInfoEx2Internal   info_ex2_internal;
+               [case(LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_2_INTERNAL)]
+                       lsa_TrustDomainInfoInfo2Internal     info2_internal;
+               [case(LSA_TRUSTED_DOMAIN_SUPPORTED_ENCRTYPION_TYPES)]
+                       lsa_TrustDomainInfoSupportedEncTypes enc_types;
        } lsa_TrustedDomainInfo;
 
        /* Function:       0x1a */
@@ -599,7 +652,7 @@ import "security.idl";
                );
 
        /* Function:     0x1b */
-       NTSTATUS lsa_SetInformationTrustedDomain();
+       [todo] NTSTATUS lsa_SetInformationTrustedDomain();
 
        /* Function:          0x1c */
        [public] NTSTATUS lsa_OpenSecret(
@@ -658,8 +711,12 @@ import "security.idl";
                [in]         uint16 unknown
                );
 
-       /* Function:        0x22 */
-       NTSTATUS lsa_DeleteObject();
+       /*******************/
+       /* Function:  0x22 */
+       NTSTATUS lsa_DeleteObject (
+               [in,out]     policy_handle *handle
+               );
+
 
        
        /*******************/
@@ -713,7 +770,7 @@ import "security.idl";
         );
 
        /* Function:     0x28 */
-       NTSTATUS lsa_SetTrustedDomainInfo();
+       [todo] NTSTATUS lsa_SetTrustedDomainInfo();
        /* Function:      0x29 */
        NTSTATUS lsa_DeleteTrustedDomain(
                [in]               policy_handle         *handle,
@@ -721,9 +778,9 @@ import "security.idl";
        );
 
        /* Function:       0x2a */
-       NTSTATUS lsa_StorePrivateData();
+       [todo] NTSTATUS lsa_StorePrivateData();
        /* Function:        0x2b */
-       NTSTATUS lsa_RetrievePrivateData();
+       [todo] NTSTATUS lsa_RetrievePrivateData();
 
 
        /**********************/
@@ -800,7 +857,7 @@ import "security.idl";
 
 
        /* Function 0x33 */
-       NTSTATUS lsa_CreateTrustedDomainEx();
+       [todo] NTSTATUS lsa_CreateTrustedDomainEx();
 
        /* Function 0x34 */
        NTSTATUS lsa_CloseTrustedDomainEx(
@@ -858,7 +915,7 @@ import "security.idl";
                );
 
        /* Function 0x38 */
-       NTSTATUS lsa_TestCall();
+       [todo] NTSTATUS lsa_TestCall();
 
        /**********************/
        /* Function 0x39 */
@@ -914,31 +971,31 @@ import "security.idl";
                );
 
        /* Function 0x3b */
-       NTSTATUS lsa_CreateTrustedDomainEx2();
+       [todo] NTSTATUS lsa_CreateTrustedDomainEx2();
 
        /* Function 0x3c */
-       NTSTATUS lsa_CREDRWRITE();
+       [todo] NTSTATUS lsa_CREDRWRITE();
 
        /* Function 0x3d */
-       NTSTATUS lsa_CREDRREAD();
+       [todo] NTSTATUS lsa_CREDRREAD();
 
        /* Function 0x3e */
-       NTSTATUS lsa_CREDRENUMERATE();
+       [todo] NTSTATUS lsa_CREDRENUMERATE();
 
        /* Function 0x3f */
-       NTSTATUS lsa_CREDRWRITEDOMAINCREDENTIALS();
+       [todo] NTSTATUS lsa_CREDRWRITEDOMAINCREDENTIALS();
 
        /* Function 0x40 */
-       NTSTATUS lsa_CREDRREADDOMAINCREDENTIALS();
+       [todo] NTSTATUS lsa_CREDRREADDOMAINCREDENTIALS();
 
        /* Function 0x41 */
-       NTSTATUS lsa_CREDRDELETE();
+       [todo] NTSTATUS lsa_CREDRDELETE();
 
        /* Function 0x42 */
-       NTSTATUS lsa_CREDRGETTARGETINFO();
+       [todo] NTSTATUS lsa_CREDRGETTARGETINFO();
 
        /* Function 0x43 */
-       NTSTATUS lsa_CREDRPROFILELOADED();
+       [todo] NTSTATUS lsa_CREDRPROFILELOADED();
 
        /**********************/
        /* Function 0x44 */
@@ -967,16 +1024,16 @@ import "security.idl";
                );
 
        /* Function 0x45 */
-       NTSTATUS lsa_CREDRGETSESSIONTYPES();
+       [todo] NTSTATUS lsa_CREDRGETSESSIONTYPES();
 
        /* Function 0x46 */
-       NTSTATUS lsa_LSARREGISTERAUDITEVENT();
+       [todo] NTSTATUS lsa_LSARREGISTERAUDITEVENT();
 
        /* Function 0x47 */
-       NTSTATUS lsa_LSARGENAUDITEVENT();
+       [todo] NTSTATUS lsa_LSARGENAUDITEVENT();
 
        /* Function 0x48 */
-       NTSTATUS lsa_LSARUNREGISTERAUDITEVENT();
+       [todo] NTSTATUS lsa_LSARUNREGISTERAUDITEVENT();
 
        /* Function 0x49 */
        typedef struct {
@@ -1024,10 +1081,10 @@ import "security.idl";
                );
 
        /* Function 0x4a */
-       NTSTATUS lsa_LSARSETFORESTTRUSTINFORMATION();
+       [todo] NTSTATUS lsa_LSARSETFORESTTRUSTINFORMATION();
 
        /* Function 0x4b */
-       NTSTATUS lsa_CREDRRENAME();
+       [todo] NTSTATUS lsa_CREDRRENAME();
 
        /*****************/
        /* Function 0x4c */
@@ -1055,15 +1112,15 @@ import "security.idl";
                );
 
        /* Function 0x4e */
-       NTSTATUS lsa_LSAROPENPOLICYSCE();
+       [todo] NTSTATUS lsa_LSAROPENPOLICYSCE();
 
        /* Function 0x4f */
-       NTSTATUS lsa_LSARADTREGISTERSECURITYEVENTSOURCE();
+       [todo] NTSTATUS lsa_LSARADTREGISTERSECURITYEVENTSOURCE();
 
        /* Function 0x50 */
-       NTSTATUS lsa_LSARADTUNREGISTERSECURITYEVENTSOURCE();
+       [todo] NTSTATUS lsa_LSARADTUNREGISTERSECURITYEVENTSOURCE();
 
        /* Function 0x51 */
-       NTSTATUS lsa_LSARADTREPORTSECURITYEVENT();
+       [todo] NTSTATUS lsa_LSARADTREPORTSECURITYEVENT();
 
 }