Move MAX_REF_DOMAINS to lsa.idl.
[gd/samba/.git] / source / librpc / idl / lsa.idl
index 7cacd644d7a8d166d0d9839ecc1c08b77c78f30a..12be4d835b4ead574cb7ccb481ebab04d421266c 100644 (file)
@@ -117,12 +117,27 @@ import "security.idl";
                lsa_QosInfo *sec_qos;
        } lsa_ObjectAttribute;
 
+       typedef [public,bitmap32bit] bitmap {
+               LSA_POLICY_VIEW_LOCAL_INFORMATION       = 0x00000001,
+               LSA_POLICY_VIEW_AUDIT_INFORMATION       = 0x00000002,
+               LSA_POLICY_GET_PRIVATE_INFORMATION      = 0x00000004,
+               LSA_POLICY_TRUST_ADMIN                  = 0x00000008,
+               LSA_POLICY_CREATE_ACCOUNT               = 0x00000010,
+               LSA_POLICY_CREATE_SECRET                = 0x00000020,
+               LSA_POLICY_CREATE_PRIVILEGE             = 0x00000040,
+               LSA_POLICY_SET_DEFAULT_QUOTA_LIMITS     = 0x00000080,
+               LSA_POLICY_SET_AUDIT_REQUIREMENTS       = 0x00000100,
+               LSA_POLICY_AUDIT_LOG_ADMIN              = 0x00000200,
+               LSA_POLICY_SERVER_ADMIN                 = 0x00000400,
+               LSA_POLICY_LOOKUP_NAMES                 = 0x00000800
+       } lsa_PolicyAccessMask;
+
        /* notice the screwup with the system_name - thats why MS created
           OpenPolicy2 */
        [public] NTSTATUS lsa_OpenPolicy (
                [in,unique]       uint16 *system_name,
                [in]   lsa_ObjectAttribute *attr,
-               [in]       uint32 access_mask,
+               [in]   lsa_PolicyAccessMask access_mask,
                [out]  policy_handle *handle
                );
        
@@ -297,9 +312,9 @@ import "security.idl";
 
        [public] NTSTATUS lsa_EnumAccounts (
                [in]         policy_handle *handle,
-               [in,out]     uint32 *resume_handle,
-               [in,range(0,8192)] uint32 num_entries,
-               [out]        lsa_SidArray *sids
+               [in,out,ref] uint32 *resume_handle,
+               [out,ref]    lsa_SidArray *sids,
+               [in,range(0,8192)] uint32 num_entries
                );
 
 
@@ -327,9 +342,9 @@ import "security.idl";
 
        NTSTATUS lsa_EnumTrustDom (
                [in]               policy_handle *handle,
-               [in,out]           uint32 *resume_handle,
-               [in]               uint32 max_size,
-               [out]              lsa_DomainList *domains
+               [in,out,ref]       uint32 *resume_handle,
+               [out,ref]          lsa_DomainList *domains,
+               [in]               uint32 max_size
                );
 
 
@@ -360,6 +375,8 @@ import "security.idl";
        } lsa_TransSidArray;
 
        const int LSA_REF_DOMAIN_LIST_MULTIPLIER = 32;
+       const int MAX_REF_DOMAINS = LSA_REF_DOMAIN_LIST_MULTIPLIER;
+
        typedef struct {
                [range(0,1000)] uint32 count;
                [size_is(count)] lsa_DomainInfo *domains;
@@ -387,10 +404,10 @@ import "security.idl";
                [in]         policy_handle *handle,
                [in,range(0,1000)] uint32 num_names,
                [in,size_is(num_names)]  lsa_String names[],
-               [out,unique] lsa_RefDomainList *domains,
-               [in,out]     lsa_TransSidArray *sids,
+               [out,ref]    lsa_RefDomainList **domains,
+               [in,out,ref] lsa_TransSidArray *sids,
                [in]         lsa_LookupNamesLevel level,
-               [in,out]     uint32 *count
+               [in,out,ref] uint32 *count
                );
 
 
@@ -410,11 +427,11 @@ import "security.idl";
 
        [public] NTSTATUS lsa_LookupSids (
                [in]         policy_handle *handle,
-               [in]         lsa_SidArray *sids,
-               [out,unique]        lsa_RefDomainList *domains,
-               [in,out]     lsa_TransNameArray *names,
+               [in,ref]     lsa_SidArray *sids,
+               [out,ref]    lsa_RefDomainList **domains,
+               [in,out,ref] lsa_TransNameArray *names,
                [in]         uint16 level,
-               [in,out] uint32 *count
+               [in,out,ref] uint32 *count
                );
 
 
@@ -453,7 +470,7 @@ import "security.idl";
        
        NTSTATUS lsa_EnumPrivsAccount (
                [in]         policy_handle *handle,
-               [out,unique] lsa_PrivilegeSet *privs
+               [out,ref] lsa_PrivilegeSet **privs
                );
 
 
@@ -461,7 +478,7 @@ import "security.idl";
        /* Function:            0x13 */
        NTSTATUS lsa_AddPrivilegesToAccount(
                [in]         policy_handle *handle,
-               [in]         lsa_PrivilegeSet *privs
+               [in,ref]     lsa_PrivilegeSet *privs
                );
        
 
@@ -637,8 +654,8 @@ import "security.idl";
        /* Function:     0x1f */
        NTSTATUS lsa_LookupPrivValue(
                [in]     policy_handle *handle,
-               [in]     lsa_String *name,
-               [out]    lsa_LUID *luid
+               [in,ref] lsa_String *name,
+               [out,ref] lsa_LUID *luid
                );
 
 
@@ -682,14 +699,14 @@ import "security.idl";
        } lsa_RightAttribute;
        
        typedef struct {
-               uint32 count;
+               [range(0,256)] uint32 count;
                [size_is(count)] lsa_StringLarge *names;
        } lsa_RightSet;
        
        NTSTATUS lsa_EnumAccountRights (
                [in]     policy_handle *handle,
-               [in]     dom_sid2 *sid,
-               [out]    lsa_RightSet *rights
+               [in,ref] dom_sid2 *sid,
+               [out,ref] lsa_RightSet *rights
                );
 
 
@@ -697,17 +714,17 @@ import "security.idl";
        /* Function:       0x25 */
        NTSTATUS lsa_AddAccountRights (
                [in]     policy_handle *handle,
-               [in]     dom_sid2 *sid,
-               [in]     lsa_RightSet *rights
+               [in,ref] dom_sid2 *sid,
+               [in,ref] lsa_RightSet *rights
                );
        
        /**********************/
        /* Function:       0x26 */
        NTSTATUS lsa_RemoveAccountRights (
                [in]     policy_handle *handle,
-               [in]     dom_sid2 *sid,
-               [in]         uint32 unknown,
-               [in]     lsa_RightSet *rights
+               [in,ref] dom_sid2 *sid,
+               [in]     uint8 remove_all,
+               [in,ref] lsa_RightSet *rights
                );
 
        /* Function:   0x27 */
@@ -737,20 +754,16 @@ import "security.idl";
        [public] NTSTATUS lsa_OpenPolicy2 (
                [in,unique]      [string,charset(UTF16)] uint16 *system_name,
                [in]  lsa_ObjectAttribute *attr,
-               [in]      uint32 access_mask,
+               [in]  lsa_PolicyAccessMask access_mask,
                [out] policy_handle *handle
                );
 
        /**********************/
        /* Function:     0x2d */
-       typedef struct {
-               lsa_String *string;
-       } lsa_StringPointer;
-
        NTSTATUS lsa_GetUserName(
                [in,unique] [string,charset(UTF16)] uint16 *system_name,
-               [in,out,unique] lsa_String *account_name,
-               [in,out,unique] lsa_StringPointer *authority_name
+               [in,out,ref] lsa_String **account_name,
+               [in,out,unique] lsa_String **authority_name
                );
 
        /**********************/
@@ -883,11 +896,11 @@ import "security.idl";
 
        [public] NTSTATUS lsa_LookupSids2(
                [in]     policy_handle *handle,
-               [in]     lsa_SidArray *sids,
-               [out,unique]        lsa_RefDomainList *domains,
-               [in,out] lsa_TransNameArray2 *names,
+               [in,ref] lsa_SidArray *sids,
+               [out,ref]    lsa_RefDomainList **domains,
+               [in,out,ref] lsa_TransNameArray2 *names,
                [in]         uint16 level,
-               [in,out] uint32 *count,
+               [in,out,ref] uint32 *count,
                [in]         uint32 unknown1,
                [in]         uint32 unknown2
                );
@@ -911,10 +924,10 @@ import "security.idl";
                [in]     policy_handle *handle,
                [in,range(0,1000)] uint32 num_names,
                [in,size_is(num_names)]  lsa_String names[],
-               [out,unique]        lsa_RefDomainList *domains,
-               [in,out] lsa_TransSidArray2 *sids,
+               [out,ref]    lsa_RefDomainList **domains,
+               [in,out,ref] lsa_TransSidArray2 *sids,
                [in]         lsa_LookupNamesLevel level,
-               [in,out] uint32 *count,
+               [in,out,ref] uint32 *count,
                [in]         uint32 unknown1,
                [in]         uint32 unknown2
                );
@@ -964,10 +977,10 @@ import "security.idl";
                [in]     policy_handle *handle,
                [in,range(0,1000)] uint32 num_names,
                [in,size_is(num_names)]  lsa_String names[],
-               [out,unique]        lsa_RefDomainList *domains,
-               [in,out] lsa_TransSidArray3 *sids,
+               [out,ref]    lsa_RefDomainList **domains,
+               [in,out,ref] lsa_TransSidArray3 *sids,
                [in]         lsa_LookupNamesLevel level,
-               [in,out] uint32 *count,
+               [in,out,ref] uint32 *count,
                [in]         uint32 unknown1,
                [in]         uint32 unknown2
                );
@@ -1039,11 +1052,11 @@ import "security.idl";
        /* Function 0x4c */
 
        [public] NTSTATUS lsa_LookupSids3(
-               [in]         lsa_SidArray *sids,
-               [out,unique] lsa_RefDomainList *domains,
-               [in,out]     lsa_TransNameArray2 *names,
+               [in,ref]     lsa_SidArray *sids,
+               [out,ref]    lsa_RefDomainList **domains,
+               [in,out,ref] lsa_TransNameArray2 *names,
                [in]         uint16 level,
-               [in,out]     uint32 *count,
+               [in,out,ref] uint32 *count,
                [in]         uint32 unknown1,
                [in]         uint32 unknown2
                );
@@ -1052,10 +1065,10 @@ import "security.idl";
        NTSTATUS lsa_LookupNames4(
                [in,range(0,1000)] uint32 num_names,
                [in,size_is(num_names)]  lsa_String names[],
-               [out,unique]        lsa_RefDomainList *domains,
-               [in,out] lsa_TransSidArray3 *sids,
+               [out,ref]    lsa_RefDomainList **domains,
+               [in,out,ref] lsa_TransSidArray3 *sids,
                [in]         lsa_LookupNamesLevel level,
-               [in,out] uint32 *count,
+               [in,out,ref] uint32 *count,
                [in]         uint32 unknown1,
                [in]         uint32 unknown2
                );