📄 rpc_samr.h
字号:
/* SAMR_Q_OPEN_USER - probably an open */typedef struct q_samr_open_user_info{ POLICY_HND domain_pol; /* policy handle */ uint32 access_mask; /* 32 bit unknown - 0x02011b */ uint32 user_rid; /* user RID */} SAMR_Q_OPEN_USER;/* SAMR_R_OPEN_USER - probably an open */typedef struct r_samr_open_user_info{ POLICY_HND user_pol; /* policy handle associated with unknown id */ NTSTATUS status; /* return status */} SAMR_R_OPEN_USER;/* SAMR_Q_CREATE_USER - probably a create */typedef struct q_samr_create_user_info{ POLICY_HND domain_pol; /* policy handle */ UNIHDR hdr_name; /* unicode account name header */ UNISTR2 uni_name; /* unicode account name */ uint32 acb_info; /* account control info */ uint32 access_mask; /* 0xe005 00b0 */} SAMR_Q_CREATE_USER;/* SAMR_R_CREATE_USER - probably a create */typedef struct r_samr_create_user_info{ POLICY_HND user_pol; /* policy handle associated with user */ uint32 access_granted; uint32 user_rid; /* user RID */ NTSTATUS status; /* return status */} SAMR_R_CREATE_USER;/* SAMR_Q_DELETE_DOM_USER - delete domain user */typedef struct q_samr_delete_dom_user_info{ POLICY_HND user_pol; /* policy handle */} SAMR_Q_DELETE_DOM_USER;/* SAMR_R_DELETE_DOM_USER - delete domain user */typedef struct r_samr_delete_dom_user_info{ POLICY_HND pol; /* policy handle */ NTSTATUS status; /* return status */} SAMR_R_DELETE_DOM_USER;/* SAMR_Q_QUERY_GROUPMEM - query group members */typedef struct q_samr_query_groupmem_info{ POLICY_HND group_pol; /* policy handle */} SAMR_Q_QUERY_GROUPMEM;/* SAMR_R_QUERY_GROUPMEM - query group members */typedef struct r_samr_query_groupmem_info{ uint32 ptr; uint32 num_entries; uint32 ptr_rids; uint32 ptr_attrs; uint32 num_rids; uint32 *rid; uint32 num_attrs; uint32 *attr; NTSTATUS status;} SAMR_R_QUERY_GROUPMEM;/* SAMR_Q_DEL_GROUPMEM - probably an del group member */typedef struct q_samr_del_group_mem_info{ POLICY_HND pol; /* policy handle */ uint32 rid; /* rid */} SAMR_Q_DEL_GROUPMEM;/* SAMR_R_DEL_GROUPMEM - probably an del group member */typedef struct r_samr_del_group_mem_info{ NTSTATUS status; /* return status */} SAMR_R_DEL_GROUPMEM;/* SAMR_Q_ADD_GROUPMEM - probably an add group member */typedef struct q_samr_add_group_mem_info{ POLICY_HND pol; /* policy handle */ uint32 rid; /* rid */ uint32 unknown; /* 0x0000 0005 */} SAMR_Q_ADD_GROUPMEM;/* SAMR_R_ADD_GROUPMEM - probably an add group member */typedef struct r_samr_add_group_mem_info{ NTSTATUS status; /* return status */} SAMR_R_ADD_GROUPMEM;/* SAMR_Q_OPEN_GROUP - probably an open */typedef struct q_samr_open_group_info{ POLICY_HND domain_pol; /* policy handle */ uint32 access_mask; /* 0x0000 0001, 0x0000 0003, 0x0000 001f */ uint32 rid_group; /* rid */} SAMR_Q_OPEN_GROUP;/* SAMR_R_OPEN_GROUP - probably an open */typedef struct r_samr_open_group_info{ POLICY_HND pol; /* policy handle */ NTSTATUS status; /* return status */} SAMR_R_OPEN_GROUP;/* SAMR_Q_QUERY_ALIASMEM - query alias members */typedef struct q_samr_query_aliasmem_info{ POLICY_HND alias_pol; /* policy handle */} SAMR_Q_QUERY_ALIASMEM;/* SAMR_R_QUERY_ALIASMEM - query alias members */typedef struct r_samr_query_aliasmem_info{ uint32 num_sids; uint32 ptr; uint32 num_sids1; DOM_SID2 *sid; NTSTATUS status;} SAMR_R_QUERY_ALIASMEM;/* SAMR_Q_ADD_ALIASMEM - add alias member */typedef struct q_samr_add_alias_mem_info{ POLICY_HND alias_pol; /* policy handle */ DOM_SID2 sid; /* member sid to be added to the alias */} SAMR_Q_ADD_ALIASMEM;/* SAMR_R_ADD_ALIASMEM - add alias member */typedef struct r_samr_add_alias_mem_info{ NTSTATUS status; /* return status */} SAMR_R_ADD_ALIASMEM;/* SAMR_Q_DEL_ALIASMEM - add an add alias member */typedef struct q_samr_del_alias_mem_info{ POLICY_HND alias_pol; /* policy handle */ DOM_SID2 sid; /* member sid to be added to alias */} SAMR_Q_DEL_ALIASMEM;/* SAMR_R_DEL_ALIASMEM - delete alias member */typedef struct r_samr_del_alias_mem_info{ NTSTATUS status; /* return status */} SAMR_R_DEL_ALIASMEM;/* SAMR_Q_OPEN_ALIAS - probably an open */typedef struct q_samr_open_alias_info{ POLICY_HND dom_pol; uint32 access_mask; uint32 rid_alias;} SAMR_Q_OPEN_ALIAS;/* SAMR_R_OPEN_ALIAS - probably an open */typedef struct r_samr_open_alias_info{ POLICY_HND pol; /* policy handle */ NTSTATUS status; /* return status */} SAMR_R_OPEN_ALIAS;/* SAMR_Q_CONNECT_ANON - probably an open */typedef struct q_samr_connect_anon_info{ uint32 ptr; /* ptr? */ uint16 unknown_0; /* 0x005c */ uint16 unknown_1; /* 0x0001 */ uint32 access_mask;} SAMR_Q_CONNECT_ANON;/* SAMR_R_CONNECT_ANON - probably an open */typedef struct r_samr_connect_anon_info{ POLICY_HND connect_pol; /* policy handle */ NTSTATUS status; /* return status */} SAMR_R_CONNECT_ANON;/* SAMR_Q_CONNECT - probably an open */typedef struct q_samr_connect_info{ uint32 ptr_srv_name; /* pointer (to server name?) */ UNISTR2 uni_srv_name; /* unicode server name starting with '\\' */ uint32 access_mask; } SAMR_Q_CONNECT;/* SAMR_R_CONNECT - probably an open */typedef struct r_samr_connect_info{ POLICY_HND connect_pol; /* policy handle */ NTSTATUS status; /* return status */} SAMR_R_CONNECT;/* SAMR_Q_CONNECT4 */typedef struct q_samr_connect4_info{ uint32 ptr_srv_name; /* pointer to server name */ UNISTR2 uni_srv_name; uint32 unk_0; /* possible server name type, 1 for IP num, 2 for name */ uint32 access_mask;} SAMR_Q_CONNECT4;/* 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{ uint32 ptr; UNIHDR hdr_srv_name; UNISTR2 uni_srv_name;} 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{ uint16 min_pwd_length; uint32 password_properties; NTSTATUS status;} SAMR_R_GET_DOM_PWINFO;/* SAMR_ENC_PASSWD */typedef struct enc_passwd_info{ uint32 ptr; uint8 pass[516];} SAMR_ENC_PASSWD;/* SAMR_ENC_HASH */typedef struct enc_hash_info{ uint32 ptr; uint8 hash[16];} SAMR_ENC_HASH;/* SAMR_Q_CHGPASSWD_USER */typedef struct q_samr_chgpasswd_user_info{ 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 unknown; /* 0x0000 0001 */ SAMR_ENC_PASSWD lm_newpass; SAMR_ENC_HASH lm_oldhash;} SAMR_Q_CHGPASSWD_USER;/* SAMR_R_CHGPASSWD_USER */typedef struct r_samr_chgpasswd_user_info{ NTSTATUS status; /* 0 == OK, C000006A (NT_STATUS_WRONG_PASSWORD) */} 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{ POLICY_HND dom_pol; /* policy handle */ DOM_SID2 sid; /* SID */} SAMR_Q_REMOVE_SID_FOREIGN_DOMAIN;/* SAMR_R_REMOVE_SID_FOREIGN_DOMAIN */typedef struct r_samr_remove_sid_foreign_domain_info{ NTSTATUS status; /* return status */} SAMR_R_REMOVE_SID_FOREIGN_DOMAIN;/* these are from the old rpc_samr.h - they are needed while the merge is still going on */#define MAX_SAM_SIDS 15/* DOM_SID3 - security id */typedef struct sid_info_3{ uint16 len; /* length, bytes, including length of len :-) */ /* uint8 pad[2]; */ DOM_SID sid;} DOM_SID3;/* SAMR_Q_QUERY_DOMAIN_INFO2 */typedef struct q_samr_query_domain_info2{ POLICY_HND domain_pol; /* policy handle */ uint16 switch_value;} SAMR_Q_QUERY_DOMAIN_INFO2;/* SAMR_R_QUERY_DOMAIN_INFO2 */typedef struct r_samr_query_domain_info2{ uint32 ptr_0; uint16 switch_value; SAM_UNK_CTR *ctr; NTSTATUS status; /* return status */} SAMR_R_QUERY_DOMAIN_INFO2;/* SAMR_Q_SET_DOMAIN_INFO */typedef struct q_samr_set_domain_info{ POLICY_HND domain_pol; /* policy handle */ uint16 switch_value0; uint16 switch_value; SAM_UNK_CTR *ctr;} SAMR_Q_SET_DOMAIN_INFO;/* SAMR_R_SET_DOMAIN_INFO */typedef struct r_samr_set_domain_info{ NTSTATUS status; /* return status */} SAMR_R_SET_DOMAIN_INFO;#endif /* _RPC_SAMR_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -