summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuke Leighton <lkcl@samba.org>2000-03-08 07:59:55 +0000
committerLuke Leighton <lkcl@samba.org>2000-03-08 07:59:55 +0000
commit0324460409a0a5c9ad0a1974b66196a95ffe6d9f (patch)
tree9405ebf6f9e2856e1d26c5bc158fbd772bed9c84
parentd50bd714e6c0a68900d47fc3af712705942d955b (diff)
downloadsamba-0324460409a0a5c9ad0a1974b66196a95ffe6d9f.tar.gz
samba-0324460409a0a5c9ad0a1974b66196a95ffe6d9f.tar.xz
samba-0324460409a0a5c9ad0a1974b66196a95ffe6d9f.zip
- acb_info is a 32-bit field in samr stuff (oops!!) sun cascade with
a different byte order from nt is VERY useful, it can be used to identify the size of structure members because the byte order will be swapped, in comparative traces. - auth_resp in NETLOGON is a parameter to net_r_sam_logon, NOT part of the NET_USER_INFO struct. - domain_client_validate was grabbing the secret $MACHINE.ACC, then the unicode string needed to be byte-swapped before being passwd to nt_owf_genW.
-rw-r--r--source/include/proto.h5
-rw-r--r--source/include/rpc_netlogon.h5
-rw-r--r--source/include/rpc_parse_proto.h889
-rw-r--r--source/include/rpc_samr.h8
-rw-r--r--source/include/winbindd_proto.h889
-rw-r--r--source/netlogond/srv_netlogon_nt.c18
-rw-r--r--source/rpc_client/cli_login.c6
-rw-r--r--source/rpc_client/msrpc_lsarpc.c10
-rw-r--r--source/rpc_parse/parse_net.c21
-rw-r--r--source/rpc_parse/parse_samr.c19
-rw-r--r--source/rpc_server/srv_netlog.c3
11 files changed, 997 insertions, 876 deletions
diff --git a/source/include/proto.h b/source/include/proto.h
index 99fc4852622..e2bfc7159a2 100644
--- a/source/include/proto.h
+++ b/source/include/proto.h
@@ -1242,7 +1242,8 @@ uint32 _net_srv_pwset(const DOM_CLNT_INFO * clnt_id,
uint32 _net_sam_logon(const DOM_SAM_INFO * sam_id,
uint16 validation_level,
DOM_CRED * srv_creds,
- NET_USER_INFO_CTR * uctr, uint16 remote_pid);
+ NET_USER_INFO_CTR * uctr, uint16 remote_pid,
+ uint32 * auth_resp);
uint32 _net_sam_logoff(const DOM_SAM_INFO * sam_id,
DOM_CRED * srv_creds, uint16 remote_pid);
uint32 _net_sam_sync(const UNISTR2 * uni_srv_name,
@@ -3685,7 +3686,7 @@ uint32 lookup_name(const char *name, DOM_SID *sid, uint32 *type);
/*The following definitions come from rpc_server/srv_netlog.c */
-BOOL api_netlog_rpc(rpcsrv_struct *p);
+BOOL api_netlog_rpc(rpcsrv_struct * p);
/*The following definitions come from rpc_server/srv_pipe.c */
diff --git a/source/include/rpc_netlogon.h b/source/include/rpc_netlogon.h
index 1cd53f0d2b5..ed7fdd8cc19 100644
--- a/source/include/rpc_netlogon.h
+++ b/source/include/rpc_netlogon.h
@@ -93,8 +93,6 @@ typedef struct net_user_info_2
DOM_SID2 dom_sid; /* domain SID */
- uint32 auth_resp; /* 1 - Authoritative response */
-
} NET_USER_INFO_2;
/* NET_USER_INFO_3 */
@@ -150,8 +148,6 @@ typedef struct net_user_info_3
DOM_SID2 dom_sid; /* domain SID */
DOM_SID2 other_sids[LSA_MAX_SIDS]; /* undocumented - domain SIDs */
- uint32 auth_resp; /* 1 - Authoritative response */
-
} NET_USER_INFO_3;
@@ -453,6 +449,7 @@ typedef struct net_r_sam_logon_info
DOM_CRED srv_creds; /* server credentials. server time stamp appears to be ignored. */
NET_USER_INFO_CTR ctr;
+ uint32 auth_resp; /* 1 - Authoritative response */
uint32 status; /* return code */
diff --git a/source/include/rpc_parse_proto.h b/source/include/rpc_parse_proto.h
index b46543862ae..5d00cd88140 100644
--- a/source/include/rpc_parse_proto.h
+++ b/source/include/rpc_parse_proto.h
@@ -393,438 +393,501 @@ BOOL rpc_auth_verifier_chk(RPC_AUTH_VERIFIER * rav,
/*The following definitions come from rpc_parse/parse_samr.c */
-BOOL make_samr_q_close_hnd(SAMR_Q_CLOSE_HND *q_c, POLICY_HND *hnd);
-BOOL samr_io_q_close_hnd(char *desc, SAMR_Q_CLOSE_HND *q_u, prs_struct *ps, int depth);
-BOOL samr_io_r_close_hnd(char *desc, SAMR_R_CLOSE_HND *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_lookup_domain(SAMR_Q_LOOKUP_DOMAIN *q_u,
- POLICY_HND *pol, const char *dom_name);
-BOOL samr_io_q_lookup_domain(char *desc, SAMR_Q_LOOKUP_DOMAIN *q_u, prs_struct *ps, int depth);
-BOOL make_samr_r_lookup_domain(SAMR_R_LOOKUP_DOMAIN *r_u,
- DOM_SID *dom_sid, uint32 status);
-BOOL samr_io_r_lookup_domain(char *desc, SAMR_R_LOOKUP_DOMAIN *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_unknown_2d(SAMR_Q_UNKNOWN_2D *q_u,
- const POLICY_HND *dom_pol,
- const DOM_SID *sid);
-BOOL samr_io_q_unknown_2d(char *desc, SAMR_Q_UNKNOWN_2D *q_u, prs_struct *ps, int depth);
-BOOL samr_io_r_unknown_2d(char *desc, SAMR_R_UNKNOWN_2D *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_open_domain(SAMR_Q_OPEN_DOMAIN *q_u,
- const POLICY_HND *connect_pol, uint32 flags,
- const DOM_SID *sid);
-BOOL samr_io_q_open_domain(char *desc, SAMR_Q_OPEN_DOMAIN *q_u, prs_struct *ps, int depth);
-BOOL samr_io_r_open_domain(char *desc, SAMR_R_OPEN_DOMAIN *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_get_usrdom_pwinfo(SAMR_Q_GET_USRDOM_PWINFO *q_u, POLICY_HND *user_pol);
-BOOL samr_io_q_get_usrdom_pwinfo(char *desc, SAMR_Q_GET_USRDOM_PWINFO *q_u, prs_struct *ps, int depth);
-BOOL samr_io_r_get_usrdom_pwinfo(char *desc, SAMR_R_GET_USRDOM_PWINFO *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_query_sec_obj(SAMR_Q_QUERY_SEC_OBJ *q_u,
- const POLICY_HND *user_pol, uint32 sec_info);
-BOOL samr_io_q_query_sec_obj(char *desc, SAMR_Q_QUERY_SEC_OBJ *q_u, prs_struct *ps, int depth);
-BOOL make_samr_q_query_dom_info(SAMR_Q_QUERY_DOMAIN_INFO *q_u,
- POLICY_HND *domain_pol, uint16 switch_value);
-BOOL samr_io_q_query_dom_info(char *desc, SAMR_Q_QUERY_DOMAIN_INFO *q_u, prs_struct *ps, int depth);
-BOOL make_unk_info3(SAM_UNK_INFO_3 *u_3);
-BOOL make_unk_info6(SAM_UNK_INFO_6 *u_6);
-BOOL make_unk_info7(SAM_UNK_INFO_7 *u_7);
-BOOL make_unk_info2(SAM_UNK_INFO_2 *u_2, char *domain, char *server);
-BOOL make_unk_info1(SAM_UNK_INFO_1 *u_1);
-BOOL make_samr_r_query_dom_info(SAMR_R_QUERY_DOMAIN_INFO *r_u,
- uint16 switch_value, SAM_UNK_CTR *ctr,
+BOOL make_samr_q_close_hnd(SAMR_Q_CLOSE_HND * q_c, POLICY_HND * hnd);
+BOOL samr_io_q_close_hnd(char *desc, SAMR_Q_CLOSE_HND * q_u, prs_struct * ps,
+ int depth);
+BOOL samr_io_r_close_hnd(char *desc, SAMR_R_CLOSE_HND * r_u, prs_struct * ps,
+ int depth);
+BOOL make_samr_q_lookup_domain(SAMR_Q_LOOKUP_DOMAIN * q_u,
+ POLICY_HND * pol, const char *dom_name);
+BOOL samr_io_q_lookup_domain(char *desc, SAMR_Q_LOOKUP_DOMAIN * q_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_r_lookup_domain(SAMR_R_LOOKUP_DOMAIN * r_u,
+ DOM_SID * dom_sid, uint32 status);
+BOOL samr_io_r_lookup_domain(char *desc, SAMR_R_LOOKUP_DOMAIN * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_unknown_2d(SAMR_Q_UNKNOWN_2D * q_u,
+ const POLICY_HND * dom_pol, const DOM_SID * sid);
+BOOL samr_io_q_unknown_2d(char *desc, SAMR_Q_UNKNOWN_2D * q_u,
+ prs_struct * ps, int depth);
+BOOL samr_io_r_unknown_2d(char *desc, SAMR_R_UNKNOWN_2D * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_open_domain(SAMR_Q_OPEN_DOMAIN * q_u,
+ const POLICY_HND * connect_pol, uint32 flags,
+ const DOM_SID * sid);
+BOOL samr_io_q_open_domain(char *desc, SAMR_Q_OPEN_DOMAIN * q_u,
+ prs_struct * ps, int depth);
+BOOL samr_io_r_open_domain(char *desc, SAMR_R_OPEN_DOMAIN * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_get_usrdom_pwinfo(SAMR_Q_GET_USRDOM_PWINFO * q_u,
+ POLICY_HND * user_pol);
+BOOL samr_io_q_get_usrdom_pwinfo(char *desc, SAMR_Q_GET_USRDOM_PWINFO * q_u,
+ prs_struct * ps, int depth);
+BOOL samr_io_r_get_usrdom_pwinfo(char *desc, SAMR_R_GET_USRDOM_PWINFO * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_query_sec_obj(SAMR_Q_QUERY_SEC_OBJ * q_u,
+ const POLICY_HND * user_pol, uint32 sec_info);
+BOOL samr_io_q_query_sec_obj(char *desc, SAMR_Q_QUERY_SEC_OBJ * q_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_query_dom_info(SAMR_Q_QUERY_DOMAIN_INFO * q_u,
+ POLICY_HND * domain_pol, uint16 switch_value);
+BOOL samr_io_q_query_dom_info(char *desc, SAMR_Q_QUERY_DOMAIN_INFO * q_u,
+ prs_struct * ps, int depth);
+BOOL make_unk_info3(SAM_UNK_INFO_3 * u_3);
+BOOL make_unk_info6(SAM_UNK_INFO_6 * u_6);
+BOOL make_unk_info7(SAM_UNK_INFO_7 * u_7);
+BOOL make_unk_info2(SAM_UNK_INFO_2 * u_2, char *domain, char *server);
+BOOL make_unk_info1(SAM_UNK_INFO_1 * u_1);
+BOOL make_samr_r_query_dom_info(SAMR_R_QUERY_DOMAIN_INFO * r_u,
+ uint16 switch_value, SAM_UNK_CTR * ctr,
uint32 status);
-BOOL samr_io_r_query_dom_info(char *desc, SAMR_R_QUERY_DOMAIN_INFO *r_u, prs_struct *ps, int depth);
-BOOL samr_io_r_query_sec_obj(char *desc, SAMR_R_QUERY_SEC_OBJ *r_u, prs_struct *ps, int depth);
-BOOL make_sam_entry(SAM_ENTRY *sam, uint32 len_sam_name, uint32 rid);
-BOOL make_samr_q_enum_dom_users(SAMR_Q_ENUM_DOM_USERS *q_e, POLICY_HND *pol,
- uint32 start_idx,
+BOOL samr_io_r_query_dom_info(char *desc, SAMR_R_QUERY_DOMAIN_INFO * r_u,
+ prs_struct * ps, int depth);
+BOOL samr_io_r_query_sec_obj(char *desc, SAMR_R_QUERY_SEC_OBJ * r_u,
+ prs_struct * ps, int depth);
+BOOL make_sam_entry(SAM_ENTRY * sam, uint32 len_sam_name, uint32 rid);
+BOOL make_samr_q_enum_dom_users(SAMR_Q_ENUM_DOM_USERS * q_e, POLICY_HND * pol,
+ uint32 start_idx,
uint16 acb_mask, uint16 unk_1, uint32 size);
-BOOL samr_io_q_enum_dom_users(char *desc, SAMR_Q_ENUM_DOM_USERS *q_e, prs_struct *ps, int depth);
-BOOL make_samr_r_enum_dom_users(SAMR_R_ENUM_DOM_USERS *r_u,
- uint32 next_idx,
- uint32 num_sam_entries);
-BOOL samr_io_r_enum_dom_users(char *desc, SAMR_R_ENUM_DOM_USERS *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_query_dispinfo(SAMR_Q_QUERY_DISPINFO *q_e, POLICY_HND *pol,
+BOOL samr_io_q_enum_dom_users(char *desc, SAMR_Q_ENUM_DOM_USERS * q_e,
+ prs_struct * ps, int depth);
+BOOL make_samr_r_enum_dom_users(SAMR_R_ENUM_DOM_USERS * r_u,
+ uint32 next_idx, uint32 num_sam_entries);
+BOOL samr_io_r_enum_dom_users(char *desc, SAMR_R_ENUM_DOM_USERS * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_query_dispinfo(SAMR_Q_QUERY_DISPINFO * q_e, POLICY_HND * pol,
uint16 switch_level, uint32 start_idx,
uint32 max_entries);
-BOOL samr_io_q_query_dispinfo(char *desc, SAMR_Q_QUERY_DISPINFO *q_e, prs_struct *ps, int depth);
-BOOL make_sam_dispinfo_1(SAM_DISPINFO_1 *sam, uint32 *num_entries,
- uint32 *data_size, uint32 start_idx,
+BOOL samr_io_q_query_dispinfo(char *desc, SAMR_Q_QUERY_DISPINFO * q_e,
+ prs_struct * ps, int depth);
+BOOL make_sam_dispinfo_1(SAM_DISPINFO_1 * sam, uint32 * num_entries,
+ uint32 * data_size, uint32 start_idx,
SAM_USER_INFO_21 pass[MAX_SAM_ENTRIES]);
-BOOL make_sam_dispinfo_2(SAM_DISPINFO_2 *sam, uint32 *num_entries,
- uint32 *data_size, uint32 start_idx,
+BOOL make_sam_dispinfo_2(SAM_DISPINFO_2 * sam, uint32 * num_entries,
+ uint32 * data_size, uint32 start_idx,
SAM_USER_INFO_21 pass[MAX_SAM_ENTRIES]);
-BOOL make_sam_dispinfo_3(SAM_DISPINFO_3 *sam, uint32 *num_entries,
- uint32 *data_size, uint32 start_idx,
- DOMAIN_GRP *grp);
-BOOL make_sam_dispinfo_4(SAM_DISPINFO_4 *sam, uint32 *num_entries,
- uint32 *data_size, uint32 start_idx,
+BOOL make_sam_dispinfo_3(SAM_DISPINFO_3 * sam, uint32 * num_entries,
+ uint32 * data_size, uint32 start_idx,
+ DOMAIN_GRP * grp);
+BOOL make_sam_dispinfo_4(SAM_DISPINFO_4 * sam, uint32 * num_entries,
+ uint32 * data_size, uint32 start_idx,
SAM_USER_INFO_21 pass[MAX_SAM_ENTRIES]);
-BOOL make_sam_dispinfo_5(SAM_DISPINFO_5 *sam, uint32 *num_entries,
- uint32 *data_size, uint32 start_idx,
- DOMAIN_GRP *grp);
-BOOL make_samr_r_query_dispinfo(SAMR_R_QUERY_DISPINFO *r_u,
+BOOL make_sam_dispinfo_5(SAM_DISPINFO_5 * sam, uint32 * num_entries,
+ uint32 * data_size, uint32 start_idx,
+ DOMAIN_GRP * grp);
+BOOL make_samr_r_query_dispinfo(SAMR_R_QUERY_DISPINFO * r_u,
uint32 num_entries, uint32 data_size,
- uint16 switch_level, SAM_DISPINFO_CTR *ctr,
+ uint16 switch_level, SAM_DISPINFO_CTR * ctr,
uint32 status);
-BOOL samr_io_r_query_dispinfo(char *desc, SAMR_R_QUERY_DISPINFO *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_open_group(SAMR_Q_OPEN_GROUP *q_c,
- const POLICY_HND *hnd,
- uint32 access_mask, uint32 rid);
-BOOL samr_io_q_open_group(char *desc, SAMR_Q_OPEN_GROUP *q_u, prs_struct *ps, int depth);
-BOOL samr_io_r_open_group(char *desc, SAMR_R_OPEN_GROUP *r_u, prs_struct *ps, int depth);
-BOOL make_samr_group_info1(GROUP_INFO1 *gr1,
- char *acct_name, char *acct_desc,
- uint32 num_members);
-BOOL samr_io_group_info1(char *desc, GROUP_INFO1 *gr1, prs_struct *ps, int depth);
-BOOL make_samr_group_info4(GROUP_INFO4 *gr4, const char *acct_desc);
-BOOL samr_io_group_info4(char *desc, GROUP_INFO4 *gr4, prs_struct *ps, int depth);
-BOOL samr_group_info_ctr(char *desc, GROUP_INFO_CTR *ctr, prs_struct *ps, int depth);
-BOOL make_samr_q_create_dom_group(SAMR_Q_CREATE_DOM_GROUP *q_e,
- POLICY_HND *pol,
- const char *acct_desc);
-BOOL samr_io_q_create_dom_group(char *desc, SAMR_Q_CREATE_DOM_GROUP *q_e, prs_struct *ps, int depth);
-BOOL samr_io_r_create_dom_group(char *desc, SAMR_R_CREATE_DOM_GROUP *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_delete_dom_group(SAMR_Q_DELETE_DOM_GROUP *q_c, POLICY_HND *hnd);
-BOOL samr_io_q_delete_dom_group(char *desc, SAMR_Q_DELETE_DOM_GROUP *q_u, prs_struct *ps, int depth);
-BOOL samr_io_r_delete_dom_group(char *desc, SAMR_R_DELETE_DOM_GROUP *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_del_groupmem(SAMR_Q_DEL_GROUPMEM *q_e,
- POLICY_HND *pol,
- uint32 rid);
-BOOL samr_io_q_del_groupmem(char *desc, SAMR_Q_DEL_GROUPMEM *q_e, prs_struct *ps, int depth);
-BOOL make_samr_r_del_groupmem(SAMR_R_DEL_GROUPMEM *r_u, POLICY_HND *pol,
- uint32 status);
-BOOL samr_io_r_del_groupmem(char *desc, SAMR_R_DEL_GROUPMEM *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_add_groupmem(SAMR_Q_ADD_GROUPMEM *q_e,
- POLICY_HND *pol,
- uint32 rid);
-BOOL samr_io_q_add_groupmem(char *desc, SAMR_Q_ADD_GROUPMEM *q_e, prs_struct *ps, int depth);
-BOOL make_samr_r_add_groupmem(SAMR_R_ADD_GROUPMEM *r_u, POLICY_HND *pol,
- uint32 status);
-BOOL samr_io_r_add_groupmem(char *desc, SAMR_R_ADD_GROUPMEM *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_set_groupinfo(SAMR_Q_SET_GROUPINFO *q_e,
- POLICY_HND *pol, GROUP_INFO_CTR *ctr);
-BOOL samr_io_q_set_groupinfo(char *desc, SAMR_Q_SET_GROUPINFO *q_e, prs_struct *ps, int depth);
-BOOL make_samr_r_set_groupinfo(SAMR_R_SET_GROUPINFO *r_u,
- uint32 status);
-BOOL samr_io_r_set_groupinfo(char *desc, SAMR_R_SET_GROUPINFO *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_query_groupinfo(SAMR_Q_QUERY_GROUPINFO *q_e,
- POLICY_HND *pol,
- uint16 switch_level);
-BOOL samr_io_q_query_groupinfo(char *desc, SAMR_Q_QUERY_GROUPINFO *q_e, prs_struct *ps, int depth);
-BOOL make_samr_r_query_groupinfo(SAMR_R_QUERY_GROUPINFO *r_u, GROUP_INFO_CTR *ctr,
- uint32 status);
-BOOL samr_io_r_query_groupinfo(char *desc, SAMR_R_QUERY_GROUPINFO *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_query_groupmem(SAMR_Q_QUERY_GROUPMEM *q_c, POLICY_HND *hnd);
-BOOL samr_io_q_query_groupmem(char *desc, SAMR_Q_QUERY_GROUPMEM *q_u, prs_struct *ps, int depth);
-BOOL make_samr_r_query_groupmem(SAMR_R_QUERY_GROUPMEM *r_u,
- uint32 num_entries, uint32 *rid, uint32 *attr, uint32 status);
-BOOL samr_io_r_query_groupmem(char *desc, SAMR_R_QUERY_GROUPMEM *r_u, prs_struct *ps, int depth);
-void samr_free_r_query_groupmem(SAMR_R_QUERY_GROUPMEM *r_u);
-BOOL make_samr_q_query_usergroups(SAMR_Q_QUERY_USERGROUPS *q_u,
- POLICY_HND *hnd);
-BOOL samr_io_q_query_usergroups(char *desc, SAMR_Q_QUERY_USERGROUPS *q_u, prs_struct *ps, int depth);
-BOOL make_samr_r_query_usergroups(SAMR_R_QUERY_USERGROUPS *r_u,
- uint32 num_gids, DOM_GID *gid, uint32 status);
-BOOL samr_io_gids(char *desc, uint32 *num_gids, DOM_GID **gid, prs_struct *ps, int depth);
-BOOL samr_io_r_query_usergroups(char *desc, SAMR_R_QUERY_USERGROUPS *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_enum_domains(SAMR_Q_ENUM_DOMAINS *q_e,
- const POLICY_HND *pol,
+BOOL samr_io_r_query_dispinfo(char *desc, SAMR_R_QUERY_DISPINFO * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_open_group(SAMR_Q_OPEN_GROUP * q_c,
+ const POLICY_HND * hnd,
+ uint32 access_mask, uint32 rid);
+BOOL samr_io_q_open_group(char *desc, SAMR_Q_OPEN_GROUP * q_u,
+ prs_struct * ps, int depth);
+BOOL samr_io_r_open_group(char *desc, SAMR_R_OPEN_GROUP * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_group_info1(GROUP_INFO1 * gr1,
+ char *acct_name, char *acct_desc,
+ uint32 num_members);
+BOOL samr_io_group_info1(char *desc, GROUP_INFO1 * gr1, prs_struct * ps,
+ int depth);
+BOOL make_samr_group_info4(GROUP_INFO4 * gr4, const char *acct_desc);
+BOOL samr_io_group_info4(char *desc, GROUP_INFO4 * gr4, prs_struct * ps,
+ int depth);
+BOOL samr_group_info_ctr(char *desc, GROUP_INFO_CTR * ctr, prs_struct * ps,
+ int depth);
+BOOL make_samr_q_create_dom_group(SAMR_Q_CREATE_DOM_GROUP * q_e,
+ POLICY_HND * pol, const char *acct_desc);
+BOOL samr_io_q_create_dom_group(char *desc, SAMR_Q_CREATE_DOM_GROUP * q_e,
+ prs_struct * ps, int depth);
+BOOL samr_io_r_create_dom_group(char *desc, SAMR_R_CREATE_DOM_GROUP * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_delete_dom_group(SAMR_Q_DELETE_DOM_GROUP * q_c,
+ POLICY_HND * hnd);
+BOOL samr_io_q_delete_dom_group(char *desc, SAMR_Q_DELETE_DOM_GROUP * q_u,
+ prs_struct * ps, int depth);
+BOOL samr_io_r_delete_dom_group(char *desc, SAMR_R_DELETE_DOM_GROUP * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_del_groupmem(SAMR_Q_DEL_GROUPMEM * q_e,
+ POLICY_HND * pol, uint32 rid);
+BOOL samr_io_q_del_groupmem(char *desc, SAMR_Q_DEL_GROUPMEM * q_e,
+ prs_struct * ps, int depth);
+BOOL make_samr_r_del_groupmem(SAMR_R_DEL_GROUPMEM * r_u, POLICY_HND * pol,
+ uint32 status);
+BOOL samr_io_r_del_groupmem(char *desc, SAMR_R_DEL_GROUPMEM * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_add_groupmem(SAMR_Q_ADD_GROUPMEM * q_e,
+ POLICY_HND * pol, uint32 rid);
+BOOL samr_io_q_add_groupmem(char *desc, SAMR_Q_ADD_GROUPMEM * q_e,
+ prs_struct * ps, int depth);
+BOOL make_samr_r_add_groupmem(SAMR_R_ADD_GROUPMEM * r_u, POLICY_HND * pol,
+ uint32 status);
+BOOL samr_io_r_add_groupmem(char *desc, SAMR_R_ADD_GROUPMEM * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_set_groupinfo(SAMR_Q_SET_GROUPINFO * q_e,
+ POLICY_HND * pol, GROUP_INFO_CTR * ctr);
+BOOL samr_io_q_set_groupinfo(char *desc, SAMR_Q_SET_GROUPINFO * q_e,
+ prs_struct * ps, int depth);
+BOOL make_samr_r_set_groupinfo(SAMR_R_SET_GROUPINFO * r_u, uint32 status);
+BOOL samr_io_r_set_groupinfo(char *desc, SAMR_R_SET_GROUPINFO * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_query_groupinfo(SAMR_Q_QUERY_GROUPINFO * q_e,
+ POLICY_HND * pol, uint16 switch_level);
+BOOL samr_io_q_query_groupinfo(char *desc, SAMR_Q_QUERY_GROUPINFO * q_e,
+ prs_struct * ps, int depth);
+BOOL make_samr_r_query_groupinfo(SAMR_R_QUERY_GROUPINFO * r_u,
+ GROUP_INFO_CTR * ctr, uint32 status);
+BOOL samr_io_r_query_groupinfo(char *desc, SAMR_R_QUERY_GROUPINFO * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_query_groupmem(SAMR_Q_QUERY_GROUPMEM * q_c, POLICY_HND * hnd);
+BOOL samr_io_q_query_groupmem(char *desc, SAMR_Q_QUERY_GROUPMEM * q_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_r_query_groupmem(SAMR_R_QUERY_GROUPMEM * r_u,
+ uint32 num_entries, uint32 * rid,
+ uint32 * attr, uint32 status);
+BOOL samr_io_r_query_groupmem(char *desc, SAMR_R_QUERY_GROUPMEM * r_u,
+ prs_struct * ps, int depth);
+void samr_free_r_query_groupmem(SAMR_R_QUERY_GROUPMEM * r_u);
+BOOL make_samr_q_query_usergroups(SAMR_Q_QUERY_USERGROUPS * q_u,
+ POLICY_HND * hnd);
+BOOL samr_io_q_query_usergroups(char *desc, SAMR_Q_QUERY_USERGROUPS * q_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_r_query_usergroups(SAMR_R_QUERY_USERGROUPS * r_u,
+ uint32 num_gids, DOM_GID * gid,
+ uint32 status);
+BOOL samr_io_gids(char *desc, uint32 * num_gids, DOM_GID ** gid,
+ prs_struct * ps, int depth);
+BOOL samr_io_r_query_usergroups(char *desc, SAMR_R_QUERY_USERGROUPS * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_enum_domains(SAMR_Q_ENUM_DOMAINS * q_e,
+ const POLICY_HND * pol,
uint32 start_idx, uint32 size);
-BOOL samr_io_q_enum_domains(char *desc, SAMR_Q_ENUM_DOMAINS *q_e, prs_struct *ps, int depth);
-BOOL make_samr_r_enum_domains(SAMR_R_ENUM_DOMAINS *r_u,
- uint32 next_idx, uint32 num_sam_entries);
-BOOL samr_io_r_enum_domains(char *desc, SAMR_R_ENUM_DOMAINS *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_enum_dom_groups(SAMR_Q_ENUM_DOM_GROUPS *q_e,
- const POLICY_HND *pol,
+BOOL samr_io_q_enum_domains(char *desc, SAMR_Q_ENUM_DOMAINS * q_e,
+ prs_struct * ps, int depth);
+BOOL make_samr_r_enum_domains(SAMR_R_ENUM_DOMAINS * r_u,
+ uint32 next_idx, uint32 num_sam_entries);
+BOOL samr_io_r_enum_domains(char *desc, SAMR_R_ENUM_DOMAINS * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_enum_dom_groups(SAMR_Q_ENUM_DOM_GROUPS * q_e,
+ const POLICY_HND * pol,
uint32 start_idx, uint32 size);
-BOOL samr_io_q_enum_dom_groups(char *desc, SAMR_Q_ENUM_DOM_GROUPS *q_e, prs_struct *ps, int depth);
-BOOL make_samr_r_enum_dom_groups(SAMR_R_ENUM_DOM_GROUPS *r_u,
- uint32 next_idx, uint32 num_sam_entries);
-BOOL samr_io_r_enum_dom_groups(char *desc, SAMR_R_ENUM_DOM_GROUPS *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_enum_dom_aliases(SAMR_Q_ENUM_DOM_ALIASES *q_e, POLICY_HND *pol,
- uint32 start_idx, uint32 size);
-BOOL samr_io_q_enum_dom_aliases(char *desc, SAMR_Q_ENUM_DOM_ALIASES *q_e, prs_struct *ps, int depth);
-BOOL make_samr_r_enum_dom_aliases(SAMR_R_ENUM_DOM_ALIASES *r_u,
- uint32 next_idx,
- uint32 num_sam_entries);
-BOOL samr_io_r_enum_dom_aliases(char *desc, SAMR_R_ENUM_DOM_ALIASES *r_u, prs_struct *ps, int depth);
-BOOL make_samr_alias_info3(ALIAS_INFO3 *al3, const char *acct_desc);
-BOOL samr_io_alias_info3(char *desc, ALIAS_INFO3 *al3, prs_struct *ps, int depth);
-BOOL samr_alias_info_ctr(char *desc, ALIAS_INFO_CTR *ctr, prs_struct *ps, int depth);
-BOOL make_samr_q_query_aliasinfo(SAMR_Q_QUERY_ALIASINFO *q_e,
- const POLICY_HND *pol, uint16 switch_level);
-BOOL samr_io_q_query_aliasinfo(char *desc, SAMR_Q_QUERY_ALIASINFO *q_e, prs_struct *ps, int depth);
-BOOL make_samr_r_query_aliasinfo(SAMR_R_QUERY_ALIASINFO *r_u,
- ALIAS_INFO_CTR *ctr, uint32 status);
-BOOL samr_io_r_query_aliasinfo(char *desc, SAMR_R_QUERY_ALIASINFO *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_set_aliasinfo(SAMR_Q_SET_ALIASINFO *q_u,
- const POLICY_HND *hnd,
- ALIAS_INFO_CTR *ctr);
-BOOL samr_io_q_set_aliasinfo(char *desc, SAMR_Q_SET_ALIASINFO *q_u, prs_struct *ps, int depth);
-BOOL samr_io_r_set_aliasinfo(char *desc, SAMR_R_SET_ALIASINFO *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_query_useraliases(SAMR_Q_QUERY_USERALIASES *q_u,
- const POLICY_HND *hnd,
- uint32 num_sids,
- uint32 *ptr_sid, DOM_SID2 *sid);
-BOOL samr_io_q_query_useraliases(char *desc, SAMR_Q_QUERY_USERALIASES *q_u, prs_struct *ps, int depth);
-void samr_free_q_query_useraliases(SAMR_Q_QUERY_USERALIASES *q_u);
-BOOL make_samr_r_query_useraliases(SAMR_R_QUERY_USERALIASES *r_u,
- uint32 num_rids, uint32 *rid, uint32 status);
-BOOL samr_io_rids(char *desc, uint32 *num_rids, uint32 **rid, prs_struct *ps, int depth);
-BOOL samr_io_r_query_useraliases(char *desc, SAMR_R_QUERY_USERALIASES *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_open_alias(SAMR_Q_OPEN_ALIAS *q_u, const POLICY_HND *pol,
- uint32 unknown_0, uint32 rid);
-BOOL samr_io_q_open_alias(char *desc, SAMR_Q_OPEN_ALIAS *q_u, prs_struct *ps, int depth);
-BOOL samr_io_r_open_alias(char *desc, SAMR_R_OPEN_ALIAS *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_lookup_rids(SAMR_Q_LOOKUP_RIDS *q_u,
- const POLICY_HND *pol, uint32 flags,
- uint32 num_rids, const uint32 *rid);
-BOOL samr_io_q_lookup_rids(char *desc, SAMR_Q_LOOKUP_RIDS *q_u, prs_struct *ps, int depth);
-void samr_free_q_lookup_rids(SAMR_Q_LOOKUP_RIDS *q_u);
-BOOL make_samr_r_lookup_rids(SAMR_R_LOOKUP_RIDS *r_u,
- uint32 num_names, UNIHDR *hdr_name, UNISTR2 *uni_name,
- uint32 *type);
-BOOL samr_io_r_lookup_rids(char *desc, SAMR_R_LOOKUP_RIDS *r_u, prs_struct *ps, int depth);
-void samr_free_r_lookup_rids(SAMR_R_LOOKUP_RIDS *r_u);
-BOOL make_samr_q_delete_alias(SAMR_Q_DELETE_DOM_ALIAS *q_u, POLICY_HND *hnd);
-BOOL samr_io_q_delete_alias(char *desc, SAMR_Q_DELETE_DOM_ALIAS *q_u, prs_struct *ps, int depth);
-BOOL samr_io_r_delete_alias(char *desc, SAMR_R_DELETE_DOM_ALIAS *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_create_dom_alias(SAMR_Q_CREATE_DOM_ALIAS *q_u, POLICY_HND *hnd,
- const char *acct_desc);
-BOOL samr_io_q_create_dom_alias(char *desc, SAMR_Q_CREATE_DOM_ALIAS *q_u, prs_struct *ps, int depth);
-BOOL samr_io_r_create_dom_alias(char *desc, SAMR_R_CREATE_DOM_ALIAS *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_add_aliasmem(SAMR_Q_ADD_ALIASMEM *q_u, POLICY_HND *hnd,
- DOM_SID *sid);
-BOOL samr_io_q_add_aliasmem(char *desc, SAMR_Q_ADD_ALIASMEM *q_u, prs_struct *ps, int depth);
-BOOL samr_io_r_add_aliasmem(char *desc, SAMR_R_ADD_ALIASMEM *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_del_aliasmem(SAMR_Q_DEL_ALIASMEM *q_u, POLICY_HND *hnd,
- DOM_SID *sid);
-BOOL samr_io_q_del_aliasmem(char *desc, SAMR_Q_DEL_ALIASMEM *q_u, prs_struct *ps, int depth);
-BOOL samr_io_r_del_aliasmem(char *desc, SAMR_R_DEL_ALIASMEM *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_delete_dom_alias(SAMR_Q_DELETE_DOM_ALIAS *q_c, POLICY_HND *hnd);
-BOOL samr_io_q_delete_dom_alias(char *desc, SAMR_Q_DELETE_DOM_ALIAS *q_u, prs_struct *ps, int depth);
-BOOL make_samr_r_delete_dom_alias(SAMR_R_DELETE_DOM_ALIAS *r_u,
- uint32 status);
-BOOL samr_io_r_delete_dom_alias(char *desc, SAMR_R_DELETE_DOM_ALIAS *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_query_aliasmem(SAMR_Q_QUERY_ALIASMEM *q_c,
- const POLICY_HND *hnd);
-BOOL samr_io_q_query_aliasmem(char *desc, SAMR_Q_QUERY_ALIASMEM *q_u, prs_struct *ps, int depth);
-BOOL make_samr_r_query_aliasmem(SAMR_R_QUERY_ALIASMEM *r_u,
- uint32 num_sids, DOM_SID2 *sid, uint32 status);
-BOOL samr_io_r_query_aliasmem(char *desc, SAMR_R_QUERY_ALIASMEM *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_lookup_names(SAMR_Q_LOOKUP_NAMES *q_u,
- const POLICY_HND *pol, uint32 flags,
+BOOL samr_io_q_enum_dom_groups(char *desc, SAMR_Q_ENUM_DOM_GROUPS * q_e,
+ prs_struct * ps, int depth);
+BOOL make_samr_r_enum_dom_groups(SAMR_R_ENUM_DOM_GROUPS * r_u,
+ uint32 next_idx, uint32 num_sam_entries);
+BOOL samr_io_r_enum_dom_groups(char *desc, SAMR_R_ENUM_DOM_GROUPS * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_enum_dom_aliases(SAMR_Q_ENUM_DOM_ALIASES * q_e,
+ POLICY_HND * pol, uint32 start_idx,
+ uint32 size);
+BOOL samr_io_q_enum_dom_aliases(char *desc, SAMR_Q_ENUM_DOM_ALIASES * q_e,
+ prs_struct * ps, int depth);
+BOOL make_samr_r_enum_dom_aliases(SAMR_R_ENUM_DOM_ALIASES * r_u,
+ uint32 next_idx, uint32 num_sam_entries);
+BOOL samr_io_r_enum_dom_aliases(char *desc, SAMR_R_ENUM_DOM_ALIASES * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_alias_info3(ALIAS_INFO3 * al3, const char *acct_desc);
+BOOL samr_io_alias_info3(char *desc, ALIAS_INFO3 * al3, prs_struct * ps,
+ int depth);
+BOOL samr_alias_info_ctr(char *desc, ALIAS_INFO_CTR * ctr, prs_struct * ps,
+ int depth);
+BOOL make_samr_q_query_aliasinfo(SAMR_Q_QUERY_ALIASINFO * q_e,
+ const POLICY_HND * pol, uint16 switch_level);
+BOOL samr_io_q_query_aliasinfo(char *desc, SAMR_Q_QUERY_ALIASINFO * q_e,
+ prs_struct * ps, int depth);
+BOOL make_samr_r_query_aliasinfo(SAMR_R_QUERY_ALIASINFO * r_u,
+ ALIAS_INFO_CTR * ctr, uint32 status);
+BOOL samr_io_r_query_aliasinfo(char *desc, SAMR_R_QUERY_ALIASINFO * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_set_aliasinfo(SAMR_Q_SET_ALIASINFO * q_u,
+ const POLICY_HND * hnd, ALIAS_INFO_CTR * ctr);
+BOOL samr_io_q_set_aliasinfo(char *desc, SAMR_Q_SET_ALIASINFO * q_u,
+ prs_struct * ps, int depth);
+BOOL samr_io_r_set_aliasinfo(char *desc, SAMR_R_SET_ALIASINFO * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_query_useraliases(SAMR_Q_QUERY_USERALIASES * q_u,
+ const POLICY_HND * hnd,
+ uint32 num_sids,
+ uint32 * ptr_sid, DOM_SID2 * sid);
+BOOL samr_io_q_query_useraliases(char *desc, SAMR_Q_QUERY_USERALIASES * q_u,
+ prs_struct * ps, int depth);
+void samr_free_q_query_useraliases(SAMR_Q_QUERY_USERALIASES * q_u);
+BOOL make_samr_r_query_useraliases(SAMR_R_QUERY_USERALIASES * r_u,
+ uint32 num_rids, uint32 * rid,
+ uint32 status);
+BOOL samr_io_rids(char *desc, uint32 * num_rids, uint32 ** rid,
+ prs_struct * ps, int depth);
+BOOL samr_io_r_query_useraliases(char *desc, SAMR_R_QUERY_USERALIASES * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_open_alias(SAMR_Q_OPEN_ALIAS * q_u, const POLICY_HND * pol,
+ uint32 unknown_0, uint32 rid);
+BOOL samr_io_q_open_alias(char *desc, SAMR_Q_OPEN_ALIAS * q_u,
+ prs_struct * ps, int depth);
+BOOL samr_io_r_open_alias(char *desc, SAMR_R_OPEN_ALIAS * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_lookup_rids(SAMR_Q_LOOKUP_RIDS * q_u,
+ const POLICY_HND * pol, uint32 flags,
+ uint32 num_rids, const uint32 * rid);
+BOOL samr_io_q_lookup_rids(char *desc, SAMR_Q_LOOKUP_RIDS * q_u,
+ prs_struct * ps, int depth);
+void samr_free_q_lookup_rids(SAMR_Q_LOOKUP_RIDS * q_u);
+BOOL make_samr_r_lookup_rids(SAMR_R_LOOKUP_RIDS * r_u,
+ uint32 num_names, UNIHDR * hdr_name,
+ UNISTR2 * uni_name, uint32 * type);
+BOOL samr_io_r_lookup_rids(char *desc, SAMR_R_LOOKUP_RIDS * r_u,
+ prs_struct * ps, int depth);
+void samr_free_r_lookup_rids(SAMR_R_LOOKUP_RIDS * r_u);
+BOOL make_samr_q_delete_alias(SAMR_Q_DELETE_DOM_ALIAS * q_u, POLICY_HND * hnd);
+BOOL samr_io_q_delete_alias(char *desc, SAMR_Q_DELETE_DOM_ALIAS * q_u,
+ prs_struct * ps, int depth);
+BOOL samr_io_r_delete_alias(char *desc, SAMR_R_DELETE_DOM_ALIAS * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_create_dom_alias(SAMR_Q_CREATE_DOM_ALIAS * q_u,
+ POLICY_HND * hnd, const char *acct_desc);
+BOOL samr_io_q_create_dom_alias(char *desc, SAMR_Q_CREATE_DOM_ALIAS * q_u,
+ prs_struct * ps, int depth);
+BOOL samr_io_r_create_dom_alias(char *desc, SAMR_R_CREATE_DOM_ALIAS * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_add_aliasmem(SAMR_Q_ADD_ALIASMEM * q_u, POLICY_HND * hnd,
+ DOM_SID * sid);
+BOOL samr_io_q_add_aliasmem(char *desc, SAMR_Q_ADD_ALIASMEM * q_u,
+ prs_struct * ps, int depth);
+BOOL samr_io_r_add_aliasmem(char *desc, SAMR_R_ADD_ALIASMEM * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_del_aliasmem(SAMR_Q_DEL_ALIASMEM * q_u, POLICY_HND * hnd,
+ DOM_SID * sid);
+BOOL samr_io_q_del_aliasmem(char *desc, SAMR_Q_DEL_ALIASMEM * q_u,
+ prs_struct * ps, int depth);
+BOOL samr_io_r_del_aliasmem(char *desc, SAMR_R_DEL_ALIASMEM * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_delete_dom_alias(SAMR_Q_DELETE_DOM_ALIAS * q_c,
+ POLICY_HND * hnd);
+BOOL samr_io_q_delete_dom_alias(char *desc, SAMR_Q_DELETE_DOM_ALIAS * q_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_r_delete_dom_alias(SAMR_R_DELETE_DOM_ALIAS * r_u,
+ uint32 status);
+BOOL samr_io_r_delete_dom_alias(char *desc, SAMR_R_DELETE_DOM_ALIAS * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_query_aliasmem(SAMR_Q_QUERY_ALIASMEM * q_c,
+ const POLICY_HND * hnd);
+BOOL samr_io_q_query_aliasmem(char *desc, SAMR_Q_QUERY_ALIASMEM * q_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_r_query_aliasmem(SAMR_R_QUERY_ALIASMEM * r_u,
+ uint32 num_sids, DOM_SID2 * sid,
+ uint32 status);
+BOOL samr_io_r_query_aliasmem(char *desc, SAMR_R_QUERY_ALIASMEM * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_lookup_names(SAMR_Q_LOOKUP_NAMES * q_u,
+ const POLICY_HND * pol, uint32 flags,
uint32 num_names, char **name);
-BOOL samr_io_q_lookup_names(char *desc, SAMR_Q_LOOKUP_NAMES *q_u, prs_struct *ps, int depth);
-void samr_free_q_lookup_names(SAMR_Q_LOOKUP_NAMES *q_l);
-BOOL make_samr_r_lookup_names(SAMR_R_LOOKUP_NAMES *r_u,
+BOOL samr_io_q_lookup_names(char *desc, SAMR_Q_LOOKUP_NAMES * q_u,
+ prs_struct * ps, int depth);
+void samr_free_q_lookup_names(SAMR_Q_LOOKUP_NAMES * q_l);
+BOOL make_samr_r_lookup_names(SAMR_R_LOOKUP_NAMES * r_u,
uint32 num_rids,
- const uint32 *rid, const uint32 *type,
+ const uint32 * rid, const uint32 * type,
uint32 status);
-BOOL samr_io_r_lookup_names(char *desc, SAMR_R_LOOKUP_NAMES *r_u, prs_struct *ps, int depth);
-void samr_free_r_lookup_names(SAMR_R_LOOKUP_NAMES *r_l);
-BOOL make_samr_q_delete_dom_user(SAMR_Q_DELETE_DOM_USER *q_c, POLICY_HND *hnd);
-BOOL samr_io_q_delete_dom_user(char *desc, SAMR_Q_DELETE_DOM_USER *q_u, prs_struct *ps, int depth);
-BOOL samr_io_r_delete_dom_user(char *desc, SAMR_R_DELETE_DOM_USER *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_open_user(SAMR_Q_OPEN_USER *q_u,
- const POLICY_HND *pol,
- uint32 access_mask, uint32 rid);
-BOOL samr_io_q_open_user(char *desc, SAMR_Q_OPEN_USER *q_u, prs_struct *ps, int depth);
-BOOL samr_io_r_open_user(char *desc, SAMR_R_OPEN_USER *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_create_user(SAMR_Q_CREATE_USER *q_u,
- POLICY_HND *pol,
- const char *name,
- uint16 acb_info, uint32 access_mask);
-BOOL samr_io_q_create_user(char *desc, SAMR_Q_CREATE_USER *q_u, prs_struct *ps, int depth);
-BOOL samr_io_r_create_user(char *desc, SAMR_R_CREATE_USER *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_query_userinfo(SAMR_Q_QUERY_USERINFO *q_u,
- POLICY_HND *hnd, uint16 switch_value);
-BOOL samr_io_q_query_userinfo(char *desc, SAMR_Q_QUERY_USERINFO *q_u, prs_struct *ps, int depth);
-BOOL make_sam_user_info12(SAM_USER_INFO_12 *usr,
- uint16 acb_info,
- const uint8 lm_pwd[16],
- const uint8 nt_pwd[16]);
-BOOL sam_io_user_info12(char *desc, SAM_USER_INFO_12 *u, prs_struct *ps, int depth);
-BOOL make_sam_user_info10(SAM_USER_INFO_10 *usr,
- uint32 acb_info);
-BOOL sam_io_user_info10(char *desc, SAM_USER_INFO_10 *usr, prs_struct *ps, int depth);
-BOOL make_sam_user_info11(SAM_USER_INFO_11 *usr,
- NTTIME *expiry,
- char *mach_acct,
- uint32 rid_user,
- uint32 rid_group,
- uint16 acct_ctrl);
-BOOL sam_io_user_info11(char *desc, SAM_USER_INFO_11 *usr, prs_struct *ps, int depth);
-BOOL make_sam_user_info24(SAM_USER_INFO_24 *usr,
- const char newpass[516], uint16 passlen);
-BOOL make_sam_user_info23W(SAM_USER_INFO_23 *usr,
-
- const NTTIME *logon_time, /* all zeros */
- const NTTIME *logoff_time, /* all zeros */
- const NTTIME *kickoff_time, /* all zeros */
- const NTTIME *pass_last_set_time, /* all zeros */
- const NTTIME *pass_can_change_time, /* all zeros */
- const NTTIME *pass_must_change_time, /* all zeros */
-
- const UNISTR2 *user_name,
- const UNISTR2 *full_name,
- const UNISTR2 *home_dir,
- const UNISTR2 *dir_drive,
- const UNISTR2 *log_scr,
- const UNISTR2 *prof_path,
- const UNISTR2 *desc,
- const UNISTR2 *wkstas,
- const UNISTR2 *unk_str,
- const UNISTR2 *mung_dial,
-
- uint32 user_rid, /* 0x0000 0000 */
- uint32 group_rid,
- uint16 acb_info,
-
- uint32 unknown_3,
- uint16 logon_divs,
- LOGON_HRS *hrs,
- uint32 unknown_5,
- char newpass[516],
- uint32 unknown_6);
-BOOL make_sam_user_info23A(SAM_USER_INFO_23 *usr,
-
- NTTIME *logon_time, /* all zeros */
- NTTIME *logoff_time, /* all zeros */
- NTTIME *kickoff_time, /* all zeros */
- NTTIME *pass_last_set_time, /* all zeros */
- NTTIME *pass_can_change_time, /* all zeros */
- NTTIME *pass_must_change_time, /* all zeros */
-
- char *user_name, /* NULL */
- char *full_name,
- char *home_dir,
- char *dir_drive,
- char *log_scr,
- char *prof_path,
- char *desc,
- char *wkstas,
- char *unk_str,
- char *mung_dial,
-
- uint32 user_rid, /* 0x0000 0000 */
- uint32 group_rid,
- uint16 acb_info,
-
- uint32 unknown_3,
- uint16 logon_divs,
- LOGON_HRS *hrs,
- uint32 unknown_5,
- char newpass[516],
- uint32 unknown_6);
-BOOL make_sam_user_info21W(SAM_USER_INFO_21 *usr,
-
- const NTTIME *logon_time,
- const NTTIME *logoff_time,
- const NTTIME *kickoff_time,
- const NTTIME *pass_last_set_time,
- const NTTIME *pass_can_change_time,
- const NTTIME *pass_must_change_time,
-
- const UNISTR2 *user_name,
- const UNISTR2 *full_name,
- const UNISTR2 *home_dir,
- const UNISTR2 *dir_drive,
- const UNISTR2 *log_scr,
- const UNISTR2 *prof_path,
- const UNISTR2 *desc,
- const UNISTR2 *wkstas,
- const UNISTR2 *unk_str,
- const UNISTR2 *mung_dial,
-
- const uchar lm_pwd[16],
- const uchar nt_pwd[16],
-
- uint32 user_rid,
- uint32 group_rid,
- uint16 acb_info,
-
- uint32 unknown_3,
- uint16 logon_divs,
- const LOGON_HRS *hrs,
- uint32 unknown_5,
- uint32 unknown_6);
-BOOL make_sam_user_info21A(SAM_USER_INFO_21 *usr,
-
- NTTIME *logon_time,
- NTTIME *logoff_time,
- NTTIME *kickoff_time,
- NTTIME *pass_last_set_time,
- NTTIME *pass_can_change_time,
- NTTIME *pass_must_change_time,
-
- char *user_name,
- char *full_name,
- char *home_dir,
- char *dir_drive,
- char *log_scr,
- char *prof_path,
- char *desc,
- char *wkstas,
- char *unk_str,
- char *mung_dial,
-
- uint32 user_rid,
- uint32 group_rid,
- uint16 acb_info,
-
- uint32 unknown_3,
- uint16 logon_divs,
- LOGON_HRS *hrs,
- uint32 unknown_5,
- uint32 unknown_6);
-BOOL sam_io_user_info21(char *desc, SAM_USER_INFO_21 *usr, prs_struct *ps, int depth);
-uint32 make_samr_userinfo_ctr_usr21(SAM_USERINFO_CTR *ctr,
- uint16 switch_value,
- const SAM_USER_INFO_21 *usr);
-BOOL make_samr_userinfo_ctr(SAM_USERINFO_CTR *ctr, const uchar *sess_key,
- uint16 switch_value, void *info);
-BOOL samr_io_userinfo_ctr(char *desc, SAM_USERINFO_CTR *ctr, prs_struct *ps, int depth);
-void free_samr_userinfo_ctr(SAM_USERINFO_CTR *ctr);
-BOOL make_samr_r_query_userinfo(SAMR_R_QUERY_USERINFO *r_u,
- SAM_USERINFO_CTR *ctr, uint32 status);
-BOOL samr_io_r_query_userinfo(char *desc, SAMR_R_QUERY_USERINFO *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_set_userinfo(SAMR_Q_SET_USERINFO *q_u,
- POLICY_HND *hnd,
- uint16 switch_value, void *info);
-BOOL samr_io_q_set_userinfo(char *desc, SAMR_Q_SET_USERINFO *q_u, prs_struct *ps, int depth);
-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,
- SAM_USERINFO_CTR *ctr);
-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 access_mask);
-BOOL samr_io_q_connect(char *desc, SAMR_Q_CONNECT *q_u, prs_struct *ps, int depth);
-BOOL samr_io_r_connect(char *desc, SAMR_R_CONNECT *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_connect_anon(SAMR_Q_CONNECT_ANON *q_u);
-BOOL samr_io_q_connect_anon(char *desc, SAMR_Q_CONNECT_ANON *q_u, prs_struct *ps, int depth);
-BOOL samr_io_r_connect_anon(char *desc, SAMR_R_CONNECT_ANON *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_get_dom_pwinfo(SAMR_Q_GET_DOM_PWINFO *q_u, const char *srv_name);
-BOOL samr_io_q_get_dom_pwinfo(char *desc, SAMR_Q_GET_DOM_PWINFO *q_u, prs_struct *ps, int depth);
-BOOL samr_io_r_get_dom_pwinfo(char *desc, SAMR_R_GET_DOM_PWINFO *r_u, prs_struct *ps, int depth);
-BOOL make_enc_passwd(SAMR_ENC_PASSWD *pwd, const char pass[512]);
-BOOL samr_io_enc_passwd(char *desc, SAMR_ENC_PASSWD *pwd, prs_struct *ps, int depth);
-BOOL make_enc_hash(SAMR_ENC_HASH *hsh, const uchar hash[16]);
-BOOL samr_io_enc_hash(char *desc, SAMR_ENC_HASH *hsh, prs_struct *ps, int depth);
-BOOL make_samr_q_chgpasswd_user(SAMR_Q_CHGPASSWD_USER *q_u,
+BOOL samr_io_r_lookup_names(char *desc, SAMR_R_LOOKUP_NAMES * r_u,
+ prs_struct * ps, int depth);
+void samr_free_r_lookup_names(SAMR_R_LOOKUP_NAMES * r_l);
+BOOL make_samr_q_delete_dom_user(SAMR_Q_DELETE_DOM_USER * q_c,
+ POLICY_HND * hnd);
+BOOL samr_io_q_delete_dom_user(char *desc, SAMR_Q_DELETE_DOM_USER * q_u,
+ prs_struct * ps, int depth);
+BOOL samr_io_r_delete_dom_user(char *desc, SAMR_R_DELETE_DOM_USER * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_open_user(SAMR_Q_OPEN_USER * q_u,
+ const POLICY_HND * pol,
+ uint32 access_mask, uint32 rid);
+BOOL samr_io_q_open_user(char *desc, SAMR_Q_OPEN_USER * q_u, prs_struct * ps,
+ int depth);
+BOOL samr_io_r_open_user(char *desc, SAMR_R_OPEN_USER * r_u, prs_struct * ps,
+ int depth);
+BOOL make_samr_q_create_user(SAMR_Q_CREATE_USER * q_u,
+ POLICY_HND * pol,
+ const char *name,
+ uint32 acb_info, uint32 access_mask);
+BOOL samr_io_q_create_user(char *desc, SAMR_Q_CREATE_USER * q_u,
+ prs_struct * ps, int depth);
+BOOL samr_io_r_create_user(char *desc, SAMR_R_CREATE_USER * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_query_userinfo(SAMR_Q_QUERY_USERINFO * q_u,
+ POLICY_HND * hnd, uint16 switch_value);
+BOOL samr_io_q_query_userinfo(char *desc, SAMR_Q_QUERY_USERINFO * q_u,
+ prs_struct * ps, int depth);
+BOOL make_sam_user_info12(SAM_USER_INFO_12 * usr,
+ uint16 acb_info,
+ const uint8 lm_pwd[16], const uint8 nt_pwd[16]);
+BOOL sam_io_user_info12(char *desc, SAM_USER_INFO_12 * u, prs_struct * ps,
+ int depth);
+BOOL make_sam_user_info10(SAM_USER_INFO_10 * usr, uint32 acb_info);
+BOOL sam_io_user_info10(char *desc, SAM_USER_INFO_10 * usr, prs_struct * ps,
+ int depth);
+BOOL make_sam_user_info11(SAM_USER_INFO_11 * usr,
+ NTTIME * expiry,
+ char *mach_acct,
+ uint32 rid_user, uint32 rid_group, uint16 acct_ctrl);
+BOOL sam_io_user_info11(char *desc, SAM_USER_INFO_11 * usr, prs_struct * ps,
+ int depth);
+BOOL make_sam_user_info24(SAM_USER_INFO_24 * usr,
+ const char newpass[516], uint16 passlen);
+BOOL make_sam_user_info23W(SAM_USER_INFO_23 * usr, const NTTIME * logon_time, /* all zeros */
+ const NTTIME * logoff_time, /* all zeros */
+ const NTTIME * kickoff_time, /* all zeros */
+ const NTTIME * pass_last_set_time, /* all zeros */
+ const NTTIME * pass_can_change_time, /* all zeros */
+ const NTTIME * pass_must_change_time, /* all zeros */
+ const UNISTR2 * user_name,
+ const UNISTR2 * full_name,
+ const UNISTR2 * home_dir,
+ const UNISTR2 * dir_drive,
+ const UNISTR2 * log_scr,
+ const UNISTR2 * prof_path,
+ const UNISTR2 * desc,
+ const UNISTR2 * wkstas,
+ const UNISTR2 * unk_str,
+ const UNISTR2 * mung_dial, uint32 user_rid, /* 0x0000 0000 */
+ uint32 group_rid,
+ uint32 acb_info,
+ uint32 unknown_3,
+ uint16 logon_divs,
+ LOGON_HRS * hrs,
+ uint32 unknown_5,
+ char newpass[516], uint32 unknown_6);
+BOOL make_sam_user_info23A(SAM_USER_INFO_23 * usr, NTTIME * logon_time, /* all zeros */
+ NTTIME * logoff_time, /* all zeros */
+ NTTIME * kickoff_time, /* all zeros */
+ NTTIME * pass_last_set_time, /* all zeros */
+ NTTIME * pass_can_change_time, /* all zeros */
+ NTTIME * pass_must_change_time, /* all zeros */
+ char *user_name, /* NULL */
+ char *full_name,
+ char *home_dir, char *dir_drive, char *log_scr, char *prof_path, char *desc, char *wkstas, char *unk_str, char *mung_dial, uint32 user_rid, /* 0x0000 0000 */
+ uint32 group_rid,
+ uint32 acb_info,
+ uint32 unknown_3,
+ uint16 logon_divs,
+ LOGON_HRS * hrs,
+ uint32 unknown_5,
+ char newpass[516], uint32 unknown_6);
+BOOL make_sam_user_info21W(SAM_USER_INFO_21 * usr,
+ const NTTIME * logon_time,
+ const NTTIME * logoff_time,
+ const NTTIME * kickoff_time,
+ const NTTIME * pass_last_set_time,
+ const NTTIME * pass_can_change_time,
+ const NTTIME * pass_must_change_time,
+ const UNISTR2 * user_name,
+ const UNISTR2 * full_name,
+ const UNISTR2 * home_dir,
+ const UNISTR2 * dir_drive,
+ const UNISTR2 * log_scr,
+ const UNISTR2 * prof_path,
+ const UNISTR2 * desc,
+ const UNISTR2 * wkstas,
+ const UNISTR2 * unk_str,
+ const UNISTR2 * mung_dial,
+ const uchar lm_pwd[16],
+ const uchar nt_pwd[16],
+ uint32 user_rid,
+ uint32 group_rid,
+ uint32 acb_info,
+ uint32 unknown_3,
+ uint16 logon_divs,
+ const LOGON_HRS * hrs,
+ uint32 unknown_5, uint32 unknown_6);
+BOOL make_sam_user_info21A(SAM_USER_INFO_21 * usr,
+ NTTIME * logon_time,
+ NTTIME * logoff_time,
+ NTTIME * kickoff_time,
+ NTTIME * pass_last_set_time,
+ NTTIME * pass_can_change_time,
+ NTTIME * pass_must_change_time,
+ char *user_name,
+ char *full_name,
+ char *home_dir,
+ char *dir_drive,
+ char *log_scr,
+ char *prof_path,
+ char *desc,
+ char *wkstas,
+ char *unk_str,
+ char *mung_dial,
+ uint32 user_rid,
+ uint32 group_rid,
+ uint32 acb_info,
+ uint32 unknown_3,
+ uint16 logon_divs,
+ LOGON_HRS * hrs,
+ uint32 unknown_5, uint32 unknown_6);
+BOOL sam_io_user_info21(char *desc, SAM_USER_INFO_21 * usr, prs_struct * ps,
+ int depth);
+uint32 make_samr_userinfo_ctr_usr21(SAM_USERINFO_CTR * ctr,
+ uint16 switch_value,
+ const SAM_USER_INFO_21 * usr);
+BOOL make_samr_userinfo_ctr(SAM_USERINFO_CTR * ctr, const uchar * sess_key,
+ uint16 switch_value, void *info);
+BOOL samr_io_userinfo_ctr(char *desc, SAM_USERINFO_CTR * ctr, prs_struct * ps,
+ int depth);
+void free_samr_userinfo_ctr(SAM_USERINFO_CTR * ctr);
+BOOL make_samr_r_query_userinfo(SAMR_R_QUERY_USERINFO * r_u,
+ SAM_USERINFO_CTR * ctr, uint32 status);
+BOOL samr_io_r_query_userinfo(char *desc, SAMR_R_QUERY_USERINFO * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_set_userinfo(SAMR_Q_SET_USERINFO * q_u,
+ POLICY_HND * hnd,
+ uint16 switch_value, void *info);
+BOOL samr_io_q_set_userinfo(char *desc, SAMR_Q_SET_USERINFO * q_u,
+ prs_struct * ps, int depth);
+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, SAM_USERINFO_CTR * ctr);
+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 access_mask);
+BOOL samr_io_q_connect(char *desc, SAMR_Q_CONNECT * q_u, prs_struct * ps,
+ int depth);
+BOOL samr_io_r_connect(char *desc, SAMR_R_CONNECT * r_u, prs_struct * ps,
+ int depth);
+BOOL make_samr_q_connect_anon(SAMR_Q_CONNECT_ANON * q_u);
+BOOL samr_io_q_connect_anon(char *desc, SAMR_Q_CONNECT_ANON * q_u,
+ prs_struct * ps, int depth);
+BOOL samr_io_r_connect_anon(char *desc, SAMR_R_CONNECT_ANON * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_get_dom_pwinfo(SAMR_Q_GET_DOM_PWINFO * q_u,
+ const char *srv_name);
+BOOL samr_io_q_get_dom_pwinfo(char *desc, SAMR_Q_GET_DOM_PWINFO * q_u,
+ prs_struct * ps, int depth);
+BOOL samr_io_r_get_dom_pwinfo(char *desc, SAMR_R_GET_DOM_PWINFO * r_u,
+ prs_struct * ps, int depth);
+BOOL make_enc_passwd(SAMR_ENC_PASSWD * pwd, const char pass[512]);
+BOOL samr_io_enc_passwd(char *desc, SAMR_ENC_PASSWD * pwd, prs_struct * ps,
+ int depth);
+BOOL make_enc_hash(SAMR_ENC_HASH * hsh, const uchar hash[16]);
+BOOL samr_io_enc_hash(char *desc, SAMR_ENC_HASH * hsh, prs_struct * ps,
+ int depth);
+BOOL make_samr_q_chgpasswd_user(SAMR_Q_CHGPASSWD_USER * q_u,
const char *dest_host, const char *user_name,
const char nt_newpass[516],
const uchar nt_oldhash[16],
const char lm_newpass[516],
const uchar lm_oldhash[16]);
-BOOL samr_io_q_chgpasswd_user(char *desc, SAMR_Q_CHGPASSWD_USER *q_u, prs_struct *ps, int depth);
-BOOL make_samr_r_chgpasswd_user(SAMR_R_CHGPASSWD_USER *r_u, uint32 status);
-BOOL samr_io_r_chgpasswd_user(char *desc, SAMR_R_CHGPASSWD_USER *r_u, prs_struct *ps, int depth);
+BOOL samr_io_q_chgpasswd_user(char *desc, SAMR_Q_CHGPASSWD_USER * q_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_r_chgpasswd_user(SAMR_R_CHGPASSWD_USER * r_u, uint32 status);
+BOOL samr_io_r_chgpasswd_user(char *desc, SAMR_R_CHGPASSWD_USER * r_u,
+ prs_struct * ps, int depth);
/*The following definitions come from rpc_parse/parse_sec.c */
diff --git a/source/include/rpc_samr.h b/source/include/rpc_samr.h
index 80d0562206e..5f1fc20268e 100644
--- a/source/include/rpc_samr.h
+++ b/source/include/rpc_samr.h
@@ -181,8 +181,7 @@ typedef struct sam_user_info_23
uint32 user_rid; /* Primary User ID */
uint32 group_rid; /* Primary Group ID */
- uint16 acb_info; /* account info (ACB_xxxx bit-mask) */
- /* uint8 pad[2] */
+ uint32 acb_info; /* account info (ACB_xxxx bit-mask) */
uint32 unknown_3; /* 0x09f8 27fa */
@@ -250,8 +249,7 @@ typedef struct sam_user_info_21
uint32 user_rid; /* Primary User ID */
uint32 group_rid; /* Primary Group ID */
- uint16 acb_info; /* account info (ACB_xxxx bit-mask) */
- /* uint8 pad[2] */
+ uint32 acb_info; /* account info (ACB_xxxx bit-mask) */
uint32 unknown_3; /* 0x00ff ffff */
@@ -1338,7 +1336,7 @@ typedef struct q_samr_create_user_info
UNIHDR hdr_name; /* unicode account name header */
UNISTR2 uni_name; /* unicode account name */
- uint16 acb_info; /* account control info */
+ uint32 acb_info; /* account control info */
uint32 access_mask; /* 0xe005 00b0 */
} SAMR_Q_CREATE_USER;
diff --git a/source/include/winbindd_proto.h b/source/include/winbindd_proto.h
index 2f5db9b0edb..9cf7665cabb 100644
--- a/source/include/winbindd_proto.h
+++ b/source/include/winbindd_proto.h
@@ -2127,438 +2127,501 @@ BOOL rpc_auth_verifier_chk(RPC_AUTH_VERIFIER * rav,
/*The following definitions come from rpc_parse/parse_samr.c */
-BOOL make_samr_q_close_hnd(SAMR_Q_CLOSE_HND *q_c, POLICY_HND *hnd);
-BOOL samr_io_q_close_hnd(char *desc, SAMR_Q_CLOSE_HND *q_u, prs_struct *ps, int depth);
-BOOL samr_io_r_close_hnd(char *desc, SAMR_R_CLOSE_HND *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_lookup_domain(SAMR_Q_LOOKUP_DOMAIN *q_u,
- POLICY_HND *pol, const char *dom_name);
-BOOL samr_io_q_lookup_domain(char *desc, SAMR_Q_LOOKUP_DOMAIN *q_u, prs_struct *ps, int depth);
-BOOL make_samr_r_lookup_domain(SAMR_R_LOOKUP_DOMAIN *r_u,
- DOM_SID *dom_sid, uint32 status);
-BOOL samr_io_r_lookup_domain(char *desc, SAMR_R_LOOKUP_DOMAIN *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_unknown_2d(SAMR_Q_UNKNOWN_2D *q_u,
- const POLICY_HND *dom_pol,
- const DOM_SID *sid);
-BOOL samr_io_q_unknown_2d(char *desc, SAMR_Q_UNKNOWN_2D *q_u, prs_struct *ps, int depth);
-BOOL samr_io_r_unknown_2d(char *desc, SAMR_R_UNKNOWN_2D *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_open_domain(SAMR_Q_OPEN_DOMAIN *q_u,
- const POLICY_HND *connect_pol, uint32 flags,
- const DOM_SID *sid);
-BOOL samr_io_q_open_domain(char *desc, SAMR_Q_OPEN_DOMAIN *q_u, prs_struct *ps, int depth);
-BOOL samr_io_r_open_domain(char *desc, SAMR_R_OPEN_DOMAIN *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_get_usrdom_pwinfo(SAMR_Q_GET_USRDOM_PWINFO *q_u, POLICY_HND *user_pol);
-BOOL samr_io_q_get_usrdom_pwinfo(char *desc, SAMR_Q_GET_USRDOM_PWINFO *q_u, prs_struct *ps, int depth);
-BOOL samr_io_r_get_usrdom_pwinfo(char *desc, SAMR_R_GET_USRDOM_PWINFO *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_query_sec_obj(SAMR_Q_QUERY_SEC_OBJ *q_u,
- const POLICY_HND *user_pol, uint32 sec_info);
-BOOL samr_io_q_query_sec_obj(char *desc, SAMR_Q_QUERY_SEC_OBJ *q_u, prs_struct *ps, int depth);
-BOOL make_samr_q_query_dom_info(SAMR_Q_QUERY_DOMAIN_INFO *q_u,
- POLICY_HND *domain_pol, uint16 switch_value);
-BOOL samr_io_q_query_dom_info(char *desc, SAMR_Q_QUERY_DOMAIN_INFO *q_u, prs_struct *ps, int depth);
-BOOL make_unk_info3(SAM_UNK_INFO_3 *u_3);
-BOOL make_unk_info6(SAM_UNK_INFO_6 *u_6);
-BOOL make_unk_info7(SAM_UNK_INFO_7 *u_7);
-BOOL make_unk_info2(SAM_UNK_INFO_2 *u_2, char *domain, char *server);
-BOOL make_unk_info1(SAM_UNK_INFO_1 *u_1);
-BOOL make_samr_r_query_dom_info(SAMR_R_QUERY_DOMAIN_INFO *r_u,
- uint16 switch_value, SAM_UNK_CTR *ctr,
+BOOL make_samr_q_close_hnd(SAMR_Q_CLOSE_HND * q_c, POLICY_HND * hnd);
+BOOL samr_io_q_close_hnd(char *desc, SAMR_Q_CLOSE_HND * q_u, prs_struct * ps,
+ int depth);
+BOOL samr_io_r_close_hnd(char *desc, SAMR_R_CLOSE_HND * r_u, prs_struct * ps,
+ int depth);
+BOOL make_samr_q_lookup_domain(SAMR_Q_LOOKUP_DOMAIN * q_u,
+ POLICY_HND * pol, const char *dom_name);
+BOOL samr_io_q_lookup_domain(char *desc, SAMR_Q_LOOKUP_DOMAIN * q_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_r_lookup_domain(SAMR_R_LOOKUP_DOMAIN * r_u,
+ DOM_SID * dom_sid, uint32 status);
+BOOL samr_io_r_lookup_domain(char *desc, SAMR_R_LOOKUP_DOMAIN * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_unknown_2d(SAMR_Q_UNKNOWN_2D * q_u,
+ const POLICY_HND * dom_pol, const DOM_SID * sid);
+BOOL samr_io_q_unknown_2d(char *desc, SAMR_Q_UNKNOWN_2D * q_u,
+ prs_struct * ps, int depth);
+BOOL samr_io_r_unknown_2d(char *desc, SAMR_R_UNKNOWN_2D * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_open_domain(SAMR_Q_OPEN_DOMAIN * q_u,
+ const POLICY_HND * connect_pol, uint32 flags,
+ const DOM_SID * sid);
+BOOL samr_io_q_open_domain(char *desc, SAMR_Q_OPEN_DOMAIN * q_u,
+ prs_struct * ps, int depth);
+BOOL samr_io_r_open_domain(char *desc, SAMR_R_OPEN_DOMAIN * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_get_usrdom_pwinfo(SAMR_Q_GET_USRDOM_PWINFO * q_u,
+ POLICY_HND * user_pol);
+BOOL samr_io_q_get_usrdom_pwinfo(char *desc, SAMR_Q_GET_USRDOM_PWINFO * q_u,
+ prs_struct * ps, int depth);
+BOOL samr_io_r_get_usrdom_pwinfo(char *desc, SAMR_R_GET_USRDOM_PWINFO * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_query_sec_obj(SAMR_Q_QUERY_SEC_OBJ * q_u,
+ const POLICY_HND * user_pol, uint32 sec_info);
+BOOL samr_io_q_query_sec_obj(char *desc, SAMR_Q_QUERY_SEC_OBJ * q_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_query_dom_info(SAMR_Q_QUERY_DOMAIN_INFO * q_u,
+ POLICY_HND * domain_pol, uint16 switch_value);
+BOOL samr_io_q_query_dom_info(char *desc, SAMR_Q_QUERY_DOMAIN_INFO * q_u,
+ prs_struct * ps, int depth);
+BOOL make_unk_info3(SAM_UNK_INFO_3 * u_3);
+BOOL make_unk_info6(SAM_UNK_INFO_6 * u_6);
+BOOL make_unk_info7(SAM_UNK_INFO_7 * u_7);
+BOOL make_unk_info2(SAM_UNK_INFO_2 * u_2, char *domain, char *server);
+BOOL make_unk_info1(SAM_UNK_INFO_1 * u_1);
+BOOL make_samr_r_query_dom_info(SAMR_R_QUERY_DOMAIN_INFO * r_u,
+ uint16 switch_value, SAM_UNK_CTR * ctr,
uint32 status);
-BOOL samr_io_r_query_dom_info(char *desc, SAMR_R_QUERY_DOMAIN_INFO *r_u, prs_struct *ps, int depth);
-BOOL samr_io_r_query_sec_obj(char *desc, SAMR_R_QUERY_SEC_OBJ *r_u, prs_struct *ps, int depth);
-BOOL make_sam_entry(SAM_ENTRY *sam, uint32 len_sam_name, uint32 rid);
-BOOL make_samr_q_enum_dom_users(SAMR_Q_ENUM_DOM_USERS *q_e, POLICY_HND *pol,
- uint32 start_idx,
+BOOL samr_io_r_query_dom_info(char *desc, SAMR_R_QUERY_DOMAIN_INFO * r_u,
+ prs_struct * ps, int depth);
+BOOL samr_io_r_query_sec_obj(char *desc, SAMR_R_QUERY_SEC_OBJ * r_u,
+ prs_struct * ps, int depth);
+BOOL make_sam_entry(SAM_ENTRY * sam, uint32 len_sam_name, uint32 rid);
+BOOL make_samr_q_enum_dom_users(SAMR_Q_ENUM_DOM_USERS * q_e, POLICY_HND * pol,
+ uint32 start_idx,
uint16 acb_mask, uint16 unk_1, uint32 size);
-BOOL samr_io_q_enum_dom_users(char *desc, SAMR_Q_ENUM_DOM_USERS *q_e, prs_struct *ps, int depth);
-BOOL make_samr_r_enum_dom_users(SAMR_R_ENUM_DOM_USERS *r_u,
- uint32 next_idx,
- uint32 num_sam_entries);
-BOOL samr_io_r_enum_dom_users(char *desc, SAMR_R_ENUM_DOM_USERS *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_query_dispinfo(SAMR_Q_QUERY_DISPINFO *q_e, POLICY_HND *pol,
+BOOL samr_io_q_enum_dom_users(char *desc, SAMR_Q_ENUM_DOM_USERS * q_e,
+ prs_struct * ps, int depth);
+BOOL make_samr_r_enum_dom_users(SAMR_R_ENUM_DOM_USERS * r_u,
+ uint32 next_idx, uint32 num_sam_entries);
+BOOL samr_io_r_enum_dom_users(char *desc, SAMR_R_ENUM_DOM_USERS * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_query_dispinfo(SAMR_Q_QUERY_DISPINFO * q_e, POLICY_HND * pol,
uint16 switch_level, uint32 start_idx,
uint32 max_entries);
-BOOL samr_io_q_query_dispinfo(char *desc, SAMR_Q_QUERY_DISPINFO *q_e, prs_struct *ps, int depth);
-BOOL make_sam_dispinfo_1(SAM_DISPINFO_1 *sam, uint32 *num_entries,
- uint32 *data_size, uint32 start_idx,
+BOOL samr_io_q_query_dispinfo(char *desc, SAMR_Q_QUERY_DISPINFO * q_e,
+ prs_struct * ps, int depth);
+BOOL make_sam_dispinfo_1(SAM_DISPINFO_1 * sam, uint32 * num_entries,
+ uint32 * data_size, uint32 start_idx,
SAM_USER_INFO_21 pass[MAX_SAM_ENTRIES]);
-BOOL make_sam_dispinfo_2(SAM_DISPINFO_2 *sam, uint32 *num_entries,
- uint32 *data_size, uint32 start_idx,
+BOOL make_sam_dispinfo_2(SAM_DISPINFO_2 * sam, uint32 * num_entries,
+ uint32 * data_size, uint32 start_idx,
SAM_USER_INFO_21 pass[MAX_SAM_ENTRIES]);
-BOOL make_sam_dispinfo_3(SAM_DISPINFO_3 *sam, uint32 *num_entries,
- uint32 *data_size, uint32 start_idx,
- DOMAIN_GRP *grp);
-BOOL make_sam_dispinfo_4(SAM_DISPINFO_4 *sam, uint32 *num_entries,
- uint32 *data_size, uint32 start_idx,
+BOOL make_sam_dispinfo_3(SAM_DISPINFO_3 * sam, uint32 * num_entries,
+ uint32 * data_size, uint32 start_idx,
+ DOMAIN_GRP * grp);
+BOOL make_sam_dispinfo_4(SAM_DISPINFO_4 * sam, uint32 * num_entries,
+ uint32 * data_size, uint32 start_idx,
SAM_USER_INFO_21 pass[MAX_SAM_ENTRIES]);
-BOOL make_sam_dispinfo_5(SAM_DISPINFO_5 *sam, uint32 *num_entries,
- uint32 *data_size, uint32 start_idx,
- DOMAIN_GRP *grp);
-BOOL make_samr_r_query_dispinfo(SAMR_R_QUERY_DISPINFO *r_u,
+BOOL make_sam_dispinfo_5(SAM_DISPINFO_5 * sam, uint32 * num_entries,
+ uint32 * data_size, uint32 start_idx,
+ DOMAIN_GRP * grp);
+BOOL make_samr_r_query_dispinfo(SAMR_R_QUERY_DISPINFO * r_u,
uint32 num_entries, uint32 data_size,
- uint16 switch_level, SAM_DISPINFO_CTR *ctr,
+ uint16 switch_level, SAM_DISPINFO_CTR * ctr,
uint32 status);
-BOOL samr_io_r_query_dispinfo(char *desc, SAMR_R_QUERY_DISPINFO *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_open_group(SAMR_Q_OPEN_GROUP *q_c,
- const POLICY_HND *hnd,
- uint32 access_mask, uint32 rid);
-BOOL samr_io_q_open_group(char *desc, SAMR_Q_OPEN_GROUP *q_u, prs_struct *ps, int depth);
-BOOL samr_io_r_open_group(char *desc, SAMR_R_OPEN_GROUP *r_u, prs_struct *ps, int depth);
-BOOL make_samr_group_info1(GROUP_INFO1 *gr1,
- char *acct_name, char *acct_desc,
- uint32 num_members);
-BOOL samr_io_group_info1(char *desc, GROUP_INFO1 *gr1, prs_struct *ps, int depth);
-BOOL make_samr_group_info4(GROUP_INFO4 *gr4, const char *acct_desc);
-BOOL samr_io_group_info4(char *desc, GROUP_INFO4 *gr4, prs_struct *ps, int depth);
-BOOL samr_group_info_ctr(char *desc, GROUP_INFO_CTR *ctr, prs_struct *ps, int depth);
-BOOL make_samr_q_create_dom_group(SAMR_Q_CREATE_DOM_GROUP *q_e,
- POLICY_HND *pol,
- const char *acct_desc);
-BOOL samr_io_q_create_dom_group(char *desc, SAMR_Q_CREATE_DOM_GROUP *q_e, prs_struct *ps, int depth);
-BOOL samr_io_r_create_dom_group(char *desc, SAMR_R_CREATE_DOM_GROUP *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_delete_dom_group(SAMR_Q_DELETE_DOM_GROUP *q_c, POLICY_HND *hnd);
-BOOL samr_io_q_delete_dom_group(char *desc, SAMR_Q_DELETE_DOM_GROUP *q_u, prs_struct *ps, int depth);
-BOOL samr_io_r_delete_dom_group(char *desc, SAMR_R_DELETE_DOM_GROUP *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_del_groupmem(SAMR_Q_DEL_GROUPMEM *q_e,
- POLICY_HND *pol,
- uint32 rid);
-BOOL samr_io_q_del_groupmem(char *desc, SAMR_Q_DEL_GROUPMEM *q_e, prs_struct *ps, int depth);
-BOOL make_samr_r_del_groupmem(SAMR_R_DEL_GROUPMEM *r_u, POLICY_HND *pol,
- uint32 status);
-BOOL samr_io_r_del_groupmem(char *desc, SAMR_R_DEL_GROUPMEM *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_add_groupmem(SAMR_Q_ADD_GROUPMEM *q_e,
- POLICY_HND *pol,
- uint32 rid);
-BOOL samr_io_q_add_groupmem(char *desc, SAMR_Q_ADD_GROUPMEM *q_e, prs_struct *ps, int depth);
-BOOL make_samr_r_add_groupmem(SAMR_R_ADD_GROUPMEM *r_u, POLICY_HND *pol,
- uint32 status);
-BOOL samr_io_r_add_groupmem(char *desc, SAMR_R_ADD_GROUPMEM *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_set_groupinfo(SAMR_Q_SET_GROUPINFO *q_e,
- POLICY_HND *pol, GROUP_INFO_CTR *ctr);
-BOOL samr_io_q_set_groupinfo(char *desc, SAMR_Q_SET_GROUPINFO *q_e, prs_struct *ps, int depth);
-BOOL make_samr_r_set_groupinfo(SAMR_R_SET_GROUPINFO *r_u,
- uint32 status);
-BOOL samr_io_r_set_groupinfo(char *desc, SAMR_R_SET_GROUPINFO *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_query_groupinfo(SAMR_Q_QUERY_GROUPINFO *q_e,
- POLICY_HND *pol,
- uint16 switch_level);
-BOOL samr_io_q_query_groupinfo(char *desc, SAMR_Q_QUERY_GROUPINFO *q_e, prs_struct *ps, int depth);
-BOOL make_samr_r_query_groupinfo(SAMR_R_QUERY_GROUPINFO *r_u, GROUP_INFO_CTR *ctr,
- uint32 status);
-BOOL samr_io_r_query_groupinfo(char *desc, SAMR_R_QUERY_GROUPINFO *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_query_groupmem(SAMR_Q_QUERY_GROUPMEM *q_c, POLICY_HND *hnd);
-BOOL samr_io_q_query_groupmem(char *desc, SAMR_Q_QUERY_GROUPMEM *q_u, prs_struct *ps, int depth);
-BOOL make_samr_r_query_groupmem(SAMR_R_QUERY_GROUPMEM *r_u,
- uint32 num_entries, uint32 *rid, uint32 *attr, uint32 status);
-BOOL samr_io_r_query_groupmem(char *desc, SAMR_R_QUERY_GROUPMEM *r_u, prs_struct *ps, int depth);
-void samr_free_r_query_groupmem(SAMR_R_QUERY_GROUPMEM *r_u);
-BOOL make_samr_q_query_usergroups(SAMR_Q_QUERY_USERGROUPS *q_u,
- POLICY_HND *hnd);
-BOOL samr_io_q_query_usergroups(char *desc, SAMR_Q_QUERY_USERGROUPS *q_u, prs_struct *ps, int depth);
-BOOL make_samr_r_query_usergroups(SAMR_R_QUERY_USERGROUPS *r_u,
- uint32 num_gids, DOM_GID *gid, uint32 status);
-BOOL samr_io_gids(char *desc, uint32 *num_gids, DOM_GID **gid, prs_struct *ps, int depth);
-BOOL samr_io_r_query_usergroups(char *desc, SAMR_R_QUERY_USERGROUPS *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_enum_domains(SAMR_Q_ENUM_DOMAINS *q_e,
- const POLICY_HND *pol,
+BOOL samr_io_r_query_dispinfo(char *desc, SAMR_R_QUERY_DISPINFO * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_open_group(SAMR_Q_OPEN_GROUP * q_c,
+ const POLICY_HND * hnd,
+ uint32 access_mask, uint32 rid);
+BOOL samr_io_q_open_group(char *desc, SAMR_Q_OPEN_GROUP * q_u,
+ prs_struct * ps, int depth);
+BOOL samr_io_r_open_group(char *desc, SAMR_R_OPEN_GROUP * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_group_info1(GROUP_INFO1 * gr1,
+ char *acct_name, char *acct_desc,
+ uint32 num_members);
+BOOL samr_io_group_info1(char *desc, GROUP_INFO1 * gr1, prs_struct * ps,
+ int depth);
+BOOL make_samr_group_info4(GROUP_INFO4 * gr4, const char *acct_desc);
+BOOL samr_io_group_info4(char *desc, GROUP_INFO4 * gr4, prs_struct * ps,
+ int depth);
+BOOL samr_group_info_ctr(char *desc, GROUP_INFO_CTR * ctr, prs_struct * ps,
+ int depth);
+BOOL make_samr_q_create_dom_group(SAMR_Q_CREATE_DOM_GROUP * q_e,
+ POLICY_HND * pol, const char *acct_desc);
+BOOL samr_io_q_create_dom_group(char *desc, SAMR_Q_CREATE_DOM_GROUP * q_e,
+ prs_struct * ps, int depth);
+BOOL samr_io_r_create_dom_group(char *desc, SAMR_R_CREATE_DOM_GROUP * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_delete_dom_group(SAMR_Q_DELETE_DOM_GROUP * q_c,
+ POLICY_HND * hnd);
+BOOL samr_io_q_delete_dom_group(char *desc, SAMR_Q_DELETE_DOM_GROUP * q_u,
+ prs_struct * ps, int depth);
+BOOL samr_io_r_delete_dom_group(char *desc, SAMR_R_DELETE_DOM_GROUP * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_del_groupmem(SAMR_Q_DEL_GROUPMEM * q_e,
+ POLICY_HND * pol, uint32 rid);
+BOOL samr_io_q_del_groupmem(char *desc, SAMR_Q_DEL_GROUPMEM * q_e,
+ prs_struct * ps, int depth);
+BOOL make_samr_r_del_groupmem(SAMR_R_DEL_GROUPMEM * r_u, POLICY_HND * pol,
+ uint32 status);
+BOOL samr_io_r_del_groupmem(char *desc, SAMR_R_DEL_GROUPMEM * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_add_groupmem(SAMR_Q_ADD_GROUPMEM * q_e,
+ POLICY_HND * pol, uint32 rid);
+BOOL samr_io_q_add_groupmem(char *desc, SAMR_Q_ADD_GROUPMEM * q_e,
+ prs_struct * ps, int depth);
+BOOL make_samr_r_add_groupmem(SAMR_R_ADD_GROUPMEM * r_u, POLICY_HND * pol,
+ uint32 status);
+BOOL samr_io_r_add_groupmem(char *desc, SAMR_R_ADD_GROUPMEM * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_set_groupinfo(SAMR_Q_SET_GROUPINFO * q_e,
+ POLICY_HND * pol, GROUP_INFO_CTR * ctr);
+BOOL samr_io_q_set_groupinfo(char *desc, SAMR_Q_SET_GROUPINFO * q_e,
+ prs_struct * ps, int depth);
+BOOL make_samr_r_set_groupinfo(SAMR_R_SET_GROUPINFO * r_u, uint32 status);
+BOOL samr_io_r_set_groupinfo(char *desc, SAMR_R_SET_GROUPINFO * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_query_groupinfo(SAMR_Q_QUERY_GROUPINFO * q_e,
+ POLICY_HND * pol, uint16 switch_level);
+BOOL samr_io_q_query_groupinfo(char *desc, SAMR_Q_QUERY_GROUPINFO * q_e,
+ prs_struct * ps, int depth);
+BOOL make_samr_r_query_groupinfo(SAMR_R_QUERY_GROUPINFO * r_u,
+ GROUP_INFO_CTR * ctr, uint32 status);
+BOOL samr_io_r_query_groupinfo(char *desc, SAMR_R_QUERY_GROUPINFO * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_query_groupmem(SAMR_Q_QUERY_GROUPMEM * q_c, POLICY_HND * hnd);
+BOOL samr_io_q_query_groupmem(char *desc, SAMR_Q_QUERY_GROUPMEM * q_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_r_query_groupmem(SAMR_R_QUERY_GROUPMEM * r_u,
+ uint32 num_entries, uint32 * rid,
+ uint32 * attr, uint32 status);
+BOOL samr_io_r_query_groupmem(char *desc, SAMR_R_QUERY_GROUPMEM * r_u,
+ prs_struct * ps, int depth);
+void samr_free_r_query_groupmem(SAMR_R_QUERY_GROUPMEM * r_u);
+BOOL make_samr_q_query_usergroups(SAMR_Q_QUERY_USERGROUPS * q_u,
+ POLICY_HND * hnd);
+BOOL samr_io_q_query_usergroups(char *desc, SAMR_Q_QUERY_USERGROUPS * q_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_r_query_usergroups(SAMR_R_QUERY_USERGROUPS * r_u,
+ uint32 num_gids, DOM_GID * gid,
+ uint32 status);
+BOOL samr_io_gids(char *desc, uint32 * num_gids, DOM_GID ** gid,
+ prs_struct * ps, int depth);
+BOOL samr_io_r_query_usergroups(char *desc, SAMR_R_QUERY_USERGROUPS * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_enum_domains(SAMR_Q_ENUM_DOMAINS * q_e,
+ const POLICY_HND * pol,
uint32 start_idx, uint32 size);
-BOOL samr_io_q_enum_domains(char *desc, SAMR_Q_ENUM_DOMAINS *q_e, prs_struct *ps, int depth);
-BOOL make_samr_r_enum_domains(SAMR_R_ENUM_DOMAINS *r_u,
- uint32 next_idx, uint32 num_sam_entries);
-BOOL samr_io_r_enum_domains(char *desc, SAMR_R_ENUM_DOMAINS *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_enum_dom_groups(SAMR_Q_ENUM_DOM_GROUPS *q_e,
- const POLICY_HND *pol,
+BOOL samr_io_q_enum_domains(char *desc, SAMR_Q_ENUM_DOMAINS * q_e,
+ prs_struct * ps, int depth);
+BOOL make_samr_r_enum_domains(SAMR_R_ENUM_DOMAINS * r_u,
+ uint32 next_idx, uint32 num_sam_entries);
+BOOL samr_io_r_enum_domains(char *desc, SAMR_R_ENUM_DOMAINS * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_enum_dom_groups(SAMR_Q_ENUM_DOM_GROUPS * q_e,
+ const POLICY_HND * pol,
uint32 start_idx, uint32 size);
-BOOL samr_io_q_enum_dom_groups(char *desc, SAMR_Q_ENUM_DOM_GROUPS *q_e, prs_struct *ps, int depth);
-BOOL make_samr_r_enum_dom_groups(SAMR_R_ENUM_DOM_GROUPS *r_u,
- uint32 next_idx, uint32 num_sam_entries);
-BOOL samr_io_r_enum_dom_groups(char *desc, SAMR_R_ENUM_DOM_GROUPS *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_enum_dom_aliases(SAMR_Q_ENUM_DOM_ALIASES *q_e, POLICY_HND *pol,
- uint32 start_idx, uint32 size);
-BOOL samr_io_q_enum_dom_aliases(char *desc, SAMR_Q_ENUM_DOM_ALIASES *q_e, prs_struct *ps, int depth);
-BOOL make_samr_r_enum_dom_aliases(SAMR_R_ENUM_DOM_ALIASES *r_u,
- uint32 next_idx,
- uint32 num_sam_entries);
-BOOL samr_io_r_enum_dom_aliases(char *desc, SAMR_R_ENUM_DOM_ALIASES *r_u, prs_struct *ps, int depth);
-BOOL make_samr_alias_info3(ALIAS_INFO3 *al3, const char *acct_desc);
-BOOL samr_io_alias_info3(char *desc, ALIAS_INFO3 *al3, prs_struct *ps, int depth);
-BOOL samr_alias_info_ctr(char *desc, ALIAS_INFO_CTR *ctr, prs_struct *ps, int depth);
-BOOL make_samr_q_query_aliasinfo(SAMR_Q_QUERY_ALIASINFO *q_e,
- const POLICY_HND *pol, uint16 switch_level);
-BOOL samr_io_q_query_aliasinfo(char *desc, SAMR_Q_QUERY_ALIASINFO *q_e, prs_struct *ps, int depth);
-BOOL make_samr_r_query_aliasinfo(SAMR_R_QUERY_ALIASINFO *r_u,
- ALIAS_INFO_CTR *ctr, uint32 status);
-BOOL samr_io_r_query_aliasinfo(char *desc, SAMR_R_QUERY_ALIASINFO *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_set_aliasinfo(SAMR_Q_SET_ALIASINFO *q_u,
- const POLICY_HND *hnd,
- ALIAS_INFO_CTR *ctr);
-BOOL samr_io_q_set_aliasinfo(char *desc, SAMR_Q_SET_ALIASINFO *q_u, prs_struct *ps, int depth);
-BOOL samr_io_r_set_aliasinfo(char *desc, SAMR_R_SET_ALIASINFO *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_query_useraliases(SAMR_Q_QUERY_USERALIASES *q_u,
- const POLICY_HND *hnd,
- uint32 num_sids,
- uint32 *ptr_sid, DOM_SID2 *sid);
-BOOL samr_io_q_query_useraliases(char *desc, SAMR_Q_QUERY_USERALIASES *q_u, prs_struct *ps, int depth);
-void samr_free_q_query_useraliases(SAMR_Q_QUERY_USERALIASES *q_u);
-BOOL make_samr_r_query_useraliases(SAMR_R_QUERY_USERALIASES *r_u,
- uint32 num_rids, uint32 *rid, uint32 status);
-BOOL samr_io_rids(char *desc, uint32 *num_rids, uint32 **rid, prs_struct *ps, int depth);
-BOOL samr_io_r_query_useraliases(char *desc, SAMR_R_QUERY_USERALIASES *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_open_alias(SAMR_Q_OPEN_ALIAS *q_u, const POLICY_HND *pol,
- uint32 unknown_0, uint32 rid);
-BOOL samr_io_q_open_alias(char *desc, SAMR_Q_OPEN_ALIAS *q_u, prs_struct *ps, int depth);
-BOOL samr_io_r_open_alias(char *desc, SAMR_R_OPEN_ALIAS *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_lookup_rids(SAMR_Q_LOOKUP_RIDS *q_u,
- const POLICY_HND *pol, uint32 flags,
- uint32 num_rids, const uint32 *rid);
-BOOL samr_io_q_lookup_rids(char *desc, SAMR_Q_LOOKUP_RIDS *q_u, prs_struct *ps, int depth);
-void samr_free_q_lookup_rids(SAMR_Q_LOOKUP_RIDS *q_u);
-BOOL make_samr_r_lookup_rids(SAMR_R_LOOKUP_RIDS *r_u,
- uint32 num_names, UNIHDR *hdr_name, UNISTR2 *uni_name,
- uint32 *type);
-BOOL samr_io_r_lookup_rids(char *desc, SAMR_R_LOOKUP_RIDS *r_u, prs_struct *ps, int depth);
-void samr_free_r_lookup_rids(SAMR_R_LOOKUP_RIDS *r_u);
-BOOL make_samr_q_delete_alias(SAMR_Q_DELETE_DOM_ALIAS *q_u, POLICY_HND *hnd);
-BOOL samr_io_q_delete_alias(char *desc, SAMR_Q_DELETE_DOM_ALIAS *q_u, prs_struct *ps, int depth);
-BOOL samr_io_r_delete_alias(char *desc, SAMR_R_DELETE_DOM_ALIAS *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_create_dom_alias(SAMR_Q_CREATE_DOM_ALIAS *q_u, POLICY_HND *hnd,
- const char *acct_desc);
-BOOL samr_io_q_create_dom_alias(char *desc, SAMR_Q_CREATE_DOM_ALIAS *q_u, prs_struct *ps, int depth);
-BOOL samr_io_r_create_dom_alias(char *desc, SAMR_R_CREATE_DOM_ALIAS *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_add_aliasmem(SAMR_Q_ADD_ALIASMEM *q_u, POLICY_HND *hnd,
- DOM_SID *sid);
-BOOL samr_io_q_add_aliasmem(char *desc, SAMR_Q_ADD_ALIASMEM *q_u, prs_struct *ps, int depth);
-BOOL samr_io_r_add_aliasmem(char *desc, SAMR_R_ADD_ALIASMEM *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_del_aliasmem(SAMR_Q_DEL_ALIASMEM *q_u, POLICY_HND *hnd,
- DOM_SID *sid);
-BOOL samr_io_q_del_aliasmem(char *desc, SAMR_Q_DEL_ALIASMEM *q_u, prs_struct *ps, int depth);
-BOOL samr_io_r_del_aliasmem(char *desc, SAMR_R_DEL_ALIASMEM *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_delete_dom_alias(SAMR_Q_DELETE_DOM_ALIAS *q_c, POLICY_HND *hnd);
-BOOL samr_io_q_delete_dom_alias(char *desc, SAMR_Q_DELETE_DOM_ALIAS *q_u, prs_struct *ps, int depth);
-BOOL make_samr_r_delete_dom_alias(SAMR_R_DELETE_DOM_ALIAS *r_u,
- uint32 status);
-BOOL samr_io_r_delete_dom_alias(char *desc, SAMR_R_DELETE_DOM_ALIAS *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_query_aliasmem(SAMR_Q_QUERY_ALIASMEM *q_c,
- const POLICY_HND *hnd);
-BOOL samr_io_q_query_aliasmem(char *desc, SAMR_Q_QUERY_ALIASMEM *q_u, prs_struct *ps, int depth);
-BOOL make_samr_r_query_aliasmem(SAMR_R_QUERY_ALIASMEM *r_u,
- uint32 num_sids, DOM_SID2 *sid, uint32 status);
-BOOL samr_io_r_query_aliasmem(char *desc, SAMR_R_QUERY_ALIASMEM *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_lookup_names(SAMR_Q_LOOKUP_NAMES *q_u,
- const POLICY_HND *pol, uint32 flags,
+BOOL samr_io_q_enum_dom_groups(char *desc, SAMR_Q_ENUM_DOM_GROUPS * q_e,
+ prs_struct * ps, int depth);
+BOOL make_samr_r_enum_dom_groups(SAMR_R_ENUM_DOM_GROUPS * r_u,
+ uint32 next_idx, uint32 num_sam_entries);
+BOOL samr_io_r_enum_dom_groups(char *desc, SAMR_R_ENUM_DOM_GROUPS * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_enum_dom_aliases(SAMR_Q_ENUM_DOM_ALIASES * q_e,
+ POLICY_HND * pol, uint32 start_idx,
+ uint32 size);
+BOOL samr_io_q_enum_dom_aliases(char *desc, SAMR_Q_ENUM_DOM_ALIASES * q_e,
+ prs_struct * ps, int depth);
+BOOL make_samr_r_enum_dom_aliases(SAMR_R_ENUM_DOM_ALIASES * r_u,
+ uint32 next_idx, uint32 num_sam_entries);
+BOOL samr_io_r_enum_dom_aliases(char *desc, SAMR_R_ENUM_DOM_ALIASES * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_alias_info3(ALIAS_INFO3 * al3, const char *acct_desc);
+BOOL samr_io_alias_info3(char *desc, ALIAS_INFO3 * al3, prs_struct * ps,
+ int depth);
+BOOL samr_alias_info_ctr(char *desc, ALIAS_INFO_CTR * ctr, prs_struct * ps,
+ int depth);
+BOOL make_samr_q_query_aliasinfo(SAMR_Q_QUERY_ALIASINFO * q_e,
+ const POLICY_HND * pol, uint16 switch_level);
+BOOL samr_io_q_query_aliasinfo(char *desc, SAMR_Q_QUERY_ALIASINFO * q_e,
+ prs_struct * ps, int depth);
+BOOL make_samr_r_query_aliasinfo(SAMR_R_QUERY_ALIASINFO * r_u,
+ ALIAS_INFO_CTR * ctr, uint32 status);
+BOOL samr_io_r_query_aliasinfo(char *desc, SAMR_R_QUERY_ALIASINFO * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_set_aliasinfo(SAMR_Q_SET_ALIASINFO * q_u,
+ const POLICY_HND * hnd, ALIAS_INFO_CTR * ctr);
+BOOL samr_io_q_set_aliasinfo(char *desc, SAMR_Q_SET_ALIASINFO * q_u,
+ prs_struct * ps, int depth);
+BOOL samr_io_r_set_aliasinfo(char *desc, SAMR_R_SET_ALIASINFO * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_query_useraliases(SAMR_Q_QUERY_USERALIASES * q_u,
+ const POLICY_HND * hnd,
+ uint32 num_sids,
+ uint32 * ptr_sid, DOM_SID2 * sid);
+BOOL samr_io_q_query_useraliases(char *desc, SAMR_Q_QUERY_USERALIASES * q_u,
+ prs_struct * ps, int depth);
+void samr_free_q_query_useraliases(SAMR_Q_QUERY_USERALIASES * q_u);
+BOOL make_samr_r_query_useraliases(SAMR_R_QUERY_USERALIASES * r_u,
+ uint32 num_rids, uint32 * rid,
+ uint32 status);
+BOOL samr_io_rids(char *desc, uint32 * num_rids, uint32 ** rid,
+ prs_struct * ps, int depth);
+BOOL samr_io_r_query_useraliases(char *desc, SAMR_R_QUERY_USERALIASES * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_open_alias(SAMR_Q_OPEN_ALIAS * q_u, const POLICY_HND * pol,
+ uint32 unknown_0, uint32 rid);
+BOOL samr_io_q_open_alias(char *desc, SAMR_Q_OPEN_ALIAS * q_u,
+ prs_struct * ps, int depth);
+BOOL samr_io_r_open_alias(char *desc, SAMR_R_OPEN_ALIAS * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_lookup_rids(SAMR_Q_LOOKUP_RIDS * q_u,
+ const POLICY_HND * pol, uint32 flags,
+ uint32 num_rids, const uint32 * rid);
+BOOL samr_io_q_lookup_rids(char *desc, SAMR_Q_LOOKUP_RIDS * q_u,
+ prs_struct * ps, int depth);
+void samr_free_q_lookup_rids(SAMR_Q_LOOKUP_RIDS * q_u);
+BOOL make_samr_r_lookup_rids(SAMR_R_LOOKUP_RIDS * r_u,
+ uint32 num_names, UNIHDR * hdr_name,
+ UNISTR2 * uni_name, uint32 * type);
+BOOL samr_io_r_lookup_rids(char *desc, SAMR_R_LOOKUP_RIDS * r_u,
+ prs_struct * ps, int depth);
+void samr_free_r_lookup_rids(SAMR_R_LOOKUP_RIDS * r_u);
+BOOL make_samr_q_delete_alias(SAMR_Q_DELETE_DOM_ALIAS * q_u, POLICY_HND * hnd);
+BOOL samr_io_q_delete_alias(char *desc, SAMR_Q_DELETE_DOM_ALIAS * q_u,
+ prs_struct * ps, int depth);
+BOOL samr_io_r_delete_alias(char *desc, SAMR_R_DELETE_DOM_ALIAS * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_create_dom_alias(SAMR_Q_CREATE_DOM_ALIAS * q_u,
+ POLICY_HND * hnd, const char *acct_desc);
+BOOL samr_io_q_create_dom_alias(char *desc, SAMR_Q_CREATE_DOM_ALIAS * q_u,
+ prs_struct * ps, int depth);
+BOOL samr_io_r_create_dom_alias(char *desc, SAMR_R_CREATE_DOM_ALIAS * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_add_aliasmem(SAMR_Q_ADD_ALIASMEM * q_u, POLICY_HND * hnd,
+ DOM_SID * sid);
+BOOL samr_io_q_add_aliasmem(char *desc, SAMR_Q_ADD_ALIASMEM * q_u,
+ prs_struct * ps, int depth);
+BOOL samr_io_r_add_aliasmem(char *desc, SAMR_R_ADD_ALIASMEM * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_del_aliasmem(SAMR_Q_DEL_ALIASMEM * q_u, POLICY_HND * hnd,
+ DOM_SID * sid);
+BOOL samr_io_q_del_aliasmem(char *desc, SAMR_Q_DEL_ALIASMEM * q_u,
+ prs_struct * ps, int depth);
+BOOL samr_io_r_del_aliasmem(char *desc, SAMR_R_DEL_ALIASMEM * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_delete_dom_alias(SAMR_Q_DELETE_DOM_ALIAS * q_c,
+ POLICY_HND * hnd);
+BOOL samr_io_q_delete_dom_alias(char *desc, SAMR_Q_DELETE_DOM_ALIAS * q_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_r_delete_dom_alias(SAMR_R_DELETE_DOM_ALIAS * r_u,
+ uint32 status);
+BOOL samr_io_r_delete_dom_alias(char *desc, SAMR_R_DELETE_DOM_ALIAS * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_query_aliasmem(SAMR_Q_QUERY_ALIASMEM * q_c,
+ const POLICY_HND * hnd);
+BOOL samr_io_q_query_aliasmem(char *desc, SAMR_Q_QUERY_ALIASMEM * q_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_r_query_aliasmem(SAMR_R_QUERY_ALIASMEM * r_u,
+ uint32 num_sids, DOM_SID2 * sid,
+ uint32 status);
+BOOL samr_io_r_query_aliasmem(char *desc, SAMR_R_QUERY_ALIASMEM * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_lookup_names(SAMR_Q_LOOKUP_NAMES * q_u,
+ const POLICY_HND * pol, uint32 flags,
uint32 num_names, char **name);
-BOOL samr_io_q_lookup_names(char *desc, SAMR_Q_LOOKUP_NAMES *q_u, prs_struct *ps, int depth);
-void samr_free_q_lookup_names(SAMR_Q_LOOKUP_NAMES *q_l);
-BOOL make_samr_r_lookup_names(SAMR_R_LOOKUP_NAMES *r_u,
+BOOL samr_io_q_lookup_names(char *desc, SAMR_Q_LOOKUP_NAMES * q_u,
+ prs_struct * ps, int depth);
+void samr_free_q_lookup_names(SAMR_Q_LOOKUP_NAMES * q_l);
+BOOL make_samr_r_lookup_names(SAMR_R_LOOKUP_NAMES * r_u,
uint32 num_rids,
- const uint32 *rid, const uint32 *type,
+ const uint32 * rid, const uint32 * type,
uint32 status);
-BOOL samr_io_r_lookup_names(char *desc, SAMR_R_LOOKUP_NAMES *r_u, prs_struct *ps, int depth);
-void samr_free_r_lookup_names(SAMR_R_LOOKUP_NAMES *r_l);
-BOOL make_samr_q_delete_dom_user(SAMR_Q_DELETE_DOM_USER *q_c, POLICY_HND *hnd);
-BOOL samr_io_q_delete_dom_user(char *desc, SAMR_Q_DELETE_DOM_USER *q_u, prs_struct *ps, int depth);
-BOOL samr_io_r_delete_dom_user(char *desc, SAMR_R_DELETE_DOM_USER *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_open_user(SAMR_Q_OPEN_USER *q_u,
- const POLICY_HND *pol,
- uint32 access_mask, uint32 rid);
-BOOL samr_io_q_open_user(char *desc, SAMR_Q_OPEN_USER *q_u, prs_struct *ps, int depth);
-BOOL samr_io_r_open_user(char *desc, SAMR_R_OPEN_USER *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_create_user(SAMR_Q_CREATE_USER *q_u,
- POLICY_HND *pol,
- const char *name,
- uint16 acb_info, uint32 access_mask);
-BOOL samr_io_q_create_user(char *desc, SAMR_Q_CREATE_USER *q_u, prs_struct *ps, int depth);
-BOOL samr_io_r_create_user(char *desc, SAMR_R_CREATE_USER *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_query_userinfo(SAMR_Q_QUERY_USERINFO *q_u,
- POLICY_HND *hnd, uint16 switch_value);
-BOOL samr_io_q_query_userinfo(char *desc, SAMR_Q_QUERY_USERINFO *q_u, prs_struct *ps, int depth);
-BOOL make_sam_user_info12(SAM_USER_INFO_12 *usr,
- uint16 acb_info,
- const uint8 lm_pwd[16],
- const uint8 nt_pwd[16]);
-BOOL sam_io_user_info12(char *desc, SAM_USER_INFO_12 *u, prs_struct *ps, int depth);
-BOOL make_sam_user_info10(SAM_USER_INFO_10 *usr,
- uint32 acb_info);
-BOOL sam_io_user_info10(char *desc, SAM_USER_INFO_10 *usr, prs_struct *ps, int depth);
-BOOL make_sam_user_info11(SAM_USER_INFO_11 *usr,
- NTTIME *expiry,
- char *mach_acct,
- uint32 rid_user,
- uint32 rid_group,
- uint16 acct_ctrl);
-BOOL sam_io_user_info11(char *desc, SAM_USER_INFO_11 *usr, prs_struct *ps, int depth);
-BOOL make_sam_user_info24(SAM_USER_INFO_24 *usr,
- const char newpass[516], uint16 passlen);
-BOOL make_sam_user_info23W(SAM_USER_INFO_23 *usr,
-
- const NTTIME *logon_time, /* all zeros */
- const NTTIME *logoff_time, /* all zeros */
- const NTTIME *kickoff_time, /* all zeros */
- const NTTIME *pass_last_set_time, /* all zeros */
- const NTTIME *pass_can_change_time, /* all zeros */
- const NTTIME *pass_must_change_time, /* all zeros */
-
- const UNISTR2 *user_name,
- const UNISTR2 *full_name,
- const UNISTR2 *home_dir,
- const UNISTR2 *dir_drive,
- const UNISTR2 *log_scr,
- const UNISTR2 *prof_path,
- const UNISTR2 *desc,
- const UNISTR2 *wkstas,
- const UNISTR2 *unk_str,
- const UNISTR2 *mung_dial,
-
- uint32 user_rid, /* 0x0000 0000 */
- uint32 group_rid,
- uint16 acb_info,
-
- uint32 unknown_3,
- uint16 logon_divs,
- LOGON_HRS *hrs,
- uint32 unknown_5,
- char newpass[516],
- uint32 unknown_6);
-BOOL make_sam_user_info23A(SAM_USER_INFO_23 *usr,
-
- NTTIME *logon_time, /* all zeros */
- NTTIME *logoff_time, /* all zeros */
- NTTIME *kickoff_time, /* all zeros */
- NTTIME *pass_last_set_time, /* all zeros */
- NTTIME *pass_can_change_time, /* all zeros */
- NTTIME *pass_must_change_time, /* all zeros */
-
- char *user_name, /* NULL */
- char *full_name,
- char *home_dir,
- char *dir_drive,
- char *log_scr,
- char *prof_path,
- char *desc,
- char *wkstas,
- char *unk_str,
- char *mung_dial,
-
- uint32 user_rid, /* 0x0000 0000 */
- uint32 group_rid,
- uint16 acb_info,
-
- uint32 unknown_3,
- uint16 logon_divs,
- LOGON_HRS *hrs,
- uint32 unknown_5,
- char newpass[516],
- uint32 unknown_6);
-BOOL make_sam_user_info21W(SAM_USER_INFO_21 *usr,
-
- const NTTIME *logon_time,
- const NTTIME *logoff_time,
- const NTTIME *kickoff_time,
- const NTTIME *pass_last_set_time,
- const NTTIME *pass_can_change_time,
- const NTTIME *pass_must_change_time,
-
- const UNISTR2 *user_name,
- const UNISTR2 *full_name,
- const UNISTR2 *home_dir,
- const UNISTR2 *dir_drive,
- const UNISTR2 *log_scr,
- const UNISTR2 *prof_path,
- const UNISTR2 *desc,
- const UNISTR2 *wkstas,
- const UNISTR2 *unk_str,
- const UNISTR2 *mung_dial,
-
- const uchar lm_pwd[16],
- const uchar nt_pwd[16],
-
- uint32 user_rid,
- uint32 group_rid,
- uint16 acb_info,
-
- uint32 unknown_3,
- uint16 logon_divs,
- const LOGON_HRS *hrs,
- uint32 unknown_5,
- uint32 unknown_6);
-BOOL make_sam_user_info21A(SAM_USER_INFO_21 *usr,
-
- NTTIME *logon_time,
- NTTIME *logoff_time,
- NTTIME *kickoff_time,
- NTTIME *pass_last_set_time,
- NTTIME *pass_can_change_time,
- NTTIME *pass_must_change_time,
-
- char *user_name,
- char *full_name,
- char *home_dir,
- char *dir_drive,
- char *log_scr,
- char *prof_path,
- char *desc,
- char *wkstas,
- char *unk_str,
- char *mung_dial,
-
- uint32 user_rid,
- uint32 group_rid,
- uint16 acb_info,
-
- uint32 unknown_3,
- uint16 logon_divs,
- LOGON_HRS *hrs,
- uint32 unknown_5,
- uint32 unknown_6);
-BOOL sam_io_user_info21(char *desc, SAM_USER_INFO_21 *usr, prs_struct *ps, int depth);
-uint32 make_samr_userinfo_ctr_usr21(SAM_USERINFO_CTR *ctr,
- uint16 switch_value,
- const SAM_USER_INFO_21 *usr);
-BOOL make_samr_userinfo_ctr(SAM_USERINFO_CTR *ctr, const uchar *sess_key,
- uint16 switch_value, void *info);
-BOOL samr_io_userinfo_ctr(char *desc, SAM_USERINFO_CTR *ctr, prs_struct *ps, int depth);
-void free_samr_userinfo_ctr(SAM_USERINFO_CTR *ctr);
-BOOL make_samr_r_query_userinfo(SAMR_R_QUERY_USERINFO *r_u,
- SAM_USERINFO_CTR *ctr, uint32 status);
-BOOL samr_io_r_query_userinfo(char *desc, SAMR_R_QUERY_USERINFO *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_set_userinfo(SAMR_Q_SET_USERINFO *q_u,
- POLICY_HND *hnd,
- uint16 switch_value, void *info);
-BOOL samr_io_q_set_userinfo(char *desc, SAMR_Q_SET_USERINFO *q_u, prs_struct *ps, int depth);
-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,
- SAM_USERINFO_CTR *ctr);
-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 access_mask);
-BOOL samr_io_q_connect(char *desc, SAMR_Q_CONNECT *q_u, prs_struct *ps, int depth);
-BOOL samr_io_r_connect(char *desc, SAMR_R_CONNECT *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_connect_anon(SAMR_Q_CONNECT_ANON *q_u);
-BOOL samr_io_q_connect_anon(char *desc, SAMR_Q_CONNECT_ANON *q_u, prs_struct *ps, int depth);
-BOOL samr_io_r_connect_anon(char *desc, SAMR_R_CONNECT_ANON *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_get_dom_pwinfo(SAMR_Q_GET_DOM_PWINFO *q_u, const char *srv_name);
-BOOL samr_io_q_get_dom_pwinfo(char *desc, SAMR_Q_GET_DOM_PWINFO *q_u, prs_struct *ps, int depth);
-BOOL samr_io_r_get_dom_pwinfo(char *desc, SAMR_R_GET_DOM_PWINFO *r_u, prs_struct *ps, int depth);
-BOOL make_enc_passwd(SAMR_ENC_PASSWD *pwd, const char pass[512]);
-BOOL samr_io_enc_passwd(char *desc, SAMR_ENC_PASSWD *pwd, prs_struct *ps, int depth);
-BOOL make_enc_hash(SAMR_ENC_HASH *hsh, const uchar hash[16]);
-BOOL samr_io_enc_hash(char *desc, SAMR_ENC_HASH *hsh, prs_struct *ps, int depth);
-BOOL make_samr_q_chgpasswd_user(SAMR_Q_CHGPASSWD_USER *q_u,
+BOOL samr_io_r_lookup_names(char *desc, SAMR_R_LOOKUP_NAMES * r_u,
+ prs_struct * ps, int depth);
+void samr_free_r_lookup_names(SAMR_R_LOOKUP_NAMES * r_l);
+BOOL make_samr_q_delete_dom_user(SAMR_Q_DELETE_DOM_USER * q_c,
+ POLICY_HND * hnd);
+BOOL samr_io_q_delete_dom_user(char *desc, SAMR_Q_DELETE_DOM_USER * q_u,
+ prs_struct * ps, int depth);
+BOOL samr_io_r_delete_dom_user(char *desc, SAMR_R_DELETE_DOM_USER * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_open_user(SAMR_Q_OPEN_USER * q_u,
+ const POLICY_HND * pol,
+ uint32 access_mask, uint32 rid);
+BOOL samr_io_q_open_user(char *desc, SAMR_Q_OPEN_USER * q_u, prs_struct * ps,
+ int depth);
+BOOL samr_io_r_open_user(char *desc, SAMR_R_OPEN_USER * r_u, prs_struct * ps,
+ int depth);
+BOOL make_samr_q_create_user(SAMR_Q_CREATE_USER * q_u,
+ POLICY_HND * pol,
+ const char *name,
+ uint32 acb_info, uint32 access_mask);
+BOOL samr_io_q_create_user(char *desc, SAMR_Q_CREATE_USER * q_u,
+ prs_struct * ps, int depth);
+BOOL samr_io_r_create_user(char *desc, SAMR_R_CREATE_USER * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_query_userinfo(SAMR_Q_QUERY_USERINFO * q_u,
+ POLICY_HND * hnd, uint16 switch_value);
+BOOL samr_io_q_query_userinfo(char *desc, SAMR_Q_QUERY_USERINFO * q_u,
+ prs_struct * ps, int depth);
+BOOL make_sam_user_info12(SAM_USER_INFO_12 * usr,
+ uint16 acb_info,
+ const uint8 lm_pwd[16], const uint8 nt_pwd[16]);
+BOOL sam_io_user_info12(char *desc, SAM_USER_INFO_12 * u, prs_struct * ps,
+ int depth);
+BOOL make_sam_user_info10(SAM_USER_INFO_10 * usr, uint32 acb_info);
+BOOL sam_io_user_info10(char *desc, SAM_USER_INFO_10 * usr, prs_struct * ps,
+ int depth);
+BOOL make_sam_user_info11(SAM_USER_INFO_11 * usr,
+ NTTIME * expiry,
+ char *mach_acct,
+ uint32 rid_user, uint32 rid_group, uint16 acct_ctrl);
+BOOL sam_io_user_info11(char *desc, SAM_USER_INFO_11 * usr, prs_struct * ps,
+ int depth);
+BOOL make_sam_user_info24(SAM_USER_INFO_24 * usr,
+ const char newpass[516], uint16 passlen);
+BOOL make_sam_user_info23W(SAM_USER_INFO_23 * usr, const NTTIME * logon_time, /* all zeros */
+ const NTTIME * logoff_time, /* all zeros */
+ const NTTIME * kickoff_time, /* all zeros */
+ const NTTIME * pass_last_set_time, /* all zeros */
+ const NTTIME * pass_can_change_time, /* all zeros */
+ const NTTIME * pass_must_change_time, /* all zeros */
+ const UNISTR2 * user_name,
+ const UNISTR2 * full_name,
+ const UNISTR2 * home_dir,
+ const UNISTR2 * dir_drive,
+ const UNISTR2 * log_scr,
+ const UNISTR2 * prof_path,
+ const UNISTR2 * desc,
+ const UNISTR2 * wkstas,
+ const UNISTR2 * unk_str,
+ const UNISTR2 * mung_dial, uint32 user_rid, /* 0x0000 0000 */
+ uint32 group_rid,
+ uint32 acb_info,
+ uint32 unknown_3,
+ uint16 logon_divs,
+ LOGON_HRS * hrs,
+ uint32 unknown_5,
+ char newpass[516], uint32 unknown_6);
+BOOL make_sam_user_info23A(SAM_USER_INFO_23 * usr, NTTIME * logon_time, /* all zeros */
+ NTTIME * logoff_time, /* all zeros */
+ NTTIME * kickoff_time, /* all zeros */
+ NTTIME * pass_last_set_time, /* all zeros */
+ NTTIME * pass_can_change_time, /* all zeros */
+ NTTIME * pass_must_change_time, /* all zeros */
+ char *user_name, /* NULL */
+ char *full_name,
+ char *home_dir, char *dir_drive, char *log_scr, char *prof_path, char *desc, char *wkstas, char *unk_str, char *mung_dial, uint32 user_rid, /* 0x0000 0000 */
+ uint32 group_rid,
+ uint32 acb_info,
+ uint32 unknown_3,
+ uint16 logon_divs,
+ LOGON_HRS * hrs,
+ uint32 unknown_5,
+ char newpass[516], uint32 unknown_6);
+BOOL make_sam_user_info21W(SAM_USER_INFO_21 * usr,
+ const NTTIME * logon_time,
+ const NTTIME * logoff_time,
+ const NTTIME * kickoff_time,
+ const NTTIME * pass_last_set_time,
+ const NTTIME * pass_can_change_time,
+ const NTTIME * pass_must_change_time,
+ const UNISTR2 * user_name,
+ const UNISTR2 * full_name,
+ const UNISTR2 * home_dir,
+ const UNISTR2 * dir_drive,
+ const UNISTR2 * log_scr,
+ const UNISTR2 * prof_path,
+ const UNISTR2 * desc,
+ const UNISTR2 * wkstas,
+ const UNISTR2 * unk_str,
+ const UNISTR2 * mung_dial,
+ const uchar lm_pwd[16],
+ const uchar nt_pwd[16],
+ uint32 user_rid,
+ uint32 group_rid,
+ uint32 acb_info,
+ uint32 unknown_3,
+ uint16 logon_divs,
+ const LOGON_HRS * hrs,
+ uint32 unknown_5, uint32 unknown_6);
+BOOL make_sam_user_info21A(SAM_USER_INFO_21 * usr,
+ NTTIME * logon_time,
+ NTTIME * logoff_time,
+ NTTIME * kickoff_time,
+ NTTIME * pass_last_set_time,
+ NTTIME * pass_can_change_time,
+ NTTIME * pass_must_change_time,
+ char *user_name,
+ char *full_name,
+ char *home_dir,
+ char *dir_drive,
+ char *log_scr,
+ char *prof_path,
+ char *desc,
+ char *wkstas,
+ char *unk_str,
+ char *mung_dial,
+ uint32 user_rid,
+ uint32 group_rid,
+ uint32 acb_info,
+ uint32 unknown_3,
+ uint16 logon_divs,
+ LOGON_HRS * hrs,
+ uint32 unknown_5, uint32 unknown_6);
+BOOL sam_io_user_info21(char *desc, SAM_USER_INFO_21 * usr, prs_struct * ps,
+ int depth);
+uint32 make_samr_userinfo_ctr_usr21(SAM_USERINFO_CTR * ctr,
+ uint16 switch_value,
+ const SAM_USER_INFO_21 * usr);
+BOOL make_samr_userinfo_ctr(SAM_USERINFO_CTR * ctr, const uchar * sess_key,
+ uint16 switch_value, void *info);
+BOOL samr_io_userinfo_ctr(char *desc, SAM_USERINFO_CTR * ctr, prs_struct * ps,
+ int depth);
+void free_samr_userinfo_ctr(SAM_USERINFO_CTR * ctr);
+BOOL make_samr_r_query_userinfo(SAMR_R_QUERY_USERINFO * r_u,
+ SAM_USERINFO_CTR * ctr, uint32 status);
+BOOL samr_io_r_query_userinfo(char *desc, SAMR_R_QUERY_USERINFO * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_set_userinfo(SAMR_Q_SET_USERINFO * q_u,
+ POLICY_HND * hnd,
+ uint16 switch_value, void *info);
+BOOL samr_io_q_set_userinfo(char *desc, SAMR_Q_SET_USERINFO * q_u,
+ prs_struct * ps, int depth);
+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, SAM_USERINFO_CTR * ctr);
+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 access_mask);
+BOOL samr_io_q_connect(char *desc, SAMR_Q_CONNECT * q_u, prs_struct * ps,
+ int depth);
+BOOL samr_io_r_connect(char *desc, SAMR_R_CONNECT * r_u, prs_struct * ps,
+ int depth);
+BOOL make_samr_q_connect_anon(SAMR_Q_CONNECT_ANON * q_u);
+BOOL samr_io_q_connect_anon(char *desc, SAMR_Q_CONNECT_ANON * q_u,
+ prs_struct * ps, int depth);
+BOOL samr_io_r_connect_anon(char *desc, SAMR_R_CONNECT_ANON * r_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_q_get_dom_pwinfo(SAMR_Q_GET_DOM_PWINFO * q_u,
+ const char *srv_name);
+BOOL samr_io_q_get_dom_pwinfo(char *desc, SAMR_Q_GET_DOM_PWINFO * q_u,
+ prs_struct * ps, int depth);
+BOOL samr_io_r_get_dom_pwinfo(char *desc, SAMR_R_GET_DOM_PWINFO * r_u,
+ prs_struct * ps, int depth);
+BOOL make_enc_passwd(SAMR_ENC_PASSWD * pwd, const char pass[512]);
+BOOL samr_io_enc_passwd(char *desc, SAMR_ENC_PASSWD * pwd, prs_struct * ps,
+ int depth);
+BOOL make_enc_hash(SAMR_ENC_HASH * hsh, const uchar hash[16]);
+BOOL samr_io_enc_hash(char *desc, SAMR_ENC_HASH * hsh, prs_struct * ps,
+ int depth);
+BOOL make_samr_q_chgpasswd_user(SAMR_Q_CHGPASSWD_USER * q_u,
const char *dest_host, const char *user_name,
const char nt_newpass[516],
const uchar nt_oldhash[16],
const char lm_newpass[516],
const uchar lm_oldhash[16]);
-BOOL samr_io_q_chgpasswd_user(char *desc, SAMR_Q_CHGPASSWD_USER *q_u, prs_struct *ps, int depth);
-BOOL make_samr_r_chgpasswd_user(SAMR_R_CHGPASSWD_USER *r_u, uint32 status);
-BOOL samr_io_r_chgpasswd_user(char *desc, SAMR_R_CHGPASSWD_USER *r_u, prs_struct *ps, int depth);
+BOOL samr_io_q_chgpasswd_user(char *desc, SAMR_Q_CHGPASSWD_USER * q_u,
+ prs_struct * ps, int depth);
+BOOL make_samr_r_chgpasswd_user(SAMR_R_CHGPASSWD_USER * r_u, uint32 status);
+BOOL samr_io_r_chgpasswd_user(char *desc, SAMR_R_CHGPASSWD_USER * r_u,
+ prs_struct * ps, int depth);
/*The following definitions come from rpc_parse/parse_sec.c */
diff --git a/source/netlogond/srv_netlogon_nt.c b/source/netlogond/srv_netlogon_nt.c
index f9281e6cd02..1f33002933b 100644
--- a/source/netlogond/srv_netlogon_nt.c
+++ b/source/netlogond/srv_netlogon_nt.c
@@ -818,7 +818,8 @@ uint32 _net_srv_pwset(const DOM_CLNT_INFO * clnt_id,
uint32 _net_sam_logon(const DOM_SAM_INFO * sam_id,
uint16 validation_level,
DOM_CRED * srv_creds,
- NET_USER_INFO_CTR * uctr, uint16 remote_pid)
+ NET_USER_INFO_CTR * uctr, uint16 remote_pid,
+ uint32 * auth_resp)
{
UNISTR2 *uni_samusr = NULL;
UNISTR2 *uni_domain = NULL;
@@ -944,6 +945,7 @@ uint32 _net_sam_logon(const DOM_SAM_INFO * sam_id,
{
return status;
}
+ (*auth_resp) = 1;
}
/*
@@ -1010,9 +1012,10 @@ uint32 _net_sam_logon(const DOM_SAM_INFO * sam_id,
/* interactive login. */
status =
net_login_interactive(&
- (sam_id->
- ctr->auth.id1),
+ (sam_id->ctr->
+ auth.id1),
&dc);
+ (*auth_resp) = 1;
break;
}
case NETWORK_LOGON_TYPE:
@@ -1020,12 +1023,13 @@ uint32 _net_sam_logon(const DOM_SAM_INFO * sam_id,
/* network login. lm challenge and 24 byte responses */
status =
net_login_network(&
- (sam_id->ctr->
- auth.id2),
- acb_info, &dc,
-usr_sess_key, lm_pw8);
+ (sam_id->ctr->auth.
+ id2), acb_info,
+ &dc, usr_sess_key,
+lm_pw8);
padding = lm_pw8;
enc_user_sess_key = usr_sess_key;
+ (*auth_resp) = 1;
break;
}
case GENERAL_LOGON_TYPE:
diff --git a/source/rpc_client/cli_login.c b/source/rpc_client/cli_login.c
index c6b93c23765..9316e61f0fa 100644
--- a/source/rpc_client/cli_login.c
+++ b/source/rpc_client/cli_login.c
@@ -155,7 +155,7 @@ BOOL cli_nt_login_general(const char *srv_name, const char *myhostname,
uint8 sess_key[16];
NET_USER_INFO_CTR user_ctr;
uint32 status;
- user_ctr.switch_value = 3;
+ user_ctr.switch_value = 2;
DEBUG(5, ("cli_nt_login_general: %d\n", __LINE__));
@@ -205,7 +205,7 @@ uint32 cli_nt_login_interactive(const char *srv_name, const char *myhostname,
uint32 status;
uint8 sess_key[16];
NET_USER_INFO_CTR user_ctr;
- user_ctr.switch_value = 3;
+ user_ctr.switch_value = 2;
DEBUG(5, ("cli_nt_login_interactive: %d\n", __LINE__));
@@ -261,7 +261,7 @@ uint32 cli_nt_login_network(const char *srv_name, const char *myhostname,
uint8 sess_key[16];
uint32 status;
NET_USER_INFO_CTR user_ctr;
- user_ctr.switch_value = 3;
+ user_ctr.switch_value = 2;
DEBUG(5, ("cli_nt_login_network: %d\n", __LINE__));
diff --git a/source/rpc_client/msrpc_lsarpc.c b/source/rpc_client/msrpc_lsarpc.c
index 0fbc3a513dd..2ee84569ed8 100644
--- a/source/rpc_client/msrpc_lsarpc.c
+++ b/source/rpc_client/msrpc_lsarpc.c
@@ -347,16 +347,22 @@ BOOL msrpc_lsa_query_trust_passwd(const char *srv_name,
STRING2 secret;
UNISTR2 uni_pwd;
uint32 len;
+ pstring data;
+ int i;
+
if (!msrpc_lsa_query_secret(srv_name, secret_name, &secret,
last_update))
{
return False;
}
- if (!secret_get_data(&secret, (uchar*)&uni_pwd.buffer, &len))
+ if (!secret_get_data(&secret, data, &len))
{
return False;
}
-
+ for (i = 0; i < len; i++)
+ {
+ uni_pwd.buffer[i] = SVAL(data, i*2);
+ }
uni_pwd.uni_str_len = len / 2;
uni_pwd.uni_max_len = len / 2;
nt_owf_genW(&uni_pwd, trust_passwd);
diff --git a/source/rpc_parse/parse_net.c b/source/rpc_parse/parse_net.c
index 1d4b78d0d25..90ae41d1101 100644
--- a/source/rpc_parse/parse_net.c
+++ b/source/rpc_parse/parse_net.c
@@ -1157,8 +1157,6 @@ BOOL make_net_user_info2W(NET_USER_INFO_2 * usr,
make_dom_sid2(&(usr->dom_sid), dom_sid);
/* "other" sids are set up above */
- usr->auth_resp = 1;
-
return True;
}
@@ -1271,8 +1269,6 @@ BOOL make_net_user_info2(NET_USER_INFO_2 * usr,
make_dom_sid2(&(usr->dom_sid), dom_sid);
/* "other" sids are set up above */
- usr->auth_resp = 1;
-
return True;
}
@@ -1352,8 +1348,6 @@ BOOL net_io_user_info2(char *desc, NET_USER_INFO_2 * usr, prs_struct * ps,
smb_io_dom_sid2("sid", &(usr->dom_sid), ps, depth); /* domain SID */
- prs_uint32("auth_resp ", ps, depth, &usr->auth_resp); /* 1 - Authoritative response; 0 - Non-Auth? */
-
return True;
}
@@ -1535,8 +1529,6 @@ BOOL make_net_user_info3W(NET_USER_INFO_3 * usr,
make_dom_sid2(&(usr->dom_sid), dom_sid);
/* "other" sids are set up above */
- usr->auth_resp = 1;
-
return True;
}
@@ -1657,8 +1649,6 @@ BOOL make_net_user_info3(NET_USER_INFO_3 * usr,
make_dom_sid2(&(usr->dom_sid), dom_sid);
/* "other" sids are set up above */
- usr->auth_resp = 1;
-
return True;
}
@@ -1748,8 +1738,6 @@ BOOL net_io_user_info3(char *desc, NET_USER_INFO_3 * usr, prs_struct * ps,
smb_io_dom_sid2("sids", &(usr->other_sids[i]), ps, depth); /* other domain SIDs */
}
- prs_uint32("auth_resp ", ps, depth, &usr->auth_resp); /* 1 - Authoritative response; 0 - Non-Auth? */
-
return True;
}
@@ -1817,6 +1805,8 @@ BOOL make_r_sam_logon(NET_R_SAM_LOGON * r_s,
r_s->ctr.usr.id = NULL;
}
+ r_s->auth_resp = 1;
+
r_s->status = status;
return True;
@@ -1908,12 +1898,13 @@ BOOL net_io_r_sam_logon(char *desc, NET_R_SAM_LOGON * r_l, prs_struct * ps,
prs_debug(ps, depth, desc, "net_io_r_sam_logon");
depth++;
- prs_uint32("buffer_creds", ps, depth, &(r_l->buffer_creds)); /* undocumented buffer pointer */
- smb_io_cred("", &(r_l->srv_creds), ps, depth); /* server credentials. server time stamp appears to be ignored. */
+ prs_uint32("buffer_creds", ps, depth, &r_l->buffer_creds);
+ smb_io_cred("", &(r_l->srv_creds), ps, depth);
net_io_user_info_ctr("", &r_l->ctr, ps, depth);
- prs_uint32("status ", ps, depth, &(r_l->status));
+ prs_uint32("auth_resp ", ps, depth, &r_l->auth_resp);
+ prs_uint32("status ", ps, depth, &r_l->status);
prs_align(ps);
diff --git a/source/rpc_parse/parse_samr.c b/source/rpc_parse/parse_samr.c
index 6777fb4e213..3af6b51d144 100644
--- a/source/rpc_parse/parse_samr.c
+++ b/source/rpc_parse/parse_samr.c
@@ -4843,7 +4843,7 @@ reads or writes a structure.
BOOL make_samr_q_create_user(SAMR_Q_CREATE_USER * q_u,
POLICY_HND * pol,
const char *name,
- uint16 acb_info, uint32 access_mask)
+ uint32 acb_info, uint32 access_mask)
{
int len_name;
if (q_u == NULL)
@@ -4885,8 +4885,7 @@ BOOL samr_io_q_create_user(char *desc, SAMR_Q_CREATE_USER * q_u,
depth);
prs_align(ps);
- prs_uint16("acb_info ", ps, depth, &(q_u->acb_info));
- prs_align(ps);
+ prs_uint32("acb_info ", ps, depth, &(q_u->acb_info));
prs_uint32("access_mask", ps, depth, &(q_u->access_mask));
prs_align(ps);
@@ -5253,7 +5252,7 @@ BOOL make_sam_user_info23W(SAM_USER_INFO_23 * usr, const NTTIME * logon_time, /*
const UNISTR2 * unk_str,
const UNISTR2 * mung_dial, uint32 user_rid, /* 0x0000 0000 */
uint32 group_rid,
- uint16 acb_info,
+ uint32 acb_info,
uint32 unknown_3,
uint16 logon_divs,
LOGON_HRS * hrs,
@@ -5350,7 +5349,7 @@ BOOL make_sam_user_info23A(SAM_USER_INFO_23 * usr, NTTIME * logon_time, /* all z
char *full_name,
char *home_dir, char *dir_drive, char *log_scr, char *prof_path, char *desc, char *wkstas, char *unk_str, char *mung_dial, uint32 user_rid, /* 0x0000 0000 */
uint32 group_rid,
- uint16 acb_info,
+ uint32 acb_info,
uint32 unknown_3,
uint16 logon_divs,
LOGON_HRS * hrs,
@@ -5471,8 +5470,7 @@ static BOOL sam_io_user_info23(char *desc, SAM_USER_INFO_23 * usr,
prs_uint32("user_rid ", ps, depth, &(usr->user_rid)); /* User ID */
prs_uint32("group_rid ", ps, depth, &(usr->group_rid)); /* Group ID */
- prs_uint16("acb_info ", ps, depth, &(usr->acb_info)); /* Group ID */
- prs_align(ps);
+ prs_uint32("acb_info ", ps, depth, &(usr->acb_info));
prs_uint32("unknown_3 ", ps, depth, &(usr->unknown_3));
prs_uint16("logon_divs ", ps, depth, &(usr->logon_divs)); /* logon divisions per week */
@@ -5560,7 +5558,7 @@ BOOL make_sam_user_info21W(SAM_USER_INFO_21 * usr,
const uchar nt_pwd[16],
uint32 user_rid,
uint32 group_rid,
- uint16 acb_info,
+ uint32 acb_info,
uint32 unknown_3,
uint16 logon_divs,
const LOGON_HRS * hrs,
@@ -5676,7 +5674,7 @@ BOOL make_sam_user_info21A(SAM_USER_INFO_21 * usr,
char *mung_dial,
uint32 user_rid,
uint32 group_rid,
- uint16 acb_info,
+ uint32 acb_info,
uint32 unknown_3,
uint16 logon_divs,
LOGON_HRS * hrs,
@@ -5794,8 +5792,7 @@ BOOL sam_io_user_info21(char *desc, SAM_USER_INFO_21 * usr, prs_struct * ps,
prs_uint32("user_rid ", ps, depth, &(usr->user_rid)); /* User ID */
prs_uint32("group_rid ", ps, depth, &(usr->group_rid)); /* Group ID */
- prs_uint16("acb_info ", ps, depth, &(usr->acb_info)); /* Group ID */
- prs_align(ps);
+ prs_uint32("acb_info ", ps, depth, &(usr->acb_info));
prs_uint32("unknown_3 ", ps, depth, &(usr->unknown_3));
prs_uint16("logon_divs ", ps, depth, &(usr->logon_divs)); /* logon divisions per week */
diff --git a/source/rpc_server/srv_netlog.c b/source/rpc_server/srv_netlog.c
index 2ad872e5ad8..4a0ccf6e957 100644
--- a/source/rpc_server/srv_netlog.c
+++ b/source/rpc_server/srv_netlog.c
@@ -275,7 +275,8 @@ static BOOL api_net_sam_logon(rpcsrv_struct * p,
status = _net_sam_logon(&q_l.sam_id,
q_l.validation_level,
- &srv_creds, &uctr, p->key.pid);
+ &srv_creds, &uctr, p->key.pid,
+ &r_s.auth_resp);
make_r_sam_logon(&r_s, &srv_creds, q_l.validation_level,
status == NT_STATUS_NOPROBLEMO ? uctr.usr.id : NULL,
status);