diff options
Diffstat (limited to 'source3/include')
-rw-r--r-- | source3/include/proto.h | 20 | ||||
-rw-r--r-- | source3/include/rpc_misc.h | 12 | ||||
-rw-r--r-- | source3/include/rpc_samr.h | 55 |
3 files changed, 61 insertions, 26 deletions
diff --git a/source3/include/proto.h b/source3/include/proto.h index 1509253c04..ea260f07cd 100644 --- a/source3/include/proto.h +++ b/source3/include/proto.h @@ -2045,6 +2045,26 @@ void make_samr_r_query_dispinfo(SAMR_R_QUERY_DISPINFO *r_u, void samr_io_r_query_dispinfo(char *desc, SAMR_R_QUERY_DISPINFO *r_u, prs_struct *ps, int depth); void make_samr_q_open_group(SAMR_Q_OPEN_GROUP *q_c, POLICY_HND *hnd, uint32 unk, uint32 rid); +void samr_io_q_open_group(char *desc, SAMR_Q_OPEN_GROUP *q_u, prs_struct *ps, int depth); +void samr_io_r_open_group(char *desc, SAMR_R_OPEN_GROUP *r_u, prs_struct *ps, int depth); +void make_samr_group_info1(GROUP_INFO1 *gr1, + char *acct_name, char *acct_desc); +void samr_io_group_info1(char *desc, GROUP_INFO1 *gr1, prs_struct *ps, int depth); +void make_samr_group_info4(GROUP_INFO4 *gr4, char *acct_desc); +void samr_io_group_info4(char *desc, GROUP_INFO4 *gr4, prs_struct *ps, int depth); +void samr_group_info_ctr(char *desc, GROUP_INFO_CTR *ctr, prs_struct *ps, int depth); +void make_samr_q_query_groupinfo(SAMR_Q_QUERY_GROUPINFO *q_e, + POLICY_HND *pol, + uint16 switch_level); +void samr_io_q_query_groupinfo(char *desc, SAMR_Q_QUERY_GROUPINFO *q_e, prs_struct *ps, int depth); +void make_samr_r_query_groupinfo(SAMR_R_QUERY_GROUPINFO *r_u, GROUP_INFO_CTR *ctr, + uint32 status); +void samr_io_r_query_groupinfo(char *desc, SAMR_R_QUERY_GROUPINFO *r_u, prs_struct *ps, int depth); +void make_samr_q_query_groupmem(SAMR_Q_QUERY_GROUPMEM *q_c, POLICY_HND *hnd); +void samr_io_q_query_groupmem(char *desc, SAMR_Q_QUERY_GROUPMEM *q_u, prs_struct *ps, int depth); +void make_samr_r_query_groupmem(SAMR_R_QUERY_GROUPMEM *r_u, + uint32 num_entries, uint32 *rid, uint32 *attr, uint32 status); +void samr_io_r_query_groupmem(char *desc, SAMR_R_QUERY_GROUPMEM *r_u, prs_struct *ps, int depth); void make_samr_q_enum_dom_groups(SAMR_Q_ENUM_DOM_GROUPS *q_e, POLICY_HND *pol, uint16 switch_level, uint32 start_idx, uint32 size); void samr_io_q_enum_dom_groups(char *desc, SAMR_Q_ENUM_DOM_GROUPS *q_e, prs_struct *ps, int depth); diff --git a/source3/include/rpc_misc.h b/source3/include/rpc_misc.h index e41c61f882..ff0d2cc49d 100644 --- a/source3/include/rpc_misc.h +++ b/source3/include/rpc_misc.h @@ -199,6 +199,7 @@ typedef struct domrid3_info uint32 type1; /* value is 0x1 */ uint32 ptr_type; /* undocumented pointer */ uint32 type2; /* value is 0x1 */ + uint32 unk; /* value is 0x2 */ } DOM_RID3; @@ -211,17 +212,6 @@ typedef struct domrid4_info } DOM_RID4; -/* DOM_RID5 - rid, type & attributes */ -typedef struct domrid5_info -{ - uint32 ptr_unk; /* pointer to unk */ - uint32 unk; /* value is 0x1 */ - uint32 rid; /* RID */ - uint8 type; /* SID_NAME_USE_ENUM */ - uint16 attr; - -} DOM_RID5; - /* DOM_CLNT_SRV - client / server names */ typedef struct clnt_srv_info { diff --git a/source3/include/rpc_samr.h b/source3/include/rpc_samr.h index f8e95937a1..4c42c18921 100644 --- a/source3/include/rpc_samr.h +++ b/source3/include/rpc_samr.h @@ -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; @@ -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 |