diff options
Diffstat (limited to 'source/include/rpc_samr.h')
-rw-r--r-- | source/include/rpc_samr.h | 87 |
1 files changed, 80 insertions, 7 deletions
diff --git a/source/include/rpc_samr.h b/source/include/rpc_samr.h index f19de2ef4fc..5555aaef0e4 100644 --- a/source/include/rpc_samr.h +++ b/source/include/rpc_samr.h @@ -143,6 +143,8 @@ SamrTestPrivateFunctionsUser #define SAMR_CONNECT 0x39 #define SAMR_SET_USERINFO 0x3A #define SAMR_CONNECT4 0x3E +#define SAMR_CHGPASSWD3 0x3F +#define SAMR_CONNECT5 0x40 typedef struct logon_hours_info { @@ -592,7 +594,7 @@ typedef struct sam_unknown_info_1_inf { uint16 min_length_password; uint16 password_history; - uint32 flag; + uint32 password_properties; NTTIME expire; NTTIME min_passwordage; @@ -1697,7 +1699,7 @@ typedef struct q_samr_connect_info /* SAMR_R_CONNECT - probably an open */ typedef struct r_samr_connect_info { - POLICY_HND connect_pol; /* policy handle */ + POLICY_HND connect_pol; /* policy handle */ NTSTATUS status; /* return status */ } SAMR_R_CONNECT; @@ -1715,6 +1717,31 @@ typedef struct q_samr_connect4_info /* SAMR_R_CONNECT4 - same format as connect */ typedef struct r_samr_connect_info SAMR_R_CONNECT4; +/* SAMR_Q_CONNECT5 */ +typedef struct q_samr_connect5_info +{ + uint32 ptr_srv_name; /* pointer to server name */ + UNISTR2 uni_srv_name; + uint32 access_mask; + uint32 level; + /* These following are acutally a level dependent + value. Fudge it for now. JRA */ + uint32 info1_unk1; + uint32 info1_unk2; +} SAMR_Q_CONNECT5; + +/* SAMR_R_CONNECT5 */ +typedef struct r_samr_connect_info5 +{ + uint32 level; + uint32 info1_unk1; + uint32 info1_unk2; + POLICY_HND connect_pol; /* policy handle */ + NTSTATUS status; /* return status */ + +} SAMR_R_CONNECT5; + + /* SAMR_Q_GET_DOM_PWINFO */ typedef struct q_samr_get_dom_pwinfo { @@ -1724,14 +1751,18 @@ typedef struct q_samr_get_dom_pwinfo } SAMR_Q_GET_DOM_PWINFO; +#define DOMAIN_PASSWORD_COMPLEX 0x00000001 +#define DOMAIN_PASSWORD_NO_ANON_CHANGE 0x00000002 +#define DOMAIN_PASSWORD_NO_CLEAR_CHANGE 0x00000004 +#define DOMAIN_LOCKOUT_ADMINS 0x00000008 +#define DOMAIN_PASSWORD_STORE_CLEARTEXT 0x00000010 +#define DOMAIN_REFUSE_PASSWORD_CHANGE 0x00000020 + /* SAMR_R_GET_DOM_PWINFO */ typedef struct r_samr_get_dom_pwinfo { - /* - * See Samba4 IDL - */ - uint16 unk_0; - uint32 unk_1; + uint16 min_pwd_length; + uint32 password_properties; NTSTATUS status; } SAMR_R_GET_DOM_PWINFO; @@ -1780,6 +1811,48 @@ typedef struct r_samr_chgpasswd_user_info } SAMR_R_CHGPASSWD_USER; +/* SAMR_Q_CHGPASSWD3 */ +typedef struct q_samr_chgpasswd3 +{ + uint32 ptr_0; + + UNIHDR hdr_dest_host; /* server name unicode header */ + UNISTR2 uni_dest_host; /* server name unicode string */ + + UNIHDR hdr_user_name; /* username unicode string header */ + UNISTR2 uni_user_name; /* username unicode string */ + + SAMR_ENC_PASSWD nt_newpass; + SAMR_ENC_HASH nt_oldhash; + + uint32 lm_change; /* 0x0000 0001 */ + + SAMR_ENC_PASSWD lm_newpass; + SAMR_ENC_HASH lm_oldhash; + + SAMR_ENC_PASSWD password3; + +} SAMR_Q_CHGPASSWD3; + +/* SAMR_CHANGE_REJECT */ +typedef struct samr_change_reject +{ + uint32 reject_reason; + uint32 unknown1; + uint32 unknown2; + +} SAMR_CHANGE_REJECT; + +/* SAMR_R_CHGPASSWD3 */ +typedef struct r_samr_chgpasswd3 +{ + SAM_UNK_INFO_1 info; + SAMR_CHANGE_REJECT reject; + NTSTATUS status; /* 0 == OK, C000006A (NT_STATUS_WRONG_PASSWORD) */ + +} SAMR_R_CHGPASSWD3; + + /* SAMR_Q_REMOVE_SID_FOREIGN_DOMAIN */ typedef struct q_samr_remove_sid_foreign_domain_info |