added rid and sid_name_use to DOMAIN_GRP_MEMBER, for use in group member
[samba.git] / source3 / include / rpc_samr.h
index 6a1dc8d86070903123b48db054d4c35482192c1c..657058d9407271ecea5301e561fea4862f4ee1f9 100644 (file)
@@ -749,19 +749,26 @@ typedef struct samr_group_info4
 
 } GROUP_INFO4;
 
-/* SAMR_R_QUERY_GROUPINFO - SAM Group Info */
-typedef struct r_samr_query_groupinfo_info
+/* GROUP_INFO_CTR */
+typedef struct group_info_ctr
 {
-       uint32 ptr;        
-       uint16 switch_value;     /* 0x0001 seen */
-       /* uint8[2] padding */
+       uint16 switch_value;
 
        union
        {
+               GROUP_INFO4 info4;
                GROUP_INFO1 info1;
 
        } group;
 
+} GROUP_INFO_CTR;
+
+/* SAMR_R_QUERY_GROUPINFO - SAM Group Info */
+typedef struct r_samr_query_groupinfo_info
+{
+       uint32 ptr;        
+       GROUP_INFO_CTR *ctr;
+
        uint32 status;
 
 } SAMR_R_QUERY_GROUPINFO;
@@ -771,14 +778,7 @@ typedef struct r_samr_query_groupinfo_info
 typedef struct q_samr_set_group_info
 {
        POLICY_HND pol;        /* policy handle */
-       uint16 switch_value1;     /* 0x0004 seen */
-       uint16 switch_value2;     /* 0x0004 seen */
-
-       union
-       {
-               GROUP_INFO4 info4;
-
-       } group;
+       GROUP_INFO_CTR *ctr;
 
 } SAMR_Q_SET_GROUPINFO;
 
@@ -1005,8 +1005,6 @@ typedef struct r_samr_lookup_names_info
        uint32 num_entries2; 
        DOM_RID3 dom_rid[MAX_LOOKUP_SIDS]; /* domain RIDs being looked up */
 
-       uint32 num_entries3; 
-
        uint32 status; /* return code */
 
 } SAMR_R_LOOKUP_NAMES;
@@ -1039,20 +1037,20 @@ SAMR_R_UNKNOWN_12 - do a conversion from group RID to names
 /* SAMR_R_UNKNOWN_12 */
 typedef struct r_samr_unknown_12_info
 {
-    POLICY_HND pol;       /* policy handle */
+       POLICY_HND pol;       /* policy handle */
 
-       uint32 num_aliases1;      /* number of aliases being looked up */
-       uint32 ptr_aliases;       /* pointer to aliases */
-       uint32 num_aliases2;      /* number of aliases being looked up */
+       uint32 num_names1;      /* number of aliases being looked up */
+       uint32 ptr_names;       /* pointer to aliases */
+       uint32 num_names2;      /* number of aliases being looked up */
 
-       UNIHDR  hdr_als_name[MAX_LOOKUP_SIDS]; /* unicode account name header */
-       UNISTR2 uni_als_name[MAX_LOOKUP_SIDS]; /* unicode account name string */
+       UNIHDR  hdr_name[MAX_LOOKUP_SIDS]; /* unicode account name header */
+       UNISTR2 uni_name[MAX_LOOKUP_SIDS]; /* unicode account name string */
 
-       uint32 num_als_usrs1;      /* number of users in aliases being looked up */
-       uint32 ptr_als_usrs;       /* pointer to users in aliases */
-       uint32 num_als_usrs2;      /* number of users in aliases being looked up */
+       uint32 num_types1;      /* number of users in aliases being looked up */
+       uint32 ptr_types;       /* pointer to users in aliases */
+       uint32 num_types2;      /* number of users in aliases being looked up */
 
-       uint32 num_als_usrs[MAX_LOOKUP_SIDS]; /* number of users per group */
+       uint32 type[MAX_LOOKUP_SIDS]; /* SID_ENUM type */
 
        uint32 status;
 
@@ -1106,6 +1104,33 @@ typedef struct r_samr_unknown_32_info
 
 } SAMR_R_UNKNOWN_32;
 
+/* SAMR_Q_QUERY_GROUPMEM - query group members */
+typedef struct q_samr_query_groupmem_info
+{
+       POLICY_HND group_pol;        /* policy handle */
+
+} SAMR_Q_QUERY_GROUPMEM;
+
+
+/* SAMR_R_QUERY_GROUPMEM - query group members */
+typedef struct r_samr_query_groupmem_info
+{
+       uint32 ptr;
+       uint32 num_entries;
+
+       uint32 ptr_rids;
+       uint32 ptr_attrs;
+
+       uint32 num_rids;
+       uint32 *rid;
+
+       uint32 num_attrs;
+       uint32 *attr;
+
+       uint32 status;
+
+} SAMR_R_QUERY_GROUPMEM;
+
 
 /* SAMR_Q_ADD_GROUPMEM - probably an add group member */
 typedef struct q_samr_add_group_mem_info
@@ -1145,15 +1170,26 @@ typedef struct r_samr_open_group_info
 } SAMR_R_OPEN_GROUP;
 
 
-/* SAMR_Q_UNKNOWN_21 - probably an open group in domain */
-typedef struct q_samr_unknown_21_info
+/* SAMR_Q_QUERY_ALIASMEM - query alias members */
+typedef struct q_samr_query_aliasmem_info
 {
-    POLICY_HND group_pol;        /* policy handle */
+       POLICY_HND alias_pol;        /* policy handle */
+
+} SAMR_Q_QUERY_ALIASMEM;
 
-       uint16 unknown_1;            /* 16 bit unknown - 0x0477 */
-       uint16 unknown_2;            /* 16 bit unknown - 0x0000 */
 
-} SAMR_Q_UNKNOWN_21;
+/* SAMR_R_QUERY_ALIASMEM - query alias members */
+typedef struct r_samr_query_aliasmem_info
+{
+       uint32 num_sids;
+       uint32 ptr;
+       uint32 num_sids1;
+
+       DOM_SID2 *sid;
+
+       uint32 status;
+
+} SAMR_R_QUERY_ALIASMEM;
 
 
 /* SAMR_Q_UNK_ALIASMEM - don't know! */
@@ -1196,6 +1232,8 @@ typedef struct r_samr_add_alias_mem_info
 /* SAMR_Q_OPEN_ALIAS - probably an open */
 typedef struct q_samr_open_alias_info
 {
+       POLICY_HND dom_pol;
+
        uint32 unknown_0;         /* 0x0000 0008 */
        uint32 rid_alias;        /* rid */