Move MAX_REF_DOMAINS to lsa.idl.
[gd/samba/.git] / source / librpc / idl / lsa.idl
index 47fa9f43b61453220b5e1374c7b310cfd9a45894..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
                );
        
@@ -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
                );
 
 
@@ -737,7 +754,7 @@ 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
                );
 
@@ -879,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
                );
@@ -907,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
                );
@@ -960,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
                );
@@ -1035,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
                );
@@ -1048,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
                );