diff options
Diffstat (limited to 'source3/include')
-rw-r--r-- | source3/include/proto.h | 20 | ||||
-rw-r--r-- | source3/include/rpc_samr.h | 35 |
2 files changed, 51 insertions, 4 deletions
diff --git a/source3/include/proto.h b/source3/include/proto.h index 5183f5dfb0..43780df9f8 100644 --- a/source3/include/proto.h +++ b/source3/include/proto.h @@ -1874,7 +1874,7 @@ BOOL do_reg_query_key(struct cli_state *cli, uint16 fnum, POLICY_HND *hnd, BOOL do_reg_unknown_1a(struct cli_state *cli, uint16 fnum, POLICY_HND *hnd, uint32 *unk); BOOL do_reg_query_info(struct cli_state *cli, uint16 fnum, POLICY_HND *hnd, const char* val_name, - uint32 *type, BUFFER2 *buf); + uint32 *type, BUFFER2 *buffer); BOOL do_reg_set_key_sec(struct cli_state *cli, uint16 fnum, POLICY_HND *hnd, uint32 sec_buf_size, SEC_DESC *sec_buf); BOOL do_reg_get_key_sec(struct cli_state *cli, uint16 fnum, POLICY_HND *hnd, @@ -1933,6 +1933,10 @@ BOOL delete_samr_dom_alias(struct cli_state *cli, uint16 fnum, BOOL get_samr_query_aliasmem(struct cli_state *cli, uint16 fnum, const POLICY_HND *pol_open_domain, uint32 alias_rid, uint32 *num_mem, DOM_SID2 *sid); +BOOL set_samr_set_userinfo2(struct cli_state *cli, uint16 fnum, + POLICY_HND *pol_open_domain, + uint32 info_level, + uint32 user_rid, void *usr); BOOL set_samr_set_userinfo(struct cli_state *cli, uint16 fnum, POLICY_HND *pol_open_domain, uint32 info_level, @@ -1940,7 +1944,7 @@ BOOL set_samr_set_userinfo(struct cli_state *cli, uint16 fnum, BOOL get_samr_query_userinfo(struct cli_state *cli, uint16 fnum, POLICY_HND *pol_open_domain, uint32 info_level, - uint32 user_rid, SAM_USER_INFO_21 *usr); + uint32 user_rid, void *usr); BOOL get_samr_query_groupinfo(struct cli_state *cli, uint16 fnum, const POLICY_HND *pol_open_domain, uint32 info_level, @@ -2056,6 +2060,9 @@ BOOL samr_query_usergroups(struct cli_state *cli, uint16 fnum, BOOL samr_query_groupinfo(struct cli_state *cli, uint16 fnum, POLICY_HND *pol, uint16 switch_value, GROUP_INFO_CTR* ctr); +BOOL samr_set_userinfo2(struct cli_state *cli, uint16 fnum, + POLICY_HND *pol, uint16 switch_value, + void* usr); BOOL samr_set_userinfo(struct cli_state *cli, uint16 fnum, POLICY_HND *pol, uint16 switch_value, void* usr); BOOL samr_query_userinfo(struct cli_state *cli, uint16 fnum, @@ -2942,6 +2949,14 @@ BOOL samr_io_q_set_userinfo(char *desc, SAMR_Q_SET_USERINFO *q_u, prs_struct *ps void free_samr_q_set_userinfo(SAMR_Q_SET_USERINFO *q_u); BOOL make_samr_r_set_userinfo(SAMR_R_SET_USERINFO *r_u, uint32 status); BOOL samr_io_r_set_userinfo(char *desc, SAMR_R_SET_USERINFO *r_u, prs_struct *ps, int depth); +BOOL make_samr_q_set_userinfo2(SAMR_Q_SET_USERINFO2 *q_u, + POLICY_HND *hnd, + uint16 switch_value, void *info); +BOOL samr_io_q_set_userinfo2(char *desc, SAMR_Q_SET_USERINFO2 *q_u, prs_struct *ps, int depth); +void free_samr_q_set_userinfo2(SAMR_Q_SET_USERINFO2 *q_u); +BOOL make_samr_r_set_userinfo2(SAMR_R_SET_USERINFO2 *r_u, + uint32 status); +BOOL samr_io_r_set_userinfo2(char *desc, SAMR_R_SET_USERINFO2 *r_u, prs_struct *ps, int depth); BOOL make_samr_q_connect(SAMR_Q_CONNECT *q_u, const char *srv_name, uint32 unknown_0); BOOL samr_io_q_connect(char *desc, SAMR_Q_CONNECT *q_u, prs_struct *ps, int depth); @@ -3492,6 +3507,7 @@ void cmd_sam_enum_users(struct client_info *info); void cmd_sam_query_groupmem(struct client_info *info); void cmd_sam_query_group(struct client_info *info); void cmd_sam_query_user(struct client_info *info); +void cmd_sam_set_userinfo2(struct client_info *info); void cmd_sam_set_userinfo(struct client_info *info); void cmd_sam_query_dispinfo(struct client_info *info); void cmd_sam_query_dominfo(struct client_info *info); diff --git a/source3/include/rpc_samr.h b/source3/include/rpc_samr.h index 850e3a8b94..2c9a719ff5 100644 --- a/source3/include/rpc_samr.h +++ b/source3/include/rpc_samr.h @@ -114,11 +114,12 @@ SamrTestPrivateFunctionsUser #define SAMR_QUERY_ALIASMEM 0x21 #define SAMR_OPEN_USER 0x22 +#define SAMR_QUERY_USERINFO 0x24 +#define SAMR_SET_USERINFO2 0x25 +#define SAMR_QUERY_USERGROUPS 0x27 #define SAMR_CREATE_USER 0x32 #define SAMR_SET_USERINFO 0x3A -#define SAMR_QUERY_USERINFO 0x24 -#define SAMR_QUERY_USERGROUPS 0x27 #define SAMR_QUERY_DISPINFO 0x28 #define SAMR_GET_USRDOM_PWINFO 0x2c @@ -141,6 +142,13 @@ typedef struct logon_hours_info } LOGON_HRS; +/* SAM_USER_INFO_16 */ +typedef struct sam_user_info_16 +{ + uint16 acb_info; /* account info (ACB_xxxx bit-mask) */ + +} SAM_USER_INFO_16; + /* SAM_USER_INFO_23 */ typedef struct sam_user_info_23 { @@ -1152,6 +1160,29 @@ typedef struct r_samr_query_usergroup_info } SAMR_R_QUERY_USERGROUPS; +/* SAMR_Q_SET_USERINFO2 - set sam info */ +typedef struct q_samr_set_user_info2 +{ + POLICY_HND pol; /* policy handle associated with user */ + uint16 switch_value; /* 0x0010 */ + uint16 switch_value2; /* 0x0010 */ + + union + { + SAM_USER_INFO_16 *id16; /* auth-level 0x10 */ + void* id; /* to make typecasting easy */ + + } info; + +} SAMR_Q_SET_USERINFO2; + +/* SAMR_R_SET_USERINFO2 - set sam info */ +typedef struct r_samr_set_user_info2 +{ + uint32 status; /* return status */ + +} SAMR_R_SET_USERINFO2; + /* SAMR_Q_SET_USERINFO - set sam info */ typedef struct q_samr_set_user_info { |