📄 rpc_samr.h
字号:
typedef struct r_samr_set_sec_obj_info{ NTSTATUS status; /* return status */} SAMR_R_SET_SEC_OBJ;/****************************************************************************SAMR_Q_QUERY_SEC_OBJ - info level 4. returns SIDs.*****************************************************************************//* SAMR_Q_QUERY_SEC_OBJ - probably get domain info... */typedef struct q_samr_query_sec_obj_info{ POLICY_HND user_pol; /* policy handle */ uint32 sec_info; /* xxxx_SECURITY_INFORMATION 0x0000 0004 */} SAMR_Q_QUERY_SEC_OBJ;/* SAMR_R_QUERY_SEC_OBJ - probably an open */typedef struct r_samr_query_sec_obj_info{ uint32 ptr; SEC_DESC_BUF *buf; NTSTATUS status; /* return status */} SAMR_R_QUERY_SEC_OBJ;/****************************************************************************SAMR_Q_QUERY_DOMAIN_INFO - probably a query on domain group info.*****************************************************************************//* SAMR_Q_QUERY_DOMAIN_INFO - */typedef struct q_samr_query_domain_info{ POLICY_HND domain_pol; /* policy handle */ uint16 switch_value; /* 0x0002, 0x0001 */} SAMR_Q_QUERY_DOMAIN_INFO;typedef struct sam_unknown_info_3_info{ NTTIME logout; /* 0x8000 0000 */ /* DON'T forcibly disconnect remote users from server when logon hours expire*/ /* 0x0000 0000 */ /* forcibly disconnect remote users from server when logon hours expire*/} SAM_UNK_INFO_3;typedef struct sam_unknown_info_6_info{ uint32 unknown_0; /* 0x0000 0000 */ uint32 ptr_0; /* pointer to unknown structure */ uint8 padding[12]; /* 12 bytes zeros */} SAM_UNK_INFO_6;typedef struct sam_unknown_info_7_info{ uint16 server_role;} SAM_UNK_INFO_7;typedef struct sam_unknown_info_8_info{ UINT64_S seq_num; NTTIME domain_create_time;} SAM_UNK_INFO_8;typedef struct sam_unknown_info_12_inf{ NTTIME duration; NTTIME reset_count; uint16 bad_attempt_lockout;} SAM_UNK_INFO_12;typedef struct sam_unknown_info_5_inf{ UNIHDR hdr_server; /* server name unicode header */ UNISTR2 uni_server; /* server name unicode string */} SAM_UNK_INFO_5;typedef struct sam_unknown_info_2_inf{ NTTIME logout; /* whether users are forcibly disconnected when logon hours expire */ UNIHDR hdr_comment; /* comment according to samba4 idl */ UNIHDR hdr_domain; /* domain name unicode header */ UNIHDR hdr_server; /* server name unicode header */ /* put all the data in here, at the moment, including what the above pointer is referring to */ UINT64_S seq_num; uint32 unknown_4; /* 0x0000 0001 */ uint32 server_role; uint32 unknown_6; /* 0x0000 0001 */ uint32 num_domain_usrs; /* number of users in domain */ uint32 num_domain_grps; /* number of domain groups in domain */ uint32 num_local_grps; /* number of local groups in domain */ uint8 padding[12]; /* 12 bytes zeros */ UNISTR2 uni_comment; /* comment unicode string */ UNISTR2 uni_domain; /* domain name unicode string */ UNISTR2 uni_server; /* server name unicode string */} SAM_UNK_INFO_2;typedef struct sam_unknown_info_1_inf{ uint16 min_length_password; uint16 password_history; uint32 password_properties; NTTIME expire; NTTIME min_passwordage;} SAM_UNK_INFO_1;typedef struct sam_unknown_ctr_info{ union { SAM_UNK_INFO_1 inf1; SAM_UNK_INFO_2 inf2; SAM_UNK_INFO_3 inf3; SAM_UNK_INFO_5 inf5; SAM_UNK_INFO_6 inf6; SAM_UNK_INFO_7 inf7; SAM_UNK_INFO_8 inf8; SAM_UNK_INFO_12 inf12; } info;} SAM_UNK_CTR;/* SAMR_R_QUERY_DOMAIN_INFO - */typedef struct r_samr_query_domain_info{ uint32 ptr_0; uint16 switch_value; /* same as in query */ SAM_UNK_CTR *ctr; NTSTATUS status; /* return status */} SAMR_R_QUERY_DOMAIN_INFO;/* SAMR_Q_LOOKUP_DOMAIN - obtain SID for a local domain */typedef struct q_samr_lookup_domain_info{ POLICY_HND connect_pol; UNIHDR hdr_domain; UNISTR2 uni_domain;} SAMR_Q_LOOKUP_DOMAIN;/* SAMR_R_LOOKUP_DOMAIN */typedef struct r_samr_lookup_domain_info{ uint32 ptr_sid; DOM_SID2 dom_sid; NTSTATUS status;} SAMR_R_LOOKUP_DOMAIN;/****************************************************************************SAMR_Q_OPEN_DOMAIN - unknown_0 values seen associated with SIDs:0x0000 03f1 and a specific domain sid - S-1-5-21-44c01ca6-797e5c3d-33f83fd00x0000 0200 and a specific domain sid - S-1-5-21-44c01ca6-797e5c3d-33f83fd0*****************************************************************************//* SAMR_Q_OPEN_DOMAIN */typedef struct q_samr_open_domain_info{ POLICY_HND pol; /* policy handle */ uint32 flags; /* 0x2000 0000; 0x0000 0211; 0x0000 0280; 0x0000 0200 - flags? */ DOM_SID2 dom_sid; /* domain SID */} SAMR_Q_OPEN_DOMAIN;/* SAMR_R_OPEN_DOMAIN - probably an open */typedef struct r_samr_open_domain_info{ POLICY_HND domain_pol; /* policy handle associated with the SID */ NTSTATUS status; /* return status */} SAMR_R_OPEN_DOMAIN;#define MAX_SAM_ENTRIES_W2K 0x400#define MAX_SAM_ENTRIES_W95 50/* The following should be the greater of the preceeding two. */#define MAX_SAM_ENTRIES MAX_SAM_ENTRIES_W2Ktypedef struct samr_entry_info{ uint32 rid; UNIHDR hdr_name;} SAM_ENTRY;/* SAMR_Q_ENUM_DOMAINS - SAM rids and names */typedef struct q_samr_enum_domains_info{ POLICY_HND pol; /* policy handle */ uint32 start_idx; /* enumeration handle */ uint32 max_size; /* 0x0000 ffff */} SAMR_Q_ENUM_DOMAINS;/* SAMR_R_ENUM_DOMAINS - SAM rids and Domain names */typedef struct r_samr_enum_domains_info{ uint32 next_idx; /* next starting index required for enum */ uint32 ptr_entries1; uint32 num_entries2; uint32 ptr_entries2; uint32 num_entries3; SAM_ENTRY *sam; UNISTR2 *uni_dom_name; uint32 num_entries4; NTSTATUS status;} SAMR_R_ENUM_DOMAINS;/* SAMR_Q_ENUM_DOM_USERS - SAM rids and names */typedef struct q_samr_enum_dom_users_info{ POLICY_HND pol; /* policy handle */ uint32 start_idx; /* number of values (0 indicates unlimited?) */ uint16 acb_mask; /* 0x0000 indicates all */ uint16 unknown_1; /* 0x0000 */ uint32 max_size; /* 0x0000 ffff */} SAMR_Q_ENUM_DOM_USERS;/* SAMR_R_ENUM_DOM_USERS - SAM rids and names */typedef struct r_samr_enum_dom_users_info{ uint32 next_idx; /* next starting index required for enum */ uint32 ptr_entries1; uint32 num_entries2; uint32 ptr_entries2; uint32 num_entries3; SAM_ENTRY *sam; UNISTR2 *uni_acct_name; uint32 num_entries4; NTSTATUS status;} SAMR_R_ENUM_DOM_USERS;/* SAMR_Q_ENUM_DOM_GROUPS - SAM rids and names */typedef struct q_samr_enum_dom_groups_info{ POLICY_HND pol; /* policy handle */ /* this is possibly an enumeration context handle... */ uint32 start_idx; /* 0x0000 0000 */ uint32 max_size; /* 0x0000 ffff */} SAMR_Q_ENUM_DOM_GROUPS;/* SAMR_R_ENUM_DOM_GROUPS - SAM rids and names */typedef struct r_samr_enum_dom_groups_info{ uint32 next_idx; uint32 ptr_entries1; uint32 num_entries2; uint32 ptr_entries2; uint32 num_entries3; SAM_ENTRY *sam; UNISTR2 *uni_grp_name; uint32 num_entries4; NTSTATUS status;} SAMR_R_ENUM_DOM_GROUPS;/* SAMR_Q_ENUM_DOM_ALIASES - SAM rids and names */typedef struct q_samr_enum_dom_aliases_info{ POLICY_HND pol; /* policy handle */ /* this is possibly an enumeration context handle... */ uint32 start_idx; /* 0x0000 0000 */ uint32 max_size; /* 0x0000 ffff */} SAMR_Q_ENUM_DOM_ALIASES;/* SAMR_R_ENUM_DOM_ALIASES - SAM rids and names */typedef struct r_samr_enum_dom_aliases_info{ uint32 next_idx; uint32 ptr_entries1; uint32 num_entries2; uint32 ptr_entries2; uint32 num_entries3; SAM_ENTRY *sam; UNISTR2 *uni_grp_name; uint32 num_entries4; NTSTATUS status;} SAMR_R_ENUM_DOM_ALIASES;/* -- Level 1 Display Info - User Information -- */typedef struct samr_entry_info1{ uint32 user_idx; uint32 rid_user; uint16 acb_info; UNIHDR hdr_acct_name; UNIHDR hdr_user_name; UNIHDR hdr_user_desc;} SAM_ENTRY1;typedef struct samr_str_entry_info1{ UNISTR2 uni_acct_name; UNISTR2 uni_full_name; UNISTR2 uni_acct_desc;} SAM_STR1;typedef struct sam_entry_info_1{ SAM_ENTRY1 *sam; SAM_STR1 *str;} SAM_DISPINFO_1;/* -- Level 2 Display Info - Trust Account Information -- */typedef struct samr_entry_info2{ uint32 user_idx; uint32 rid_user; uint16 acb_info; UNIHDR hdr_srv_name; UNIHDR hdr_srv_desc;} SAM_ENTRY2;typedef struct samr_str_entry_info2{ UNISTR2 uni_srv_name; UNISTR2 uni_srv_desc;} SAM_STR2;typedef struct sam_entry_info_2{ SAM_ENTRY2 *sam; SAM_STR2 *str;} SAM_DISPINFO_2;/* -- Level 3 Display Info - Domain Group Information -- */typedef struct samr_entry_info3{ uint32 grp_idx; uint32 rid_grp; uint32 attr; /* SE_GROUP_xxx, usually 7 */ UNIHDR hdr_grp_name; UNIHDR hdr_grp_desc;} SAM_ENTRY3;typedef struct samr_str_entry_info3{ UNISTR2 uni_grp_name; UNISTR2 uni_grp_desc;} SAM_STR3;typedef struct sam_entry_info_3{ SAM_ENTRY3 *sam; SAM_STR3 *str;} SAM_DISPINFO_3;/* -- Level 4 Display Info - User List (ASCII) -- */typedef struct samr_entry_info4{ uint32 user_idx; STRHDR hdr_acct_name;} SAM_ENTRY4;typedef struct samr_str_entry_info4{ STRING2 acct_name;} SAM_STR4;typedef struct sam_entry_info_4{ SAM_ENTRY4 *sam; SAM_STR4 *str;} SAM_DISPINFO_4;/* -- Level 5 Display Info - Group List (ASCII) -- */typedef struct samr_entry_info5{ uint32 grp_idx; STRHDR hdr_grp_name;} SAM_ENTRY5;typedef struct samr_str_entry_info5{ STRING2 grp_name;} SAM_STR5;typedef struct sam_entry_info_5{ SAM_ENTRY5 *sam; SAM_STR5 *str;} SAM_DISPINFO_5;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -