*/
typedef [v1_enum] enum {
- WINBIND_LOOKUP_LEVEL_SID2NAME = 1,
- WINBIND_LOOKUP_LEVEL_NAME2SID = 2,
- WINBIND_LOOKUP_LEVEL_RIDS2NAMES = 3
+ WINBIND_LOOKUP_LEVEL_SID2NAME = 1,
+ WINBIND_LOOKUP_LEVEL_NAME2SID = 2,
+ WINBIND_LOOKUP_LEVEL_RIDS2NAMES = 3,
+ WINBIND_LOOKUP_LEVEL_SID2USERINFO = 4
} winbind_lookup_level;
struct winbind_lookup_req_rids {
[string,charset(UTF8)] uint8 name[];
[case(WINBIND_LOOKUP_LEVEL_RIDS2NAMES)]
struct winbind_lookup_req_rids rids;
+ [case(WINBIND_LOOKUP_LEVEL_SID2USERINFO)]
+/*TODO [ref]*/ dom_sid *sid;
[default];
} winbind_lookup_req;
struct winbind_lookup_name_info names[num_names];
};
+ struct winbind_lookup_user_info {
+ [string,charset(UTF8)] uint8 account[];
+ [string,charset(UTF8)] uint8 gecos[];
+ [string,charset(UTF8)] uint8 homedir[];
+ [string,charset(UTF8)] uint8 shell[];
+ hyper primary_gid;
+ uint32 primary_rid;
+ };
+
typedef [switch_type(winbind_lookup_level)] union {
[case(WINBIND_LOOKUP_LEVEL_SID2NAME)]
struct winbind_lookup_name_info name_info;
struct winbind_lookup_sid_info sid_info;
[case(WINBIND_LOOKUP_LEVEL_RIDS2NAMES)]
struct winbind_lookup_name_info_array name_array;
+ [case(WINBIND_LOOKUP_LEVEL_SID2USERINFO)]
+ struct winbind_lookup_user_info user_info;
[default];
} winbind_lookup_rep;