8 uuid("46746756-7567-7567-5677-756756756756"),
10 pointer_default(unique),
17 [flag(STR_SIZE2|STR_NOTERM|STR_BYTESIZE)] string account_name;
20 typedef [flag(NDR_PAHEX)] struct {
36 [value(strlen_m(r->string)*2)] uint16 size;
37 [value(r->size)] uint16 length;
38 unistr_noterm *string;
41 /* This is awfully similar to a samr_user_info_23, but not identical.
42 Many of the field names have been swiped from there, because it is
43 so similar that they are likely the same, but many have been verified.
44 Some are in a different order, though... */
47 NTTIME logon_time; /* logon time */
48 NTTIME logoff_time; /* logoff time */
49 NTTIME kickoff_time; /* kickoff time */
50 NTTIME pass_last_set_time; /* password last set time */
51 NTTIME pass_can_change_time; /* password can change time */
52 NTTIME pass_must_change_time; /* password must change time */
54 pac_String account_name;
56 pac_String logon_script;
57 pac_String profile_path;
58 pac_String home_directory;
59 pac_String home_drive;
61 uint16 logon_count; /* number of times user has logged onto domain */
68 [size_is(groups_count)] GROUP_MEMBERSHIP *groups;
73 pac_String dom_controller;
79 uint32 acct_flags; /* looks like it may be acb_info */
82 uint32 extra_sids_count;
83 [size_is(extra_sids_count)] EXTRA_SIDS *extra_sids;
85 dom_sid2 *res_group_dom_sid;
87 uint32 res_groups_count;
88 [size_is(res_groups_count)] GROUP_MEMBERSHIP *res_groups;
91 const uint8 PAC_TYPE_LOGON_INFO = 1;
92 const uint8 PAC_TYPE_SRV_CHECKSUM = 6;
93 const uint8 PAC_TYPE_KDC_CHECKSUM = 7;
94 const uint8 PAC_TYPE_UNKNOWN_10 = 10;
96 typedef [nodiscriminant] union {
97 [case(PAC_TYPE_LOGON_INFO)] PAC_LOGON_INFO logon_info;
98 [case(PAC_TYPE_SRV_CHECKSUM)] PAC_SIGNATURE_DATA srv_cksum;
99 [case(PAC_TYPE_KDC_CHECKSUM)] PAC_SIGNATURE_DATA kdc_cksum;
100 [case(PAC_TYPE_UNKNOWN_10)] UNKNOWN_TYPE_10 type_10;
106 [relative,switch_is(type)] PAC_INFO *info;
110 typedef [public,flag(NDR_ALIGN8)] struct {
113 PAC_BUFFER buffers[num_buffers];
120 void decode_login_info(
121 [in] PAC_LOGON_INFO logon_info