dcerpc-netlogon: maintain netlogon_auth_vars for NetrServerAuthenticateKerberos
[wireshark-sm.git] / epan / dissectors / packet-dcerpc-samr.c
blob4f4f84b16aa4ee6405a0ad0b4cec821628b6253f
1 /* DO NOT EDIT
2 This file was automatically generated by Pidl
3 from samr.idl and samr.cnf.
5 Pidl is a perl based IDL compiler for DCE/RPC idl files.
6 It is maintained by the Samba team, not the Wireshark team.
7 Instructions on how to download and install Pidl can be
8 found at https://wiki.wireshark.org/Pidl
9 */
12 #include "config.h"
13 #include <string.h>
14 #include <wsutil/array.h>
15 #include <epan/packet.h>
16 #include <epan/tfs.h>
18 #include "packet-dcerpc.h"
19 #include "packet-dcerpc-nt.h"
20 #include "packet-windows-common.h"
21 #include "packet-dcerpc-samr.h"
22 void proto_register_dcerpc_samr(void);
23 void proto_reg_handoff_dcerpc_samr(void);
25 /* Ett declarations */
26 static int ett_dcerpc_samr;
27 static int ett_samr_lsa_Strings;
28 static int ett_samr_samr_AcctFlags;
29 static int ett_samr_samr_ConnectAccessMask;
30 static int ett_samr_samr_UserAccessMask;
31 static int ett_samr_samr_DomainAccessMask;
32 static int ett_samr_samr_GroupAccessMask;
33 static int ett_samr_samr_AliasAccessMask;
34 static int ett_samr_samr_SamEntry;
35 static int ett_samr_samr_SamArray;
36 static int ett_samr_samr_PasswordProperties;
37 static int ett_samr_samr_DomInfo1;
38 static int ett_samr_samr_DomGeneralInformation;
39 static int ett_samr_samr_DomInfo3;
40 static int ett_samr_samr_DomOEMInformation;
41 static int ett_samr_samr_DomInfo5;
42 static int ett_samr_samr_DomInfo6;
43 static int ett_samr_samr_DomInfo7;
44 static int ett_samr_samr_DomInfo8;
45 static int ett_samr_samr_DomInfo9;
46 static int ett_samr_samr_DomGeneralInformation2;
47 static int ett_samr_samr_DomInfo12;
48 static int ett_samr_samr_DomInfo13;
49 static int ett_samr_samr_DomainInfo;
50 static int ett_samr_samr_Ids;
51 static int ett_samr_samr_GroupAttrs;
52 static int ett_samr_samr_GroupInfoAll;
53 static int ett_samr_samr_GroupInfoAttributes;
54 static int ett_samr_samr_GroupInfoDescription;
55 static int ett_samr_samr_GroupInfo;
56 static int ett_samr_samr_RidTypeArray;
57 static int ett_samr_samr_AliasInfoAll;
58 static int ett_samr_samr_AliasInfo;
59 static int ett_samr_samr_UserInfo1;
60 static int ett_samr_samr_UserInfo2;
61 static int ett_samr_samr_LogonHours;
62 static int ett_samr_samr_UserInfo3;
63 static int ett_samr_samr_UserInfo4;
64 static int ett_samr_samr_UserInfo5;
65 static int ett_samr_samr_UserInfo6;
66 static int ett_samr_samr_UserInfo7;
67 static int ett_samr_samr_UserInfo8;
68 static int ett_samr_samr_UserInfo9;
69 static int ett_samr_samr_UserInfo10;
70 static int ett_samr_samr_UserInfo11;
71 static int ett_samr_samr_UserInfo12;
72 static int ett_samr_samr_UserInfo13;
73 static int ett_samr_samr_UserInfo14;
74 static int ett_samr_samr_UserInfo16;
75 static int ett_samr_samr_UserInfo17;
76 static int ett_samr_samr_Password;
77 static int ett_samr_samr_UserInfo18;
78 static int ett_samr_samr_UserInfo20;
79 static int ett_samr_samr_FieldsPresent;
80 static int ett_samr_samr_UserInfo21;
81 static int ett_samr_samr_CryptPassword;
82 static int ett_samr_samr_UserInfo23;
83 static int ett_samr_samr_UserInfo24;
84 static int ett_samr_samr_CryptPasswordEx;
85 static int ett_samr_samr_UserInfo25;
86 static int ett_samr_samr_UserInfo26;
87 static int ett_samr_samr_EncryptedPasswordAES;
88 static int ett_samr_samr_UserInfo31;
89 static int ett_samr_samr_UserInfo32;
90 static int ett_samr_samr_UserInfo;
91 static int ett_samr_samr_RidWithAttribute;
92 static int ett_samr_samr_RidWithAttributeArray;
93 static int ett_samr_samr_DispEntryGeneral;
94 static int ett_samr_samr_DispInfoGeneral;
95 static int ett_samr_samr_DispEntryFull;
96 static int ett_samr_samr_DispInfoFull;
97 static int ett_samr_samr_DispEntryFullGroup;
98 static int ett_samr_samr_DispInfoFullGroups;
99 static int ett_samr_samr_DispEntryAscii;
100 static int ett_samr_samr_DispInfoAscii;
101 static int ett_samr_samr_DispInfo;
102 static int ett_samr_samr_PwInfo;
103 static int ett_samr_userPwdChangeFailureInformation;
104 static int ett_samr_samr_ConnectInfo1;
105 static int ett_samr_samr_ConnectInfo;
106 static int ett_samr_samr_ValidateFieldsPresent;
107 static int ett_samr_samr_ValidationBlob;
108 static int ett_samr_samr_ValidatePasswordInfo;
109 static int ett_samr_samr_ValidatePasswordRepCtr;
110 static int ett_samr_samr_ValidatePasswordRep;
111 static int ett_samr_samr_ValidatePasswordReq3;
112 static int ett_samr_samr_ValidatePasswordReq2;
113 static int ett_samr_samr_ValidatePasswordReq1;
114 static int ett_samr_samr_ValidatePasswordReq;
117 /* Header field declarations */
118 static int hf_samr_alias_access_mask;
119 static int hf_samr_alias_handle;
120 static int hf_samr_connect_access_mask;
121 static int hf_samr_connect_handle;
122 static int hf_samr_domain_access_mask;
123 static int hf_samr_domain_handle;
124 static int hf_samr_group_access_mask;
125 static int hf_samr_group_handle;
126 static int hf_samr_handle;
127 static int hf_samr_lsa_Strings_count;
128 static int hf_samr_lsa_Strings_names;
129 static int hf_samr_opnum;
130 static int hf_samr_rid;
131 static int hf_samr_samr_AcctFlags_ACB_AUTOLOCK;
132 static int hf_samr_samr_AcctFlags_ACB_DISABLED;
133 static int hf_samr_samr_AcctFlags_ACB_DOMTRUST;
134 static int hf_samr_samr_AcctFlags_ACB_DONT_REQUIRE_PREAUTH;
135 static int hf_samr_samr_AcctFlags_ACB_ENC_TXT_PWD_ALLOWED;
136 static int hf_samr_samr_AcctFlags_ACB_HOMDIRREQ;
137 static int hf_samr_samr_AcctFlags_ACB_MNS;
138 static int hf_samr_samr_AcctFlags_ACB_NORMAL;
139 static int hf_samr_samr_AcctFlags_ACB_NOT_DELEGATED;
140 static int hf_samr_samr_AcctFlags_ACB_NO_AUTH_DATA_REQD;
141 static int hf_samr_samr_AcctFlags_ACB_PARTIAL_SECRETS_ACCOUNT;
142 static int hf_samr_samr_AcctFlags_ACB_PWNOEXP;
143 static int hf_samr_samr_AcctFlags_ACB_PWNOTREQ;
144 static int hf_samr_samr_AcctFlags_ACB_PW_EXPIRED;
145 static int hf_samr_samr_AcctFlags_ACB_SMARTCARD_REQUIRED;
146 static int hf_samr_samr_AcctFlags_ACB_SVRTRUST;
147 static int hf_samr_samr_AcctFlags_ACB_TEMPDUP;
148 static int hf_samr_samr_AcctFlags_ACB_TRUSTED_FOR_DELEGATION;
149 static int hf_samr_samr_AcctFlags_ACB_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION;
150 static int hf_samr_samr_AcctFlags_ACB_USE_AES_KEYS;
151 static int hf_samr_samr_AcctFlags_ACB_USE_DES_KEY_ONLY;
152 static int hf_samr_samr_AcctFlags_ACB_WSTRUST;
153 static int hf_samr_samr_AddAliasMember_sid;
154 static int hf_samr_samr_AddGroupMember_flags;
155 static int hf_samr_samr_AddMultipleMembersToAlias_sids;
156 static int hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_ADD_MEMBER;
157 static int hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_GET_MEMBERS;
158 static int hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_LOOKUP_INFO;
159 static int hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_REMOVE_MEMBER;
160 static int hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_SET_INFO;
161 static int hf_samr_samr_AliasInfoAll_description;
162 static int hf_samr_samr_AliasInfoAll_name;
163 static int hf_samr_samr_AliasInfoAll_num_members;
164 static int hf_samr_samr_AliasInfo_all;
165 static int hf_samr_samr_AliasInfo_description;
166 static int hf_samr_samr_AliasInfo_name;
167 static int hf_samr_samr_ChangePasswordUser2_account;
168 static int hf_samr_samr_ChangePasswordUser2_lm_change;
169 static int hf_samr_samr_ChangePasswordUser2_lm_password;
170 static int hf_samr_samr_ChangePasswordUser2_lm_verifier;
171 static int hf_samr_samr_ChangePasswordUser2_nt_password;
172 static int hf_samr_samr_ChangePasswordUser2_nt_verifier;
173 static int hf_samr_samr_ChangePasswordUser2_server;
174 static int hf_samr_samr_ChangePasswordUser3_account;
175 static int hf_samr_samr_ChangePasswordUser3_dominfo;
176 static int hf_samr_samr_ChangePasswordUser3_lm_change;
177 static int hf_samr_samr_ChangePasswordUser3_lm_password;
178 static int hf_samr_samr_ChangePasswordUser3_lm_verifier;
179 static int hf_samr_samr_ChangePasswordUser3_nt_password;
180 static int hf_samr_samr_ChangePasswordUser3_nt_verifier;
181 static int hf_samr_samr_ChangePasswordUser3_password3;
182 static int hf_samr_samr_ChangePasswordUser3_reject;
183 static int hf_samr_samr_ChangePasswordUser3_server;
184 static int hf_samr_samr_ChangePasswordUser4_account;
185 static int hf_samr_samr_ChangePasswordUser4_password;
186 static int hf_samr_samr_ChangePasswordUser4_server;
187 static int hf_samr_samr_ChangePasswordUser_cross1_present;
188 static int hf_samr_samr_ChangePasswordUser_cross2_present;
189 static int hf_samr_samr_ChangePasswordUser_lm_cross;
190 static int hf_samr_samr_ChangePasswordUser_lm_present;
191 static int hf_samr_samr_ChangePasswordUser_new_lm_crypted;
192 static int hf_samr_samr_ChangePasswordUser_new_nt_crypted;
193 static int hf_samr_samr_ChangePasswordUser_nt_cross;
194 static int hf_samr_samr_ChangePasswordUser_nt_present;
195 static int hf_samr_samr_ChangePasswordUser_old_lm_crypted;
196 static int hf_samr_samr_ChangePasswordUser_old_nt_crypted;
197 static int hf_samr_samr_Connect2_system_name;
198 static int hf_samr_samr_Connect3_system_name;
199 static int hf_samr_samr_Connect3_unknown;
200 static int hf_samr_samr_Connect4_client_version;
201 static int hf_samr_samr_Connect4_system_name;
202 static int hf_samr_samr_Connect5_info_in;
203 static int hf_samr_samr_Connect5_info_out;
204 static int hf_samr_samr_Connect5_level_in;
205 static int hf_samr_samr_Connect5_level_out;
206 static int hf_samr_samr_Connect5_system_name;
207 static int hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_CONNECT_TO_SERVER;
208 static int hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_CREATE_DOMAIN;
209 static int hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_ENUM_DOMAINS;
210 static int hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_INITIALIZE_SERVER;
211 static int hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_LOOKUP_DOMAIN;
212 static int hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_SHUTDOWN_SERVER;
213 static int hf_samr_samr_ConnectInfo1_client_version;
214 static int hf_samr_samr_ConnectInfo1_supported_features;
215 static int hf_samr_samr_ConnectInfo_info1;
216 static int hf_samr_samr_Connect_system_name;
217 static int hf_samr_samr_CreateDomAlias_alias_name;
218 static int hf_samr_samr_CreateDomainGroup_name;
219 static int hf_samr_samr_CreateUser2_access_granted;
220 static int hf_samr_samr_CreateUser2_account_name;
221 static int hf_samr_samr_CreateUser2_acct_flags;
222 static int hf_samr_samr_CreateUser_account_name;
223 static int hf_samr_samr_CryptPasswordEx_data;
224 static int hf_samr_samr_CryptPassword_data;
225 static int hf_samr_samr_DeleteAliasMember_sid;
226 static int hf_samr_samr_DispEntryAscii_account_name;
227 static int hf_samr_samr_DispEntryAscii_idx;
228 static int hf_samr_samr_DispEntryFullGroup_account_name;
229 static int hf_samr_samr_DispEntryFullGroup_acct_flags;
230 static int hf_samr_samr_DispEntryFullGroup_description;
231 static int hf_samr_samr_DispEntryFullGroup_idx;
232 static int hf_samr_samr_DispEntryFull_account_name;
233 static int hf_samr_samr_DispEntryFull_acct_flags;
234 static int hf_samr_samr_DispEntryFull_description;
235 static int hf_samr_samr_DispEntryFull_idx;
236 static int hf_samr_samr_DispEntryGeneral_account_name;
237 static int hf_samr_samr_DispEntryGeneral_acct_flags;
238 static int hf_samr_samr_DispEntryGeneral_description;
239 static int hf_samr_samr_DispEntryGeneral_full_name;
240 static int hf_samr_samr_DispEntryGeneral_idx;
241 static int hf_samr_samr_DispInfoAscii_count;
242 static int hf_samr_samr_DispInfoAscii_entries;
243 static int hf_samr_samr_DispInfoFullGroups_count;
244 static int hf_samr_samr_DispInfoFullGroups_entries;
245 static int hf_samr_samr_DispInfoFull_count;
246 static int hf_samr_samr_DispInfoFull_entries;
247 static int hf_samr_samr_DispInfoGeneral_count;
248 static int hf_samr_samr_DispInfoGeneral_entries;
249 static int hf_samr_samr_DispInfo_info1;
250 static int hf_samr_samr_DispInfo_info2;
251 static int hf_samr_samr_DispInfo_info3;
252 static int hf_samr_samr_DispInfo_info4;
253 static int hf_samr_samr_DispInfo_info5;
254 static int hf_samr_samr_DomGeneralInformation2_general;
255 static int hf_samr_samr_DomGeneralInformation2_lockout_duration;
256 static int hf_samr_samr_DomGeneralInformation2_lockout_threshold;
257 static int hf_samr_samr_DomGeneralInformation2_lockout_window;
258 static int hf_samr_samr_DomGeneralInformation_domain_name;
259 static int hf_samr_samr_DomGeneralInformation_domain_server_state;
260 static int hf_samr_samr_DomGeneralInformation_force_logoff_time;
261 static int hf_samr_samr_DomGeneralInformation_num_aliases;
262 static int hf_samr_samr_DomGeneralInformation_num_groups;
263 static int hf_samr_samr_DomGeneralInformation_num_users;
264 static int hf_samr_samr_DomGeneralInformation_oem_information;
265 static int hf_samr_samr_DomGeneralInformation_primary;
266 static int hf_samr_samr_DomGeneralInformation_role;
267 static int hf_samr_samr_DomGeneralInformation_sequence_num;
268 static int hf_samr_samr_DomGeneralInformation_unknown3;
269 static int hf_samr_samr_DomInfo12_lockout_duration;
270 static int hf_samr_samr_DomInfo12_lockout_threshold;
271 static int hf_samr_samr_DomInfo12_lockout_window;
272 static int hf_samr_samr_DomInfo13_domain_create_time;
273 static int hf_samr_samr_DomInfo13_modified_count_at_last_promotion;
274 static int hf_samr_samr_DomInfo13_sequence_num;
275 static int hf_samr_samr_DomInfo1_max_password_age;
276 static int hf_samr_samr_DomInfo1_min_password_age;
277 static int hf_samr_samr_DomInfo1_min_password_length;
278 static int hf_samr_samr_DomInfo1_password_history_length;
279 static int hf_samr_samr_DomInfo1_password_properties;
280 static int hf_samr_samr_DomInfo3_force_logoff_time;
281 static int hf_samr_samr_DomInfo5_domain_name;
282 static int hf_samr_samr_DomInfo6_primary;
283 static int hf_samr_samr_DomInfo7_role;
284 static int hf_samr_samr_DomInfo8_domain_create_time;
285 static int hf_samr_samr_DomInfo8_sequence_num;
286 static int hf_samr_samr_DomInfo9_domain_server_state;
287 static int hf_samr_samr_DomOEMInformation_oem_information;
288 static int hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_ALIAS;
289 static int hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_GROUP;
290 static int hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_USER;
291 static int hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_ENUM_ACCOUNTS;
292 static int hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_ALIAS;
293 static int hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_INFO_1;
294 static int hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_INFO_2;
295 static int hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT;
296 static int hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_1;
297 static int hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_2;
298 static int hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_3;
299 static int hf_samr_samr_DomainInfo_general;
300 static int hf_samr_samr_DomainInfo_general2;
301 static int hf_samr_samr_DomainInfo_info1;
302 static int hf_samr_samr_DomainInfo_info12;
303 static int hf_samr_samr_DomainInfo_info13;
304 static int hf_samr_samr_DomainInfo_info3;
305 static int hf_samr_samr_DomainInfo_info5;
306 static int hf_samr_samr_DomainInfo_info6;
307 static int hf_samr_samr_DomainInfo_info7;
308 static int hf_samr_samr_DomainInfo_info8;
309 static int hf_samr_samr_DomainInfo_info9;
310 static int hf_samr_samr_DomainInfo_oem;
311 static int hf_samr_samr_EncryptedPasswordAES_PBKDF2Iterations;
312 static int hf_samr_samr_EncryptedPasswordAES_auth_data;
313 static int hf_samr_samr_EncryptedPasswordAES_cipher;
314 static int hf_samr_samr_EncryptedPasswordAES_cipher_len;
315 static int hf_samr_samr_EncryptedPasswordAES_salt;
316 static int hf_samr_samr_EnumDomainAliases_max_size;
317 static int hf_samr_samr_EnumDomainAliases_num_entries;
318 static int hf_samr_samr_EnumDomainAliases_resume_handle;
319 static int hf_samr_samr_EnumDomainAliases_sam;
320 static int hf_samr_samr_EnumDomainGroups_max_size;
321 static int hf_samr_samr_EnumDomainGroups_num_entries;
322 static int hf_samr_samr_EnumDomainGroups_resume_handle;
323 static int hf_samr_samr_EnumDomainGroups_sam;
324 static int hf_samr_samr_EnumDomainUsers_acct_flags;
325 static int hf_samr_samr_EnumDomainUsers_max_size;
326 static int hf_samr_samr_EnumDomainUsers_num_entries;
327 static int hf_samr_samr_EnumDomainUsers_resume_handle;
328 static int hf_samr_samr_EnumDomainUsers_sam;
329 static int hf_samr_samr_EnumDomains_buf_size;
330 static int hf_samr_samr_EnumDomains_connect_handle;
331 static int hf_samr_samr_EnumDomains_num_entries;
332 static int hf_samr_samr_EnumDomains_resume_handle;
333 static int hf_samr_samr_EnumDomains_sam;
334 static int hf_samr_samr_FieldsPresent_SAMR_FIELD_ACCOUNT_NAME;
335 static int hf_samr_samr_FieldsPresent_SAMR_FIELD_ACCT_EXPIRY;
336 static int hf_samr_samr_FieldsPresent_SAMR_FIELD_ACCT_FLAGS;
337 static int hf_samr_samr_FieldsPresent_SAMR_FIELD_ALLOW_PWD_CHANGE;
338 static int hf_samr_samr_FieldsPresent_SAMR_FIELD_BAD_PWD_COUNT;
339 static int hf_samr_samr_FieldsPresent_SAMR_FIELD_CODE_PAGE;
340 static int hf_samr_samr_FieldsPresent_SAMR_FIELD_COMMENT;
341 static int hf_samr_samr_FieldsPresent_SAMR_FIELD_COUNTRY_CODE;
342 static int hf_samr_samr_FieldsPresent_SAMR_FIELD_DESCRIPTION;
343 static int hf_samr_samr_FieldsPresent_SAMR_FIELD_EXPIRED_FLAG;
344 static int hf_samr_samr_FieldsPresent_SAMR_FIELD_FORCE_PWD_CHANGE;
345 static int hf_samr_samr_FieldsPresent_SAMR_FIELD_FULL_NAME;
346 static int hf_samr_samr_FieldsPresent_SAMR_FIELD_HOME_DIRECTORY;
347 static int hf_samr_samr_FieldsPresent_SAMR_FIELD_HOME_DRIVE;
348 static int hf_samr_samr_FieldsPresent_SAMR_FIELD_LAST_LOGOFF;
349 static int hf_samr_samr_FieldsPresent_SAMR_FIELD_LAST_LOGON;
350 static int hf_samr_samr_FieldsPresent_SAMR_FIELD_LAST_PWD_CHANGE;
351 static int hf_samr_samr_FieldsPresent_SAMR_FIELD_LM_PASSWORD_PRESENT;
352 static int hf_samr_samr_FieldsPresent_SAMR_FIELD_LOGON_HOURS;
353 static int hf_samr_samr_FieldsPresent_SAMR_FIELD_LOGON_SCRIPT;
354 static int hf_samr_samr_FieldsPresent_SAMR_FIELD_NT_PASSWORD_PRESENT;
355 static int hf_samr_samr_FieldsPresent_SAMR_FIELD_NUM_LOGONS;
356 static int hf_samr_samr_FieldsPresent_SAMR_FIELD_OWF_PWD;
357 static int hf_samr_samr_FieldsPresent_SAMR_FIELD_PARAMETERS;
358 static int hf_samr_samr_FieldsPresent_SAMR_FIELD_PRIMARY_GID;
359 static int hf_samr_samr_FieldsPresent_SAMR_FIELD_PRIVATE_DATA;
360 static int hf_samr_samr_FieldsPresent_SAMR_FIELD_PROFILE_PATH;
361 static int hf_samr_samr_FieldsPresent_SAMR_FIELD_RID;
362 static int hf_samr_samr_FieldsPresent_SAMR_FIELD_SEC_DESC;
363 static int hf_samr_samr_FieldsPresent_SAMR_FIELD_WORKSTATIONS;
364 static int hf_samr_samr_GetAliasMembership_rids;
365 static int hf_samr_samr_GetAliasMembership_sids;
366 static int hf_samr_samr_GetBootKeyInformation_domain_handle;
367 static int hf_samr_samr_GetBootKeyInformation_unknown;
368 static int hf_samr_samr_GetDisplayEnumerationIndex2_idx;
369 static int hf_samr_samr_GetDisplayEnumerationIndex2_level;
370 static int hf_samr_samr_GetDisplayEnumerationIndex2_name;
371 static int hf_samr_samr_GetDisplayEnumerationIndex_idx;
372 static int hf_samr_samr_GetDisplayEnumerationIndex_level;
373 static int hf_samr_samr_GetDisplayEnumerationIndex_name;
374 static int hf_samr_samr_GetDomPwInfo_domain_name;
375 static int hf_samr_samr_GetDomPwInfo_info;
376 static int hf_samr_samr_GetGroupsForUser_rids;
377 static int hf_samr_samr_GetMembersInAlias_sids;
378 static int hf_samr_samr_GetUserPwInfo_info;
379 static int hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_ADD_MEMBER;
380 static int hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_GET_MEMBERS;
381 static int hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_LOOKUP_INFO;
382 static int hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_REMOVE_MEMBER;
383 static int hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_SET_INFO;
384 static int hf_samr_samr_GroupAttrs_SE_GROUP_ENABLED;
385 static int hf_samr_samr_GroupAttrs_SE_GROUP_ENABLED_BY_DEFAULT;
386 static int hf_samr_samr_GroupAttrs_SE_GROUP_LOGON_ID;
387 static int hf_samr_samr_GroupAttrs_SE_GROUP_MANDATORY;
388 static int hf_samr_samr_GroupAttrs_SE_GROUP_OWNER;
389 static int hf_samr_samr_GroupAttrs_SE_GROUP_RESOURCE;
390 static int hf_samr_samr_GroupAttrs_SE_GROUP_USE_FOR_DENY_ONLY;
391 static int hf_samr_samr_GroupInfoAll_attributes;
392 static int hf_samr_samr_GroupInfoAll_description;
393 static int hf_samr_samr_GroupInfoAll_name;
394 static int hf_samr_samr_GroupInfoAll_num_members;
395 static int hf_samr_samr_GroupInfoAttributes_attributes;
396 static int hf_samr_samr_GroupInfoDescription_description;
397 static int hf_samr_samr_GroupInfo_all;
398 static int hf_samr_samr_GroupInfo_all2;
399 static int hf_samr_samr_GroupInfo_attributes;
400 static int hf_samr_samr_GroupInfo_description;
401 static int hf_samr_samr_GroupInfo_name;
402 static int hf_samr_samr_Ids_count;
403 static int hf_samr_samr_LogonHours_bits;
404 static int hf_samr_samr_LogonHours_units_per_week;
405 static int hf_samr_samr_LookupDomain_domain_name;
406 static int hf_samr_samr_LookupDomain_sid;
407 static int hf_samr_samr_LookupNames_names;
408 static int hf_samr_samr_LookupNames_num_names;
409 static int hf_samr_samr_LookupNames_rids;
410 static int hf_samr_samr_LookupNames_types;
411 static int hf_samr_samr_LookupRids_names;
412 static int hf_samr_samr_LookupRids_num_rids;
413 static int hf_samr_samr_LookupRids_types;
414 static int hf_samr_samr_OemChangePasswordUser2_account;
415 static int hf_samr_samr_OemChangePasswordUser2_hash;
416 static int hf_samr_samr_OemChangePasswordUser2_password;
417 static int hf_samr_samr_OemChangePasswordUser2_server;
418 static int hf_samr_samr_OpenDomain_sid;
419 static int hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_COMPLEX;
420 static int hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_LOCKOUT_ADMINS;
421 static int hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_NO_ANON_CHANGE;
422 static int hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_NO_CLEAR_CHANGE;
423 static int hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_STORE_CLEARTEXT;
424 static int hf_samr_samr_PasswordProperties_DOMAIN_REFUSE_PASSWORD_CHANGE;
425 static int hf_samr_samr_Password_hash;
426 static int hf_samr_samr_PwInfo_min_password_length;
427 static int hf_samr_samr_PwInfo_password_properties;
428 static int hf_samr_samr_QueryAliasInfo_info;
429 static int hf_samr_samr_QueryAliasInfo_level;
430 static int hf_samr_samr_QueryDisplayInfo2_buf_size;
431 static int hf_samr_samr_QueryDisplayInfo2_info;
432 static int hf_samr_samr_QueryDisplayInfo2_level;
433 static int hf_samr_samr_QueryDisplayInfo2_max_entries;
434 static int hf_samr_samr_QueryDisplayInfo2_returned_size;
435 static int hf_samr_samr_QueryDisplayInfo2_start_idx;
436 static int hf_samr_samr_QueryDisplayInfo2_total_size;
437 static int hf_samr_samr_QueryDisplayInfo3_buf_size;
438 static int hf_samr_samr_QueryDisplayInfo3_info;
439 static int hf_samr_samr_QueryDisplayInfo3_level;
440 static int hf_samr_samr_QueryDisplayInfo3_max_entries;
441 static int hf_samr_samr_QueryDisplayInfo3_returned_size;
442 static int hf_samr_samr_QueryDisplayInfo3_start_idx;
443 static int hf_samr_samr_QueryDisplayInfo3_total_size;
444 static int hf_samr_samr_QueryDisplayInfo_buf_size;
445 static int hf_samr_samr_QueryDisplayInfo_info;
446 static int hf_samr_samr_QueryDisplayInfo_level;
447 static int hf_samr_samr_QueryDisplayInfo_max_entries;
448 static int hf_samr_samr_QueryDisplayInfo_returned_size;
449 static int hf_samr_samr_QueryDisplayInfo_start_idx;
450 static int hf_samr_samr_QueryDisplayInfo_total_size;
451 static int hf_samr_samr_QueryDomainInfo2_info;
452 static int hf_samr_samr_QueryDomainInfo2_level;
453 static int hf_samr_samr_QueryDomainInfo_info;
454 static int hf_samr_samr_QueryDomainInfo_level;
455 static int hf_samr_samr_QueryGroupInfo_info;
456 static int hf_samr_samr_QueryGroupInfo_level;
457 static int hf_samr_samr_QueryGroupMember_rids;
458 static int hf_samr_samr_QuerySecurity_sdbuf;
459 static int hf_samr_samr_QuerySecurity_sec_info;
460 static int hf_samr_samr_QueryUserInfo2_info;
461 static int hf_samr_samr_QueryUserInfo2_level;
462 static int hf_samr_samr_QueryUserInfo_info;
463 static int hf_samr_samr_QueryUserInfo_level;
464 static int hf_samr_samr_RemoveMemberFromForeignDomain_sid;
465 static int hf_samr_samr_RemoveMultipleMembersFromAlias_sids;
466 static int hf_samr_samr_RidToSid_sid;
467 static int hf_samr_samr_RidTypeArray_count;
468 static int hf_samr_samr_RidTypeArray_types;
469 static int hf_samr_samr_RidWithAttributeArray_count;
470 static int hf_samr_samr_RidWithAttributeArray_rids;
471 static int hf_samr_samr_RidWithAttribute_attributes;
472 static int hf_samr_samr_SamArray_count;
473 static int hf_samr_samr_SamArray_entries;
474 static int hf_samr_samr_SamEntry_idx;
475 static int hf_samr_samr_SamEntry_name;
476 static int hf_samr_samr_SetAliasInfo_info;
477 static int hf_samr_samr_SetAliasInfo_level;
478 static int hf_samr_samr_SetBootKeyInformation_unknown1;
479 static int hf_samr_samr_SetBootKeyInformation_unknown2;
480 static int hf_samr_samr_SetBootKeyInformation_unknown3;
481 static int hf_samr_samr_SetDomainInfo_info;
482 static int hf_samr_samr_SetDomainInfo_level;
483 static int hf_samr_samr_SetDsrmPassword_hash;
484 static int hf_samr_samr_SetDsrmPassword_name;
485 static int hf_samr_samr_SetDsrmPassword_unknown;
486 static int hf_samr_samr_SetGroupInfo_info;
487 static int hf_samr_samr_SetGroupInfo_level;
488 static int hf_samr_samr_SetMemberAttributesOfGroup_unknown1;
489 static int hf_samr_samr_SetMemberAttributesOfGroup_unknown2;
490 static int hf_samr_samr_SetSecurity_sdbuf;
491 static int hf_samr_samr_SetSecurity_sec_info;
492 static int hf_samr_samr_SetUserInfo2_info;
493 static int hf_samr_samr_SetUserInfo2_level;
494 static int hf_samr_samr_SetUserInfo_info;
495 static int hf_samr_samr_SetUserInfo_level;
496 static int hf_samr_samr_Shutdown_connect_handle;
497 static int hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_CHANGE_GROUP_MEMBERSHIP;
498 static int hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_CHANGE_PASSWORD;
499 static int hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_ATTRIBUTES;
500 static int hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_GROUPS;
501 static int hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_GROUP_MEMBERSHIP;
502 static int hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_LOCALE;
503 static int hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_LOGONINFO;
504 static int hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_NAME_ETC;
505 static int hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_SET_ATTRIBUTES;
506 static int hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_SET_LOC_COM;
507 static int hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_SET_PASSWORD;
508 static int hf_samr_samr_UserInfo10_home_directory;
509 static int hf_samr_samr_UserInfo10_home_drive;
510 static int hf_samr_samr_UserInfo11_logon_script;
511 static int hf_samr_samr_UserInfo12_profile_path;
512 static int hf_samr_samr_UserInfo13_description;
513 static int hf_samr_samr_UserInfo14_workstations;
514 static int hf_samr_samr_UserInfo16_acct_flags;
515 static int hf_samr_samr_UserInfo17_acct_expiry;
516 static int hf_samr_samr_UserInfo18_lm_pwd;
517 static int hf_samr_samr_UserInfo18_lm_pwd_active;
518 static int hf_samr_samr_UserInfo18_nt_pwd;
519 static int hf_samr_samr_UserInfo18_nt_pwd_active;
520 static int hf_samr_samr_UserInfo18_password_expired;
521 static int hf_samr_samr_UserInfo1_account_name;
522 static int hf_samr_samr_UserInfo1_comment;
523 static int hf_samr_samr_UserInfo1_description;
524 static int hf_samr_samr_UserInfo1_full_name;
525 static int hf_samr_samr_UserInfo1_primary_gid;
526 static int hf_samr_samr_UserInfo20_parameters;
527 static int hf_samr_samr_UserInfo21_account_name;
528 static int hf_samr_samr_UserInfo21_acct_expiry;
529 static int hf_samr_samr_UserInfo21_acct_flags;
530 static int hf_samr_samr_UserInfo21_allow_password_change;
531 static int hf_samr_samr_UserInfo21_bad_password_count;
532 static int hf_samr_samr_UserInfo21_buf_count;
533 static int hf_samr_samr_UserInfo21_buffer;
534 static int hf_samr_samr_UserInfo21_code_page;
535 static int hf_samr_samr_UserInfo21_comment;
536 static int hf_samr_samr_UserInfo21_country_code;
537 static int hf_samr_samr_UserInfo21_description;
538 static int hf_samr_samr_UserInfo21_fields_present;
539 static int hf_samr_samr_UserInfo21_force_password_change;
540 static int hf_samr_samr_UserInfo21_full_name;
541 static int hf_samr_samr_UserInfo21_home_directory;
542 static int hf_samr_samr_UserInfo21_home_drive;
543 static int hf_samr_samr_UserInfo21_last_logoff;
544 static int hf_samr_samr_UserInfo21_last_logon;
545 static int hf_samr_samr_UserInfo21_last_password_change;
546 static int hf_samr_samr_UserInfo21_lm_owf_password;
547 static int hf_samr_samr_UserInfo21_lm_password_set;
548 static int hf_samr_samr_UserInfo21_logon_count;
549 static int hf_samr_samr_UserInfo21_logon_hours;
550 static int hf_samr_samr_UserInfo21_logon_script;
551 static int hf_samr_samr_UserInfo21_nt_owf_password;
552 static int hf_samr_samr_UserInfo21_nt_password_set;
553 static int hf_samr_samr_UserInfo21_parameters;
554 static int hf_samr_samr_UserInfo21_password_expired;
555 static int hf_samr_samr_UserInfo21_primary_gid;
556 static int hf_samr_samr_UserInfo21_private_data;
557 static int hf_samr_samr_UserInfo21_private_data_sensitive;
558 static int hf_samr_samr_UserInfo21_profile_path;
559 static int hf_samr_samr_UserInfo21_workstations;
560 static int hf_samr_samr_UserInfo23_info;
561 static int hf_samr_samr_UserInfo23_password;
562 static int hf_samr_samr_UserInfo24_password;
563 static int hf_samr_samr_UserInfo24_password_expired;
564 static int hf_samr_samr_UserInfo25_info;
565 static int hf_samr_samr_UserInfo25_password;
566 static int hf_samr_samr_UserInfo26_password;
567 static int hf_samr_samr_UserInfo26_password_expired;
568 static int hf_samr_samr_UserInfo2_code_page;
569 static int hf_samr_samr_UserInfo2_comment;
570 static int hf_samr_samr_UserInfo2_country_code;
571 static int hf_samr_samr_UserInfo2_reserved;
572 static int hf_samr_samr_UserInfo31_password;
573 static int hf_samr_samr_UserInfo31_password_expired;
574 static int hf_samr_samr_UserInfo32_info;
575 static int hf_samr_samr_UserInfo32_password;
576 static int hf_samr_samr_UserInfo3_account_name;
577 static int hf_samr_samr_UserInfo3_acct_flags;
578 static int hf_samr_samr_UserInfo3_allow_password_change;
579 static int hf_samr_samr_UserInfo3_bad_password_count;
580 static int hf_samr_samr_UserInfo3_force_password_change;
581 static int hf_samr_samr_UserInfo3_full_name;
582 static int hf_samr_samr_UserInfo3_home_directory;
583 static int hf_samr_samr_UserInfo3_home_drive;
584 static int hf_samr_samr_UserInfo3_last_logoff;
585 static int hf_samr_samr_UserInfo3_last_logon;
586 static int hf_samr_samr_UserInfo3_last_password_change;
587 static int hf_samr_samr_UserInfo3_logon_count;
588 static int hf_samr_samr_UserInfo3_logon_hours;
589 static int hf_samr_samr_UserInfo3_logon_script;
590 static int hf_samr_samr_UserInfo3_primary_gid;
591 static int hf_samr_samr_UserInfo3_profile_path;
592 static int hf_samr_samr_UserInfo3_workstations;
593 static int hf_samr_samr_UserInfo4_logon_hours;
594 static int hf_samr_samr_UserInfo5_account_name;
595 static int hf_samr_samr_UserInfo5_acct_expiry;
596 static int hf_samr_samr_UserInfo5_acct_flags;
597 static int hf_samr_samr_UserInfo5_bad_password_count;
598 static int hf_samr_samr_UserInfo5_description;
599 static int hf_samr_samr_UserInfo5_full_name;
600 static int hf_samr_samr_UserInfo5_home_directory;
601 static int hf_samr_samr_UserInfo5_home_drive;
602 static int hf_samr_samr_UserInfo5_last_logoff;
603 static int hf_samr_samr_UserInfo5_last_logon;
604 static int hf_samr_samr_UserInfo5_last_password_change;
605 static int hf_samr_samr_UserInfo5_logon_count;
606 static int hf_samr_samr_UserInfo5_logon_hours;
607 static int hf_samr_samr_UserInfo5_logon_script;
608 static int hf_samr_samr_UserInfo5_primary_gid;
609 static int hf_samr_samr_UserInfo5_profile_path;
610 static int hf_samr_samr_UserInfo5_workstations;
611 static int hf_samr_samr_UserInfo6_account_name;
612 static int hf_samr_samr_UserInfo6_full_name;
613 static int hf_samr_samr_UserInfo7_account_name;
614 static int hf_samr_samr_UserInfo8_full_name;
615 static int hf_samr_samr_UserInfo9_primary_gid;
616 static int hf_samr_samr_UserInfo_info1;
617 static int hf_samr_samr_UserInfo_info10;
618 static int hf_samr_samr_UserInfo_info11;
619 static int hf_samr_samr_UserInfo_info12;
620 static int hf_samr_samr_UserInfo_info13;
621 static int hf_samr_samr_UserInfo_info14;
622 static int hf_samr_samr_UserInfo_info16;
623 static int hf_samr_samr_UserInfo_info17;
624 static int hf_samr_samr_UserInfo_info18;
625 static int hf_samr_samr_UserInfo_info2;
626 static int hf_samr_samr_UserInfo_info20;
627 static int hf_samr_samr_UserInfo_info21;
628 static int hf_samr_samr_UserInfo_info23;
629 static int hf_samr_samr_UserInfo_info24;
630 static int hf_samr_samr_UserInfo_info25;
631 static int hf_samr_samr_UserInfo_info26;
632 static int hf_samr_samr_UserInfo_info3;
633 static int hf_samr_samr_UserInfo_info31;
634 static int hf_samr_samr_UserInfo_info32;
635 static int hf_samr_samr_UserInfo_info4;
636 static int hf_samr_samr_UserInfo_info5;
637 static int hf_samr_samr_UserInfo_info6;
638 static int hf_samr_samr_UserInfo_info7;
639 static int hf_samr_samr_UserInfo_info8;
640 static int hf_samr_samr_UserInfo_info9;
641 static int hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_BAD_PASSWORD_COUNT;
642 static int hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_BAD_PASSWORD_TIME;
643 static int hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_LOCKOUT_TIME;
644 static int hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_HISTORY;
645 static int hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_LENGTH;
646 static int hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_LAST_SET;
647 static int hf_samr_samr_ValidatePasswordInfo_bad_password_time;
648 static int hf_samr_samr_ValidatePasswordInfo_bad_pwd_count;
649 static int hf_samr_samr_ValidatePasswordInfo_fields_present;
650 static int hf_samr_samr_ValidatePasswordInfo_last_password_change;
651 static int hf_samr_samr_ValidatePasswordInfo_lockout_time;
652 static int hf_samr_samr_ValidatePasswordInfo_pwd_history;
653 static int hf_samr_samr_ValidatePasswordInfo_pwd_history_len;
654 static int hf_samr_samr_ValidatePasswordRepCtr_info;
655 static int hf_samr_samr_ValidatePasswordRepCtr_status;
656 static int hf_samr_samr_ValidatePasswordRep_ctr1;
657 static int hf_samr_samr_ValidatePasswordRep_ctr2;
658 static int hf_samr_samr_ValidatePasswordRep_ctr3;
659 static int hf_samr_samr_ValidatePasswordReq1_info;
660 static int hf_samr_samr_ValidatePasswordReq1_password_matched;
661 static int hf_samr_samr_ValidatePasswordReq2_account;
662 static int hf_samr_samr_ValidatePasswordReq2_hash;
663 static int hf_samr_samr_ValidatePasswordReq2_info;
664 static int hf_samr_samr_ValidatePasswordReq2_password;
665 static int hf_samr_samr_ValidatePasswordReq2_password_matched;
666 static int hf_samr_samr_ValidatePasswordReq3_account;
667 static int hf_samr_samr_ValidatePasswordReq3_clear_lockout;
668 static int hf_samr_samr_ValidatePasswordReq3_hash;
669 static int hf_samr_samr_ValidatePasswordReq3_info;
670 static int hf_samr_samr_ValidatePasswordReq3_password;
671 static int hf_samr_samr_ValidatePasswordReq3_pwd_must_change_at_next_logon;
672 static int hf_samr_samr_ValidatePasswordReq_req1;
673 static int hf_samr_samr_ValidatePasswordReq_req2;
674 static int hf_samr_samr_ValidatePasswordReq_req3;
675 static int hf_samr_samr_ValidatePassword_level;
676 static int hf_samr_samr_ValidatePassword_rep;
677 static int hf_samr_samr_ValidatePassword_req;
678 static int hf_samr_samr_ValidationBlob_data;
679 static int hf_samr_samr_ValidationBlob_length;
680 static int hf_samr_sec_desc_buf_len;
681 static int hf_samr_status;
682 static int hf_samr_userPwdChangeFailureInformation_extendedFailureReason;
683 static int hf_samr_userPwdChangeFailureInformation_filterModuleName;
684 static int hf_samr_user_access_mask;
685 static int hf_samr_user_handle;
687 static int proto_dcerpc_samr;
688 /* Version information */
691 static e_guid_t uuid_dcerpc_samr = {
692 0x12345778, 0x1234, 0xabcd,
693 { 0xef, 0x00, 0x01, 0x23, 0x45, 0x67, 0x89, 0xac }
695 static uint16_t ver_dcerpc_samr = 1;
697 static int samr_dissect_element_lsa_Strings_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
698 static int samr_dissect_element_lsa_Strings_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
699 static int samr_dissect_element_lsa_Strings_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
700 static int samr_dissect_element_lsa_Strings_names__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
701 const value_string samr_lsa_SidType_vals[] = {
702 { SID_NAME_USE_NONE, "SID_NAME_USE_NONE" },
703 { SID_NAME_USER, "SID_NAME_USER" },
704 { SID_NAME_DOM_GRP, "SID_NAME_DOM_GRP" },
705 { SID_NAME_DOMAIN, "SID_NAME_DOMAIN" },
706 { SID_NAME_ALIAS, "SID_NAME_ALIAS" },
707 { SID_NAME_WKN_GRP, "SID_NAME_WKN_GRP" },
708 { SID_NAME_DELETED, "SID_NAME_DELETED" },
709 { SID_NAME_INVALID, "SID_NAME_INVALID" },
710 { SID_NAME_UNKNOWN, "SID_NAME_UNKNOWN" },
711 { SID_NAME_COMPUTER, "SID_NAME_COMPUTER" },
712 { 0, NULL }
714 static const true_false_string samr_AcctFlags_ACB_DISABLED_tfs = {
715 "ACB_DISABLED is SET",
716 "ACB_DISABLED is NOT SET",
718 static const true_false_string samr_AcctFlags_ACB_HOMDIRREQ_tfs = {
719 "ACB_HOMDIRREQ is SET",
720 "ACB_HOMDIRREQ is NOT SET",
722 static const true_false_string samr_AcctFlags_ACB_PWNOTREQ_tfs = {
723 "ACB_PWNOTREQ is SET",
724 "ACB_PWNOTREQ is NOT SET",
726 static const true_false_string samr_AcctFlags_ACB_TEMPDUP_tfs = {
727 "ACB_TEMPDUP is SET",
728 "ACB_TEMPDUP is NOT SET",
730 static const true_false_string samr_AcctFlags_ACB_NORMAL_tfs = {
731 "ACB_NORMAL is SET",
732 "ACB_NORMAL is NOT SET",
734 static const true_false_string samr_AcctFlags_ACB_MNS_tfs = {
735 "ACB_MNS is SET",
736 "ACB_MNS is NOT SET",
738 static const true_false_string samr_AcctFlags_ACB_DOMTRUST_tfs = {
739 "ACB_DOMTRUST is SET",
740 "ACB_DOMTRUST is NOT SET",
742 static const true_false_string samr_AcctFlags_ACB_WSTRUST_tfs = {
743 "ACB_WSTRUST is SET",
744 "ACB_WSTRUST is NOT SET",
746 static const true_false_string samr_AcctFlags_ACB_SVRTRUST_tfs = {
747 "ACB_SVRTRUST is SET",
748 "ACB_SVRTRUST is NOT SET",
750 static const true_false_string samr_AcctFlags_ACB_PWNOEXP_tfs = {
751 "ACB_PWNOEXP is SET",
752 "ACB_PWNOEXP is NOT SET",
754 static const true_false_string samr_AcctFlags_ACB_AUTOLOCK_tfs = {
755 "ACB_AUTOLOCK is SET",
756 "ACB_AUTOLOCK is NOT SET",
758 static const true_false_string samr_AcctFlags_ACB_ENC_TXT_PWD_ALLOWED_tfs = {
759 "ACB_ENC_TXT_PWD_ALLOWED is SET",
760 "ACB_ENC_TXT_PWD_ALLOWED is NOT SET",
762 static const true_false_string samr_AcctFlags_ACB_SMARTCARD_REQUIRED_tfs = {
763 "ACB_SMARTCARD_REQUIRED is SET",
764 "ACB_SMARTCARD_REQUIRED is NOT SET",
766 static const true_false_string samr_AcctFlags_ACB_TRUSTED_FOR_DELEGATION_tfs = {
767 "ACB_TRUSTED_FOR_DELEGATION is SET",
768 "ACB_TRUSTED_FOR_DELEGATION is NOT SET",
770 static const true_false_string samr_AcctFlags_ACB_NOT_DELEGATED_tfs = {
771 "ACB_NOT_DELEGATED is SET",
772 "ACB_NOT_DELEGATED is NOT SET",
774 static const true_false_string samr_AcctFlags_ACB_USE_DES_KEY_ONLY_tfs = {
775 "ACB_USE_DES_KEY_ONLY is SET",
776 "ACB_USE_DES_KEY_ONLY is NOT SET",
778 static const true_false_string samr_AcctFlags_ACB_DONT_REQUIRE_PREAUTH_tfs = {
779 "ACB_DONT_REQUIRE_PREAUTH is SET",
780 "ACB_DONT_REQUIRE_PREAUTH is NOT SET",
782 static const true_false_string samr_AcctFlags_ACB_PW_EXPIRED_tfs = {
783 "ACB_PW_EXPIRED is SET",
784 "ACB_PW_EXPIRED is NOT SET",
786 static const true_false_string samr_AcctFlags_ACB_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION_tfs = {
787 "ACB_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION is SET",
788 "ACB_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION is NOT SET",
790 static const true_false_string samr_AcctFlags_ACB_NO_AUTH_DATA_REQD_tfs = {
791 "ACB_NO_AUTH_DATA_REQD is SET",
792 "ACB_NO_AUTH_DATA_REQD is NOT SET",
794 static const true_false_string samr_AcctFlags_ACB_PARTIAL_SECRETS_ACCOUNT_tfs = {
795 "ACB_PARTIAL_SECRETS_ACCOUNT is SET",
796 "ACB_PARTIAL_SECRETS_ACCOUNT is NOT SET",
798 static const true_false_string samr_AcctFlags_ACB_USE_AES_KEYS_tfs = {
799 "ACB_USE_AES_KEYS is SET",
800 "ACB_USE_AES_KEYS is NOT SET",
802 static const true_false_string samr_ConnectAccessMask_SAMR_ACCESS_CONNECT_TO_SERVER_tfs = {
803 "SAMR_ACCESS_CONNECT_TO_SERVER is SET",
804 "SAMR_ACCESS_CONNECT_TO_SERVER is NOT SET",
806 static const true_false_string samr_ConnectAccessMask_SAMR_ACCESS_SHUTDOWN_SERVER_tfs = {
807 "SAMR_ACCESS_SHUTDOWN_SERVER is SET",
808 "SAMR_ACCESS_SHUTDOWN_SERVER is NOT SET",
810 static const true_false_string samr_ConnectAccessMask_SAMR_ACCESS_INITIALIZE_SERVER_tfs = {
811 "SAMR_ACCESS_INITIALIZE_SERVER is SET",
812 "SAMR_ACCESS_INITIALIZE_SERVER is NOT SET",
814 static const true_false_string samr_ConnectAccessMask_SAMR_ACCESS_CREATE_DOMAIN_tfs = {
815 "SAMR_ACCESS_CREATE_DOMAIN is SET",
816 "SAMR_ACCESS_CREATE_DOMAIN is NOT SET",
818 static const true_false_string samr_ConnectAccessMask_SAMR_ACCESS_ENUM_DOMAINS_tfs = {
819 "SAMR_ACCESS_ENUM_DOMAINS is SET",
820 "SAMR_ACCESS_ENUM_DOMAINS is NOT SET",
822 static const true_false_string samr_ConnectAccessMask_SAMR_ACCESS_LOOKUP_DOMAIN_tfs = {
823 "SAMR_ACCESS_LOOKUP_DOMAIN is SET",
824 "SAMR_ACCESS_LOOKUP_DOMAIN is NOT SET",
826 static const true_false_string samr_UserAccessMask_SAMR_USER_ACCESS_GET_NAME_ETC_tfs = {
827 "SAMR_USER_ACCESS_GET_NAME_ETC is SET",
828 "SAMR_USER_ACCESS_GET_NAME_ETC is NOT SET",
830 static const true_false_string samr_UserAccessMask_SAMR_USER_ACCESS_GET_LOCALE_tfs = {
831 "SAMR_USER_ACCESS_GET_LOCALE is SET",
832 "SAMR_USER_ACCESS_GET_LOCALE is NOT SET",
834 static const true_false_string samr_UserAccessMask_SAMR_USER_ACCESS_SET_LOC_COM_tfs = {
835 "SAMR_USER_ACCESS_SET_LOC_COM is SET",
836 "SAMR_USER_ACCESS_SET_LOC_COM is NOT SET",
838 static const true_false_string samr_UserAccessMask_SAMR_USER_ACCESS_GET_LOGONINFO_tfs = {
839 "SAMR_USER_ACCESS_GET_LOGONINFO is SET",
840 "SAMR_USER_ACCESS_GET_LOGONINFO is NOT SET",
842 static const true_false_string samr_UserAccessMask_SAMR_USER_ACCESS_GET_ATTRIBUTES_tfs = {
843 "SAMR_USER_ACCESS_GET_ATTRIBUTES is SET",
844 "SAMR_USER_ACCESS_GET_ATTRIBUTES is NOT SET",
846 static const true_false_string samr_UserAccessMask_SAMR_USER_ACCESS_SET_ATTRIBUTES_tfs = {
847 "SAMR_USER_ACCESS_SET_ATTRIBUTES is SET",
848 "SAMR_USER_ACCESS_SET_ATTRIBUTES is NOT SET",
850 static const true_false_string samr_UserAccessMask_SAMR_USER_ACCESS_CHANGE_PASSWORD_tfs = {
851 "SAMR_USER_ACCESS_CHANGE_PASSWORD is SET",
852 "SAMR_USER_ACCESS_CHANGE_PASSWORD is NOT SET",
854 static const true_false_string samr_UserAccessMask_SAMR_USER_ACCESS_SET_PASSWORD_tfs = {
855 "SAMR_USER_ACCESS_SET_PASSWORD is SET",
856 "SAMR_USER_ACCESS_SET_PASSWORD is NOT SET",
858 static const true_false_string samr_UserAccessMask_SAMR_USER_ACCESS_GET_GROUPS_tfs = {
859 "SAMR_USER_ACCESS_GET_GROUPS is SET",
860 "SAMR_USER_ACCESS_GET_GROUPS is NOT SET",
862 static const true_false_string samr_UserAccessMask_SAMR_USER_ACCESS_GET_GROUP_MEMBERSHIP_tfs = {
863 "SAMR_USER_ACCESS_GET_GROUP_MEMBERSHIP is SET",
864 "SAMR_USER_ACCESS_GET_GROUP_MEMBERSHIP is NOT SET",
866 static const true_false_string samr_UserAccessMask_SAMR_USER_ACCESS_CHANGE_GROUP_MEMBERSHIP_tfs = {
867 "SAMR_USER_ACCESS_CHANGE_GROUP_MEMBERSHIP is SET",
868 "SAMR_USER_ACCESS_CHANGE_GROUP_MEMBERSHIP is NOT SET",
870 static const true_false_string samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_INFO_1_tfs = {
871 "SAMR_DOMAIN_ACCESS_LOOKUP_INFO_1 is SET",
872 "SAMR_DOMAIN_ACCESS_LOOKUP_INFO_1 is NOT SET",
874 static const true_false_string samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_1_tfs = {
875 "SAMR_DOMAIN_ACCESS_SET_INFO_1 is SET",
876 "SAMR_DOMAIN_ACCESS_SET_INFO_1 is NOT SET",
878 static const true_false_string samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_INFO_2_tfs = {
879 "SAMR_DOMAIN_ACCESS_LOOKUP_INFO_2 is SET",
880 "SAMR_DOMAIN_ACCESS_LOOKUP_INFO_2 is NOT SET",
882 static const true_false_string samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_2_tfs = {
883 "SAMR_DOMAIN_ACCESS_SET_INFO_2 is SET",
884 "SAMR_DOMAIN_ACCESS_SET_INFO_2 is NOT SET",
886 static const true_false_string samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_USER_tfs = {
887 "SAMR_DOMAIN_ACCESS_CREATE_USER is SET",
888 "SAMR_DOMAIN_ACCESS_CREATE_USER is NOT SET",
890 static const true_false_string samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_GROUP_tfs = {
891 "SAMR_DOMAIN_ACCESS_CREATE_GROUP is SET",
892 "SAMR_DOMAIN_ACCESS_CREATE_GROUP is NOT SET",
894 static const true_false_string samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_ALIAS_tfs = {
895 "SAMR_DOMAIN_ACCESS_CREATE_ALIAS is SET",
896 "SAMR_DOMAIN_ACCESS_CREATE_ALIAS is NOT SET",
898 static const true_false_string samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_ALIAS_tfs = {
899 "SAMR_DOMAIN_ACCESS_LOOKUP_ALIAS is SET",
900 "SAMR_DOMAIN_ACCESS_LOOKUP_ALIAS is NOT SET",
902 static const true_false_string samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_ENUM_ACCOUNTS_tfs = {
903 "SAMR_DOMAIN_ACCESS_ENUM_ACCOUNTS is SET",
904 "SAMR_DOMAIN_ACCESS_ENUM_ACCOUNTS is NOT SET",
906 static const true_false_string samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT_tfs = {
907 "SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT is SET",
908 "SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT is NOT SET",
910 static const true_false_string samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_3_tfs = {
911 "SAMR_DOMAIN_ACCESS_SET_INFO_3 is SET",
912 "SAMR_DOMAIN_ACCESS_SET_INFO_3 is NOT SET",
914 static const true_false_string samr_GroupAccessMask_SAMR_GROUP_ACCESS_LOOKUP_INFO_tfs = {
915 "SAMR_GROUP_ACCESS_LOOKUP_INFO is SET",
916 "SAMR_GROUP_ACCESS_LOOKUP_INFO is NOT SET",
918 static const true_false_string samr_GroupAccessMask_SAMR_GROUP_ACCESS_SET_INFO_tfs = {
919 "SAMR_GROUP_ACCESS_SET_INFO is SET",
920 "SAMR_GROUP_ACCESS_SET_INFO is NOT SET",
922 static const true_false_string samr_GroupAccessMask_SAMR_GROUP_ACCESS_ADD_MEMBER_tfs = {
923 "SAMR_GROUP_ACCESS_ADD_MEMBER is SET",
924 "SAMR_GROUP_ACCESS_ADD_MEMBER is NOT SET",
926 static const true_false_string samr_GroupAccessMask_SAMR_GROUP_ACCESS_REMOVE_MEMBER_tfs = {
927 "SAMR_GROUP_ACCESS_REMOVE_MEMBER is SET",
928 "SAMR_GROUP_ACCESS_REMOVE_MEMBER is NOT SET",
930 static const true_false_string samr_GroupAccessMask_SAMR_GROUP_ACCESS_GET_MEMBERS_tfs = {
931 "SAMR_GROUP_ACCESS_GET_MEMBERS is SET",
932 "SAMR_GROUP_ACCESS_GET_MEMBERS is NOT SET",
934 static const true_false_string samr_AliasAccessMask_SAMR_ALIAS_ACCESS_ADD_MEMBER_tfs = {
935 "SAMR_ALIAS_ACCESS_ADD_MEMBER is SET",
936 "SAMR_ALIAS_ACCESS_ADD_MEMBER is NOT SET",
938 static const true_false_string samr_AliasAccessMask_SAMR_ALIAS_ACCESS_REMOVE_MEMBER_tfs = {
939 "SAMR_ALIAS_ACCESS_REMOVE_MEMBER is SET",
940 "SAMR_ALIAS_ACCESS_REMOVE_MEMBER is NOT SET",
942 static const true_false_string samr_AliasAccessMask_SAMR_ALIAS_ACCESS_GET_MEMBERS_tfs = {
943 "SAMR_ALIAS_ACCESS_GET_MEMBERS is SET",
944 "SAMR_ALIAS_ACCESS_GET_MEMBERS is NOT SET",
946 static const true_false_string samr_AliasAccessMask_SAMR_ALIAS_ACCESS_LOOKUP_INFO_tfs = {
947 "SAMR_ALIAS_ACCESS_LOOKUP_INFO is SET",
948 "SAMR_ALIAS_ACCESS_LOOKUP_INFO is NOT SET",
950 static const true_false_string samr_AliasAccessMask_SAMR_ALIAS_ACCESS_SET_INFO_tfs = {
951 "SAMR_ALIAS_ACCESS_SET_INFO is SET",
952 "SAMR_ALIAS_ACCESS_SET_INFO is NOT SET",
954 static int samr_dissect_element_SamEntry_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
955 static int samr_dissect_element_SamEntry_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
956 static int samr_dissect_element_SamArray_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
957 static int samr_dissect_element_SamArray_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
958 static int samr_dissect_element_SamArray_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
959 static int samr_dissect_element_SamArray_entries__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
960 const value_string samr_samr_DomainInfoClass_vals[] = {
961 { DomainPasswordInformation, "DomainPasswordInformation" },
962 { DomainGeneralInformation, "DomainGeneralInformation" },
963 { DomainLogoffInformation, "DomainLogoffInformation" },
964 { DomainOemInformation, "DomainOemInformation" },
965 { DomainNameInformation, "DomainNameInformation" },
966 { DomainReplicationInformation, "DomainReplicationInformation" },
967 { DomainServerRoleInformation, "DomainServerRoleInformation" },
968 { DomainModifiedInformation, "DomainModifiedInformation" },
969 { DomainStateInformation, "DomainStateInformation" },
970 { DomainUasInformation, "DomainUasInformation" },
971 { DomainGeneralInformation2, "DomainGeneralInformation2" },
972 { DomainLockoutInformation, "DomainLockoutInformation" },
973 { DomainModifiedInformation2, "DomainModifiedInformation2" },
974 { 0, NULL }
976 const value_string samr_samr_Role_vals[] = {
977 { SAMR_ROLE_STANDALONE, "SAMR_ROLE_STANDALONE" },
978 { SAMR_ROLE_DOMAIN_MEMBER, "SAMR_ROLE_DOMAIN_MEMBER" },
979 { SAMR_ROLE_DOMAIN_BDC, "SAMR_ROLE_DOMAIN_BDC" },
980 { SAMR_ROLE_DOMAIN_PDC, "SAMR_ROLE_DOMAIN_PDC" },
981 { 0, NULL }
983 static const true_false_string samr_PasswordProperties_DOMAIN_PASSWORD_COMPLEX_tfs = {
984 "DOMAIN_PASSWORD_COMPLEX is SET",
985 "DOMAIN_PASSWORD_COMPLEX is NOT SET",
987 static const true_false_string samr_PasswordProperties_DOMAIN_PASSWORD_NO_ANON_CHANGE_tfs = {
988 "DOMAIN_PASSWORD_NO_ANON_CHANGE is SET",
989 "DOMAIN_PASSWORD_NO_ANON_CHANGE is NOT SET",
991 static const true_false_string samr_PasswordProperties_DOMAIN_PASSWORD_NO_CLEAR_CHANGE_tfs = {
992 "DOMAIN_PASSWORD_NO_CLEAR_CHANGE is SET",
993 "DOMAIN_PASSWORD_NO_CLEAR_CHANGE is NOT SET",
995 static const true_false_string samr_PasswordProperties_DOMAIN_PASSWORD_LOCKOUT_ADMINS_tfs = {
996 "DOMAIN_PASSWORD_LOCKOUT_ADMINS is SET",
997 "DOMAIN_PASSWORD_LOCKOUT_ADMINS is NOT SET",
999 static const true_false_string samr_PasswordProperties_DOMAIN_PASSWORD_STORE_CLEARTEXT_tfs = {
1000 "DOMAIN_PASSWORD_STORE_CLEARTEXT is SET",
1001 "DOMAIN_PASSWORD_STORE_CLEARTEXT is NOT SET",
1003 static const true_false_string samr_PasswordProperties_DOMAIN_REFUSE_PASSWORD_CHANGE_tfs = {
1004 "DOMAIN_REFUSE_PASSWORD_CHANGE is SET",
1005 "DOMAIN_REFUSE_PASSWORD_CHANGE is NOT SET",
1007 const value_string samr_samr_DomainServerState_vals[] = {
1008 { DOMAIN_SERVER_ENABLED, "DOMAIN_SERVER_ENABLED" },
1009 { DOMAIN_SERVER_DISABLED, "DOMAIN_SERVER_DISABLED" },
1010 { 0, NULL }
1012 static int samr_dissect_element_DomInfo1_min_password_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1013 static int samr_dissect_element_DomInfo1_password_history_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1014 static int samr_dissect_element_DomInfo1_password_properties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1015 static int samr_dissect_element_DomInfo1_max_password_age(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1016 static int samr_dissect_element_DomInfo1_min_password_age(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1017 static int samr_dissect_element_DomGeneralInformation_force_logoff_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1018 static int samr_dissect_element_DomGeneralInformation_oem_information(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1019 static int samr_dissect_element_DomGeneralInformation_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1020 static int samr_dissect_element_DomGeneralInformation_primary(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1021 static int samr_dissect_element_DomGeneralInformation_sequence_num(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1022 static int samr_dissect_element_DomGeneralInformation_domain_server_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1023 static int samr_dissect_element_DomGeneralInformation_role(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1024 static int samr_dissect_element_DomGeneralInformation_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1025 static int samr_dissect_element_DomGeneralInformation_num_users(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1026 static int samr_dissect_element_DomGeneralInformation_num_groups(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1027 static int samr_dissect_element_DomGeneralInformation_num_aliases(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1028 static int samr_dissect_element_DomInfo3_force_logoff_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1029 static int samr_dissect_element_DomOEMInformation_oem_information(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1030 static int samr_dissect_element_DomInfo5_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1031 static int samr_dissect_element_DomInfo6_primary(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1032 static int samr_dissect_element_DomInfo7_role(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1033 static int samr_dissect_element_DomInfo8_sequence_num(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1034 static int samr_dissect_element_DomInfo8_domain_create_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1035 static int samr_dissect_element_DomInfo9_domain_server_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1036 static int samr_dissect_element_DomGeneralInformation2_general(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1037 static int samr_dissect_element_DomGeneralInformation2_lockout_duration(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1038 static int samr_dissect_element_DomGeneralInformation2_lockout_window(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1039 static int samr_dissect_element_DomGeneralInformation2_lockout_threshold(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1040 static int samr_dissect_element_DomInfo12_lockout_duration(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1041 static int samr_dissect_element_DomInfo12_lockout_window(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1042 static int samr_dissect_element_DomInfo12_lockout_threshold(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1043 static int samr_dissect_element_DomInfo13_sequence_num(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1044 static int samr_dissect_element_DomInfo13_domain_create_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1045 static int samr_dissect_element_DomInfo13_modified_count_at_last_promotion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1046 static int samr_dissect_element_DomainInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1047 static int samr_dissect_element_DomainInfo_general(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1048 static int samr_dissect_element_DomainInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1049 static int samr_dissect_element_DomainInfo_oem(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1050 static int samr_dissect_element_DomainInfo_info5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1051 static int samr_dissect_element_DomainInfo_info6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1052 static int samr_dissect_element_DomainInfo_info7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1053 static int samr_dissect_element_DomainInfo_info8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1054 static int samr_dissect_element_DomainInfo_info9(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1055 static int samr_dissect_element_DomainInfo_general2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1056 static int samr_dissect_element_DomainInfo_info12(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1057 static int samr_dissect_element_DomainInfo_info13(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1058 static int samr_dissect_element_Ids_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1059 static int samr_dissect_element_Ids_ids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1060 static int samr_dissect_element_Ids_ids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1061 static int samr_dissect_element_Ids_ids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1062 static const true_false_string samr_GroupAttrs_SE_GROUP_MANDATORY_tfs = {
1063 "SE_GROUP_MANDATORY is SET",
1064 "SE_GROUP_MANDATORY is NOT SET",
1066 static const true_false_string samr_GroupAttrs_SE_GROUP_ENABLED_BY_DEFAULT_tfs = {
1067 "SE_GROUP_ENABLED_BY_DEFAULT is SET",
1068 "SE_GROUP_ENABLED_BY_DEFAULT is NOT SET",
1070 static const true_false_string samr_GroupAttrs_SE_GROUP_ENABLED_tfs = {
1071 "SE_GROUP_ENABLED is SET",
1072 "SE_GROUP_ENABLED is NOT SET",
1074 static const true_false_string samr_GroupAttrs_SE_GROUP_OWNER_tfs = {
1075 "SE_GROUP_OWNER is SET",
1076 "SE_GROUP_OWNER is NOT SET",
1078 static const true_false_string samr_GroupAttrs_SE_GROUP_USE_FOR_DENY_ONLY_tfs = {
1079 "SE_GROUP_USE_FOR_DENY_ONLY is SET",
1080 "SE_GROUP_USE_FOR_DENY_ONLY is NOT SET",
1082 static const true_false_string samr_GroupAttrs_SE_GROUP_RESOURCE_tfs = {
1083 "SE_GROUP_RESOURCE is SET",
1084 "SE_GROUP_RESOURCE is NOT SET",
1086 static const true_false_string samr_GroupAttrs_SE_GROUP_LOGON_ID_tfs = {
1087 "SE_GROUP_LOGON_ID is SET",
1088 "SE_GROUP_LOGON_ID is NOT SET",
1090 static int samr_dissect_element_GroupInfoAll_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1091 static int samr_dissect_element_GroupInfoAll_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1092 static int samr_dissect_element_GroupInfoAll_num_members(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1093 static int samr_dissect_element_GroupInfoAll_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1094 static int samr_dissect_element_GroupInfoAttributes_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1095 static int samr_dissect_element_GroupInfoDescription_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1096 const value_string samr_samr_GroupInfoEnum_vals[] = {
1097 { GROUPINFOALL, "GROUPINFOALL" },
1098 { GROUPINFONAME, "GROUPINFONAME" },
1099 { GROUPINFOATTRIBUTES, "GROUPINFOATTRIBUTES" },
1100 { GROUPINFODESCRIPTION, "GROUPINFODESCRIPTION" },
1101 { GROUPINFOALL2, "GROUPINFOALL2" },
1102 { 0, NULL }
1104 static int samr_dissect_element_GroupInfo_all(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1105 static int samr_dissect_element_GroupInfo_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1106 static int samr_dissect_element_GroupInfo_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1107 static int samr_dissect_element_GroupInfo_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1108 static int samr_dissect_element_GroupInfo_all2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1109 static int samr_dissect_element_RidTypeArray_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1110 static int samr_dissect_element_RidTypeArray_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1111 static int samr_dissect_element_RidTypeArray_rids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1112 static int samr_dissect_element_RidTypeArray_rids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1113 static int samr_dissect_element_RidTypeArray_types(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1114 static int samr_dissect_element_RidTypeArray_types_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1115 static int samr_dissect_element_RidTypeArray_types__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1116 static int samr_dissect_element_AliasInfoAll_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1117 static int samr_dissect_element_AliasInfoAll_num_members(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1118 static int samr_dissect_element_AliasInfoAll_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1119 const value_string samr_samr_AliasInfoEnum_vals[] = {
1120 { ALIASINFOALL, "ALIASINFOALL" },
1121 { ALIASINFONAME, "ALIASINFONAME" },
1122 { ALIASINFODESCRIPTION, "ALIASINFODESCRIPTION" },
1123 { 0, NULL }
1125 static int samr_dissect_element_AliasInfo_all(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1126 static int samr_dissect_element_AliasInfo_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1127 static int samr_dissect_element_AliasInfo_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1128 const value_string samr_samr_UserInfoLevel_vals[] = {
1129 { UserGeneralInformation, "UserGeneralInformation" },
1130 { UserPreferencesInformation, "UserPreferencesInformation" },
1131 { UserLogonInformation, "UserLogonInformation" },
1132 { UserLogonHoursInformation, "UserLogonHoursInformation" },
1133 { UserAccountInformation, "UserAccountInformation" },
1134 { UserNameInformation, "UserNameInformation" },
1135 { UserAccountNameInformation, "UserAccountNameInformation" },
1136 { UserFullNameInformation, "UserFullNameInformation" },
1137 { UserPrimaryGroupInformation, "UserPrimaryGroupInformation" },
1138 { UserHomeInformation, "UserHomeInformation" },
1139 { UserScriptInformation, "UserScriptInformation" },
1140 { UserProfileInformation, "UserProfileInformation" },
1141 { UserAdminCommentInformation, "UserAdminCommentInformation" },
1142 { UserWorkStationsInformation, "UserWorkStationsInformation" },
1143 { UserControlInformation, "UserControlInformation" },
1144 { UserExpiresInformation, "UserExpiresInformation" },
1145 { UserInternal1Information, "UserInternal1Information" },
1146 { UserParametersInformation, "UserParametersInformation" },
1147 { UserAllInformation, "UserAllInformation" },
1148 { UserInternal4Information, "UserInternal4Information" },
1149 { UserInternal5Information, "UserInternal5Information" },
1150 { UserInternal4InformationNew, "UserInternal4InformationNew" },
1151 { UserInternal5InformationNew, "UserInternal5InformationNew" },
1152 { UserInternal7InformationNew, "UserInternal7InformationNew" },
1153 { UserInternal8InformationNew, "UserInternal8InformationNew" },
1154 { 0, NULL }
1156 static int samr_dissect_element_UserInfo1_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1157 static int samr_dissect_element_UserInfo1_full_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1158 static int samr_dissect_element_UserInfo1_primary_gid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1159 static int samr_dissect_element_UserInfo1_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1160 static int samr_dissect_element_UserInfo1_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1161 static int samr_dissect_element_UserInfo2_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1162 static int samr_dissect_element_UserInfo2_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1163 static int samr_dissect_element_UserInfo2_country_code(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1164 static int samr_dissect_element_UserInfo2_code_page(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1165 static int samr_dissect_element_LogonHours_units_per_week(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1166 static int samr_dissect_element_LogonHours_bits(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1167 static int samr_dissect_element_LogonHours_bits_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1168 static int samr_dissect_element_LogonHours_bits__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1169 static int samr_dissect_element_UserInfo3_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1170 static int samr_dissect_element_UserInfo3_full_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1171 static int samr_dissect_element_UserInfo3_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1172 static int samr_dissect_element_UserInfo3_primary_gid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1173 static int samr_dissect_element_UserInfo3_home_directory(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1174 static int samr_dissect_element_UserInfo3_home_drive(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1175 static int samr_dissect_element_UserInfo3_logon_script(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1176 static int samr_dissect_element_UserInfo3_profile_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1177 static int samr_dissect_element_UserInfo3_workstations(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1178 static int samr_dissect_element_UserInfo3_last_logon(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1179 static int samr_dissect_element_UserInfo3_last_logoff(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1180 static int samr_dissect_element_UserInfo3_last_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1181 static int samr_dissect_element_UserInfo3_allow_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1182 static int samr_dissect_element_UserInfo3_force_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1183 static int samr_dissect_element_UserInfo3_logon_hours(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1184 static int samr_dissect_element_UserInfo3_bad_password_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1185 static int samr_dissect_element_UserInfo3_logon_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1186 static int samr_dissect_element_UserInfo3_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1187 static int samr_dissect_element_UserInfo4_logon_hours(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1188 static int samr_dissect_element_UserInfo5_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1189 static int samr_dissect_element_UserInfo5_full_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1190 static int samr_dissect_element_UserInfo5_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1191 static int samr_dissect_element_UserInfo5_primary_gid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1192 static int samr_dissect_element_UserInfo5_home_directory(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1193 static int samr_dissect_element_UserInfo5_home_drive(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1194 static int samr_dissect_element_UserInfo5_logon_script(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1195 static int samr_dissect_element_UserInfo5_profile_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1196 static int samr_dissect_element_UserInfo5_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1197 static int samr_dissect_element_UserInfo5_workstations(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1198 static int samr_dissect_element_UserInfo5_last_logon(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1199 static int samr_dissect_element_UserInfo5_last_logoff(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1200 static int samr_dissect_element_UserInfo5_logon_hours(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1201 static int samr_dissect_element_UserInfo5_bad_password_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1202 static int samr_dissect_element_UserInfo5_logon_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1203 static int samr_dissect_element_UserInfo5_last_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1204 static int samr_dissect_element_UserInfo5_acct_expiry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1205 static int samr_dissect_element_UserInfo5_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1206 static int samr_dissect_element_UserInfo6_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1207 static int samr_dissect_element_UserInfo6_full_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1208 static int samr_dissect_element_UserInfo7_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1209 static int samr_dissect_element_UserInfo8_full_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1210 static int samr_dissect_element_UserInfo9_primary_gid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1211 static int samr_dissect_element_UserInfo10_home_directory(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1212 static int samr_dissect_element_UserInfo10_home_drive(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1213 static int samr_dissect_element_UserInfo11_logon_script(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1214 static int samr_dissect_element_UserInfo12_profile_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1215 static int samr_dissect_element_UserInfo13_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1216 static int samr_dissect_element_UserInfo14_workstations(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1217 static int samr_dissect_element_UserInfo16_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1218 static int samr_dissect_element_UserInfo17_acct_expiry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1219 static int samr_dissect_element_Password_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1220 static int samr_dissect_element_Password_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1221 static int samr_dissect_element_UserInfo18_nt_pwd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1222 static int samr_dissect_element_UserInfo18_lm_pwd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1223 static int samr_dissect_element_UserInfo18_nt_pwd_active(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1224 static int samr_dissect_element_UserInfo18_lm_pwd_active(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1225 static int samr_dissect_element_UserInfo18_password_expired(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1226 static int samr_dissect_element_UserInfo20_parameters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1227 static const true_false_string samr_FieldsPresent_SAMR_FIELD_ACCOUNT_NAME_tfs = {
1228 "SAMR_FIELD_ACCOUNT_NAME is SET",
1229 "SAMR_FIELD_ACCOUNT_NAME is NOT SET",
1231 static const true_false_string samr_FieldsPresent_SAMR_FIELD_FULL_NAME_tfs = {
1232 "SAMR_FIELD_FULL_NAME is SET",
1233 "SAMR_FIELD_FULL_NAME is NOT SET",
1235 static const true_false_string samr_FieldsPresent_SAMR_FIELD_RID_tfs = {
1236 "SAMR_FIELD_RID is SET",
1237 "SAMR_FIELD_RID is NOT SET",
1239 static const true_false_string samr_FieldsPresent_SAMR_FIELD_PRIMARY_GID_tfs = {
1240 "SAMR_FIELD_PRIMARY_GID is SET",
1241 "SAMR_FIELD_PRIMARY_GID is NOT SET",
1243 static const true_false_string samr_FieldsPresent_SAMR_FIELD_DESCRIPTION_tfs = {
1244 "SAMR_FIELD_DESCRIPTION is SET",
1245 "SAMR_FIELD_DESCRIPTION is NOT SET",
1247 static const true_false_string samr_FieldsPresent_SAMR_FIELD_COMMENT_tfs = {
1248 "SAMR_FIELD_COMMENT is SET",
1249 "SAMR_FIELD_COMMENT is NOT SET",
1251 static const true_false_string samr_FieldsPresent_SAMR_FIELD_HOME_DIRECTORY_tfs = {
1252 "SAMR_FIELD_HOME_DIRECTORY is SET",
1253 "SAMR_FIELD_HOME_DIRECTORY is NOT SET",
1255 static const true_false_string samr_FieldsPresent_SAMR_FIELD_HOME_DRIVE_tfs = {
1256 "SAMR_FIELD_HOME_DRIVE is SET",
1257 "SAMR_FIELD_HOME_DRIVE is NOT SET",
1259 static const true_false_string samr_FieldsPresent_SAMR_FIELD_LOGON_SCRIPT_tfs = {
1260 "SAMR_FIELD_LOGON_SCRIPT is SET",
1261 "SAMR_FIELD_LOGON_SCRIPT is NOT SET",
1263 static const true_false_string samr_FieldsPresent_SAMR_FIELD_PROFILE_PATH_tfs = {
1264 "SAMR_FIELD_PROFILE_PATH is SET",
1265 "SAMR_FIELD_PROFILE_PATH is NOT SET",
1267 static const true_false_string samr_FieldsPresent_SAMR_FIELD_WORKSTATIONS_tfs = {
1268 "SAMR_FIELD_WORKSTATIONS is SET",
1269 "SAMR_FIELD_WORKSTATIONS is NOT SET",
1271 static const true_false_string samr_FieldsPresent_SAMR_FIELD_LAST_LOGON_tfs = {
1272 "SAMR_FIELD_LAST_LOGON is SET",
1273 "SAMR_FIELD_LAST_LOGON is NOT SET",
1275 static const true_false_string samr_FieldsPresent_SAMR_FIELD_LAST_LOGOFF_tfs = {
1276 "SAMR_FIELD_LAST_LOGOFF is SET",
1277 "SAMR_FIELD_LAST_LOGOFF is NOT SET",
1279 static const true_false_string samr_FieldsPresent_SAMR_FIELD_LOGON_HOURS_tfs = {
1280 "SAMR_FIELD_LOGON_HOURS is SET",
1281 "SAMR_FIELD_LOGON_HOURS is NOT SET",
1283 static const true_false_string samr_FieldsPresent_SAMR_FIELD_BAD_PWD_COUNT_tfs = {
1284 "SAMR_FIELD_BAD_PWD_COUNT is SET",
1285 "SAMR_FIELD_BAD_PWD_COUNT is NOT SET",
1287 static const true_false_string samr_FieldsPresent_SAMR_FIELD_NUM_LOGONS_tfs = {
1288 "SAMR_FIELD_NUM_LOGONS is SET",
1289 "SAMR_FIELD_NUM_LOGONS is NOT SET",
1291 static const true_false_string samr_FieldsPresent_SAMR_FIELD_ALLOW_PWD_CHANGE_tfs = {
1292 "SAMR_FIELD_ALLOW_PWD_CHANGE is SET",
1293 "SAMR_FIELD_ALLOW_PWD_CHANGE is NOT SET",
1295 static const true_false_string samr_FieldsPresent_SAMR_FIELD_FORCE_PWD_CHANGE_tfs = {
1296 "SAMR_FIELD_FORCE_PWD_CHANGE is SET",
1297 "SAMR_FIELD_FORCE_PWD_CHANGE is NOT SET",
1299 static const true_false_string samr_FieldsPresent_SAMR_FIELD_LAST_PWD_CHANGE_tfs = {
1300 "SAMR_FIELD_LAST_PWD_CHANGE is SET",
1301 "SAMR_FIELD_LAST_PWD_CHANGE is NOT SET",
1303 static const true_false_string samr_FieldsPresent_SAMR_FIELD_ACCT_EXPIRY_tfs = {
1304 "SAMR_FIELD_ACCT_EXPIRY is SET",
1305 "SAMR_FIELD_ACCT_EXPIRY is NOT SET",
1307 static const true_false_string samr_FieldsPresent_SAMR_FIELD_ACCT_FLAGS_tfs = {
1308 "SAMR_FIELD_ACCT_FLAGS is SET",
1309 "SAMR_FIELD_ACCT_FLAGS is NOT SET",
1311 static const true_false_string samr_FieldsPresent_SAMR_FIELD_PARAMETERS_tfs = {
1312 "SAMR_FIELD_PARAMETERS is SET",
1313 "SAMR_FIELD_PARAMETERS is NOT SET",
1315 static const true_false_string samr_FieldsPresent_SAMR_FIELD_COUNTRY_CODE_tfs = {
1316 "SAMR_FIELD_COUNTRY_CODE is SET",
1317 "SAMR_FIELD_COUNTRY_CODE is NOT SET",
1319 static const true_false_string samr_FieldsPresent_SAMR_FIELD_CODE_PAGE_tfs = {
1320 "SAMR_FIELD_CODE_PAGE is SET",
1321 "SAMR_FIELD_CODE_PAGE is NOT SET",
1323 static const true_false_string samr_FieldsPresent_SAMR_FIELD_NT_PASSWORD_PRESENT_tfs = {
1324 "SAMR_FIELD_NT_PASSWORD_PRESENT is SET",
1325 "SAMR_FIELD_NT_PASSWORD_PRESENT is NOT SET",
1327 static const true_false_string samr_FieldsPresent_SAMR_FIELD_LM_PASSWORD_PRESENT_tfs = {
1328 "SAMR_FIELD_LM_PASSWORD_PRESENT is SET",
1329 "SAMR_FIELD_LM_PASSWORD_PRESENT is NOT SET",
1331 static const true_false_string samr_FieldsPresent_SAMR_FIELD_PRIVATE_DATA_tfs = {
1332 "SAMR_FIELD_PRIVATE_DATA is SET",
1333 "SAMR_FIELD_PRIVATE_DATA is NOT SET",
1335 static const true_false_string samr_FieldsPresent_SAMR_FIELD_EXPIRED_FLAG_tfs = {
1336 "SAMR_FIELD_EXPIRED_FLAG is SET",
1337 "SAMR_FIELD_EXPIRED_FLAG is NOT SET",
1339 static const true_false_string samr_FieldsPresent_SAMR_FIELD_SEC_DESC_tfs = {
1340 "SAMR_FIELD_SEC_DESC is SET",
1341 "SAMR_FIELD_SEC_DESC is NOT SET",
1343 static const true_false_string samr_FieldsPresent_SAMR_FIELD_OWF_PWD_tfs = {
1344 "SAMR_FIELD_OWF_PWD is SET",
1345 "SAMR_FIELD_OWF_PWD is NOT SET",
1347 static int samr_dissect_element_UserInfo21_last_logon(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1348 static int samr_dissect_element_UserInfo21_last_logoff(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1349 static int samr_dissect_element_UserInfo21_last_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1350 static int samr_dissect_element_UserInfo21_acct_expiry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1351 static int samr_dissect_element_UserInfo21_allow_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1352 static int samr_dissect_element_UserInfo21_force_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1353 static int samr_dissect_element_UserInfo21_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1354 static int samr_dissect_element_UserInfo21_full_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1355 static int samr_dissect_element_UserInfo21_home_directory(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1356 static int samr_dissect_element_UserInfo21_home_drive(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1357 static int samr_dissect_element_UserInfo21_logon_script(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1358 static int samr_dissect_element_UserInfo21_profile_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1359 static int samr_dissect_element_UserInfo21_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1360 static int samr_dissect_element_UserInfo21_workstations(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1361 static int samr_dissect_element_UserInfo21_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1362 static int samr_dissect_element_UserInfo21_parameters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1363 static int samr_dissect_element_UserInfo21_lm_owf_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1364 static int samr_dissect_element_UserInfo21_nt_owf_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1365 static int samr_dissect_element_UserInfo21_private_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1366 static int samr_dissect_element_UserInfo21_buf_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1367 static int samr_dissect_element_UserInfo21_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1368 static int samr_dissect_element_UserInfo21_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1369 static int samr_dissect_element_UserInfo21_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1370 static int samr_dissect_element_UserInfo21_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1371 static int samr_dissect_element_UserInfo21_primary_gid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1372 static int samr_dissect_element_UserInfo21_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1373 static int samr_dissect_element_UserInfo21_fields_present(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1374 static int samr_dissect_element_UserInfo21_logon_hours(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1375 static int samr_dissect_element_UserInfo21_bad_password_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1376 static int samr_dissect_element_UserInfo21_logon_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1377 static int samr_dissect_element_UserInfo21_country_code(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1378 static int samr_dissect_element_UserInfo21_code_page(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1379 static int samr_dissect_element_UserInfo21_lm_password_set(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1380 static int samr_dissect_element_UserInfo21_nt_password_set(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1381 static int samr_dissect_element_UserInfo21_password_expired(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1382 static int samr_dissect_element_UserInfo21_private_data_sensitive(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1383 static int samr_dissect_element_CryptPassword_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1384 static int samr_dissect_element_CryptPassword_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1385 static int samr_dissect_element_UserInfo23_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1386 static int samr_dissect_element_UserInfo23_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1387 static int samr_dissect_element_UserInfo24_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1388 static int samr_dissect_element_UserInfo24_password_expired(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1389 static int samr_dissect_element_CryptPasswordEx_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1390 static int samr_dissect_element_CryptPasswordEx_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1391 static int samr_dissect_element_UserInfo25_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1392 static int samr_dissect_element_UserInfo25_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1393 static int samr_dissect_element_UserInfo26_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1394 static int samr_dissect_element_UserInfo26_password_expired(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1395 static int samr_dissect_element_EncryptedPasswordAES_auth_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1396 static int samr_dissect_element_EncryptedPasswordAES_auth_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1397 static int samr_dissect_element_EncryptedPasswordAES_salt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1398 static int samr_dissect_element_EncryptedPasswordAES_salt_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1399 static int samr_dissect_element_EncryptedPasswordAES_cipher_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1400 static int samr_dissect_element_EncryptedPasswordAES_cipher(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1401 static int samr_dissect_element_EncryptedPasswordAES_cipher_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1402 static int samr_dissect_element_EncryptedPasswordAES_cipher__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1403 static int samr_dissect_element_EncryptedPasswordAES_PBKDF2Iterations(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1404 static int samr_dissect_element_UserInfo31_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1405 static int samr_dissect_element_UserInfo31_password_expired(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1406 static int samr_dissect_element_UserInfo32_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1407 static int samr_dissect_element_UserInfo32_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1408 static int samr_dissect_element_UserInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1409 static int samr_dissect_element_UserInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1410 static int samr_dissect_element_UserInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1411 static int samr_dissect_element_UserInfo_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1412 static int samr_dissect_element_UserInfo_info5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1413 static int samr_dissect_element_UserInfo_info6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1414 static int samr_dissect_element_UserInfo_info7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1415 static int samr_dissect_element_UserInfo_info8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1416 static int samr_dissect_element_UserInfo_info9(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1417 static int samr_dissect_element_UserInfo_info10(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1418 static int samr_dissect_element_UserInfo_info11(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1419 static int samr_dissect_element_UserInfo_info12(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1420 static int samr_dissect_element_UserInfo_info13(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1421 static int samr_dissect_element_UserInfo_info14(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1422 static int samr_dissect_element_UserInfo_info16(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1423 static int samr_dissect_element_UserInfo_info17(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1424 static int samr_dissect_element_UserInfo_info18(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1425 static int samr_dissect_element_UserInfo_info20(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1426 static int samr_dissect_element_UserInfo_info21(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1427 static int samr_dissect_element_UserInfo_info23(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1428 static int samr_dissect_element_UserInfo_info24(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1429 static int samr_dissect_element_UserInfo_info25(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1430 static int samr_dissect_element_UserInfo_info26(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1431 static int samr_dissect_element_UserInfo_info31(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1432 static int samr_dissect_element_UserInfo_info32(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1433 static int samr_dissect_element_RidWithAttribute_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1434 static int samr_dissect_element_RidWithAttribute_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1435 static int samr_dissect_element_RidWithAttributeArray_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1436 static int samr_dissect_element_RidWithAttributeArray_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1437 static int samr_dissect_element_RidWithAttributeArray_rids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1438 static int samr_dissect_element_RidWithAttributeArray_rids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1439 static int samr_dissect_element_DispEntryGeneral_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1440 static int samr_dissect_element_DispEntryGeneral_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1441 static int samr_dissect_element_DispEntryGeneral_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1442 static int samr_dissect_element_DispEntryGeneral_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1443 static int samr_dissect_element_DispEntryGeneral_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1444 static int samr_dissect_element_DispEntryGeneral_full_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1445 static int samr_dissect_element_DispInfoGeneral_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1446 static int samr_dissect_element_DispInfoGeneral_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1447 static int samr_dissect_element_DispInfoGeneral_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1448 static int samr_dissect_element_DispInfoGeneral_entries__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1449 static int samr_dissect_element_DispEntryFull_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1450 static int samr_dissect_element_DispEntryFull_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1451 static int samr_dissect_element_DispEntryFull_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1452 static int samr_dissect_element_DispEntryFull_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1453 static int samr_dissect_element_DispEntryFull_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1454 static int samr_dissect_element_DispInfoFull_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1455 static int samr_dissect_element_DispInfoFull_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1456 static int samr_dissect_element_DispInfoFull_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1457 static int samr_dissect_element_DispInfoFull_entries__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1458 static int samr_dissect_element_DispEntryFullGroup_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1459 static int samr_dissect_element_DispEntryFullGroup_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1460 static int samr_dissect_element_DispEntryFullGroup_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1461 static int samr_dissect_element_DispEntryFullGroup_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1462 static int samr_dissect_element_DispEntryFullGroup_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1463 static int samr_dissect_element_DispInfoFullGroups_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1464 static int samr_dissect_element_DispInfoFullGroups_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1465 static int samr_dissect_element_DispInfoFullGroups_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1466 static int samr_dissect_element_DispInfoFullGroups_entries__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1467 static int samr_dissect_element_DispEntryAscii_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1468 static int samr_dissect_element_DispEntryAscii_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1469 static int samr_dissect_element_DispInfoAscii_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1470 static int samr_dissect_element_DispInfoAscii_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1471 static int samr_dissect_element_DispInfoAscii_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1472 static int samr_dissect_element_DispInfoAscii_entries__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1473 const value_string samr_samr_DomainDisplayInformation_vals[] = {
1474 { SAMR_DOMAIN_DISPLAY_USER, "SAMR_DOMAIN_DISPLAY_USER" },
1475 { SAMR_DOMAIN_DISPLAY_MACHINE, "SAMR_DOMAIN_DISPLAY_MACHINE" },
1476 { SAMR_DOMAIN_DISPLAY_GROUP, "SAMR_DOMAIN_DISPLAY_GROUP" },
1477 { SAMR_DOMAIN_DISPLAY_OEM_USER, "SAMR_DOMAIN_DISPLAY_OEM_USER" },
1478 { SAMR_DOMAIN_DISPLAY_OEM_GROUP, "SAMR_DOMAIN_DISPLAY_OEM_GROUP" },
1479 { 0, NULL }
1481 static int samr_dissect_element_DispInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1482 static int samr_dissect_element_DispInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1483 static int samr_dissect_element_DispInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1484 static int samr_dissect_element_DispInfo_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1485 static int samr_dissect_element_DispInfo_info5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1486 static int samr_dissect_element_PwInfo_min_password_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1487 static int samr_dissect_element_PwInfo_password_properties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1488 const value_string samr_samr_ConnectVersion_vals[] = {
1489 { SAMR_CONNECT_PRE_W2K, "SAMR_CONNECT_PRE_W2K" },
1490 { SAMR_CONNECT_W2K, "SAMR_CONNECT_W2K" },
1491 { SAMR_CONNECT_AFTER_W2K, "SAMR_CONNECT_AFTER_W2K" },
1492 { 0, NULL }
1494 const value_string samr_samPwdChangeReason_vals[] = {
1495 { SAM_PWD_CHANGE_NO_ERROR, "SAM_PWD_CHANGE_NO_ERROR" },
1496 { SAM_PWD_CHANGE_PASSWORD_TOO_SHORT, "SAM_PWD_CHANGE_PASSWORD_TOO_SHORT" },
1497 { SAM_PWD_CHANGE_PWD_IN_HISTORY, "SAM_PWD_CHANGE_PWD_IN_HISTORY" },
1498 { SAM_PWD_CHANGE_USERNAME_IN_PASSWORD, "SAM_PWD_CHANGE_USERNAME_IN_PASSWORD" },
1499 { SAM_PWD_CHANGE_FULLNAME_IN_PASSWORD, "SAM_PWD_CHANGE_FULLNAME_IN_PASSWORD" },
1500 { SAM_PWD_CHANGE_NOT_COMPLEX, "SAM_PWD_CHANGE_NOT_COMPLEX" },
1501 { SAM_PWD_CHANGE_MACHINE_NOT_DEFAULT, "SAM_PWD_CHANGE_MACHINE_NOT_DEFAULT" },
1502 { SAM_PWD_CHANGE_FAILED_BY_FILTER, "SAM_PWD_CHANGE_FAILED_BY_FILTER" },
1503 { SAM_PWD_CHANGE_PASSWORD_TOO_LONG, "SAM_PWD_CHANGE_PASSWORD_TOO_LONG" },
1504 { 0, NULL }
1506 static int samr_dissect_element_userPwdChangeFailureInformation_extendedFailureReason(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1507 static int samr_dissect_element_userPwdChangeFailureInformation_filterModuleName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1508 const value_string samr_samr_SupportedFeatures_vals[] = {
1509 { SAMR_CONNECT_FEATURE_RID_ONLY, "SAMR_CONNECT_FEATURE_RID_ONLY" },
1510 { SAMR_CONNECT_FEATURE_RESRVED1, "SAMR_CONNECT_FEATURE_RESRVED1" },
1511 { SAMR_CONNECT_FEATURE_RESRVED2, "SAMR_CONNECT_FEATURE_RESRVED2" },
1512 { SAMR_CONNECT_FEATURE_USE_AES, "SAMR_CONNECT_FEATURE_USE_AES" },
1513 { 0, NULL }
1515 static int samr_dissect_element_ConnectInfo1_client_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1516 static int samr_dissect_element_ConnectInfo1_supported_features(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1517 static int samr_dissect_element_ConnectInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1518 static const true_false_string samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_LAST_SET_tfs = {
1519 "SAMR_VALIDATE_FIELD_PASSWORD_LAST_SET is SET",
1520 "SAMR_VALIDATE_FIELD_PASSWORD_LAST_SET is NOT SET",
1522 static const true_false_string samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_BAD_PASSWORD_TIME_tfs = {
1523 "SAMR_VALIDATE_FIELD_BAD_PASSWORD_TIME is SET",
1524 "SAMR_VALIDATE_FIELD_BAD_PASSWORD_TIME is NOT SET",
1526 static const true_false_string samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_LOCKOUT_TIME_tfs = {
1527 "SAMR_VALIDATE_FIELD_LOCKOUT_TIME is SET",
1528 "SAMR_VALIDATE_FIELD_LOCKOUT_TIME is NOT SET",
1530 static const true_false_string samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_BAD_PASSWORD_COUNT_tfs = {
1531 "SAMR_VALIDATE_FIELD_BAD_PASSWORD_COUNT is SET",
1532 "SAMR_VALIDATE_FIELD_BAD_PASSWORD_COUNT is NOT SET",
1534 static const true_false_string samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_LENGTH_tfs = {
1535 "SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_LENGTH is SET",
1536 "SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_LENGTH is NOT SET",
1538 static const true_false_string samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_tfs = {
1539 "SAMR_VALIDATE_FIELD_PASSWORD_HISTORY is SET",
1540 "SAMR_VALIDATE_FIELD_PASSWORD_HISTORY is NOT SET",
1542 const value_string samr_samr_ValidatePasswordLevel_vals[] = {
1543 { NetValidateAuthentication, "NetValidateAuthentication" },
1544 { NetValidatePasswordChange, "NetValidatePasswordChange" },
1545 { NetValidatePasswordReset, "NetValidatePasswordReset" },
1546 { 0, NULL }
1548 const value_string samr_samr_ValidationStatus_vals[] = {
1549 { SAMR_VALIDATION_STATUS_SUCCESS, "SAMR_VALIDATION_STATUS_SUCCESS" },
1550 { SAMR_VALIDATION_STATUS_PASSWORD_MUST_CHANGE, "SAMR_VALIDATION_STATUS_PASSWORD_MUST_CHANGE" },
1551 { SAMR_VALIDATION_STATUS_ACCOUNT_LOCKED_OUT, "SAMR_VALIDATION_STATUS_ACCOUNT_LOCKED_OUT" },
1552 { SAMR_VALIDATION_STATUS_PASSWORD_EXPIRED, "SAMR_VALIDATION_STATUS_PASSWORD_EXPIRED" },
1553 { SAMR_VALIDATION_STATUS_BAD_PASSWORD, "SAMR_VALIDATION_STATUS_BAD_PASSWORD" },
1554 { SAMR_VALIDATION_STATUS_PWD_HISTORY_CONFLICT, "SAMR_VALIDATION_STATUS_PWD_HISTORY_CONFLICT" },
1555 { SAMR_VALIDATION_STATUS_PWD_TOO_SHORT, "SAMR_VALIDATION_STATUS_PWD_TOO_SHORT" },
1556 { SAMR_VALIDATION_STATUS_PWD_TOO_LONG, "SAMR_VALIDATION_STATUS_PWD_TOO_LONG" },
1557 { SAMR_VALIDATION_STATUS_NOT_COMPLEX_ENOUGH, "SAMR_VALIDATION_STATUS_NOT_COMPLEX_ENOUGH" },
1558 { SAMR_VALIDATION_STATUS_PASSWORD_TOO_RECENT, "SAMR_VALIDATION_STATUS_PASSWORD_TOO_RECENT" },
1559 { SAMR_VALIDATION_STATUS_PASSWORD_FILTER_ERROR, "SAMR_VALIDATION_STATUS_PASSWORD_FILTER_ERROR" },
1560 { 0, NULL }
1562 static int samr_dissect_element_ValidationBlob_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1563 static int samr_dissect_element_ValidationBlob_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1564 static int samr_dissect_element_ValidationBlob_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1565 static int samr_dissect_element_ValidationBlob_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1566 static int samr_dissect_element_ValidatePasswordInfo_fields_present(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1567 static int samr_dissect_element_ValidatePasswordInfo_last_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1568 static int samr_dissect_element_ValidatePasswordInfo_bad_password_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1569 static int samr_dissect_element_ValidatePasswordInfo_lockout_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1570 static int samr_dissect_element_ValidatePasswordInfo_bad_pwd_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1571 static int samr_dissect_element_ValidatePasswordInfo_pwd_history_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1572 static int samr_dissect_element_ValidatePasswordInfo_pwd_history(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1573 static int samr_dissect_element_ValidatePasswordInfo_pwd_history_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1574 static int samr_dissect_element_ValidatePasswordInfo_pwd_history__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1575 static int samr_dissect_element_ValidatePasswordRepCtr_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1576 static int samr_dissect_element_ValidatePasswordRepCtr_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1577 static int samr_dissect_element_ValidatePasswordRep_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1578 static int samr_dissect_element_ValidatePasswordRep_ctr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1579 static int samr_dissect_element_ValidatePasswordRep_ctr3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1580 static int samr_dissect_element_ValidatePasswordReq3_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1581 static int samr_dissect_element_ValidatePasswordReq3_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1582 static int samr_dissect_element_ValidatePasswordReq3_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1583 static int samr_dissect_element_ValidatePasswordReq3_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1584 static int samr_dissect_element_ValidatePasswordReq3_pwd_must_change_at_next_logon(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1585 static int samr_dissect_element_ValidatePasswordReq3_clear_lockout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1586 static int samr_dissect_element_ValidatePasswordReq2_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1587 static int samr_dissect_element_ValidatePasswordReq2_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1588 static int samr_dissect_element_ValidatePasswordReq2_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1589 static int samr_dissect_element_ValidatePasswordReq2_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1590 static int samr_dissect_element_ValidatePasswordReq2_password_matched(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1591 static int samr_dissect_element_ValidatePasswordReq1_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1592 static int samr_dissect_element_ValidatePasswordReq1_password_matched(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1593 static int samr_dissect_element_ValidatePasswordReq_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1594 static int samr_dissect_element_ValidatePasswordReq_req2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1595 static int samr_dissect_element_ValidatePasswordReq_req3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1596 static int samr_dissect_element_Connect_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1597 static int samr_dissect_element_Connect_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1598 static int samr_dissect_element_Connect_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1599 static int samr_dissect_element_Connect_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1600 static int samr_dissect_element_Connect_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1601 static int samr_dissect_element_Close_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1602 static int samr_dissect_element_Close_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1603 static int samr_dissect_element_SetSecurity_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1604 static int samr_dissect_element_SetSecurity_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1605 static int samr_dissect_element_SetSecurity_sec_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1606 static int samr_dissect_element_SetSecurity_sdbuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1607 static int samr_dissect_element_SetSecurity_sdbuf_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1608 static int samr_dissect_element_QuerySecurity_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1609 static int samr_dissect_element_QuerySecurity_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1610 static int samr_dissect_element_QuerySecurity_sec_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1611 static int samr_dissect_element_QuerySecurity_sdbuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1612 static int samr_dissect_element_QuerySecurity_sdbuf_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1613 static int samr_dissect_element_QuerySecurity_sdbuf__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1614 static int samr_dissect_element_Shutdown_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1615 static int samr_dissect_element_Shutdown_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1616 static int samr_dissect_element_LookupDomain_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1617 static int samr_dissect_element_LookupDomain_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1618 static int samr_dissect_element_LookupDomain_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1619 static int samr_dissect_element_LookupDomain_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1620 static int samr_dissect_element_LookupDomain_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1621 static int samr_dissect_element_LookupDomain_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1622 static int samr_dissect_element_LookupDomain_sid__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1623 static int samr_dissect_element_EnumDomains_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1624 static int samr_dissect_element_EnumDomains_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1625 static int samr_dissect_element_EnumDomains_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1626 static int samr_dissect_element_EnumDomains_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1627 static int samr_dissect_element_EnumDomains_sam(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1628 static int samr_dissect_element_EnumDomains_sam_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1629 static int samr_dissect_element_EnumDomains_sam__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1630 static int samr_dissect_element_EnumDomains_buf_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1631 static int samr_dissect_element_EnumDomains_num_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1632 static int samr_dissect_element_EnumDomains_num_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1633 static int samr_dissect_element_OpenDomain_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1634 static int samr_dissect_element_OpenDomain_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1635 static int samr_dissect_element_OpenDomain_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1636 static int samr_dissect_element_OpenDomain_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1637 static int samr_dissect_element_OpenDomain_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1638 static int samr_dissect_element_OpenDomain_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1639 static int samr_dissect_element_OpenDomain_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1640 static int samr_dissect_element_QueryDomainInfo_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1641 static int samr_dissect_element_QueryDomainInfo_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1642 static int samr_dissect_element_QueryDomainInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1643 static int samr_dissect_element_QueryDomainInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1644 static int samr_dissect_element_QueryDomainInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1645 static int samr_dissect_element_QueryDomainInfo_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1646 static int samr_dissect_element_SetDomainInfo_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1647 static int samr_dissect_element_SetDomainInfo_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1648 static int samr_dissect_element_SetDomainInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1649 static int samr_dissect_element_SetDomainInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1650 static int samr_dissect_element_SetDomainInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1651 static int samr_dissect_element_CreateDomainGroup_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1652 static int samr_dissect_element_CreateDomainGroup_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1653 static int samr_dissect_element_CreateDomainGroup_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1654 static int samr_dissect_element_CreateDomainGroup_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1655 static int samr_dissect_element_CreateDomainGroup_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1656 static int samr_dissect_element_CreateDomainGroup_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1657 static int samr_dissect_element_CreateDomainGroup_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1658 static int samr_dissect_element_CreateDomainGroup_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1659 static int samr_dissect_element_CreateDomainGroup_rid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1660 static int samr_dissect_element_EnumDomainGroups_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1661 static int samr_dissect_element_EnumDomainGroups_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1662 static int samr_dissect_element_EnumDomainGroups_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1663 static int samr_dissect_element_EnumDomainGroups_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1664 static int samr_dissect_element_EnumDomainGroups_sam(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1665 static int samr_dissect_element_EnumDomainGroups_sam_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1666 static int samr_dissect_element_EnumDomainGroups_sam__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1667 static int samr_dissect_element_EnumDomainGroups_max_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1668 static int samr_dissect_element_EnumDomainGroups_num_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1669 static int samr_dissect_element_EnumDomainGroups_num_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1670 static int samr_dissect_element_CreateUser_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1671 static int samr_dissect_element_CreateUser_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1672 static int samr_dissect_element_CreateUser_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1673 static int samr_dissect_element_CreateUser_account_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1674 static int samr_dissect_element_CreateUser_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1675 static int samr_dissect_element_CreateUser_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1676 static int samr_dissect_element_CreateUser_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1677 static int samr_dissect_element_CreateUser_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1678 static int samr_dissect_element_CreateUser_rid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1679 static int samr_dissect_element_EnumDomainUsers_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1680 static int samr_dissect_element_EnumDomainUsers_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1681 static int samr_dissect_element_EnumDomainUsers_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1682 static int samr_dissect_element_EnumDomainUsers_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1683 static int samr_dissect_element_EnumDomainUsers_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1684 static int samr_dissect_element_EnumDomainUsers_sam(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1685 static int samr_dissect_element_EnumDomainUsers_sam_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1686 static int samr_dissect_element_EnumDomainUsers_sam__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1687 static int samr_dissect_element_EnumDomainUsers_max_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1688 static int samr_dissect_element_EnumDomainUsers_num_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1689 static int samr_dissect_element_EnumDomainUsers_num_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1690 static int samr_dissect_element_CreateDomAlias_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1691 static int samr_dissect_element_CreateDomAlias_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1692 static int samr_dissect_element_CreateDomAlias_alias_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1693 static int samr_dissect_element_CreateDomAlias_alias_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1694 static int samr_dissect_element_CreateDomAlias_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1695 static int samr_dissect_element_CreateDomAlias_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1696 static int samr_dissect_element_CreateDomAlias_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1697 static int samr_dissect_element_CreateDomAlias_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1698 static int samr_dissect_element_CreateDomAlias_rid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1699 static int samr_dissect_element_EnumDomainAliases_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1700 static int samr_dissect_element_EnumDomainAliases_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1701 static int samr_dissect_element_EnumDomainAliases_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1702 static int samr_dissect_element_EnumDomainAliases_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1703 static int samr_dissect_element_EnumDomainAliases_sam(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1704 static int samr_dissect_element_EnumDomainAliases_sam_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1705 static int samr_dissect_element_EnumDomainAliases_sam__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1706 static int samr_dissect_element_EnumDomainAliases_max_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1707 static int samr_dissect_element_EnumDomainAliases_num_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1708 static int samr_dissect_element_EnumDomainAliases_num_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1709 static int samr_dissect_element_GetAliasMembership_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1710 static int samr_dissect_element_GetAliasMembership_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1711 static int samr_dissect_element_GetAliasMembership_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1712 static int samr_dissect_element_GetAliasMembership_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1713 static int samr_dissect_element_GetAliasMembership_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1714 static int samr_dissect_element_GetAliasMembership_rids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1715 static int samr_dissect_element_LookupNames_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1716 static int samr_dissect_element_LookupNames_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1717 static int samr_dissect_element_LookupNames_num_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1718 static int samr_dissect_element_LookupNames_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1719 static int samr_dissect_element_LookupNames_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1720 static int samr_dissect_element_LookupNames_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1721 static int samr_dissect_element_LookupNames_rids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1722 static int samr_dissect_element_LookupNames_types(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1723 static int samr_dissect_element_LookupNames_types_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1724 static int samr_dissect_element_LookupRids_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1725 static int samr_dissect_element_LookupRids_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1726 static int samr_dissect_element_LookupRids_num_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1727 static int samr_dissect_element_LookupRids_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1728 static int samr_dissect_element_LookupRids_rids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1729 static int samr_dissect_element_LookupRids_rids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1730 static int samr_dissect_element_LookupRids_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1731 static int samr_dissect_element_LookupRids_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1732 static int samr_dissect_element_LookupRids_types(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1733 static int samr_dissect_element_LookupRids_types_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1734 static int samr_dissect_element_OpenGroup_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1735 static int samr_dissect_element_OpenGroup_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1736 static int samr_dissect_element_OpenGroup_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1737 static int samr_dissect_element_OpenGroup_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1738 static int samr_dissect_element_OpenGroup_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1739 static int samr_dissect_element_OpenGroup_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1740 static int samr_dissect_element_QueryGroupInfo_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1741 static int samr_dissect_element_QueryGroupInfo_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1742 static int samr_dissect_element_QueryGroupInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1743 static int samr_dissect_element_QueryGroupInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1744 static int samr_dissect_element_QueryGroupInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1745 static int samr_dissect_element_QueryGroupInfo_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1746 static int samr_dissect_element_SetGroupInfo_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1747 static int samr_dissect_element_SetGroupInfo_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1748 static int samr_dissect_element_SetGroupInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1749 static int samr_dissect_element_SetGroupInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1750 static int samr_dissect_element_SetGroupInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1751 static int samr_dissect_element_AddGroupMember_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1752 static int samr_dissect_element_AddGroupMember_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1753 static int samr_dissect_element_AddGroupMember_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1754 static int samr_dissect_element_AddGroupMember_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1755 static int samr_dissect_element_DeleteDomainGroup_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1756 static int samr_dissect_element_DeleteDomainGroup_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1757 static int samr_dissect_element_DeleteGroupMember_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1758 static int samr_dissect_element_DeleteGroupMember_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1759 static int samr_dissect_element_DeleteGroupMember_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1760 static int samr_dissect_element_QueryGroupMember_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1761 static int samr_dissect_element_QueryGroupMember_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1762 static int samr_dissect_element_QueryGroupMember_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1763 static int samr_dissect_element_QueryGroupMember_rids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1764 static int samr_dissect_element_QueryGroupMember_rids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1765 static int samr_dissect_element_SetMemberAttributesOfGroup_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1766 static int samr_dissect_element_SetMemberAttributesOfGroup_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1767 static int samr_dissect_element_SetMemberAttributesOfGroup_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1768 static int samr_dissect_element_SetMemberAttributesOfGroup_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1769 static int samr_dissect_element_OpenAlias_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1770 static int samr_dissect_element_OpenAlias_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1771 static int samr_dissect_element_OpenAlias_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1772 static int samr_dissect_element_OpenAlias_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1773 static int samr_dissect_element_OpenAlias_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1774 static int samr_dissect_element_OpenAlias_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1775 static int samr_dissect_element_QueryAliasInfo_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1776 static int samr_dissect_element_QueryAliasInfo_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1777 static int samr_dissect_element_QueryAliasInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1778 static int samr_dissect_element_QueryAliasInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1779 static int samr_dissect_element_QueryAliasInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1780 static int samr_dissect_element_QueryAliasInfo_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1781 static int samr_dissect_element_SetAliasInfo_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1782 static int samr_dissect_element_SetAliasInfo_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1783 static int samr_dissect_element_SetAliasInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1784 static int samr_dissect_element_SetAliasInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1785 static int samr_dissect_element_SetAliasInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1786 static int samr_dissect_element_DeleteDomAlias_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1787 static int samr_dissect_element_DeleteDomAlias_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1788 static int samr_dissect_element_AddAliasMember_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1789 static int samr_dissect_element_AddAliasMember_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1790 static int samr_dissect_element_AddAliasMember_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1791 static int samr_dissect_element_AddAliasMember_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1792 static int samr_dissect_element_DeleteAliasMember_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1793 static int samr_dissect_element_DeleteAliasMember_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1794 static int samr_dissect_element_DeleteAliasMember_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1795 static int samr_dissect_element_DeleteAliasMember_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1796 static int samr_dissect_element_GetMembersInAlias_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1797 static int samr_dissect_element_GetMembersInAlias_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1798 static int samr_dissect_element_GetMembersInAlias_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1799 static int samr_dissect_element_GetMembersInAlias_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1800 static int samr_dissect_element_OpenUser_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1801 static int samr_dissect_element_OpenUser_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1802 static int samr_dissect_element_OpenUser_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1803 static int samr_dissect_element_OpenUser_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1804 static int samr_dissect_element_OpenUser_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1805 static int samr_dissect_element_OpenUser_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1806 static int samr_dissect_element_DeleteUser_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1807 static int samr_dissect_element_DeleteUser_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1808 static int samr_dissect_element_QueryUserInfo_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1809 static int samr_dissect_element_QueryUserInfo_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1810 static int samr_dissect_element_QueryUserInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1811 static int samr_dissect_element_QueryUserInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1812 static int samr_dissect_element_QueryUserInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1813 static int samr_dissect_element_QueryUserInfo_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1814 static int samr_dissect_element_SetUserInfo_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1815 static int samr_dissect_element_SetUserInfo_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1816 static int samr_dissect_element_SetUserInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1817 static int samr_dissect_element_SetUserInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1818 static int samr_dissect_element_SetUserInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1819 static int samr_dissect_element_ChangePasswordUser_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1820 static int samr_dissect_element_ChangePasswordUser_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1821 static int samr_dissect_element_ChangePasswordUser_lm_present(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1822 static int samr_dissect_element_ChangePasswordUser_old_lm_crypted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1823 static int samr_dissect_element_ChangePasswordUser_old_lm_crypted_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1824 static int samr_dissect_element_ChangePasswordUser_new_lm_crypted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1825 static int samr_dissect_element_ChangePasswordUser_new_lm_crypted_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1826 static int samr_dissect_element_ChangePasswordUser_nt_present(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1827 static int samr_dissect_element_ChangePasswordUser_old_nt_crypted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1828 static int samr_dissect_element_ChangePasswordUser_old_nt_crypted_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1829 static int samr_dissect_element_ChangePasswordUser_new_nt_crypted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1830 static int samr_dissect_element_ChangePasswordUser_new_nt_crypted_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1831 static int samr_dissect_element_ChangePasswordUser_cross1_present(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1832 static int samr_dissect_element_ChangePasswordUser_nt_cross(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1833 static int samr_dissect_element_ChangePasswordUser_nt_cross_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1834 static int samr_dissect_element_ChangePasswordUser_cross2_present(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1835 static int samr_dissect_element_ChangePasswordUser_lm_cross(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1836 static int samr_dissect_element_ChangePasswordUser_lm_cross_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1837 static int samr_dissect_element_GetGroupsForUser_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1838 static int samr_dissect_element_GetGroupsForUser_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1839 static int samr_dissect_element_GetGroupsForUser_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1840 static int samr_dissect_element_GetGroupsForUser_rids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1841 static int samr_dissect_element_GetGroupsForUser_rids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1842 static int samr_dissect_element_QueryDisplayInfo_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1843 static int samr_dissect_element_QueryDisplayInfo_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1844 static int samr_dissect_element_QueryDisplayInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1845 static int samr_dissect_element_QueryDisplayInfo_start_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1846 static int samr_dissect_element_QueryDisplayInfo_max_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1847 static int samr_dissect_element_QueryDisplayInfo_buf_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1848 static int samr_dissect_element_QueryDisplayInfo_total_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1849 static int samr_dissect_element_QueryDisplayInfo_total_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1850 static int samr_dissect_element_QueryDisplayInfo_returned_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1851 static int samr_dissect_element_QueryDisplayInfo_returned_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1852 static int samr_dissect_element_QueryDisplayInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1853 static int samr_dissect_element_QueryDisplayInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1854 static int samr_dissect_element_GetDisplayEnumerationIndex_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1855 static int samr_dissect_element_GetDisplayEnumerationIndex_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1856 static int samr_dissect_element_GetDisplayEnumerationIndex_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1857 static int samr_dissect_element_GetDisplayEnumerationIndex_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1858 static int samr_dissect_element_GetDisplayEnumerationIndex_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1859 static int samr_dissect_element_GetDisplayEnumerationIndex_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1860 static int samr_dissect_element_GetDisplayEnumerationIndex_idx_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1861 static int samr_dissect_element_TestPrivateFunctionsDomain_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1862 static int samr_dissect_element_TestPrivateFunctionsDomain_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1863 static int samr_dissect_element_TestPrivateFunctionsUser_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1864 static int samr_dissect_element_TestPrivateFunctionsUser_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1865 static int samr_dissect_element_GetUserPwInfo_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1866 static int samr_dissect_element_GetUserPwInfo_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1867 static int samr_dissect_element_GetUserPwInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1868 static int samr_dissect_element_GetUserPwInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1869 static int samr_dissect_element_RemoveMemberFromForeignDomain_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1870 static int samr_dissect_element_RemoveMemberFromForeignDomain_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1871 static int samr_dissect_element_RemoveMemberFromForeignDomain_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1872 static int samr_dissect_element_RemoveMemberFromForeignDomain_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1873 static int samr_dissect_element_QueryDomainInfo2_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1874 static int samr_dissect_element_QueryDomainInfo2_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1875 static int samr_dissect_element_QueryDomainInfo2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1876 static int samr_dissect_element_QueryDomainInfo2_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1877 static int samr_dissect_element_QueryDomainInfo2_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1878 static int samr_dissect_element_QueryDomainInfo2_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1879 static int samr_dissect_element_QueryUserInfo2_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1880 static int samr_dissect_element_QueryUserInfo2_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1881 static int samr_dissect_element_QueryUserInfo2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1882 static int samr_dissect_element_QueryUserInfo2_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1883 static int samr_dissect_element_QueryUserInfo2_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1884 static int samr_dissect_element_QueryUserInfo2_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1885 static int samr_dissect_element_QueryDisplayInfo2_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1886 static int samr_dissect_element_QueryDisplayInfo2_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1887 static int samr_dissect_element_QueryDisplayInfo2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1888 static int samr_dissect_element_QueryDisplayInfo2_start_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1889 static int samr_dissect_element_QueryDisplayInfo2_max_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1890 static int samr_dissect_element_QueryDisplayInfo2_buf_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1891 static int samr_dissect_element_QueryDisplayInfo2_total_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1892 static int samr_dissect_element_QueryDisplayInfo2_total_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1893 static int samr_dissect_element_QueryDisplayInfo2_returned_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1894 static int samr_dissect_element_QueryDisplayInfo2_returned_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1895 static int samr_dissect_element_QueryDisplayInfo2_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1896 static int samr_dissect_element_QueryDisplayInfo2_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1897 static int samr_dissect_element_GetDisplayEnumerationIndex2_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1898 static int samr_dissect_element_GetDisplayEnumerationIndex2_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1899 static int samr_dissect_element_GetDisplayEnumerationIndex2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1900 static int samr_dissect_element_GetDisplayEnumerationIndex2_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1901 static int samr_dissect_element_GetDisplayEnumerationIndex2_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1902 static int samr_dissect_element_GetDisplayEnumerationIndex2_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1903 static int samr_dissect_element_GetDisplayEnumerationIndex2_idx_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1904 static int samr_dissect_element_CreateUser2_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1905 static int samr_dissect_element_CreateUser2_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1906 static int samr_dissect_element_CreateUser2_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1907 static int samr_dissect_element_CreateUser2_account_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1908 static int samr_dissect_element_CreateUser2_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1909 static int samr_dissect_element_CreateUser2_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1910 static int samr_dissect_element_CreateUser2_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1911 static int samr_dissect_element_CreateUser2_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1912 static int samr_dissect_element_CreateUser2_access_granted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1913 static int samr_dissect_element_CreateUser2_access_granted_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1914 static int samr_dissect_element_CreateUser2_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1915 static int samr_dissect_element_CreateUser2_rid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1916 static int samr_dissect_element_QueryDisplayInfo3_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1917 static int samr_dissect_element_QueryDisplayInfo3_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1918 static int samr_dissect_element_QueryDisplayInfo3_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1919 static int samr_dissect_element_QueryDisplayInfo3_start_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1920 static int samr_dissect_element_QueryDisplayInfo3_max_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1921 static int samr_dissect_element_QueryDisplayInfo3_buf_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1922 static int samr_dissect_element_QueryDisplayInfo3_total_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1923 static int samr_dissect_element_QueryDisplayInfo3_total_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1924 static int samr_dissect_element_QueryDisplayInfo3_returned_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1925 static int samr_dissect_element_QueryDisplayInfo3_returned_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1926 static int samr_dissect_element_QueryDisplayInfo3_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1927 static int samr_dissect_element_QueryDisplayInfo3_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1928 static int samr_dissect_element_AddMultipleMembersToAlias_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1929 static int samr_dissect_element_AddMultipleMembersToAlias_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1930 static int samr_dissect_element_AddMultipleMembersToAlias_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1931 static int samr_dissect_element_AddMultipleMembersToAlias_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1932 static int samr_dissect_element_RemoveMultipleMembersFromAlias_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1933 static int samr_dissect_element_RemoveMultipleMembersFromAlias_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1934 static int samr_dissect_element_RemoveMultipleMembersFromAlias_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1935 static int samr_dissect_element_RemoveMultipleMembersFromAlias_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1936 static int samr_dissect_element_OemChangePasswordUser2_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1937 static int samr_dissect_element_OemChangePasswordUser2_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1938 static int samr_dissect_element_OemChangePasswordUser2_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1939 static int samr_dissect_element_OemChangePasswordUser2_account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1940 static int samr_dissect_element_OemChangePasswordUser2_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1941 static int samr_dissect_element_OemChangePasswordUser2_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1942 static int samr_dissect_element_OemChangePasswordUser2_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1943 static int samr_dissect_element_OemChangePasswordUser2_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1944 static int samr_dissect_element_ChangePasswordUser2_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1945 static int samr_dissect_element_ChangePasswordUser2_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1946 static int samr_dissect_element_ChangePasswordUser2_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1947 static int samr_dissect_element_ChangePasswordUser2_account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1948 static int samr_dissect_element_ChangePasswordUser2_nt_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1949 static int samr_dissect_element_ChangePasswordUser2_nt_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1950 static int samr_dissect_element_ChangePasswordUser2_nt_verifier(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1951 static int samr_dissect_element_ChangePasswordUser2_nt_verifier_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1952 static int samr_dissect_element_ChangePasswordUser2_lm_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1953 static int samr_dissect_element_ChangePasswordUser2_lm_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1954 static int samr_dissect_element_ChangePasswordUser2_lm_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1955 static int samr_dissect_element_ChangePasswordUser2_lm_verifier(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1956 static int samr_dissect_element_ChangePasswordUser2_lm_verifier_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1957 static int samr_dissect_element_GetDomPwInfo_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1958 static int samr_dissect_element_GetDomPwInfo_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1959 static int samr_dissect_element_GetDomPwInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1960 static int samr_dissect_element_GetDomPwInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1961 static int samr_dissect_element_Connect2_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1962 static int samr_dissect_element_Connect2_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1963 static int samr_dissect_element_Connect2_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1964 static int samr_dissect_element_Connect2_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1965 static int samr_dissect_element_Connect2_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1966 static int samr_dissect_element_SetUserInfo2_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1967 static int samr_dissect_element_SetUserInfo2_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1968 static int samr_dissect_element_SetUserInfo2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1969 static int samr_dissect_element_SetUserInfo2_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1970 static int samr_dissect_element_SetUserInfo2_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1971 static int samr_dissect_element_SetBootKeyInformation_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1972 static int samr_dissect_element_SetBootKeyInformation_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1973 static int samr_dissect_element_SetBootKeyInformation_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1974 static int samr_dissect_element_SetBootKeyInformation_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1975 static int samr_dissect_element_SetBootKeyInformation_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1976 static int samr_dissect_element_GetBootKeyInformation_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1977 static int samr_dissect_element_GetBootKeyInformation_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1978 static int samr_dissect_element_GetBootKeyInformation_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1979 static int samr_dissect_element_GetBootKeyInformation_unknown_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1980 static int samr_dissect_element_Connect3_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1981 static int samr_dissect_element_Connect3_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1982 static int samr_dissect_element_Connect3_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1983 static int samr_dissect_element_Connect3_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1984 static int samr_dissect_element_Connect3_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1985 static int samr_dissect_element_Connect3_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1986 static int samr_dissect_element_Connect4_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1987 static int samr_dissect_element_Connect4_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1988 static int samr_dissect_element_Connect4_client_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1989 static int samr_dissect_element_Connect4_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1990 static int samr_dissect_element_Connect4_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1991 static int samr_dissect_element_Connect4_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1992 static int samr_dissect_element_ChangePasswordUser3_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1993 static int samr_dissect_element_ChangePasswordUser3_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1994 static int samr_dissect_element_ChangePasswordUser3_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1995 static int samr_dissect_element_ChangePasswordUser3_account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1996 static int samr_dissect_element_ChangePasswordUser3_nt_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1997 static int samr_dissect_element_ChangePasswordUser3_nt_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1998 static int samr_dissect_element_ChangePasswordUser3_nt_verifier(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
1999 static int samr_dissect_element_ChangePasswordUser3_nt_verifier_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
2000 static int samr_dissect_element_ChangePasswordUser3_lm_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
2001 static int samr_dissect_element_ChangePasswordUser3_lm_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
2002 static int samr_dissect_element_ChangePasswordUser3_lm_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
2003 static int samr_dissect_element_ChangePasswordUser3_lm_verifier(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
2004 static int samr_dissect_element_ChangePasswordUser3_lm_verifier_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
2005 static int samr_dissect_element_ChangePasswordUser3_password3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
2006 static int samr_dissect_element_ChangePasswordUser3_password3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
2007 static int samr_dissect_element_ChangePasswordUser3_dominfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
2008 static int samr_dissect_element_ChangePasswordUser3_dominfo_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
2009 static int samr_dissect_element_ChangePasswordUser3_dominfo__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
2010 static int samr_dissect_element_ChangePasswordUser3_reject(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
2011 static int samr_dissect_element_ChangePasswordUser3_reject_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
2012 static int samr_dissect_element_ChangePasswordUser3_reject__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
2013 static int samr_dissect_element_Connect5_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
2014 static int samr_dissect_element_Connect5_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
2015 static int samr_dissect_element_Connect5_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
2016 static int samr_dissect_element_Connect5_level_in(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
2017 static int samr_dissect_element_Connect5_info_in(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
2018 static int samr_dissect_element_Connect5_info_in_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
2019 static int samr_dissect_element_Connect5_level_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
2020 static int samr_dissect_element_Connect5_level_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
2021 static int samr_dissect_element_Connect5_info_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
2022 static int samr_dissect_element_Connect5_info_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
2023 static int samr_dissect_element_Connect5_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
2024 static int samr_dissect_element_Connect5_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
2025 static int samr_dissect_element_RidToSid_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
2026 static int samr_dissect_element_RidToSid_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
2027 static int samr_dissect_element_RidToSid_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
2028 static int samr_dissect_element_RidToSid_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
2029 static int samr_dissect_element_RidToSid_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
2030 static int samr_dissect_element_RidToSid_sid__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
2031 static int samr_dissect_element_SetDsrmPassword_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
2032 static int samr_dissect_element_SetDsrmPassword_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
2033 static int samr_dissect_element_SetDsrmPassword_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
2034 static int samr_dissect_element_SetDsrmPassword_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
2035 static int samr_dissect_element_SetDsrmPassword_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
2036 static int samr_dissect_element_ValidatePassword_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
2037 static int samr_dissect_element_ValidatePassword_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
2038 static int samr_dissect_element_ValidatePassword_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
2039 static int samr_dissect_element_ValidatePassword_rep(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
2040 static int samr_dissect_element_ValidatePassword_rep_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
2041 static int samr_dissect_element_ValidatePassword_rep__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
2042 static int samr_dissect_element_ChangePasswordUser4_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
2043 static int samr_dissect_element_ChangePasswordUser4_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
2044 static int samr_dissect_element_ChangePasswordUser4_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
2045 static int samr_dissect_element_ChangePasswordUser4_account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
2046 static int samr_dissect_element_ChangePasswordUser4_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
2047 static int samr_dissect_element_ChangePasswordUser4_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
2048 #include "packet-dcerpc-lsa.h"
2049 static void
2050 samr_connect_specific_rights(tvbuff_t *tvb, int offset, proto_tree *tree, uint32_t access)
2052 static int* const access_flags[] = {
2053 &hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_LOOKUP_DOMAIN,
2054 &hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_ENUM_DOMAINS,
2055 &hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_CREATE_DOMAIN,
2056 &hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_INITIALIZE_SERVER,
2057 &hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_SHUTDOWN_SERVER,
2058 &hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_CONNECT_TO_SERVER,
2059 NULL
2061 proto_tree_add_bitmask_list_value(tree, tvb, offset, 4, access_flags, access);
2063 static struct access_mask_info samr_connect_access_mask_info = {
2064 "SAMR Connect", /* Name of specific rights */
2065 samr_connect_specific_rights, /* Dissection function */
2066 NULL, /* Generic mapping table */
2067 NULL /* Standard mapping table */
2070 samr_dissect_bitmap_ConnectAccessMask(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, dcerpc_info* di, uint8_t *drep, int hf_index _U_, uint32_t param _U_)
2072 offset = dissect_nt_access_mask(
2073 tvb, offset, pinfo, tree, di, drep, hf_samr_connect_access_mask,
2074 &samr_connect_access_mask_info, NULL);
2075 return offset;
2077 static void
2078 samr_alias_specific_rights(tvbuff_t *tvb, int offset, proto_tree *tree, uint32_t access)
2080 static int* const access_flags[] = {
2081 &hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_ADD_MEMBER,
2082 &hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_REMOVE_MEMBER,
2083 &hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_GET_MEMBERS,
2084 &hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_LOOKUP_INFO,
2085 &hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_SET_INFO,
2086 NULL
2088 proto_tree_add_bitmask_list_value(tree, tvb, offset, 4, access_flags, access);
2090 static struct access_mask_info samr_alias_access_mask_info = {
2091 "SAMR Alias", /* Name of specific rights */
2092 samr_alias_specific_rights, /* Dissection function */
2093 NULL, /* Generic mapping table */
2094 NULL /* Standard mapping table */
2097 samr_dissect_bitmap_AliasAccessMask(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, dcerpc_info* di, uint8_t *drep, int hf_index _U_, uint32_t param _U_)
2099 offset = dissect_nt_access_mask(
2100 tvb, offset, pinfo, tree, di, drep, hf_samr_alias_access_mask,
2101 &samr_alias_access_mask_info, NULL);
2102 return offset;
2104 static void
2105 samr_group_specific_rights(tvbuff_t *tvb, int offset, proto_tree *tree, uint32_t access)
2107 static int* const access_flags[] = {
2108 &hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_GET_MEMBERS,
2109 &hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_REMOVE_MEMBER,
2110 &hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_ADD_MEMBER,
2111 &hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_SET_INFO,
2112 &hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_LOOKUP_INFO,
2113 NULL
2115 proto_tree_add_bitmask_list_value(tree, tvb, offset, 4, access_flags, access);
2117 static struct access_mask_info samr_group_access_mask_info = {
2118 "SAMR Group", /* Name of specific rights */
2119 samr_group_specific_rights, /* Dissection function */
2120 NULL, /* Generic mapping table */
2121 NULL /* Standard mapping table */
2124 samr_dissect_bitmap_GroupAccessMask(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, dcerpc_info* di, uint8_t *drep, int hf_index _U_, uint32_t param _U_)
2126 offset = dissect_nt_access_mask(
2127 tvb, offset, pinfo, tree, di, drep, hf_samr_group_access_mask,
2128 &samr_group_access_mask_info, NULL);
2129 return offset;
2131 static void
2132 samr_domain_specific_rights(tvbuff_t *tvb, int offset, proto_tree *tree, uint32_t access)
2134 static int* const access_flags[] = {
2135 &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_INFO_1,
2136 &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_1,
2137 &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_INFO_2,
2138 &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_2,
2139 &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_USER,
2140 &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_GROUP,
2141 &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_ALIAS,
2142 &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_ALIAS,
2143 &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_ENUM_ACCOUNTS,
2144 &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT,
2145 &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_3,
2146 NULL
2148 proto_tree_add_bitmask_list_value(tree, tvb, offset, 4, access_flags, access);
2150 static struct access_mask_info samr_domain_access_mask_info = {
2151 "SAMR Domain", /* Name of specific rights */
2152 samr_domain_specific_rights, /* Dissection function */
2153 NULL, /* Generic mapping table */
2154 NULL /* Standard mapping table */
2157 samr_dissect_bitmap_DomainAccessMask(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, dcerpc_info* di, uint8_t *drep, int hf_index _U_, uint32_t param _U_)
2159 offset = dissect_nt_access_mask(
2160 tvb, offset, pinfo, tree, di, drep, hf_samr_domain_access_mask,
2161 &samr_domain_access_mask_info, NULL);
2162 return offset;
2164 static void
2165 samr_user_specific_rights(tvbuff_t *tvb, int offset, proto_tree *tree, uint32_t access)
2167 static int* const access_flags[] = {
2168 &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_CHANGE_GROUP_MEMBERSHIP,
2169 &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_GROUP_MEMBERSHIP,
2170 &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_GROUPS,
2171 &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_SET_PASSWORD,
2172 &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_CHANGE_PASSWORD,
2173 &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_SET_ATTRIBUTES,
2174 &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_ATTRIBUTES,
2175 &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_LOGONINFO,
2176 &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_SET_LOC_COM,
2177 &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_LOCALE,
2178 &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_NAME_ETC,
2179 NULL
2181 proto_tree_add_bitmask_list_value(tree, tvb, offset, 4, access_flags, access);
2183 static struct access_mask_info samr_user_access_mask_info = {
2184 "SAMR User", /* Name of specific rights */
2185 samr_user_specific_rights, /* Dissection function */
2186 NULL, /* Generic mapping table */
2187 NULL /* Standard mapping table */
2190 samr_dissect_bitmap_UserAccessMask(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, dcerpc_info* di, uint8_t *drep, int hf_index _U_, uint32_t param _U_)
2192 offset = dissect_nt_access_mask(
2193 tvb, offset, pinfo, tree, di, drep, hf_samr_user_access_mask,
2194 &samr_user_access_mask_info, NULL);
2195 return offset;
2197 static int
2198 cnf_dissect_lsa_AsciiString(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, dcerpc_info* di, uint8_t *drep, uint32_t param _U_, int hfindex)
2200 offset = dissect_ndr_counted_ascii_string(tvb, offset, pinfo, tree, di, drep,
2201 hfindex, 0);
2202 return offset;
2204 static int
2205 cnf_dissect_hyper(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, dcerpc_info* di, uint8_t *drep, uint32_t param _U_, int hfindex)
2207 offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hfindex, NULL);
2208 return offset;
2210 static int
2211 cnf_dissect_sec_desc_buf_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, dcerpc_info* di, uint8_t *drep)
2213 uint64_t len;
2214 e_ctx_hnd *polhnd = NULL;
2215 dcerpc_call_value *dcv = NULL;
2216 uint32_t type=0;
2217 struct access_mask_info *ami=NULL;
2218 if(di->conformant_run){
2219 /*just a run to handle conformant arrays, nothing to dissect */
2220 return offset;
2222 offset = dissect_ndr_uint3264 (tvb, offset, pinfo, tree, di, drep,
2223 hf_samr_sec_desc_buf_len, &len);
2224 dcv = (dcerpc_call_value *)di->call_data;
2225 if(dcv){
2226 polhnd = dcv->pol;
2228 if(polhnd){
2229 dcerpc_fetch_polhnd_data(polhnd, NULL, &type, NULL, NULL,
2230 pinfo->num);
2232 switch(type){
2233 case PIDL_POLHND_TYPE_SAMR_USER:
2234 ami=&samr_user_access_mask_info;
2235 break;
2236 case PIDL_POLHND_TYPE_SAMR_CONNECT:
2237 ami=&samr_connect_access_mask_info;
2238 break;
2239 case PIDL_POLHND_TYPE_SAMR_DOMAIN:
2240 ami=&samr_domain_access_mask_info;
2241 break;
2242 case PIDL_POLHND_TYPE_SAMR_GROUP:
2243 ami=&samr_group_access_mask_info;
2244 break;
2245 case PIDL_POLHND_TYPE_SAMR_ALIAS:
2246 ami=&samr_alias_access_mask_info;
2247 break;
2249 dissect_nt_sec_desc(tvb, offset, pinfo, tree, drep, true, (int)len, ami);
2250 offset += (int)len;
2251 return offset;
2253 static int
2254 cnf_dissect_sec_desc_buf(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, dcerpc_info* di, uint8_t *drep)
2256 uint64_t len;
2257 if(di->conformant_run){
2258 /*just a run to handle conformant arrays, nothing to dissect */
2259 return offset;
2261 offset = dissect_ndr_uint3264 (tvb, offset, pinfo, tree, di, drep,
2262 hf_samr_sec_desc_buf_len, &len);
2263 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, di, drep,
2264 cnf_dissect_sec_desc_buf_, NDR_POINTER_UNIQUE,
2265 "SAM SECURITY DESCRIPTOR data:", -1);
2266 return offset;
2268 static int
2269 cnf_dissect_dom_sid2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, dcerpc_info* di, uint8_t *drep)
2271 offset = dissect_ndr_nt_SID(tvb, offset, pinfo, tree, di, drep);
2272 return offset;
2274 static int
2275 cnf_dissect_lsa_SidArray(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, dcerpc_info* di, uint8_t *drep)
2277 offset = dissect_ndr_nt_PSID_ARRAY(tvb, offset, pinfo, tree, di, drep);
2278 return offset;
2280 static int
2281 cnf_dissect_samr_security_secinfo(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, uint8_t *drep _U_)
2283 offset = dissect_nt_security_information(tvb, offset, tree);
2284 return offset;
2288 /* IDL: struct { */
2289 /* IDL: uint32 count; */
2290 /* IDL: [size_is(count)] [unique(1)] lsa_String *names; */
2291 /* IDL: } */
2293 static int
2294 samr_dissect_element_lsa_Strings_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2296 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_lsa_Strings_count, 0);
2298 return offset;
2301 static int
2302 samr_dissect_element_lsa_Strings_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2304 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_lsa_Strings_names_, NDR_POINTER_UNIQUE, "Pointer to Names (lsa_String)",hf_samr_lsa_Strings_names);
2306 return offset;
2309 static int
2310 samr_dissect_element_lsa_Strings_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2312 struct ndr_generic_array nga = { .is_conformant = false, };
2314 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
2316 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, samr_dissect_element_lsa_Strings_names__);
2318 return offset;
2321 static int
2322 samr_dissect_element_lsa_Strings_names__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2324 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_lsa_Strings_names);
2326 return offset;
2330 samr_dissect_struct_lsa_Strings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
2332 proto_item *item = NULL;
2333 proto_tree *tree = NULL;
2334 int old_offset;
2336 ALIGN_TO_5_BYTES;
2338 old_offset = offset;
2340 if (parent_tree) {
2341 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2342 tree = proto_item_add_subtree(item, ett_samr_lsa_Strings);
2345 offset = samr_dissect_element_lsa_Strings_count(tvb, offset, pinfo, tree, di, drep);
2347 offset = samr_dissect_element_lsa_Strings_names(tvb, offset, pinfo, tree, di, drep);
2350 proto_item_set_len(item, offset-old_offset);
2353 if (di->call_data->flags & DCERPC_IS_NDR64) {
2354 ALIGN_TO_5_BYTES;
2357 return offset;
2361 /* IDL: enum { */
2362 /* IDL: SID_NAME_USE_NONE=0, */
2363 /* IDL: SID_NAME_USER=1, */
2364 /* IDL: SID_NAME_DOM_GRP=2, */
2365 /* IDL: SID_NAME_DOMAIN=3, */
2366 /* IDL: SID_NAME_ALIAS=4, */
2367 /* IDL: SID_NAME_WKN_GRP=5, */
2368 /* IDL: SID_NAME_DELETED=6, */
2369 /* IDL: SID_NAME_INVALID=7, */
2370 /* IDL: SID_NAME_UNKNOWN=8, */
2371 /* IDL: SID_NAME_COMPUTER=9, */
2372 /* IDL: } */
2375 samr_dissect_enum_lsa_SidType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t *param _U_)
2377 uint32_t parameter=0;
2378 if (param) {
2379 parameter = *param;
2381 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
2382 if (param) {
2383 *param = parameter;
2385 return offset;
2389 /* IDL: bitmap { */
2390 /* IDL: ACB_DISABLED = 0x00000001 , */
2391 /* IDL: ACB_HOMDIRREQ = 0x00000002 , */
2392 /* IDL: ACB_PWNOTREQ = 0x00000004 , */
2393 /* IDL: ACB_TEMPDUP = 0x00000008 , */
2394 /* IDL: ACB_NORMAL = 0x00000010 , */
2395 /* IDL: ACB_MNS = 0x00000020 , */
2396 /* IDL: ACB_DOMTRUST = 0x00000040 , */
2397 /* IDL: ACB_WSTRUST = 0x00000080 , */
2398 /* IDL: ACB_SVRTRUST = 0x00000100 , */
2399 /* IDL: ACB_PWNOEXP = 0x00000200 , */
2400 /* IDL: ACB_AUTOLOCK = 0x00000400 , */
2401 /* IDL: ACB_ENC_TXT_PWD_ALLOWED = 0x00000800 , */
2402 /* IDL: ACB_SMARTCARD_REQUIRED = 0x00001000 , */
2403 /* IDL: ACB_TRUSTED_FOR_DELEGATION = 0x00002000 , */
2404 /* IDL: ACB_NOT_DELEGATED = 0x00004000 , */
2405 /* IDL: ACB_USE_DES_KEY_ONLY = 0x00008000 , */
2406 /* IDL: ACB_DONT_REQUIRE_PREAUTH = 0x00010000 , */
2407 /* IDL: ACB_PW_EXPIRED = 0x00020000 , */
2408 /* IDL: ACB_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION = 0x00040000 , */
2409 /* IDL: ACB_NO_AUTH_DATA_REQD = 0x00080000 , */
2410 /* IDL: ACB_PARTIAL_SECRETS_ACCOUNT = 0x00100000 , */
2411 /* IDL: ACB_USE_AES_KEYS = 0x00200000 , */
2412 /* IDL: } */
2415 samr_dissect_bitmap_AcctFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
2417 proto_item *item;
2418 static int * const samr_samr_AcctFlags_fields[] = {
2419 &hf_samr_samr_AcctFlags_ACB_DISABLED,
2420 &hf_samr_samr_AcctFlags_ACB_HOMDIRREQ,
2421 &hf_samr_samr_AcctFlags_ACB_PWNOTREQ,
2422 &hf_samr_samr_AcctFlags_ACB_TEMPDUP,
2423 &hf_samr_samr_AcctFlags_ACB_NORMAL,
2424 &hf_samr_samr_AcctFlags_ACB_MNS,
2425 &hf_samr_samr_AcctFlags_ACB_DOMTRUST,
2426 &hf_samr_samr_AcctFlags_ACB_WSTRUST,
2427 &hf_samr_samr_AcctFlags_ACB_SVRTRUST,
2428 &hf_samr_samr_AcctFlags_ACB_PWNOEXP,
2429 &hf_samr_samr_AcctFlags_ACB_AUTOLOCK,
2430 &hf_samr_samr_AcctFlags_ACB_ENC_TXT_PWD_ALLOWED,
2431 &hf_samr_samr_AcctFlags_ACB_SMARTCARD_REQUIRED,
2432 &hf_samr_samr_AcctFlags_ACB_TRUSTED_FOR_DELEGATION,
2433 &hf_samr_samr_AcctFlags_ACB_NOT_DELEGATED,
2434 &hf_samr_samr_AcctFlags_ACB_USE_DES_KEY_ONLY,
2435 &hf_samr_samr_AcctFlags_ACB_DONT_REQUIRE_PREAUTH,
2436 &hf_samr_samr_AcctFlags_ACB_PW_EXPIRED,
2437 &hf_samr_samr_AcctFlags_ACB_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION,
2438 &hf_samr_samr_AcctFlags_ACB_NO_AUTH_DATA_REQD,
2439 &hf_samr_samr_AcctFlags_ACB_PARTIAL_SECRETS_ACCOUNT,
2440 &hf_samr_samr_AcctFlags_ACB_USE_AES_KEYS,
2441 NULL
2443 uint32_t flags;
2444 ALIGN_TO_4_BYTES;
2446 item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index,
2447 ett_samr_samr_AcctFlags, samr_samr_AcctFlags_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE);
2449 offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags);
2451 if (!flags)
2452 proto_item_append_text(item, ": (No values set)");
2454 if (flags & (~0x003fffff)) {
2455 flags &= (~0x003fffff);
2456 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
2459 return offset;
2463 /* IDL: bitmap { */
2464 /* IDL: SAMR_ACCESS_CONNECT_TO_SERVER = 0x00000001 , */
2465 /* IDL: SAMR_ACCESS_SHUTDOWN_SERVER = 0x00000002 , */
2466 /* IDL: SAMR_ACCESS_INITIALIZE_SERVER = 0x00000004 , */
2467 /* IDL: SAMR_ACCESS_CREATE_DOMAIN = 0x00000008 , */
2468 /* IDL: SAMR_ACCESS_ENUM_DOMAINS = 0x00000010 , */
2469 /* IDL: SAMR_ACCESS_LOOKUP_DOMAIN = 0x00000020 , */
2470 /* IDL: } */
2473 /* IDL: bitmap { */
2474 /* IDL: SAMR_USER_ACCESS_GET_NAME_ETC = 0x00000001 , */
2475 /* IDL: SAMR_USER_ACCESS_GET_LOCALE = 0x00000002 , */
2476 /* IDL: SAMR_USER_ACCESS_SET_LOC_COM = 0x00000004 , */
2477 /* IDL: SAMR_USER_ACCESS_GET_LOGONINFO = 0x00000008 , */
2478 /* IDL: SAMR_USER_ACCESS_GET_ATTRIBUTES = 0x00000010 , */
2479 /* IDL: SAMR_USER_ACCESS_SET_ATTRIBUTES = 0x00000020 , */
2480 /* IDL: SAMR_USER_ACCESS_CHANGE_PASSWORD = 0x00000040 , */
2481 /* IDL: SAMR_USER_ACCESS_SET_PASSWORD = 0x00000080 , */
2482 /* IDL: SAMR_USER_ACCESS_GET_GROUPS = 0x00000100 , */
2483 /* IDL: SAMR_USER_ACCESS_GET_GROUP_MEMBERSHIP = 0x00000200 , */
2484 /* IDL: SAMR_USER_ACCESS_CHANGE_GROUP_MEMBERSHIP = 0x00000400 , */
2485 /* IDL: } */
2488 /* IDL: bitmap { */
2489 /* IDL: SAMR_DOMAIN_ACCESS_LOOKUP_INFO_1 = 0x00000001 , */
2490 /* IDL: SAMR_DOMAIN_ACCESS_SET_INFO_1 = 0x00000002 , */
2491 /* IDL: SAMR_DOMAIN_ACCESS_LOOKUP_INFO_2 = 0x00000004 , */
2492 /* IDL: SAMR_DOMAIN_ACCESS_SET_INFO_2 = 0x00000008 , */
2493 /* IDL: SAMR_DOMAIN_ACCESS_CREATE_USER = 0x00000010 , */
2494 /* IDL: SAMR_DOMAIN_ACCESS_CREATE_GROUP = 0x00000020 , */
2495 /* IDL: SAMR_DOMAIN_ACCESS_CREATE_ALIAS = 0x00000040 , */
2496 /* IDL: SAMR_DOMAIN_ACCESS_LOOKUP_ALIAS = 0x00000080 , */
2497 /* IDL: SAMR_DOMAIN_ACCESS_ENUM_ACCOUNTS = 0x00000100 , */
2498 /* IDL: SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT = 0x00000200 , */
2499 /* IDL: SAMR_DOMAIN_ACCESS_SET_INFO_3 = 0x00000400 , */
2500 /* IDL: } */
2503 /* IDL: bitmap { */
2504 /* IDL: SAMR_GROUP_ACCESS_LOOKUP_INFO = 0x00000001 , */
2505 /* IDL: SAMR_GROUP_ACCESS_SET_INFO = 0x00000002 , */
2506 /* IDL: SAMR_GROUP_ACCESS_ADD_MEMBER = 0x00000004 , */
2507 /* IDL: SAMR_GROUP_ACCESS_REMOVE_MEMBER = 0x00000008 , */
2508 /* IDL: SAMR_GROUP_ACCESS_GET_MEMBERS = 0x00000010 , */
2509 /* IDL: } */
2512 /* IDL: bitmap { */
2513 /* IDL: SAMR_ALIAS_ACCESS_ADD_MEMBER = 0x00000001 , */
2514 /* IDL: SAMR_ALIAS_ACCESS_REMOVE_MEMBER = 0x00000002 , */
2515 /* IDL: SAMR_ALIAS_ACCESS_GET_MEMBERS = 0x00000004 , */
2516 /* IDL: SAMR_ALIAS_ACCESS_LOOKUP_INFO = 0x00000008 , */
2517 /* IDL: SAMR_ALIAS_ACCESS_SET_INFO = 0x00000010 , */
2518 /* IDL: } */
2521 /* IDL: struct { */
2522 /* IDL: uint32 idx; */
2523 /* IDL: lsa_String name; */
2524 /* IDL: } */
2526 static int
2527 samr_dissect_element_SamEntry_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2529 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_SamEntry_idx, 0);
2531 return offset;
2534 static int
2535 samr_dissect_element_SamEntry_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2537 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_SamEntry_name);
2539 return offset;
2543 samr_dissect_struct_SamEntry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
2545 proto_item *item = NULL;
2546 proto_tree *tree = NULL;
2547 int old_offset;
2549 ALIGN_TO_5_BYTES;
2551 old_offset = offset;
2553 if (parent_tree) {
2554 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2555 tree = proto_item_add_subtree(item, ett_samr_samr_SamEntry);
2558 offset = samr_dissect_element_SamEntry_idx(tvb, offset, pinfo, tree, di, drep);
2560 offset = samr_dissect_element_SamEntry_name(tvb, offset, pinfo, tree, di, drep);
2563 proto_item_set_len(item, offset-old_offset);
2566 if (di->call_data->flags & DCERPC_IS_NDR64) {
2567 ALIGN_TO_5_BYTES;
2570 return offset;
2574 /* IDL: struct { */
2575 /* IDL: uint32 count; */
2576 /* IDL: [size_is(count)] [unique(1)] samr_SamEntry *entries; */
2577 /* IDL: } */
2579 static int
2580 samr_dissect_element_SamArray_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2582 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_SamArray_count, 0);
2584 return offset;
2587 static int
2588 samr_dissect_element_SamArray_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2590 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_SamArray_entries_, NDR_POINTER_UNIQUE, "Pointer to Entries (samr_SamEntry)",hf_samr_samr_SamArray_entries);
2592 return offset;
2595 static int
2596 samr_dissect_element_SamArray_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2598 struct ndr_generic_array nga = { .is_conformant = false, };
2600 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
2602 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, samr_dissect_element_SamArray_entries__);
2604 return offset;
2607 static int
2608 samr_dissect_element_SamArray_entries__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2610 offset = samr_dissect_struct_SamEntry(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_SamArray_entries,3|PIDL_SET_COL_INFO);
2612 return offset;
2616 samr_dissect_struct_SamArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
2618 proto_item *item = NULL;
2619 proto_tree *tree = NULL;
2620 int old_offset;
2622 ALIGN_TO_5_BYTES;
2624 old_offset = offset;
2626 if (parent_tree) {
2627 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2628 tree = proto_item_add_subtree(item, ett_samr_samr_SamArray);
2631 offset = samr_dissect_element_SamArray_count(tvb, offset, pinfo, tree, di, drep);
2633 offset = samr_dissect_element_SamArray_entries(tvb, offset, pinfo, tree, di, drep);
2636 proto_item_set_len(item, offset-old_offset);
2639 if (di->call_data->flags & DCERPC_IS_NDR64) {
2640 ALIGN_TO_5_BYTES;
2643 return offset;
2647 /* IDL: enum { */
2648 /* IDL: DomainPasswordInformation=1, */
2649 /* IDL: DomainGeneralInformation=2, */
2650 /* IDL: DomainLogoffInformation=3, */
2651 /* IDL: DomainOemInformation=4, */
2652 /* IDL: DomainNameInformation=5, */
2653 /* IDL: DomainReplicationInformation=6, */
2654 /* IDL: DomainServerRoleInformation=7, */
2655 /* IDL: DomainModifiedInformation=8, */
2656 /* IDL: DomainStateInformation=9, */
2657 /* IDL: DomainUasInformation=10, */
2658 /* IDL: DomainGeneralInformation2=11, */
2659 /* IDL: DomainLockoutInformation=12, */
2660 /* IDL: DomainModifiedInformation2=13, */
2661 /* IDL: } */
2664 samr_dissect_enum_DomainInfoClass(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t *param _U_)
2666 uint32_t parameter=0;
2667 if (param) {
2668 parameter = *param;
2670 offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
2671 if (param) {
2672 *param = parameter;
2674 return offset;
2678 /* IDL: enum { */
2679 /* IDL: SAMR_ROLE_STANDALONE=0, */
2680 /* IDL: SAMR_ROLE_DOMAIN_MEMBER=1, */
2681 /* IDL: SAMR_ROLE_DOMAIN_BDC=2, */
2682 /* IDL: SAMR_ROLE_DOMAIN_PDC=3, */
2683 /* IDL: } */
2686 samr_dissect_enum_Role(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t *param _U_)
2688 uint32_t parameter=0;
2689 if (param) {
2690 parameter = *param;
2692 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
2693 if (param) {
2694 *param = parameter;
2696 return offset;
2700 /* IDL: bitmap { */
2701 /* IDL: DOMAIN_PASSWORD_COMPLEX = 0x00000001 , */
2702 /* IDL: DOMAIN_PASSWORD_NO_ANON_CHANGE = 0x00000002 , */
2703 /* IDL: DOMAIN_PASSWORD_NO_CLEAR_CHANGE = 0x00000004 , */
2704 /* IDL: DOMAIN_PASSWORD_LOCKOUT_ADMINS = 0x00000008 , */
2705 /* IDL: DOMAIN_PASSWORD_STORE_CLEARTEXT = 0x00000010 , */
2706 /* IDL: DOMAIN_REFUSE_PASSWORD_CHANGE = 0x00000020 , */
2707 /* IDL: } */
2710 samr_dissect_bitmap_PasswordProperties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
2712 proto_item *item;
2713 static int * const samr_samr_PasswordProperties_fields[] = {
2714 &hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_COMPLEX,
2715 &hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_NO_ANON_CHANGE,
2716 &hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_NO_CLEAR_CHANGE,
2717 &hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_LOCKOUT_ADMINS,
2718 &hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_STORE_CLEARTEXT,
2719 &hf_samr_samr_PasswordProperties_DOMAIN_REFUSE_PASSWORD_CHANGE,
2720 NULL
2722 uint32_t flags;
2723 ALIGN_TO_4_BYTES;
2725 item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index,
2726 ett_samr_samr_PasswordProperties, samr_samr_PasswordProperties_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE);
2728 offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags);
2730 if (!flags)
2731 proto_item_append_text(item, ": (No values set)");
2733 if (flags & (~0x0000003f)) {
2734 flags &= (~0x0000003f);
2735 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
2738 return offset;
2742 /* IDL: enum { */
2743 /* IDL: DOMAIN_SERVER_ENABLED=1, */
2744 /* IDL: DOMAIN_SERVER_DISABLED=2, */
2745 /* IDL: } */
2748 samr_dissect_enum_DomainServerState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t *param _U_)
2750 uint32_t parameter=0;
2751 if (param) {
2752 parameter = *param;
2754 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
2755 if (param) {
2756 *param = parameter;
2758 return offset;
2762 /* IDL: struct { */
2763 /* IDL: uint16 min_password_length; */
2764 /* IDL: uint16 password_history_length; */
2765 /* IDL: samr_PasswordProperties password_properties; */
2766 /* IDL: dlong max_password_age; */
2767 /* IDL: dlong min_password_age; */
2768 /* IDL: } */
2770 static int
2771 samr_dissect_element_DomInfo1_min_password_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2773 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DomInfo1_min_password_length, 0);
2775 return offset;
2778 static int
2779 samr_dissect_element_DomInfo1_password_history_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2781 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DomInfo1_password_history_length, 0);
2783 return offset;
2786 static int
2787 samr_dissect_element_DomInfo1_password_properties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2789 offset = samr_dissect_bitmap_PasswordProperties(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DomInfo1_password_properties, 0);
2791 return offset;
2794 static int
2795 samr_dissect_element_DomInfo1_max_password_age(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2797 offset = dissect_ndr_duint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DomInfo1_max_password_age, NULL);
2799 return offset;
2802 static int
2803 samr_dissect_element_DomInfo1_min_password_age(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2805 offset = dissect_ndr_duint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DomInfo1_min_password_age, NULL);
2807 return offset;
2811 samr_dissect_struct_DomInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
2813 proto_item *item = NULL;
2814 proto_tree *tree = NULL;
2815 int old_offset;
2817 ALIGN_TO_4_BYTES;
2819 old_offset = offset;
2821 if (parent_tree) {
2822 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2823 tree = proto_item_add_subtree(item, ett_samr_samr_DomInfo1);
2826 offset = samr_dissect_element_DomInfo1_min_password_length(tvb, offset, pinfo, tree, di, drep);
2828 offset = samr_dissect_element_DomInfo1_password_history_length(tvb, offset, pinfo, tree, di, drep);
2830 offset = samr_dissect_element_DomInfo1_password_properties(tvb, offset, pinfo, tree, di, drep);
2832 offset = samr_dissect_element_DomInfo1_max_password_age(tvb, offset, pinfo, tree, di, drep);
2834 offset = samr_dissect_element_DomInfo1_min_password_age(tvb, offset, pinfo, tree, di, drep);
2837 proto_item_set_len(item, offset-old_offset);
2840 if (di->call_data->flags & DCERPC_IS_NDR64) {
2841 ALIGN_TO_4_BYTES;
2844 return offset;
2848 /* IDL: struct { */
2849 /* IDL: NTTIME force_logoff_time; */
2850 /* IDL: lsa_String oem_information; */
2851 /* IDL: lsa_String domain_name; */
2852 /* IDL: lsa_String primary; */
2853 /* IDL: udlong sequence_num; */
2854 /* IDL: samr_DomainServerState domain_server_state; */
2855 /* IDL: samr_Role role; */
2856 /* IDL: uint32 unknown3; */
2857 /* IDL: uint32 num_users; */
2858 /* IDL: uint32 num_groups; */
2859 /* IDL: uint32 num_aliases; */
2860 /* IDL: } */
2862 static int
2863 samr_dissect_element_DomGeneralInformation_force_logoff_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2865 offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DomGeneralInformation_force_logoff_time);
2867 return offset;
2870 static int
2871 samr_dissect_element_DomGeneralInformation_oem_information(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2873 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_DomGeneralInformation_oem_information);
2875 return offset;
2878 static int
2879 samr_dissect_element_DomGeneralInformation_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2881 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_DomGeneralInformation_domain_name);
2883 return offset;
2886 static int
2887 samr_dissect_element_DomGeneralInformation_primary(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2889 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_DomGeneralInformation_primary);
2891 return offset;
2894 static int
2895 samr_dissect_element_DomGeneralInformation_sequence_num(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2897 offset = dissect_ndr_duint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DomGeneralInformation_sequence_num, NULL);
2899 return offset;
2902 static int
2903 samr_dissect_element_DomGeneralInformation_domain_server_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2905 offset = samr_dissect_enum_DomainServerState(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DomGeneralInformation_domain_server_state, 0);
2907 return offset;
2910 static int
2911 samr_dissect_element_DomGeneralInformation_role(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2913 offset = samr_dissect_enum_Role(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DomGeneralInformation_role, 0);
2915 return offset;
2918 static int
2919 samr_dissect_element_DomGeneralInformation_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2921 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DomGeneralInformation_unknown3, 0);
2923 return offset;
2926 static int
2927 samr_dissect_element_DomGeneralInformation_num_users(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2929 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DomGeneralInformation_num_users, 0);
2931 return offset;
2934 static int
2935 samr_dissect_element_DomGeneralInformation_num_groups(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2937 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DomGeneralInformation_num_groups, 0);
2939 return offset;
2942 static int
2943 samr_dissect_element_DomGeneralInformation_num_aliases(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2945 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DomGeneralInformation_num_aliases, 0);
2947 return offset;
2951 samr_dissect_struct_DomGeneralInformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
2953 proto_item *item = NULL;
2954 proto_tree *tree = NULL;
2955 int old_offset;
2957 ALIGN_TO_5_BYTES;
2959 old_offset = offset;
2961 if (parent_tree) {
2962 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2963 tree = proto_item_add_subtree(item, ett_samr_samr_DomGeneralInformation);
2966 offset = samr_dissect_element_DomGeneralInformation_force_logoff_time(tvb, offset, pinfo, tree, di, drep);
2968 offset = samr_dissect_element_DomGeneralInformation_oem_information(tvb, offset, pinfo, tree, di, drep);
2970 offset = samr_dissect_element_DomGeneralInformation_domain_name(tvb, offset, pinfo, tree, di, drep);
2972 offset = samr_dissect_element_DomGeneralInformation_primary(tvb, offset, pinfo, tree, di, drep);
2974 offset = samr_dissect_element_DomGeneralInformation_sequence_num(tvb, offset, pinfo, tree, di, drep);
2976 offset = samr_dissect_element_DomGeneralInformation_domain_server_state(tvb, offset, pinfo, tree, di, drep);
2978 offset = samr_dissect_element_DomGeneralInformation_role(tvb, offset, pinfo, tree, di, drep);
2980 offset = samr_dissect_element_DomGeneralInformation_unknown3(tvb, offset, pinfo, tree, di, drep);
2982 offset = samr_dissect_element_DomGeneralInformation_num_users(tvb, offset, pinfo, tree, di, drep);
2984 offset = samr_dissect_element_DomGeneralInformation_num_groups(tvb, offset, pinfo, tree, di, drep);
2986 offset = samr_dissect_element_DomGeneralInformation_num_aliases(tvb, offset, pinfo, tree, di, drep);
2989 proto_item_set_len(item, offset-old_offset);
2992 if (di->call_data->flags & DCERPC_IS_NDR64) {
2993 ALIGN_TO_5_BYTES;
2996 return offset;
3000 /* IDL: struct { */
3001 /* IDL: NTTIME force_logoff_time; */
3002 /* IDL: } */
3004 static int
3005 samr_dissect_element_DomInfo3_force_logoff_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3007 offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DomInfo3_force_logoff_time);
3009 return offset;
3013 samr_dissect_struct_DomInfo3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
3015 proto_item *item = NULL;
3016 proto_tree *tree = NULL;
3017 int old_offset;
3019 ALIGN_TO_4_BYTES;
3021 old_offset = offset;
3023 if (parent_tree) {
3024 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3025 tree = proto_item_add_subtree(item, ett_samr_samr_DomInfo3);
3028 offset = samr_dissect_element_DomInfo3_force_logoff_time(tvb, offset, pinfo, tree, di, drep);
3031 proto_item_set_len(item, offset-old_offset);
3034 if (di->call_data->flags & DCERPC_IS_NDR64) {
3035 ALIGN_TO_4_BYTES;
3038 return offset;
3042 /* IDL: struct { */
3043 /* IDL: lsa_String oem_information; */
3044 /* IDL: } */
3046 static int
3047 samr_dissect_element_DomOEMInformation_oem_information(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3049 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_DomOEMInformation_oem_information);
3051 return offset;
3055 samr_dissect_struct_DomOEMInformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
3057 proto_item *item = NULL;
3058 proto_tree *tree = NULL;
3059 int old_offset;
3061 ALIGN_TO_5_BYTES;
3063 old_offset = offset;
3065 if (parent_tree) {
3066 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3067 tree = proto_item_add_subtree(item, ett_samr_samr_DomOEMInformation);
3070 offset = samr_dissect_element_DomOEMInformation_oem_information(tvb, offset, pinfo, tree, di, drep);
3073 proto_item_set_len(item, offset-old_offset);
3076 if (di->call_data->flags & DCERPC_IS_NDR64) {
3077 ALIGN_TO_5_BYTES;
3080 return offset;
3084 /* IDL: struct { */
3085 /* IDL: lsa_String domain_name; */
3086 /* IDL: } */
3088 static int
3089 samr_dissect_element_DomInfo5_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3091 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_DomInfo5_domain_name);
3093 return offset;
3097 samr_dissect_struct_DomInfo5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
3099 proto_item *item = NULL;
3100 proto_tree *tree = NULL;
3101 int old_offset;
3103 ALIGN_TO_5_BYTES;
3105 old_offset = offset;
3107 if (parent_tree) {
3108 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3109 tree = proto_item_add_subtree(item, ett_samr_samr_DomInfo5);
3112 offset = samr_dissect_element_DomInfo5_domain_name(tvb, offset, pinfo, tree, di, drep);
3115 proto_item_set_len(item, offset-old_offset);
3118 if (di->call_data->flags & DCERPC_IS_NDR64) {
3119 ALIGN_TO_5_BYTES;
3122 return offset;
3126 /* IDL: struct { */
3127 /* IDL: lsa_String primary; */
3128 /* IDL: } */
3130 static int
3131 samr_dissect_element_DomInfo6_primary(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3133 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_DomInfo6_primary);
3135 return offset;
3139 samr_dissect_struct_DomInfo6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
3141 proto_item *item = NULL;
3142 proto_tree *tree = NULL;
3143 int old_offset;
3145 ALIGN_TO_5_BYTES;
3147 old_offset = offset;
3149 if (parent_tree) {
3150 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3151 tree = proto_item_add_subtree(item, ett_samr_samr_DomInfo6);
3154 offset = samr_dissect_element_DomInfo6_primary(tvb, offset, pinfo, tree, di, drep);
3157 proto_item_set_len(item, offset-old_offset);
3160 if (di->call_data->flags & DCERPC_IS_NDR64) {
3161 ALIGN_TO_5_BYTES;
3164 return offset;
3168 /* IDL: struct { */
3169 /* IDL: samr_Role role; */
3170 /* IDL: } */
3172 static int
3173 samr_dissect_element_DomInfo7_role(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3175 offset = samr_dissect_enum_Role(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DomInfo7_role, 0);
3177 return offset;
3181 samr_dissect_struct_DomInfo7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
3183 proto_item *item = NULL;
3184 proto_tree *tree = NULL;
3185 int old_offset;
3187 ALIGN_TO_4_BYTES;
3189 old_offset = offset;
3191 if (parent_tree) {
3192 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3193 tree = proto_item_add_subtree(item, ett_samr_samr_DomInfo7);
3196 offset = samr_dissect_element_DomInfo7_role(tvb, offset, pinfo, tree, di, drep);
3199 proto_item_set_len(item, offset-old_offset);
3202 if (di->call_data->flags & DCERPC_IS_NDR64) {
3203 ALIGN_TO_4_BYTES;
3206 return offset;
3210 /* IDL: struct { */
3211 /* IDL: hyper sequence_num; */
3212 /* IDL: NTTIME domain_create_time; */
3213 /* IDL: } */
3215 static int
3216 samr_dissect_element_DomInfo8_sequence_num(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3218 offset=cnf_dissect_hyper(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_DomInfo8_sequence_num);
3220 return offset;
3223 static int
3224 samr_dissect_element_DomInfo8_domain_create_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3226 offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DomInfo8_domain_create_time);
3228 return offset;
3232 samr_dissect_struct_DomInfo8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
3234 proto_item *item = NULL;
3235 proto_tree *tree = NULL;
3236 int old_offset;
3238 ALIGN_TO_8_BYTES;
3240 old_offset = offset;
3242 if (parent_tree) {
3243 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3244 tree = proto_item_add_subtree(item, ett_samr_samr_DomInfo8);
3247 offset = samr_dissect_element_DomInfo8_sequence_num(tvb, offset, pinfo, tree, di, drep);
3249 offset = samr_dissect_element_DomInfo8_domain_create_time(tvb, offset, pinfo, tree, di, drep);
3252 proto_item_set_len(item, offset-old_offset);
3255 if (di->call_data->flags & DCERPC_IS_NDR64) {
3256 ALIGN_TO_8_BYTES;
3259 return offset;
3263 /* IDL: struct { */
3264 /* IDL: samr_DomainServerState domain_server_state; */
3265 /* IDL: } */
3267 static int
3268 samr_dissect_element_DomInfo9_domain_server_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3270 offset = samr_dissect_enum_DomainServerState(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DomInfo9_domain_server_state, 0);
3272 return offset;
3276 samr_dissect_struct_DomInfo9(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
3278 proto_item *item = NULL;
3279 proto_tree *tree = NULL;
3280 int old_offset;
3282 ALIGN_TO_4_BYTES;
3284 old_offset = offset;
3286 if (parent_tree) {
3287 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3288 tree = proto_item_add_subtree(item, ett_samr_samr_DomInfo9);
3291 offset = samr_dissect_element_DomInfo9_domain_server_state(tvb, offset, pinfo, tree, di, drep);
3294 proto_item_set_len(item, offset-old_offset);
3297 if (di->call_data->flags & DCERPC_IS_NDR64) {
3298 ALIGN_TO_4_BYTES;
3301 return offset;
3305 /* IDL: struct { */
3306 /* IDL: samr_DomGeneralInformation general; */
3307 /* IDL: hyper lockout_duration; */
3308 /* IDL: hyper lockout_window; */
3309 /* IDL: uint16 lockout_threshold; */
3310 /* IDL: } */
3312 static int
3313 samr_dissect_element_DomGeneralInformation2_general(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3315 offset = samr_dissect_struct_DomGeneralInformation(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_DomGeneralInformation2_general,0);
3317 return offset;
3320 static int
3321 samr_dissect_element_DomGeneralInformation2_lockout_duration(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3323 offset=cnf_dissect_hyper(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_DomGeneralInformation2_lockout_duration);
3325 return offset;
3328 static int
3329 samr_dissect_element_DomGeneralInformation2_lockout_window(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3331 offset=cnf_dissect_hyper(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_DomGeneralInformation2_lockout_window);
3333 return offset;
3336 static int
3337 samr_dissect_element_DomGeneralInformation2_lockout_threshold(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3339 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DomGeneralInformation2_lockout_threshold, 0);
3341 return offset;
3345 samr_dissect_struct_DomGeneralInformation2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
3347 proto_item *item = NULL;
3348 proto_tree *tree = NULL;
3349 int old_offset;
3351 ALIGN_TO_8_BYTES;
3353 old_offset = offset;
3355 if (parent_tree) {
3356 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3357 tree = proto_item_add_subtree(item, ett_samr_samr_DomGeneralInformation2);
3360 offset = samr_dissect_element_DomGeneralInformation2_general(tvb, offset, pinfo, tree, di, drep);
3362 offset = samr_dissect_element_DomGeneralInformation2_lockout_duration(tvb, offset, pinfo, tree, di, drep);
3364 offset = samr_dissect_element_DomGeneralInformation2_lockout_window(tvb, offset, pinfo, tree, di, drep);
3366 offset = samr_dissect_element_DomGeneralInformation2_lockout_threshold(tvb, offset, pinfo, tree, di, drep);
3369 proto_item_set_len(item, offset-old_offset);
3372 if (di->call_data->flags & DCERPC_IS_NDR64) {
3373 ALIGN_TO_8_BYTES;
3376 return offset;
3380 /* IDL: struct { */
3381 /* IDL: hyper lockout_duration; */
3382 /* IDL: hyper lockout_window; */
3383 /* IDL: uint16 lockout_threshold; */
3384 /* IDL: } */
3386 static int
3387 samr_dissect_element_DomInfo12_lockout_duration(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3389 offset=cnf_dissect_hyper(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_DomInfo12_lockout_duration);
3391 return offset;
3394 static int
3395 samr_dissect_element_DomInfo12_lockout_window(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3397 offset=cnf_dissect_hyper(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_DomInfo12_lockout_window);
3399 return offset;
3402 static int
3403 samr_dissect_element_DomInfo12_lockout_threshold(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3405 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DomInfo12_lockout_threshold, 0);
3407 return offset;
3411 samr_dissect_struct_DomInfo12(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
3413 proto_item *item = NULL;
3414 proto_tree *tree = NULL;
3415 int old_offset;
3417 ALIGN_TO_8_BYTES;
3419 old_offset = offset;
3421 if (parent_tree) {
3422 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3423 tree = proto_item_add_subtree(item, ett_samr_samr_DomInfo12);
3426 offset = samr_dissect_element_DomInfo12_lockout_duration(tvb, offset, pinfo, tree, di, drep);
3428 offset = samr_dissect_element_DomInfo12_lockout_window(tvb, offset, pinfo, tree, di, drep);
3430 offset = samr_dissect_element_DomInfo12_lockout_threshold(tvb, offset, pinfo, tree, di, drep);
3433 proto_item_set_len(item, offset-old_offset);
3436 if (di->call_data->flags & DCERPC_IS_NDR64) {
3437 ALIGN_TO_8_BYTES;
3440 return offset;
3444 /* IDL: struct { */
3445 /* IDL: hyper sequence_num; */
3446 /* IDL: NTTIME domain_create_time; */
3447 /* IDL: hyper modified_count_at_last_promotion; */
3448 /* IDL: } */
3450 static int
3451 samr_dissect_element_DomInfo13_sequence_num(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3453 offset=cnf_dissect_hyper(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_DomInfo13_sequence_num);
3455 return offset;
3458 static int
3459 samr_dissect_element_DomInfo13_domain_create_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3461 offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DomInfo13_domain_create_time);
3463 return offset;
3466 static int
3467 samr_dissect_element_DomInfo13_modified_count_at_last_promotion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3469 offset=cnf_dissect_hyper(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_DomInfo13_modified_count_at_last_promotion);
3471 return offset;
3475 samr_dissect_struct_DomInfo13(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
3477 proto_item *item = NULL;
3478 proto_tree *tree = NULL;
3479 int old_offset;
3481 ALIGN_TO_8_BYTES;
3483 old_offset = offset;
3485 if (parent_tree) {
3486 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3487 tree = proto_item_add_subtree(item, ett_samr_samr_DomInfo13);
3490 offset = samr_dissect_element_DomInfo13_sequence_num(tvb, offset, pinfo, tree, di, drep);
3492 offset = samr_dissect_element_DomInfo13_domain_create_time(tvb, offset, pinfo, tree, di, drep);
3494 offset = samr_dissect_element_DomInfo13_modified_count_at_last_promotion(tvb, offset, pinfo, tree, di, drep);
3497 proto_item_set_len(item, offset-old_offset);
3500 if (di->call_data->flags & DCERPC_IS_NDR64) {
3501 ALIGN_TO_8_BYTES;
3504 return offset;
3508 /* IDL: [switch_type(uint16)] union { */
3509 /* IDL: [case(1)] [case(1)] samr_DomInfo1 info1; */
3510 /* IDL: [case(2)] [case(2)] samr_DomGeneralInformation general; */
3511 /* IDL: [case(3)] [case(3)] samr_DomInfo3 info3; */
3512 /* IDL: [case(4)] [case(4)] samr_DomOEMInformation oem; */
3513 /* IDL: [case(5)] [case(5)] samr_DomInfo5 info5; */
3514 /* IDL: [case(6)] [case(6)] samr_DomInfo6 info6; */
3515 /* IDL: [case(7)] [case(7)] samr_DomInfo7 info7; */
3516 /* IDL: [case(8)] [case(8)] samr_DomInfo8 info8; */
3517 /* IDL: [case(9)] [case(9)] samr_DomInfo9 info9; */
3518 /* IDL: [case(11)] [case(11)] samr_DomGeneralInformation2 general2; */
3519 /* IDL: [case(12)] [case(12)] samr_DomInfo12 info12; */
3520 /* IDL: [case(13)] [case(13)] samr_DomInfo13 info13; */
3521 /* IDL: } */
3523 static int
3524 samr_dissect_element_DomainInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3526 offset = samr_dissect_struct_DomInfo1(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_DomainInfo_info1,0);
3528 return offset;
3531 static int
3532 samr_dissect_element_DomainInfo_general(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3534 offset = samr_dissect_struct_DomGeneralInformation(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_DomainInfo_general,0);
3536 return offset;
3539 static int
3540 samr_dissect_element_DomainInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3542 offset = samr_dissect_struct_DomInfo3(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_DomainInfo_info3,0);
3544 return offset;
3547 static int
3548 samr_dissect_element_DomainInfo_oem(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3550 offset = samr_dissect_struct_DomOEMInformation(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_DomainInfo_oem,0);
3552 return offset;
3555 static int
3556 samr_dissect_element_DomainInfo_info5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3558 offset = samr_dissect_struct_DomInfo5(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_DomainInfo_info5,0);
3560 return offset;
3563 static int
3564 samr_dissect_element_DomainInfo_info6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3566 offset = samr_dissect_struct_DomInfo6(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_DomainInfo_info6,0);
3568 return offset;
3571 static int
3572 samr_dissect_element_DomainInfo_info7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3574 offset = samr_dissect_struct_DomInfo7(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_DomainInfo_info7,0);
3576 return offset;
3579 static int
3580 samr_dissect_element_DomainInfo_info8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3582 offset = samr_dissect_struct_DomInfo8(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_DomainInfo_info8,0);
3584 return offset;
3587 static int
3588 samr_dissect_element_DomainInfo_info9(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3590 offset = samr_dissect_struct_DomInfo9(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_DomainInfo_info9,0);
3592 return offset;
3595 static int
3596 samr_dissect_element_DomainInfo_general2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3598 offset = samr_dissect_struct_DomGeneralInformation2(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_DomainInfo_general2,0);
3600 return offset;
3603 static int
3604 samr_dissect_element_DomainInfo_info12(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3606 offset = samr_dissect_struct_DomInfo12(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_DomainInfo_info12,0);
3608 return offset;
3611 static int
3612 samr_dissect_element_DomainInfo_info13(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3614 offset = samr_dissect_struct_DomInfo13(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_DomainInfo_info13,0);
3616 return offset;
3619 static int
3620 samr_dissect_DomainInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
3622 proto_item *item = NULL;
3623 proto_tree *tree = NULL;
3624 int old_offset;
3625 uint16_t level;
3627 old_offset = offset;
3628 if (parent_tree) {
3629 tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_samr_samr_DomainInfo, &item, "samr_DomainInfo");
3632 UNION_ALIGN_TO_8_BYTES;
3633 offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
3634 UNION_ALIGN_TO_8_BYTES;
3636 switch(level) {
3637 case 1:
3638 offset = samr_dissect_element_DomainInfo_info1(tvb, offset, pinfo, tree, di, drep);
3639 break;
3641 case 2:
3642 offset = samr_dissect_element_DomainInfo_general(tvb, offset, pinfo, tree, di, drep);
3643 break;
3645 case 3:
3646 offset = samr_dissect_element_DomainInfo_info3(tvb, offset, pinfo, tree, di, drep);
3647 break;
3649 case 4:
3650 offset = samr_dissect_element_DomainInfo_oem(tvb, offset, pinfo, tree, di, drep);
3651 break;
3653 case 5:
3654 offset = samr_dissect_element_DomainInfo_info5(tvb, offset, pinfo, tree, di, drep);
3655 break;
3657 case 6:
3658 offset = samr_dissect_element_DomainInfo_info6(tvb, offset, pinfo, tree, di, drep);
3659 break;
3661 case 7:
3662 offset = samr_dissect_element_DomainInfo_info7(tvb, offset, pinfo, tree, di, drep);
3663 break;
3665 case 8:
3666 offset = samr_dissect_element_DomainInfo_info8(tvb, offset, pinfo, tree, di, drep);
3667 break;
3669 case 9:
3670 offset = samr_dissect_element_DomainInfo_info9(tvb, offset, pinfo, tree, di, drep);
3671 break;
3673 case 11:
3674 offset = samr_dissect_element_DomainInfo_general2(tvb, offset, pinfo, tree, di, drep);
3675 break;
3677 case 12:
3678 offset = samr_dissect_element_DomainInfo_info12(tvb, offset, pinfo, tree, di, drep);
3679 break;
3681 case 13:
3682 offset = samr_dissect_element_DomainInfo_info13(tvb, offset, pinfo, tree, di, drep);
3683 break;
3685 proto_item_set_len(item, offset-old_offset);
3688 return offset;
3691 /* IDL: struct { */
3692 /* IDL: [range(0,1024)] uint32 count; */
3693 /* IDL: [size_is(count)] [unique(1)] uint32 *ids; */
3694 /* IDL: } */
3696 static int
3697 samr_dissect_element_Ids_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3699 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_Ids_count, 0);
3701 return offset;
3704 static int
3705 samr_dissect_element_Ids_ids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3707 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_Ids_ids_, NDR_POINTER_UNIQUE, "Pointer to Ids (uint32)",hf_samr_rid);
3709 return offset;
3712 static int
3713 samr_dissect_element_Ids_ids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3715 struct ndr_generic_array nga = { .is_conformant = false, };
3717 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
3719 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, samr_dissect_element_Ids_ids__);
3721 return offset;
3724 static int
3725 samr_dissect_element_Ids_ids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3727 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_rid, 0);
3729 return offset;
3733 samr_dissect_struct_Ids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
3735 proto_item *item = NULL;
3736 proto_tree *tree = NULL;
3737 int old_offset;
3739 ALIGN_TO_5_BYTES;
3741 old_offset = offset;
3743 if (parent_tree) {
3744 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3745 tree = proto_item_add_subtree(item, ett_samr_samr_Ids);
3748 offset = samr_dissect_element_Ids_count(tvb, offset, pinfo, tree, di, drep);
3750 offset = samr_dissect_element_Ids_ids(tvb, offset, pinfo, tree, di, drep);
3753 proto_item_set_len(item, offset-old_offset);
3756 if (di->call_data->flags & DCERPC_IS_NDR64) {
3757 ALIGN_TO_5_BYTES;
3760 return offset;
3764 /* IDL: bitmap { */
3765 /* IDL: SE_GROUP_MANDATORY = 0x00000001 , */
3766 /* IDL: SE_GROUP_ENABLED_BY_DEFAULT = 0x00000002 , */
3767 /* IDL: SE_GROUP_ENABLED = 0x00000004 , */
3768 /* IDL: SE_GROUP_OWNER = 0x00000008 , */
3769 /* IDL: SE_GROUP_USE_FOR_DENY_ONLY = 0x00000010 , */
3770 /* IDL: SE_GROUP_RESOURCE = 0x20000000 , */
3771 /* IDL: SE_GROUP_LOGON_ID = 0xC0000000 , */
3772 /* IDL: } */
3775 samr_dissect_bitmap_GroupAttrs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
3777 proto_item *item;
3778 static int * const samr_samr_GroupAttrs_fields[] = {
3779 &hf_samr_samr_GroupAttrs_SE_GROUP_MANDATORY,
3780 &hf_samr_samr_GroupAttrs_SE_GROUP_ENABLED_BY_DEFAULT,
3781 &hf_samr_samr_GroupAttrs_SE_GROUP_ENABLED,
3782 &hf_samr_samr_GroupAttrs_SE_GROUP_OWNER,
3783 &hf_samr_samr_GroupAttrs_SE_GROUP_USE_FOR_DENY_ONLY,
3784 &hf_samr_samr_GroupAttrs_SE_GROUP_RESOURCE,
3785 &hf_samr_samr_GroupAttrs_SE_GROUP_LOGON_ID,
3786 NULL
3788 uint32_t flags;
3789 ALIGN_TO_4_BYTES;
3791 item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index,
3792 ett_samr_samr_GroupAttrs, samr_samr_GroupAttrs_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE);
3794 offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags);
3796 if (!flags)
3797 proto_item_append_text(item, ": (No values set)");
3799 if (flags & (~0xe000001f)) {
3800 flags &= (~0xe000001f);
3801 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
3804 return offset;
3808 /* IDL: struct { */
3809 /* IDL: lsa_String name; */
3810 /* IDL: samr_GroupAttrs attributes; */
3811 /* IDL: uint32 num_members; */
3812 /* IDL: lsa_String description; */
3813 /* IDL: } */
3815 static int
3816 samr_dissect_element_GroupInfoAll_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3818 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_GroupInfoAll_name);
3820 return offset;
3823 static int
3824 samr_dissect_element_GroupInfoAll_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3826 offset = samr_dissect_bitmap_GroupAttrs(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_GroupInfoAll_attributes, 0);
3828 return offset;
3831 static int
3832 samr_dissect_element_GroupInfoAll_num_members(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3834 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_GroupInfoAll_num_members, 0);
3836 return offset;
3839 static int
3840 samr_dissect_element_GroupInfoAll_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3842 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_GroupInfoAll_description);
3844 return offset;
3848 samr_dissect_struct_GroupInfoAll(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
3850 proto_item *item = NULL;
3851 proto_tree *tree = NULL;
3852 int old_offset;
3854 ALIGN_TO_5_BYTES;
3856 old_offset = offset;
3858 if (parent_tree) {
3859 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3860 tree = proto_item_add_subtree(item, ett_samr_samr_GroupInfoAll);
3863 offset = samr_dissect_element_GroupInfoAll_name(tvb, offset, pinfo, tree, di, drep);
3865 offset = samr_dissect_element_GroupInfoAll_attributes(tvb, offset, pinfo, tree, di, drep);
3867 offset = samr_dissect_element_GroupInfoAll_num_members(tvb, offset, pinfo, tree, di, drep);
3869 offset = samr_dissect_element_GroupInfoAll_description(tvb, offset, pinfo, tree, di, drep);
3872 proto_item_set_len(item, offset-old_offset);
3875 if (di->call_data->flags & DCERPC_IS_NDR64) {
3876 ALIGN_TO_5_BYTES;
3879 return offset;
3883 /* IDL: struct { */
3884 /* IDL: samr_GroupAttrs attributes; */
3885 /* IDL: } */
3887 static int
3888 samr_dissect_element_GroupInfoAttributes_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3890 offset = samr_dissect_bitmap_GroupAttrs(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_GroupInfoAttributes_attributes, 0);
3892 return offset;
3896 samr_dissect_struct_GroupInfoAttributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
3898 proto_item *item = NULL;
3899 proto_tree *tree = NULL;
3900 int old_offset;
3902 ALIGN_TO_4_BYTES;
3904 old_offset = offset;
3906 if (parent_tree) {
3907 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3908 tree = proto_item_add_subtree(item, ett_samr_samr_GroupInfoAttributes);
3911 offset = samr_dissect_element_GroupInfoAttributes_attributes(tvb, offset, pinfo, tree, di, drep);
3914 proto_item_set_len(item, offset-old_offset);
3917 if (di->call_data->flags & DCERPC_IS_NDR64) {
3918 ALIGN_TO_4_BYTES;
3921 return offset;
3925 /* IDL: struct { */
3926 /* IDL: lsa_String description; */
3927 /* IDL: } */
3929 static int
3930 samr_dissect_element_GroupInfoDescription_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3932 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_GroupInfoDescription_description);
3934 return offset;
3938 samr_dissect_struct_GroupInfoDescription(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
3940 proto_item *item = NULL;
3941 proto_tree *tree = NULL;
3942 int old_offset;
3944 ALIGN_TO_5_BYTES;
3946 old_offset = offset;
3948 if (parent_tree) {
3949 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3950 tree = proto_item_add_subtree(item, ett_samr_samr_GroupInfoDescription);
3953 offset = samr_dissect_element_GroupInfoDescription_description(tvb, offset, pinfo, tree, di, drep);
3956 proto_item_set_len(item, offset-old_offset);
3959 if (di->call_data->flags & DCERPC_IS_NDR64) {
3960 ALIGN_TO_5_BYTES;
3963 return offset;
3967 /* IDL: enum { */
3968 /* IDL: GROUPINFOALL=1, */
3969 /* IDL: GROUPINFONAME=2, */
3970 /* IDL: GROUPINFOATTRIBUTES=3, */
3971 /* IDL: GROUPINFODESCRIPTION=4, */
3972 /* IDL: GROUPINFOALL2=5, */
3973 /* IDL: } */
3976 samr_dissect_enum_GroupInfoEnum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t *param _U_)
3978 uint32_t parameter=0;
3979 if (param) {
3980 parameter = *param;
3982 offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
3983 if (param) {
3984 *param = parameter;
3986 return offset;
3990 /* IDL: [switch_type(samr_GroupInfoEnum)] union { */
3991 /* IDL: [case(GROUPINFOALL)] [case(GROUPINFOALL)] samr_GroupInfoAll all; */
3992 /* IDL: [case(GROUPINFONAME)] [case(GROUPINFONAME)] lsa_String name; */
3993 /* IDL: [case(GROUPINFOATTRIBUTES)] [case(GROUPINFOATTRIBUTES)] samr_GroupInfoAttributes attributes; */
3994 /* IDL: [case(GROUPINFODESCRIPTION)] [case(GROUPINFODESCRIPTION)] lsa_String description; */
3995 /* IDL: [case(GROUPINFOALL2)] [case(GROUPINFOALL2)] samr_GroupInfoAll all2; */
3996 /* IDL: } */
3998 static int
3999 samr_dissect_element_GroupInfo_all(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4001 offset = samr_dissect_struct_GroupInfoAll(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_GroupInfo_all,0);
4003 return offset;
4006 static int
4007 samr_dissect_element_GroupInfo_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4009 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_GroupInfo_name);
4011 return offset;
4014 static int
4015 samr_dissect_element_GroupInfo_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4017 offset = samr_dissect_struct_GroupInfoAttributes(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_GroupInfo_attributes,0);
4019 return offset;
4022 static int
4023 samr_dissect_element_GroupInfo_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4025 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_GroupInfo_description);
4027 return offset;
4030 static int
4031 samr_dissect_element_GroupInfo_all2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4033 offset = samr_dissect_struct_GroupInfoAll(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_GroupInfo_all2,0);
4035 return offset;
4038 static int
4039 samr_dissect_GroupInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
4041 proto_item *item = NULL;
4042 proto_tree *tree = NULL;
4043 int old_offset;
4044 uint32_t level;
4046 old_offset = offset;
4047 if (parent_tree) {
4048 tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_samr_samr_GroupInfo, &item, "samr_GroupInfo");
4051 UNION_ALIGN_TO_5_BYTES;
4052 offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
4053 UNION_ALIGN_TO_5_BYTES;
4055 switch(level) {
4056 case GROUPINFOALL:
4057 offset = samr_dissect_element_GroupInfo_all(tvb, offset, pinfo, tree, di, drep);
4058 break;
4060 case GROUPINFONAME:
4061 offset = samr_dissect_element_GroupInfo_name(tvb, offset, pinfo, tree, di, drep);
4062 break;
4064 case GROUPINFOATTRIBUTES:
4065 offset = samr_dissect_element_GroupInfo_attributes(tvb, offset, pinfo, tree, di, drep);
4066 break;
4068 case GROUPINFODESCRIPTION:
4069 offset = samr_dissect_element_GroupInfo_description(tvb, offset, pinfo, tree, di, drep);
4070 break;
4072 case GROUPINFOALL2:
4073 offset = samr_dissect_element_GroupInfo_all2(tvb, offset, pinfo, tree, di, drep);
4074 break;
4076 proto_item_set_len(item, offset-old_offset);
4079 return offset;
4082 /* IDL: struct { */
4083 /* IDL: uint32 count; */
4084 /* IDL: [size_is(count)] [unique(1)] uint32 *rids; */
4085 /* IDL: [size_is(count)] [unique(1)] uint32 *types; */
4086 /* IDL: } */
4088 static int
4089 samr_dissect_element_RidTypeArray_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4091 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_RidTypeArray_count, 0);
4093 return offset;
4096 static int
4097 samr_dissect_element_RidTypeArray_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4099 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_RidTypeArray_rids_, NDR_POINTER_UNIQUE, "Pointer to Rids (uint32)",hf_samr_rid);
4101 return offset;
4104 static int
4105 samr_dissect_element_RidTypeArray_rids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4107 struct ndr_generic_array nga = { .is_conformant = false, };
4109 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
4111 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, samr_dissect_element_RidTypeArray_rids__);
4113 return offset;
4116 static int
4117 samr_dissect_element_RidTypeArray_rids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4119 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_rid, 0);
4121 return offset;
4124 static int
4125 samr_dissect_element_RidTypeArray_types(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4127 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_RidTypeArray_types_, NDR_POINTER_UNIQUE, "Pointer to Types (uint32)",hf_samr_samr_RidTypeArray_types);
4129 return offset;
4132 static int
4133 samr_dissect_element_RidTypeArray_types_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4135 struct ndr_generic_array nga = { .is_conformant = false, };
4137 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
4139 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, samr_dissect_element_RidTypeArray_types__);
4141 return offset;
4144 static int
4145 samr_dissect_element_RidTypeArray_types__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4147 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_RidTypeArray_types, 0);
4149 return offset;
4153 samr_dissect_struct_RidTypeArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
4155 proto_item *item = NULL;
4156 proto_tree *tree = NULL;
4157 int old_offset;
4159 ALIGN_TO_5_BYTES;
4161 old_offset = offset;
4163 if (parent_tree) {
4164 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4165 tree = proto_item_add_subtree(item, ett_samr_samr_RidTypeArray);
4168 offset = samr_dissect_element_RidTypeArray_count(tvb, offset, pinfo, tree, di, drep);
4170 offset = samr_dissect_element_RidTypeArray_rids(tvb, offset, pinfo, tree, di, drep);
4172 offset = samr_dissect_element_RidTypeArray_types(tvb, offset, pinfo, tree, di, drep);
4175 proto_item_set_len(item, offset-old_offset);
4178 if (di->call_data->flags & DCERPC_IS_NDR64) {
4179 ALIGN_TO_5_BYTES;
4182 return offset;
4186 /* IDL: struct { */
4187 /* IDL: lsa_String name; */
4188 /* IDL: uint32 num_members; */
4189 /* IDL: lsa_String description; */
4190 /* IDL: } */
4192 static int
4193 samr_dissect_element_AliasInfoAll_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4195 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_AliasInfoAll_name);
4197 return offset;
4200 static int
4201 samr_dissect_element_AliasInfoAll_num_members(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4203 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_AliasInfoAll_num_members, 0);
4205 return offset;
4208 static int
4209 samr_dissect_element_AliasInfoAll_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4211 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_AliasInfoAll_description);
4213 return offset;
4217 samr_dissect_struct_AliasInfoAll(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
4219 proto_item *item = NULL;
4220 proto_tree *tree = NULL;
4221 int old_offset;
4223 ALIGN_TO_5_BYTES;
4225 old_offset = offset;
4227 if (parent_tree) {
4228 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4229 tree = proto_item_add_subtree(item, ett_samr_samr_AliasInfoAll);
4232 offset = samr_dissect_element_AliasInfoAll_name(tvb, offset, pinfo, tree, di, drep);
4234 offset = samr_dissect_element_AliasInfoAll_num_members(tvb, offset, pinfo, tree, di, drep);
4236 offset = samr_dissect_element_AliasInfoAll_description(tvb, offset, pinfo, tree, di, drep);
4239 proto_item_set_len(item, offset-old_offset);
4242 if (di->call_data->flags & DCERPC_IS_NDR64) {
4243 ALIGN_TO_5_BYTES;
4246 return offset;
4250 /* IDL: enum { */
4251 /* IDL: ALIASINFOALL=1, */
4252 /* IDL: ALIASINFONAME=2, */
4253 /* IDL: ALIASINFODESCRIPTION=3, */
4254 /* IDL: } */
4257 samr_dissect_enum_AliasInfoEnum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t *param _U_)
4259 uint32_t parameter=0;
4260 if (param) {
4261 parameter = *param;
4263 offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
4264 if (param) {
4265 *param = parameter;
4267 return offset;
4271 /* IDL: [switch_type(samr_AliasInfoEnum)] union { */
4272 /* IDL: [case(ALIASINFOALL)] [case(ALIASINFOALL)] samr_AliasInfoAll all; */
4273 /* IDL: [case(ALIASINFONAME)] [case(ALIASINFONAME)] lsa_String name; */
4274 /* IDL: [case(ALIASINFODESCRIPTION)] [case(ALIASINFODESCRIPTION)] lsa_String description; */
4275 /* IDL: } */
4277 static int
4278 samr_dissect_element_AliasInfo_all(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4280 offset = samr_dissect_struct_AliasInfoAll(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_AliasInfo_all,0);
4282 return offset;
4285 static int
4286 samr_dissect_element_AliasInfo_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4288 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_AliasInfo_name);
4290 return offset;
4293 static int
4294 samr_dissect_element_AliasInfo_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4296 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_AliasInfo_description);
4298 return offset;
4301 static int
4302 samr_dissect_AliasInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
4304 proto_item *item = NULL;
4305 proto_tree *tree = NULL;
4306 int old_offset;
4307 uint32_t level;
4309 old_offset = offset;
4310 if (parent_tree) {
4311 tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_samr_samr_AliasInfo, &item, "samr_AliasInfo");
4314 UNION_ALIGN_TO_5_BYTES;
4315 offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
4316 UNION_ALIGN_TO_5_BYTES;
4318 switch(level) {
4319 case ALIASINFOALL:
4320 offset = samr_dissect_element_AliasInfo_all(tvb, offset, pinfo, tree, di, drep);
4321 break;
4323 case ALIASINFONAME:
4324 offset = samr_dissect_element_AliasInfo_name(tvb, offset, pinfo, tree, di, drep);
4325 break;
4327 case ALIASINFODESCRIPTION:
4328 offset = samr_dissect_element_AliasInfo_description(tvb, offset, pinfo, tree, di, drep);
4329 break;
4331 proto_item_set_len(item, offset-old_offset);
4334 return offset;
4337 /* IDL: enum { */
4338 /* IDL: UserGeneralInformation=1, */
4339 /* IDL: UserPreferencesInformation=2, */
4340 /* IDL: UserLogonInformation=3, */
4341 /* IDL: UserLogonHoursInformation=4, */
4342 /* IDL: UserAccountInformation=5, */
4343 /* IDL: UserNameInformation=6, */
4344 /* IDL: UserAccountNameInformation=7, */
4345 /* IDL: UserFullNameInformation=8, */
4346 /* IDL: UserPrimaryGroupInformation=9, */
4347 /* IDL: UserHomeInformation=10, */
4348 /* IDL: UserScriptInformation=11, */
4349 /* IDL: UserProfileInformation=12, */
4350 /* IDL: UserAdminCommentInformation=13, */
4351 /* IDL: UserWorkStationsInformation=14, */
4352 /* IDL: UserControlInformation=16, */
4353 /* IDL: UserExpiresInformation=17, */
4354 /* IDL: UserInternal1Information=18, */
4355 /* IDL: UserParametersInformation=20, */
4356 /* IDL: UserAllInformation=21, */
4357 /* IDL: UserInternal4Information=23, */
4358 /* IDL: UserInternal5Information=24, */
4359 /* IDL: UserInternal4InformationNew=25, */
4360 /* IDL: UserInternal5InformationNew=26, */
4361 /* IDL: UserInternal7InformationNew=31, */
4362 /* IDL: UserInternal8InformationNew=32, */
4363 /* IDL: } */
4366 samr_dissect_enum_UserInfoLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t *param _U_)
4368 uint32_t parameter=0;
4369 if (param) {
4370 parameter = *param;
4372 offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
4373 if (param) {
4374 *param = parameter;
4376 return offset;
4380 /* IDL: struct { */
4381 /* IDL: lsa_String account_name; */
4382 /* IDL: lsa_String full_name; */
4383 /* IDL: uint32 primary_gid; */
4384 /* IDL: lsa_String description; */
4385 /* IDL: lsa_String comment; */
4386 /* IDL: } */
4388 static int
4389 samr_dissect_element_UserInfo1_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4391 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo1_account_name);
4393 return offset;
4396 static int
4397 samr_dissect_element_UserInfo1_full_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4399 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo1_full_name);
4401 return offset;
4404 static int
4405 samr_dissect_element_UserInfo1_primary_gid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4407 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo1_primary_gid, 0);
4409 return offset;
4412 static int
4413 samr_dissect_element_UserInfo1_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4415 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo1_description);
4417 return offset;
4420 static int
4421 samr_dissect_element_UserInfo1_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4423 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo1_comment);
4425 return offset;
4429 samr_dissect_struct_UserInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
4431 proto_item *item = NULL;
4432 proto_tree *tree = NULL;
4433 int old_offset;
4435 ALIGN_TO_5_BYTES;
4437 old_offset = offset;
4439 if (parent_tree) {
4440 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4441 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo1);
4444 offset = samr_dissect_element_UserInfo1_account_name(tvb, offset, pinfo, tree, di, drep);
4446 offset = samr_dissect_element_UserInfo1_full_name(tvb, offset, pinfo, tree, di, drep);
4448 offset = samr_dissect_element_UserInfo1_primary_gid(tvb, offset, pinfo, tree, di, drep);
4450 offset = samr_dissect_element_UserInfo1_description(tvb, offset, pinfo, tree, di, drep);
4452 offset = samr_dissect_element_UserInfo1_comment(tvb, offset, pinfo, tree, di, drep);
4455 proto_item_set_len(item, offset-old_offset);
4458 if (di->call_data->flags & DCERPC_IS_NDR64) {
4459 ALIGN_TO_5_BYTES;
4462 return offset;
4466 /* IDL: struct { */
4467 /* IDL: lsa_String comment; */
4468 /* IDL: lsa_String reserved; */
4469 /* IDL: uint16 country_code; */
4470 /* IDL: uint16 code_page; */
4471 /* IDL: } */
4473 static int
4474 samr_dissect_element_UserInfo2_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4476 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo2_comment);
4478 return offset;
4481 static int
4482 samr_dissect_element_UserInfo2_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4484 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo2_reserved);
4486 return offset;
4489 static int
4490 samr_dissect_element_UserInfo2_country_code(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4492 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo2_country_code, 0);
4494 return offset;
4497 static int
4498 samr_dissect_element_UserInfo2_code_page(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4500 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo2_code_page, 0);
4502 return offset;
4506 samr_dissect_struct_UserInfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
4508 proto_item *item = NULL;
4509 proto_tree *tree = NULL;
4510 int old_offset;
4512 ALIGN_TO_5_BYTES;
4514 old_offset = offset;
4516 if (parent_tree) {
4517 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4518 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo2);
4521 offset = samr_dissect_element_UserInfo2_comment(tvb, offset, pinfo, tree, di, drep);
4523 offset = samr_dissect_element_UserInfo2_reserved(tvb, offset, pinfo, tree, di, drep);
4525 offset = samr_dissect_element_UserInfo2_country_code(tvb, offset, pinfo, tree, di, drep);
4527 offset = samr_dissect_element_UserInfo2_code_page(tvb, offset, pinfo, tree, di, drep);
4530 proto_item_set_len(item, offset-old_offset);
4533 if (di->call_data->flags & DCERPC_IS_NDR64) {
4534 ALIGN_TO_5_BYTES;
4537 return offset;
4541 /* IDL: struct { */
4542 /* IDL: uint16 units_per_week; */
4543 /* IDL: [length_is(units_per_week/8)] [size_is(1260)] [unique(1)] uint8 *bits; */
4544 /* IDL: } */
4546 static int
4547 samr_dissect_element_LogonHours_units_per_week(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4549 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_LogonHours_units_per_week, 0);
4551 return offset;
4554 static int
4555 samr_dissect_element_LogonHours_bits(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4557 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_LogonHours_bits_, NDR_POINTER_UNIQUE, "Pointer to Bits (uint8)",hf_samr_samr_LogonHours_bits);
4559 return offset;
4562 static int
4563 samr_dissect_element_LogonHours_bits_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4565 struct ndr_generic_array nga = { .is_conformant = false, };
4567 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
4569 offset = dissect_ndr_varying_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
4571 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, samr_dissect_element_LogonHours_bits__);
4573 return offset;
4576 static int
4577 samr_dissect_element_LogonHours_bits__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4579 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_LogonHours_bits, 0);
4581 return offset;
4585 samr_dissect_struct_LogonHours(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
4587 proto_item *item = NULL;
4588 proto_tree *tree = NULL;
4589 int old_offset;
4591 ALIGN_TO_5_BYTES;
4593 old_offset = offset;
4595 if (parent_tree) {
4596 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4597 tree = proto_item_add_subtree(item, ett_samr_samr_LogonHours);
4600 offset = samr_dissect_element_LogonHours_units_per_week(tvb, offset, pinfo, tree, di, drep);
4602 offset = samr_dissect_element_LogonHours_bits(tvb, offset, pinfo, tree, di, drep);
4605 proto_item_set_len(item, offset-old_offset);
4608 if (di->call_data->flags & DCERPC_IS_NDR64) {
4609 ALIGN_TO_5_BYTES;
4612 return offset;
4616 /* IDL: struct { */
4617 /* IDL: lsa_String account_name; */
4618 /* IDL: lsa_String full_name; */
4619 /* IDL: uint32 rid; */
4620 /* IDL: uint32 primary_gid; */
4621 /* IDL: lsa_String home_directory; */
4622 /* IDL: lsa_String home_drive; */
4623 /* IDL: lsa_String logon_script; */
4624 /* IDL: lsa_String profile_path; */
4625 /* IDL: lsa_String workstations; */
4626 /* IDL: NTTIME last_logon; */
4627 /* IDL: NTTIME last_logoff; */
4628 /* IDL: NTTIME last_password_change; */
4629 /* IDL: NTTIME allow_password_change; */
4630 /* IDL: NTTIME force_password_change; */
4631 /* IDL: samr_LogonHours logon_hours; */
4632 /* IDL: uint16 bad_password_count; */
4633 /* IDL: uint16 logon_count; */
4634 /* IDL: samr_AcctFlags acct_flags; */
4635 /* IDL: } */
4637 static int
4638 samr_dissect_element_UserInfo3_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4640 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo3_account_name);
4642 return offset;
4645 static int
4646 samr_dissect_element_UserInfo3_full_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4648 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo3_full_name);
4650 return offset;
4653 static int
4654 samr_dissect_element_UserInfo3_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4656 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_rid, 0);
4658 return offset;
4661 static int
4662 samr_dissect_element_UserInfo3_primary_gid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4664 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo3_primary_gid, 0);
4666 return offset;
4669 static int
4670 samr_dissect_element_UserInfo3_home_directory(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4672 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo3_home_directory);
4674 return offset;
4677 static int
4678 samr_dissect_element_UserInfo3_home_drive(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4680 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo3_home_drive);
4682 return offset;
4685 static int
4686 samr_dissect_element_UserInfo3_logon_script(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4688 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo3_logon_script);
4690 return offset;
4693 static int
4694 samr_dissect_element_UserInfo3_profile_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4696 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo3_profile_path);
4698 return offset;
4701 static int
4702 samr_dissect_element_UserInfo3_workstations(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4704 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo3_workstations);
4706 return offset;
4709 static int
4710 samr_dissect_element_UserInfo3_last_logon(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4712 offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo3_last_logon);
4714 return offset;
4717 static int
4718 samr_dissect_element_UserInfo3_last_logoff(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4720 offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo3_last_logoff);
4722 return offset;
4725 static int
4726 samr_dissect_element_UserInfo3_last_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4728 offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo3_last_password_change);
4730 return offset;
4733 static int
4734 samr_dissect_element_UserInfo3_allow_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4736 offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo3_allow_password_change);
4738 return offset;
4741 static int
4742 samr_dissect_element_UserInfo3_force_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4744 offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo3_force_password_change);
4746 return offset;
4749 static int
4750 samr_dissect_element_UserInfo3_logon_hours(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4752 offset = samr_dissect_struct_LogonHours(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo3_logon_hours,0);
4754 return offset;
4757 static int
4758 samr_dissect_element_UserInfo3_bad_password_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4760 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo3_bad_password_count, 0);
4762 return offset;
4765 static int
4766 samr_dissect_element_UserInfo3_logon_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4768 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo3_logon_count, 0);
4770 return offset;
4773 static int
4774 samr_dissect_element_UserInfo3_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4776 offset = samr_dissect_bitmap_AcctFlags(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo3_acct_flags, 0);
4778 return offset;
4782 samr_dissect_struct_UserInfo3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
4784 proto_item *item = NULL;
4785 proto_tree *tree = NULL;
4786 int old_offset;
4788 ALIGN_TO_5_BYTES;
4790 old_offset = offset;
4792 if (parent_tree) {
4793 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4794 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo3);
4797 offset = samr_dissect_element_UserInfo3_account_name(tvb, offset, pinfo, tree, di, drep);
4799 offset = samr_dissect_element_UserInfo3_full_name(tvb, offset, pinfo, tree, di, drep);
4801 offset = samr_dissect_element_UserInfo3_rid(tvb, offset, pinfo, tree, di, drep);
4803 offset = samr_dissect_element_UserInfo3_primary_gid(tvb, offset, pinfo, tree, di, drep);
4805 offset = samr_dissect_element_UserInfo3_home_directory(tvb, offset, pinfo, tree, di, drep);
4807 offset = samr_dissect_element_UserInfo3_home_drive(tvb, offset, pinfo, tree, di, drep);
4809 offset = samr_dissect_element_UserInfo3_logon_script(tvb, offset, pinfo, tree, di, drep);
4811 offset = samr_dissect_element_UserInfo3_profile_path(tvb, offset, pinfo, tree, di, drep);
4813 offset = samr_dissect_element_UserInfo3_workstations(tvb, offset, pinfo, tree, di, drep);
4815 offset = samr_dissect_element_UserInfo3_last_logon(tvb, offset, pinfo, tree, di, drep);
4817 offset = samr_dissect_element_UserInfo3_last_logoff(tvb, offset, pinfo, tree, di, drep);
4819 offset = samr_dissect_element_UserInfo3_last_password_change(tvb, offset, pinfo, tree, di, drep);
4821 offset = samr_dissect_element_UserInfo3_allow_password_change(tvb, offset, pinfo, tree, di, drep);
4823 offset = samr_dissect_element_UserInfo3_force_password_change(tvb, offset, pinfo, tree, di, drep);
4825 offset = samr_dissect_element_UserInfo3_logon_hours(tvb, offset, pinfo, tree, di, drep);
4827 offset = samr_dissect_element_UserInfo3_bad_password_count(tvb, offset, pinfo, tree, di, drep);
4829 offset = samr_dissect_element_UserInfo3_logon_count(tvb, offset, pinfo, tree, di, drep);
4831 offset = samr_dissect_element_UserInfo3_acct_flags(tvb, offset, pinfo, tree, di, drep);
4834 proto_item_set_len(item, offset-old_offset);
4837 if (di->call_data->flags & DCERPC_IS_NDR64) {
4838 ALIGN_TO_5_BYTES;
4841 return offset;
4845 /* IDL: struct { */
4846 /* IDL: samr_LogonHours logon_hours; */
4847 /* IDL: } */
4849 static int
4850 samr_dissect_element_UserInfo4_logon_hours(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4852 offset = samr_dissect_struct_LogonHours(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo4_logon_hours,0);
4854 return offset;
4858 samr_dissect_struct_UserInfo4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
4860 proto_item *item = NULL;
4861 proto_tree *tree = NULL;
4862 int old_offset;
4864 ALIGN_TO_5_BYTES;
4866 old_offset = offset;
4868 if (parent_tree) {
4869 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4870 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo4);
4873 offset = samr_dissect_element_UserInfo4_logon_hours(tvb, offset, pinfo, tree, di, drep);
4876 proto_item_set_len(item, offset-old_offset);
4879 if (di->call_data->flags & DCERPC_IS_NDR64) {
4880 ALIGN_TO_5_BYTES;
4883 return offset;
4887 /* IDL: struct { */
4888 /* IDL: lsa_String account_name; */
4889 /* IDL: lsa_String full_name; */
4890 /* IDL: uint32 rid; */
4891 /* IDL: uint32 primary_gid; */
4892 /* IDL: lsa_String home_directory; */
4893 /* IDL: lsa_String home_drive; */
4894 /* IDL: lsa_String logon_script; */
4895 /* IDL: lsa_String profile_path; */
4896 /* IDL: lsa_String description; */
4897 /* IDL: lsa_String workstations; */
4898 /* IDL: NTTIME last_logon; */
4899 /* IDL: NTTIME last_logoff; */
4900 /* IDL: samr_LogonHours logon_hours; */
4901 /* IDL: uint16 bad_password_count; */
4902 /* IDL: uint16 logon_count; */
4903 /* IDL: NTTIME last_password_change; */
4904 /* IDL: NTTIME acct_expiry; */
4905 /* IDL: samr_AcctFlags acct_flags; */
4906 /* IDL: } */
4908 static int
4909 samr_dissect_element_UserInfo5_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4911 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo5_account_name);
4913 return offset;
4916 static int
4917 samr_dissect_element_UserInfo5_full_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4919 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo5_full_name);
4921 return offset;
4924 static int
4925 samr_dissect_element_UserInfo5_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4927 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_rid, 0);
4929 return offset;
4932 static int
4933 samr_dissect_element_UserInfo5_primary_gid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4935 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo5_primary_gid, 0);
4937 return offset;
4940 static int
4941 samr_dissect_element_UserInfo5_home_directory(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4943 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo5_home_directory);
4945 return offset;
4948 static int
4949 samr_dissect_element_UserInfo5_home_drive(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4951 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo5_home_drive);
4953 return offset;
4956 static int
4957 samr_dissect_element_UserInfo5_logon_script(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4959 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo5_logon_script);
4961 return offset;
4964 static int
4965 samr_dissect_element_UserInfo5_profile_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4967 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo5_profile_path);
4969 return offset;
4972 static int
4973 samr_dissect_element_UserInfo5_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4975 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo5_description);
4977 return offset;
4980 static int
4981 samr_dissect_element_UserInfo5_workstations(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4983 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo5_workstations);
4985 return offset;
4988 static int
4989 samr_dissect_element_UserInfo5_last_logon(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4991 offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo5_last_logon);
4993 return offset;
4996 static int
4997 samr_dissect_element_UserInfo5_last_logoff(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4999 offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo5_last_logoff);
5001 return offset;
5004 static int
5005 samr_dissect_element_UserInfo5_logon_hours(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5007 offset = samr_dissect_struct_LogonHours(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo5_logon_hours,0);
5009 return offset;
5012 static int
5013 samr_dissect_element_UserInfo5_bad_password_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5015 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo5_bad_password_count, 0);
5017 return offset;
5020 static int
5021 samr_dissect_element_UserInfo5_logon_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5023 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo5_logon_count, 0);
5025 return offset;
5028 static int
5029 samr_dissect_element_UserInfo5_last_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5031 offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo5_last_password_change);
5033 return offset;
5036 static int
5037 samr_dissect_element_UserInfo5_acct_expiry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5039 offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo5_acct_expiry);
5041 return offset;
5044 static int
5045 samr_dissect_element_UserInfo5_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5047 offset = samr_dissect_bitmap_AcctFlags(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo5_acct_flags, 0);
5049 return offset;
5053 samr_dissect_struct_UserInfo5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
5055 proto_item *item = NULL;
5056 proto_tree *tree = NULL;
5057 int old_offset;
5059 ALIGN_TO_5_BYTES;
5061 old_offset = offset;
5063 if (parent_tree) {
5064 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5065 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo5);
5068 offset = samr_dissect_element_UserInfo5_account_name(tvb, offset, pinfo, tree, di, drep);
5070 offset = samr_dissect_element_UserInfo5_full_name(tvb, offset, pinfo, tree, di, drep);
5072 offset = samr_dissect_element_UserInfo5_rid(tvb, offset, pinfo, tree, di, drep);
5074 offset = samr_dissect_element_UserInfo5_primary_gid(tvb, offset, pinfo, tree, di, drep);
5076 offset = samr_dissect_element_UserInfo5_home_directory(tvb, offset, pinfo, tree, di, drep);
5078 offset = samr_dissect_element_UserInfo5_home_drive(tvb, offset, pinfo, tree, di, drep);
5080 offset = samr_dissect_element_UserInfo5_logon_script(tvb, offset, pinfo, tree, di, drep);
5082 offset = samr_dissect_element_UserInfo5_profile_path(tvb, offset, pinfo, tree, di, drep);
5084 offset = samr_dissect_element_UserInfo5_description(tvb, offset, pinfo, tree, di, drep);
5086 offset = samr_dissect_element_UserInfo5_workstations(tvb, offset, pinfo, tree, di, drep);
5088 offset = samr_dissect_element_UserInfo5_last_logon(tvb, offset, pinfo, tree, di, drep);
5090 offset = samr_dissect_element_UserInfo5_last_logoff(tvb, offset, pinfo, tree, di, drep);
5092 offset = samr_dissect_element_UserInfo5_logon_hours(tvb, offset, pinfo, tree, di, drep);
5094 offset = samr_dissect_element_UserInfo5_bad_password_count(tvb, offset, pinfo, tree, di, drep);
5096 offset = samr_dissect_element_UserInfo5_logon_count(tvb, offset, pinfo, tree, di, drep);
5098 offset = samr_dissect_element_UserInfo5_last_password_change(tvb, offset, pinfo, tree, di, drep);
5100 offset = samr_dissect_element_UserInfo5_acct_expiry(tvb, offset, pinfo, tree, di, drep);
5102 offset = samr_dissect_element_UserInfo5_acct_flags(tvb, offset, pinfo, tree, di, drep);
5105 proto_item_set_len(item, offset-old_offset);
5108 if (di->call_data->flags & DCERPC_IS_NDR64) {
5109 ALIGN_TO_5_BYTES;
5112 return offset;
5116 /* IDL: struct { */
5117 /* IDL: lsa_String account_name; */
5118 /* IDL: lsa_String full_name; */
5119 /* IDL: } */
5121 static int
5122 samr_dissect_element_UserInfo6_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5124 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo6_account_name);
5126 return offset;
5129 static int
5130 samr_dissect_element_UserInfo6_full_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5132 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo6_full_name);
5134 return offset;
5138 samr_dissect_struct_UserInfo6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
5140 proto_item *item = NULL;
5141 proto_tree *tree = NULL;
5142 int old_offset;
5144 ALIGN_TO_5_BYTES;
5146 old_offset = offset;
5148 if (parent_tree) {
5149 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5150 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo6);
5153 offset = samr_dissect_element_UserInfo6_account_name(tvb, offset, pinfo, tree, di, drep);
5155 offset = samr_dissect_element_UserInfo6_full_name(tvb, offset, pinfo, tree, di, drep);
5158 proto_item_set_len(item, offset-old_offset);
5161 if (di->call_data->flags & DCERPC_IS_NDR64) {
5162 ALIGN_TO_5_BYTES;
5165 return offset;
5169 /* IDL: struct { */
5170 /* IDL: lsa_String account_name; */
5171 /* IDL: } */
5173 static int
5174 samr_dissect_element_UserInfo7_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5176 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo7_account_name);
5178 return offset;
5182 samr_dissect_struct_UserInfo7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
5184 proto_item *item = NULL;
5185 proto_tree *tree = NULL;
5186 int old_offset;
5188 ALIGN_TO_5_BYTES;
5190 old_offset = offset;
5192 if (parent_tree) {
5193 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5194 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo7);
5197 offset = samr_dissect_element_UserInfo7_account_name(tvb, offset, pinfo, tree, di, drep);
5200 proto_item_set_len(item, offset-old_offset);
5203 if (di->call_data->flags & DCERPC_IS_NDR64) {
5204 ALIGN_TO_5_BYTES;
5207 return offset;
5211 /* IDL: struct { */
5212 /* IDL: lsa_String full_name; */
5213 /* IDL: } */
5215 static int
5216 samr_dissect_element_UserInfo8_full_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5218 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo8_full_name);
5220 return offset;
5224 samr_dissect_struct_UserInfo8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
5226 proto_item *item = NULL;
5227 proto_tree *tree = NULL;
5228 int old_offset;
5230 ALIGN_TO_5_BYTES;
5232 old_offset = offset;
5234 if (parent_tree) {
5235 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5236 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo8);
5239 offset = samr_dissect_element_UserInfo8_full_name(tvb, offset, pinfo, tree, di, drep);
5242 proto_item_set_len(item, offset-old_offset);
5245 if (di->call_data->flags & DCERPC_IS_NDR64) {
5246 ALIGN_TO_5_BYTES;
5249 return offset;
5253 /* IDL: struct { */
5254 /* IDL: uint32 primary_gid; */
5255 /* IDL: } */
5257 static int
5258 samr_dissect_element_UserInfo9_primary_gid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5260 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo9_primary_gid, 0);
5262 return offset;
5266 samr_dissect_struct_UserInfo9(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
5268 proto_item *item = NULL;
5269 proto_tree *tree = NULL;
5270 int old_offset;
5272 ALIGN_TO_4_BYTES;
5274 old_offset = offset;
5276 if (parent_tree) {
5277 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5278 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo9);
5281 offset = samr_dissect_element_UserInfo9_primary_gid(tvb, offset, pinfo, tree, di, drep);
5284 proto_item_set_len(item, offset-old_offset);
5287 if (di->call_data->flags & DCERPC_IS_NDR64) {
5288 ALIGN_TO_4_BYTES;
5291 return offset;
5295 /* IDL: struct { */
5296 /* IDL: lsa_String home_directory; */
5297 /* IDL: lsa_String home_drive; */
5298 /* IDL: } */
5300 static int
5301 samr_dissect_element_UserInfo10_home_directory(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5303 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo10_home_directory);
5305 return offset;
5308 static int
5309 samr_dissect_element_UserInfo10_home_drive(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5311 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo10_home_drive);
5313 return offset;
5317 samr_dissect_struct_UserInfo10(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
5319 proto_item *item = NULL;
5320 proto_tree *tree = NULL;
5321 int old_offset;
5323 ALIGN_TO_5_BYTES;
5325 old_offset = offset;
5327 if (parent_tree) {
5328 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5329 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo10);
5332 offset = samr_dissect_element_UserInfo10_home_directory(tvb, offset, pinfo, tree, di, drep);
5334 offset = samr_dissect_element_UserInfo10_home_drive(tvb, offset, pinfo, tree, di, drep);
5337 proto_item_set_len(item, offset-old_offset);
5340 if (di->call_data->flags & DCERPC_IS_NDR64) {
5341 ALIGN_TO_5_BYTES;
5344 return offset;
5348 /* IDL: struct { */
5349 /* IDL: lsa_String logon_script; */
5350 /* IDL: } */
5352 static int
5353 samr_dissect_element_UserInfo11_logon_script(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5355 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo11_logon_script);
5357 return offset;
5361 samr_dissect_struct_UserInfo11(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
5363 proto_item *item = NULL;
5364 proto_tree *tree = NULL;
5365 int old_offset;
5367 ALIGN_TO_5_BYTES;
5369 old_offset = offset;
5371 if (parent_tree) {
5372 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5373 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo11);
5376 offset = samr_dissect_element_UserInfo11_logon_script(tvb, offset, pinfo, tree, di, drep);
5379 proto_item_set_len(item, offset-old_offset);
5382 if (di->call_data->flags & DCERPC_IS_NDR64) {
5383 ALIGN_TO_5_BYTES;
5386 return offset;
5390 /* IDL: struct { */
5391 /* IDL: lsa_String profile_path; */
5392 /* IDL: } */
5394 static int
5395 samr_dissect_element_UserInfo12_profile_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5397 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo12_profile_path);
5399 return offset;
5403 samr_dissect_struct_UserInfo12(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
5405 proto_item *item = NULL;
5406 proto_tree *tree = NULL;
5407 int old_offset;
5409 ALIGN_TO_5_BYTES;
5411 old_offset = offset;
5413 if (parent_tree) {
5414 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5415 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo12);
5418 offset = samr_dissect_element_UserInfo12_profile_path(tvb, offset, pinfo, tree, di, drep);
5421 proto_item_set_len(item, offset-old_offset);
5424 if (di->call_data->flags & DCERPC_IS_NDR64) {
5425 ALIGN_TO_5_BYTES;
5428 return offset;
5432 /* IDL: struct { */
5433 /* IDL: lsa_String description; */
5434 /* IDL: } */
5436 static int
5437 samr_dissect_element_UserInfo13_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5439 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo13_description);
5441 return offset;
5445 samr_dissect_struct_UserInfo13(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
5447 proto_item *item = NULL;
5448 proto_tree *tree = NULL;
5449 int old_offset;
5451 ALIGN_TO_5_BYTES;
5453 old_offset = offset;
5455 if (parent_tree) {
5456 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5457 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo13);
5460 offset = samr_dissect_element_UserInfo13_description(tvb, offset, pinfo, tree, di, drep);
5463 proto_item_set_len(item, offset-old_offset);
5466 if (di->call_data->flags & DCERPC_IS_NDR64) {
5467 ALIGN_TO_5_BYTES;
5470 return offset;
5474 /* IDL: struct { */
5475 /* IDL: lsa_String workstations; */
5476 /* IDL: } */
5478 static int
5479 samr_dissect_element_UserInfo14_workstations(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5481 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo14_workstations);
5483 return offset;
5487 samr_dissect_struct_UserInfo14(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
5489 proto_item *item = NULL;
5490 proto_tree *tree = NULL;
5491 int old_offset;
5493 ALIGN_TO_5_BYTES;
5495 old_offset = offset;
5497 if (parent_tree) {
5498 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5499 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo14);
5502 offset = samr_dissect_element_UserInfo14_workstations(tvb, offset, pinfo, tree, di, drep);
5505 proto_item_set_len(item, offset-old_offset);
5508 if (di->call_data->flags & DCERPC_IS_NDR64) {
5509 ALIGN_TO_5_BYTES;
5512 return offset;
5516 /* IDL: struct { */
5517 /* IDL: samr_AcctFlags acct_flags; */
5518 /* IDL: } */
5520 static int
5521 samr_dissect_element_UserInfo16_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5523 offset = samr_dissect_bitmap_AcctFlags(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo16_acct_flags, 0);
5525 return offset;
5529 samr_dissect_struct_UserInfo16(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
5531 proto_item *item = NULL;
5532 proto_tree *tree = NULL;
5533 int old_offset;
5535 ALIGN_TO_4_BYTES;
5537 old_offset = offset;
5539 if (parent_tree) {
5540 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5541 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo16);
5544 offset = samr_dissect_element_UserInfo16_acct_flags(tvb, offset, pinfo, tree, di, drep);
5547 proto_item_set_len(item, offset-old_offset);
5550 if (di->call_data->flags & DCERPC_IS_NDR64) {
5551 ALIGN_TO_4_BYTES;
5554 return offset;
5558 /* IDL: struct { */
5559 /* IDL: NTTIME acct_expiry; */
5560 /* IDL: } */
5562 static int
5563 samr_dissect_element_UserInfo17_acct_expiry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5565 offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo17_acct_expiry);
5567 return offset;
5571 samr_dissect_struct_UserInfo17(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
5573 proto_item *item = NULL;
5574 proto_tree *tree = NULL;
5575 int old_offset;
5577 ALIGN_TO_4_BYTES;
5579 old_offset = offset;
5581 if (parent_tree) {
5582 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5583 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo17);
5586 offset = samr_dissect_element_UserInfo17_acct_expiry(tvb, offset, pinfo, tree, di, drep);
5589 proto_item_set_len(item, offset-old_offset);
5592 if (di->call_data->flags & DCERPC_IS_NDR64) {
5593 ALIGN_TO_4_BYTES;
5596 return offset;
5600 /* IDL: struct { */
5601 /* IDL: uint8 hash[16]; */
5602 /* IDL: } */
5604 static int
5605 samr_dissect_element_Password_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5607 int i;
5608 for (i = 0; i < 16; i++)
5609 offset = samr_dissect_element_Password_hash_(tvb, offset, pinfo, tree, di, drep);
5611 return offset;
5614 static int
5615 samr_dissect_element_Password_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5617 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_Password_hash, 0);
5619 return offset;
5623 samr_dissect_struct_Password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
5625 proto_item *item = NULL;
5626 proto_tree *tree = NULL;
5627 int old_offset;
5629 old_offset = offset;
5631 if (parent_tree) {
5632 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5633 tree = proto_item_add_subtree(item, ett_samr_samr_Password);
5636 offset = samr_dissect_element_Password_hash(tvb, offset, pinfo, tree, di, drep);
5639 proto_item_set_len(item, offset-old_offset);
5642 return offset;
5646 /* IDL: struct { */
5647 /* IDL: samr_Password nt_pwd; */
5648 /* IDL: samr_Password lm_pwd; */
5649 /* IDL: uint8 nt_pwd_active; */
5650 /* IDL: uint8 lm_pwd_active; */
5651 /* IDL: uint8 password_expired; */
5652 /* IDL: } */
5654 static int
5655 samr_dissect_element_UserInfo18_nt_pwd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5657 offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo18_nt_pwd,0);
5659 return offset;
5662 static int
5663 samr_dissect_element_UserInfo18_lm_pwd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5665 offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo18_lm_pwd,0);
5667 return offset;
5670 static int
5671 samr_dissect_element_UserInfo18_nt_pwd_active(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5673 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo18_nt_pwd_active, 0);
5675 return offset;
5678 static int
5679 samr_dissect_element_UserInfo18_lm_pwd_active(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5681 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo18_lm_pwd_active, 0);
5683 return offset;
5686 static int
5687 samr_dissect_element_UserInfo18_password_expired(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5689 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo18_password_expired, 0);
5691 return offset;
5695 samr_dissect_struct_UserInfo18(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
5697 proto_item *item = NULL;
5698 proto_tree *tree = NULL;
5699 int old_offset;
5701 old_offset = offset;
5703 if (parent_tree) {
5704 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5705 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo18);
5708 offset = samr_dissect_element_UserInfo18_nt_pwd(tvb, offset, pinfo, tree, di, drep);
5710 offset = samr_dissect_element_UserInfo18_lm_pwd(tvb, offset, pinfo, tree, di, drep);
5712 offset = samr_dissect_element_UserInfo18_nt_pwd_active(tvb, offset, pinfo, tree, di, drep);
5714 offset = samr_dissect_element_UserInfo18_lm_pwd_active(tvb, offset, pinfo, tree, di, drep);
5716 offset = samr_dissect_element_UserInfo18_password_expired(tvb, offset, pinfo, tree, di, drep);
5719 proto_item_set_len(item, offset-old_offset);
5722 return offset;
5726 /* IDL: struct { */
5727 /* IDL: lsa_BinaryString parameters; */
5728 /* IDL: } */
5730 static int
5731 samr_dissect_element_UserInfo20_parameters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5733 offset=lsarpc_dissect_struct_lsa_BinaryString(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo20_parameters, 0);
5735 return offset;
5739 samr_dissect_struct_UserInfo20(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
5741 proto_item *item = NULL;
5742 proto_tree *tree = NULL;
5743 int old_offset;
5745 ALIGN_TO_5_BYTES;
5747 old_offset = offset;
5749 if (parent_tree) {
5750 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5751 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo20);
5754 offset = samr_dissect_element_UserInfo20_parameters(tvb, offset, pinfo, tree, di, drep);
5757 proto_item_set_len(item, offset-old_offset);
5760 if (di->call_data->flags & DCERPC_IS_NDR64) {
5761 ALIGN_TO_5_BYTES;
5764 return offset;
5768 /* IDL: bitmap { */
5769 /* IDL: SAMR_FIELD_ACCOUNT_NAME = 0x00000001 , */
5770 /* IDL: SAMR_FIELD_FULL_NAME = 0x00000002 , */
5771 /* IDL: SAMR_FIELD_RID = 0x00000004 , */
5772 /* IDL: SAMR_FIELD_PRIMARY_GID = 0x00000008 , */
5773 /* IDL: SAMR_FIELD_DESCRIPTION = 0x00000010 , */
5774 /* IDL: SAMR_FIELD_COMMENT = 0x00000020 , */
5775 /* IDL: SAMR_FIELD_HOME_DIRECTORY = 0x00000040 , */
5776 /* IDL: SAMR_FIELD_HOME_DRIVE = 0x00000080 , */
5777 /* IDL: SAMR_FIELD_LOGON_SCRIPT = 0x00000100 , */
5778 /* IDL: SAMR_FIELD_PROFILE_PATH = 0x00000200 , */
5779 /* IDL: SAMR_FIELD_WORKSTATIONS = 0x00000400 , */
5780 /* IDL: SAMR_FIELD_LAST_LOGON = 0x00000800 , */
5781 /* IDL: SAMR_FIELD_LAST_LOGOFF = 0x00001000 , */
5782 /* IDL: SAMR_FIELD_LOGON_HOURS = 0x00002000 , */
5783 /* IDL: SAMR_FIELD_BAD_PWD_COUNT = 0x00004000 , */
5784 /* IDL: SAMR_FIELD_NUM_LOGONS = 0x00008000 , */
5785 /* IDL: SAMR_FIELD_ALLOW_PWD_CHANGE = 0x00010000 , */
5786 /* IDL: SAMR_FIELD_FORCE_PWD_CHANGE = 0x00020000 , */
5787 /* IDL: SAMR_FIELD_LAST_PWD_CHANGE = 0x00040000 , */
5788 /* IDL: SAMR_FIELD_ACCT_EXPIRY = 0x00080000 , */
5789 /* IDL: SAMR_FIELD_ACCT_FLAGS = 0x00100000 , */
5790 /* IDL: SAMR_FIELD_PARAMETERS = 0x00200000 , */
5791 /* IDL: SAMR_FIELD_COUNTRY_CODE = 0x00400000 , */
5792 /* IDL: SAMR_FIELD_CODE_PAGE = 0x00800000 , */
5793 /* IDL: SAMR_FIELD_NT_PASSWORD_PRESENT = 0x01000000 , */
5794 /* IDL: SAMR_FIELD_LM_PASSWORD_PRESENT = 0x02000000 , */
5795 /* IDL: SAMR_FIELD_PRIVATE_DATA = 0x04000000 , */
5796 /* IDL: SAMR_FIELD_EXPIRED_FLAG = 0x08000000 , */
5797 /* IDL: SAMR_FIELD_SEC_DESC = 0x10000000 , */
5798 /* IDL: SAMR_FIELD_OWF_PWD = 0x20000000 , */
5799 /* IDL: } */
5802 samr_dissect_bitmap_FieldsPresent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
5804 proto_item *item;
5805 static int * const samr_samr_FieldsPresent_fields[] = {
5806 &hf_samr_samr_FieldsPresent_SAMR_FIELD_ACCOUNT_NAME,
5807 &hf_samr_samr_FieldsPresent_SAMR_FIELD_FULL_NAME,
5808 &hf_samr_samr_FieldsPresent_SAMR_FIELD_RID,
5809 &hf_samr_samr_FieldsPresent_SAMR_FIELD_PRIMARY_GID,
5810 &hf_samr_samr_FieldsPresent_SAMR_FIELD_DESCRIPTION,
5811 &hf_samr_samr_FieldsPresent_SAMR_FIELD_COMMENT,
5812 &hf_samr_samr_FieldsPresent_SAMR_FIELD_HOME_DIRECTORY,
5813 &hf_samr_samr_FieldsPresent_SAMR_FIELD_HOME_DRIVE,
5814 &hf_samr_samr_FieldsPresent_SAMR_FIELD_LOGON_SCRIPT,
5815 &hf_samr_samr_FieldsPresent_SAMR_FIELD_PROFILE_PATH,
5816 &hf_samr_samr_FieldsPresent_SAMR_FIELD_WORKSTATIONS,
5817 &hf_samr_samr_FieldsPresent_SAMR_FIELD_LAST_LOGON,
5818 &hf_samr_samr_FieldsPresent_SAMR_FIELD_LAST_LOGOFF,
5819 &hf_samr_samr_FieldsPresent_SAMR_FIELD_LOGON_HOURS,
5820 &hf_samr_samr_FieldsPresent_SAMR_FIELD_BAD_PWD_COUNT,
5821 &hf_samr_samr_FieldsPresent_SAMR_FIELD_NUM_LOGONS,
5822 &hf_samr_samr_FieldsPresent_SAMR_FIELD_ALLOW_PWD_CHANGE,
5823 &hf_samr_samr_FieldsPresent_SAMR_FIELD_FORCE_PWD_CHANGE,
5824 &hf_samr_samr_FieldsPresent_SAMR_FIELD_LAST_PWD_CHANGE,
5825 &hf_samr_samr_FieldsPresent_SAMR_FIELD_ACCT_EXPIRY,
5826 &hf_samr_samr_FieldsPresent_SAMR_FIELD_ACCT_FLAGS,
5827 &hf_samr_samr_FieldsPresent_SAMR_FIELD_PARAMETERS,
5828 &hf_samr_samr_FieldsPresent_SAMR_FIELD_COUNTRY_CODE,
5829 &hf_samr_samr_FieldsPresent_SAMR_FIELD_CODE_PAGE,
5830 &hf_samr_samr_FieldsPresent_SAMR_FIELD_NT_PASSWORD_PRESENT,
5831 &hf_samr_samr_FieldsPresent_SAMR_FIELD_LM_PASSWORD_PRESENT,
5832 &hf_samr_samr_FieldsPresent_SAMR_FIELD_PRIVATE_DATA,
5833 &hf_samr_samr_FieldsPresent_SAMR_FIELD_EXPIRED_FLAG,
5834 &hf_samr_samr_FieldsPresent_SAMR_FIELD_SEC_DESC,
5835 &hf_samr_samr_FieldsPresent_SAMR_FIELD_OWF_PWD,
5836 NULL
5838 uint32_t flags;
5839 ALIGN_TO_4_BYTES;
5841 item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index,
5842 ett_samr_samr_FieldsPresent, samr_samr_FieldsPresent_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE);
5844 offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags);
5846 if (!flags)
5847 proto_item_append_text(item, ": (No values set)");
5849 if (flags & (~0x3fffffff)) {
5850 flags &= (~0x3fffffff);
5851 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
5854 return offset;
5858 /* IDL: struct { */
5859 /* IDL: NTTIME last_logon; */
5860 /* IDL: NTTIME last_logoff; */
5861 /* IDL: NTTIME last_password_change; */
5862 /* IDL: NTTIME acct_expiry; */
5863 /* IDL: NTTIME allow_password_change; */
5864 /* IDL: NTTIME force_password_change; */
5865 /* IDL: lsa_String account_name; */
5866 /* IDL: lsa_String full_name; */
5867 /* IDL: lsa_String home_directory; */
5868 /* IDL: lsa_String home_drive; */
5869 /* IDL: lsa_String logon_script; */
5870 /* IDL: lsa_String profile_path; */
5871 /* IDL: lsa_String description; */
5872 /* IDL: lsa_String workstations; */
5873 /* IDL: lsa_String comment; */
5874 /* IDL: lsa_BinaryString parameters; */
5875 /* IDL: lsa_BinaryString lm_owf_password; */
5876 /* IDL: lsa_BinaryString nt_owf_password; */
5877 /* IDL: lsa_String private_data; */
5878 /* IDL: uint32 buf_count; */
5879 /* IDL: [size_is(buf_count)] [unique(1)] uint8 *buffer; */
5880 /* IDL: uint32 rid; */
5881 /* IDL: uint32 primary_gid; */
5882 /* IDL: samr_AcctFlags acct_flags; */
5883 /* IDL: samr_FieldsPresent fields_present; */
5884 /* IDL: samr_LogonHours logon_hours; */
5885 /* IDL: uint16 bad_password_count; */
5886 /* IDL: uint16 logon_count; */
5887 /* IDL: uint16 country_code; */
5888 /* IDL: uint16 code_page; */
5889 /* IDL: uint8 lm_password_set; */
5890 /* IDL: uint8 nt_password_set; */
5891 /* IDL: uint8 password_expired; */
5892 /* IDL: uint8 private_data_sensitive; */
5893 /* IDL: } */
5895 static int
5896 samr_dissect_element_UserInfo21_last_logon(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5898 offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo21_last_logon);
5900 return offset;
5903 static int
5904 samr_dissect_element_UserInfo21_last_logoff(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5906 offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo21_last_logoff);
5908 return offset;
5911 static int
5912 samr_dissect_element_UserInfo21_last_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5914 offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo21_last_password_change);
5916 return offset;
5919 static int
5920 samr_dissect_element_UserInfo21_acct_expiry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5922 offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo21_acct_expiry);
5924 return offset;
5927 static int
5928 samr_dissect_element_UserInfo21_allow_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5930 offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo21_allow_password_change);
5932 return offset;
5935 static int
5936 samr_dissect_element_UserInfo21_force_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5938 offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo21_force_password_change);
5940 return offset;
5943 static int
5944 samr_dissect_element_UserInfo21_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5946 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo21_account_name);
5948 return offset;
5951 static int
5952 samr_dissect_element_UserInfo21_full_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5954 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo21_full_name);
5956 return offset;
5959 static int
5960 samr_dissect_element_UserInfo21_home_directory(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5962 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo21_home_directory);
5964 return offset;
5967 static int
5968 samr_dissect_element_UserInfo21_home_drive(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5970 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo21_home_drive);
5972 return offset;
5975 static int
5976 samr_dissect_element_UserInfo21_logon_script(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5978 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo21_logon_script);
5980 return offset;
5983 static int
5984 samr_dissect_element_UserInfo21_profile_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5986 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo21_profile_path);
5988 return offset;
5991 static int
5992 samr_dissect_element_UserInfo21_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5994 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo21_description);
5996 return offset;
5999 static int
6000 samr_dissect_element_UserInfo21_workstations(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6002 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo21_workstations);
6004 return offset;
6007 static int
6008 samr_dissect_element_UserInfo21_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6010 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo21_comment);
6012 return offset;
6015 static int
6016 samr_dissect_element_UserInfo21_parameters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6018 offset=lsarpc_dissect_struct_lsa_BinaryString(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo21_parameters, 0);
6020 return offset;
6023 static int
6024 samr_dissect_element_UserInfo21_lm_owf_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6026 offset=lsarpc_dissect_struct_lsa_BinaryString(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo21_lm_owf_password, 0);
6028 return offset;
6031 static int
6032 samr_dissect_element_UserInfo21_nt_owf_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6034 offset=lsarpc_dissect_struct_lsa_BinaryString(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo21_nt_owf_password, 0);
6036 return offset;
6039 static int
6040 samr_dissect_element_UserInfo21_private_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6042 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo21_private_data);
6044 return offset;
6047 static int
6048 samr_dissect_element_UserInfo21_buf_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6050 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo21_buf_count, 0);
6052 return offset;
6055 static int
6056 samr_dissect_element_UserInfo21_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6058 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_UserInfo21_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (uint8)",hf_samr_samr_UserInfo21_buffer);
6060 return offset;
6063 static int
6064 samr_dissect_element_UserInfo21_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6066 struct ndr_generic_array nga = { .is_conformant = false, };
6068 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
6070 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, samr_dissect_element_UserInfo21_buffer__);
6072 return offset;
6075 static int
6076 samr_dissect_element_UserInfo21_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6078 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo21_buffer, 0);
6080 return offset;
6083 static int
6084 samr_dissect_element_UserInfo21_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6086 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_rid, 0);
6088 return offset;
6091 static int
6092 samr_dissect_element_UserInfo21_primary_gid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6094 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo21_primary_gid, 0);
6096 return offset;
6099 static int
6100 samr_dissect_element_UserInfo21_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6102 offset = samr_dissect_bitmap_AcctFlags(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo21_acct_flags, 0);
6104 return offset;
6107 static int
6108 samr_dissect_element_UserInfo21_fields_present(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6110 offset = samr_dissect_bitmap_FieldsPresent(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo21_fields_present, 0);
6112 return offset;
6115 static int
6116 samr_dissect_element_UserInfo21_logon_hours(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6118 offset = samr_dissect_struct_LogonHours(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo21_logon_hours,0);
6120 return offset;
6123 static int
6124 samr_dissect_element_UserInfo21_bad_password_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6126 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo21_bad_password_count, 0);
6128 return offset;
6131 static int
6132 samr_dissect_element_UserInfo21_logon_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6134 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo21_logon_count, 0);
6136 return offset;
6139 static int
6140 samr_dissect_element_UserInfo21_country_code(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6142 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo21_country_code, 0);
6144 return offset;
6147 static int
6148 samr_dissect_element_UserInfo21_code_page(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6150 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo21_code_page, 0);
6152 return offset;
6155 static int
6156 samr_dissect_element_UserInfo21_lm_password_set(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6158 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo21_lm_password_set, 0);
6160 return offset;
6163 static int
6164 samr_dissect_element_UserInfo21_nt_password_set(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6166 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo21_nt_password_set, 0);
6168 return offset;
6171 static int
6172 samr_dissect_element_UserInfo21_password_expired(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6174 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo21_password_expired, 0);
6176 return offset;
6179 static int
6180 samr_dissect_element_UserInfo21_private_data_sensitive(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6182 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo21_private_data_sensitive, 0);
6184 return offset;
6188 samr_dissect_struct_UserInfo21(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
6190 proto_item *item = NULL;
6191 proto_tree *tree = NULL;
6192 int old_offset;
6194 ALIGN_TO_5_BYTES;
6196 old_offset = offset;
6198 if (parent_tree) {
6199 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
6200 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo21);
6203 offset = samr_dissect_element_UserInfo21_last_logon(tvb, offset, pinfo, tree, di, drep);
6205 offset = samr_dissect_element_UserInfo21_last_logoff(tvb, offset, pinfo, tree, di, drep);
6207 offset = samr_dissect_element_UserInfo21_last_password_change(tvb, offset, pinfo, tree, di, drep);
6209 offset = samr_dissect_element_UserInfo21_acct_expiry(tvb, offset, pinfo, tree, di, drep);
6211 offset = samr_dissect_element_UserInfo21_allow_password_change(tvb, offset, pinfo, tree, di, drep);
6213 offset = samr_dissect_element_UserInfo21_force_password_change(tvb, offset, pinfo, tree, di, drep);
6215 offset = samr_dissect_element_UserInfo21_account_name(tvb, offset, pinfo, tree, di, drep);
6217 offset = samr_dissect_element_UserInfo21_full_name(tvb, offset, pinfo, tree, di, drep);
6219 offset = samr_dissect_element_UserInfo21_home_directory(tvb, offset, pinfo, tree, di, drep);
6221 offset = samr_dissect_element_UserInfo21_home_drive(tvb, offset, pinfo, tree, di, drep);
6223 offset = samr_dissect_element_UserInfo21_logon_script(tvb, offset, pinfo, tree, di, drep);
6225 offset = samr_dissect_element_UserInfo21_profile_path(tvb, offset, pinfo, tree, di, drep);
6227 offset = samr_dissect_element_UserInfo21_description(tvb, offset, pinfo, tree, di, drep);
6229 offset = samr_dissect_element_UserInfo21_workstations(tvb, offset, pinfo, tree, di, drep);
6231 offset = samr_dissect_element_UserInfo21_comment(tvb, offset, pinfo, tree, di, drep);
6233 offset = samr_dissect_element_UserInfo21_parameters(tvb, offset, pinfo, tree, di, drep);
6235 offset = samr_dissect_element_UserInfo21_lm_owf_password(tvb, offset, pinfo, tree, di, drep);
6237 offset = samr_dissect_element_UserInfo21_nt_owf_password(tvb, offset, pinfo, tree, di, drep);
6239 offset = samr_dissect_element_UserInfo21_private_data(tvb, offset, pinfo, tree, di, drep);
6241 offset = samr_dissect_element_UserInfo21_buf_count(tvb, offset, pinfo, tree, di, drep);
6243 offset = samr_dissect_element_UserInfo21_buffer(tvb, offset, pinfo, tree, di, drep);
6245 offset = samr_dissect_element_UserInfo21_rid(tvb, offset, pinfo, tree, di, drep);
6247 offset = samr_dissect_element_UserInfo21_primary_gid(tvb, offset, pinfo, tree, di, drep);
6249 offset = samr_dissect_element_UserInfo21_acct_flags(tvb, offset, pinfo, tree, di, drep);
6251 offset = samr_dissect_element_UserInfo21_fields_present(tvb, offset, pinfo, tree, di, drep);
6253 offset = samr_dissect_element_UserInfo21_logon_hours(tvb, offset, pinfo, tree, di, drep);
6255 offset = samr_dissect_element_UserInfo21_bad_password_count(tvb, offset, pinfo, tree, di, drep);
6257 offset = samr_dissect_element_UserInfo21_logon_count(tvb, offset, pinfo, tree, di, drep);
6259 offset = samr_dissect_element_UserInfo21_country_code(tvb, offset, pinfo, tree, di, drep);
6261 offset = samr_dissect_element_UserInfo21_code_page(tvb, offset, pinfo, tree, di, drep);
6263 offset = samr_dissect_element_UserInfo21_lm_password_set(tvb, offset, pinfo, tree, di, drep);
6265 offset = samr_dissect_element_UserInfo21_nt_password_set(tvb, offset, pinfo, tree, di, drep);
6267 offset = samr_dissect_element_UserInfo21_password_expired(tvb, offset, pinfo, tree, di, drep);
6269 offset = samr_dissect_element_UserInfo21_private_data_sensitive(tvb, offset, pinfo, tree, di, drep);
6272 proto_item_set_len(item, offset-old_offset);
6275 if (di->call_data->flags & DCERPC_IS_NDR64) {
6276 ALIGN_TO_5_BYTES;
6279 return offset;
6283 /* IDL: struct { */
6284 /* IDL: uint8 data[516]; */
6285 /* IDL: } */
6287 static int
6288 samr_dissect_element_CryptPassword_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6290 int i;
6291 for (i = 0; i < 516; i++)
6292 offset = samr_dissect_element_CryptPassword_data_(tvb, offset, pinfo, tree, di, drep);
6294 return offset;
6297 static int
6298 samr_dissect_element_CryptPassword_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6300 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_CryptPassword_data, 0);
6302 return offset;
6306 samr_dissect_struct_CryptPassword(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
6308 proto_item *item = NULL;
6309 proto_tree *tree = NULL;
6310 int old_offset;
6312 old_offset = offset;
6314 if (parent_tree) {
6315 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
6316 tree = proto_item_add_subtree(item, ett_samr_samr_CryptPassword);
6319 offset = samr_dissect_element_CryptPassword_data(tvb, offset, pinfo, tree, di, drep);
6322 proto_item_set_len(item, offset-old_offset);
6325 return offset;
6329 /* IDL: struct { */
6330 /* IDL: samr_UserInfo21 info; */
6331 /* IDL: samr_CryptPassword password; */
6332 /* IDL: } */
6334 static int
6335 samr_dissect_element_UserInfo23_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6337 offset = samr_dissect_struct_UserInfo21(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo23_info,0);
6339 return offset;
6342 static int
6343 samr_dissect_element_UserInfo23_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6345 offset = samr_dissect_struct_CryptPassword(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo23_password,0);
6347 return offset;
6351 samr_dissect_struct_UserInfo23(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
6353 proto_item *item = NULL;
6354 proto_tree *tree = NULL;
6355 int old_offset;
6357 ALIGN_TO_5_BYTES;
6359 old_offset = offset;
6361 if (parent_tree) {
6362 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
6363 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo23);
6366 offset = samr_dissect_element_UserInfo23_info(tvb, offset, pinfo, tree, di, drep);
6368 offset = samr_dissect_element_UserInfo23_password(tvb, offset, pinfo, tree, di, drep);
6371 proto_item_set_len(item, offset-old_offset);
6374 if (di->call_data->flags & DCERPC_IS_NDR64) {
6375 ALIGN_TO_5_BYTES;
6378 return offset;
6382 /* IDL: struct { */
6383 /* IDL: samr_CryptPassword password; */
6384 /* IDL: uint8 password_expired; */
6385 /* IDL: } */
6387 static int
6388 samr_dissect_element_UserInfo24_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6390 offset = samr_dissect_struct_CryptPassword(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo24_password,0);
6392 return offset;
6395 static int
6396 samr_dissect_element_UserInfo24_password_expired(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6398 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo24_password_expired, 0);
6400 return offset;
6404 samr_dissect_struct_UserInfo24(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
6406 proto_item *item = NULL;
6407 proto_tree *tree = NULL;
6408 int old_offset;
6410 old_offset = offset;
6412 if (parent_tree) {
6413 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
6414 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo24);
6417 offset = samr_dissect_element_UserInfo24_password(tvb, offset, pinfo, tree, di, drep);
6419 offset = samr_dissect_element_UserInfo24_password_expired(tvb, offset, pinfo, tree, di, drep);
6422 proto_item_set_len(item, offset-old_offset);
6425 return offset;
6429 /* IDL: struct { */
6430 /* IDL: uint8 data[532]; */
6431 /* IDL: } */
6433 static int
6434 samr_dissect_element_CryptPasswordEx_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6436 int i;
6437 for (i = 0; i < 532; i++)
6438 offset = samr_dissect_element_CryptPasswordEx_data_(tvb, offset, pinfo, tree, di, drep);
6440 return offset;
6443 static int
6444 samr_dissect_element_CryptPasswordEx_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6446 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_CryptPasswordEx_data, 0);
6448 return offset;
6452 samr_dissect_struct_CryptPasswordEx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
6454 proto_item *item = NULL;
6455 proto_tree *tree = NULL;
6456 int old_offset;
6458 old_offset = offset;
6460 if (parent_tree) {
6461 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
6462 tree = proto_item_add_subtree(item, ett_samr_samr_CryptPasswordEx);
6465 offset = samr_dissect_element_CryptPasswordEx_data(tvb, offset, pinfo, tree, di, drep);
6468 proto_item_set_len(item, offset-old_offset);
6471 return offset;
6475 /* IDL: struct { */
6476 /* IDL: samr_UserInfo21 info; */
6477 /* IDL: samr_CryptPasswordEx password; */
6478 /* IDL: } */
6480 static int
6481 samr_dissect_element_UserInfo25_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6483 offset = samr_dissect_struct_UserInfo21(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo25_info,0);
6485 return offset;
6488 static int
6489 samr_dissect_element_UserInfo25_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6491 offset = samr_dissect_struct_CryptPasswordEx(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo25_password,0);
6493 return offset;
6497 samr_dissect_struct_UserInfo25(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
6499 proto_item *item = NULL;
6500 proto_tree *tree = NULL;
6501 int old_offset;
6503 ALIGN_TO_5_BYTES;
6505 old_offset = offset;
6507 if (parent_tree) {
6508 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
6509 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo25);
6512 offset = samr_dissect_element_UserInfo25_info(tvb, offset, pinfo, tree, di, drep);
6514 offset = samr_dissect_element_UserInfo25_password(tvb, offset, pinfo, tree, di, drep);
6517 proto_item_set_len(item, offset-old_offset);
6520 if (di->call_data->flags & DCERPC_IS_NDR64) {
6521 ALIGN_TO_5_BYTES;
6524 return offset;
6528 /* IDL: struct { */
6529 /* IDL: samr_CryptPasswordEx password; */
6530 /* IDL: uint8 password_expired; */
6531 /* IDL: } */
6533 static int
6534 samr_dissect_element_UserInfo26_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6536 offset = samr_dissect_struct_CryptPasswordEx(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo26_password,0);
6538 return offset;
6541 static int
6542 samr_dissect_element_UserInfo26_password_expired(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6544 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo26_password_expired, 0);
6546 return offset;
6550 samr_dissect_struct_UserInfo26(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
6552 proto_item *item = NULL;
6553 proto_tree *tree = NULL;
6554 int old_offset;
6556 old_offset = offset;
6558 if (parent_tree) {
6559 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
6560 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo26);
6563 offset = samr_dissect_element_UserInfo26_password(tvb, offset, pinfo, tree, di, drep);
6565 offset = samr_dissect_element_UserInfo26_password_expired(tvb, offset, pinfo, tree, di, drep);
6568 proto_item_set_len(item, offset-old_offset);
6571 return offset;
6575 /* IDL: struct { */
6576 /* IDL: uint8 auth_data[64]; */
6577 /* IDL: uint8 salt[16]; */
6578 /* IDL: uint32 cipher_len; */
6579 /* IDL: [size_is(cipher_len)] [unique(1)] uint8 *cipher; */
6580 /* IDL: hyper PBKDF2Iterations; */
6581 /* IDL: } */
6583 static int
6584 samr_dissect_element_EncryptedPasswordAES_auth_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6586 int i;
6587 for (i = 0; i < 64; i++)
6588 offset = samr_dissect_element_EncryptedPasswordAES_auth_data_(tvb, offset, pinfo, tree, di, drep);
6590 return offset;
6593 static int
6594 samr_dissect_element_EncryptedPasswordAES_auth_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6596 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_EncryptedPasswordAES_auth_data, 0);
6598 return offset;
6601 static int
6602 samr_dissect_element_EncryptedPasswordAES_salt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6604 int i;
6605 for (i = 0; i < 16; i++)
6606 offset = samr_dissect_element_EncryptedPasswordAES_salt_(tvb, offset, pinfo, tree, di, drep);
6608 return offset;
6611 static int
6612 samr_dissect_element_EncryptedPasswordAES_salt_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6614 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_EncryptedPasswordAES_salt, 0);
6616 return offset;
6619 static int
6620 samr_dissect_element_EncryptedPasswordAES_cipher_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6622 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_EncryptedPasswordAES_cipher_len, 0);
6624 return offset;
6627 static int
6628 samr_dissect_element_EncryptedPasswordAES_cipher(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6630 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_EncryptedPasswordAES_cipher_, NDR_POINTER_UNIQUE, "Pointer to Cipher (uint8)",hf_samr_samr_EncryptedPasswordAES_cipher);
6632 return offset;
6635 static int
6636 samr_dissect_element_EncryptedPasswordAES_cipher_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6638 struct ndr_generic_array nga = { .is_conformant = false, };
6640 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
6642 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, samr_dissect_element_EncryptedPasswordAES_cipher__);
6644 return offset;
6647 static int
6648 samr_dissect_element_EncryptedPasswordAES_cipher__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6650 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_EncryptedPasswordAES_cipher, 0);
6652 return offset;
6655 static int
6656 samr_dissect_element_EncryptedPasswordAES_PBKDF2Iterations(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6658 offset=cnf_dissect_hyper(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_EncryptedPasswordAES_PBKDF2Iterations);
6660 return offset;
6664 samr_dissect_struct_EncryptedPasswordAES(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
6666 proto_item *item = NULL;
6667 proto_tree *tree = NULL;
6668 int old_offset;
6670 ALIGN_TO_8_BYTES;
6672 old_offset = offset;
6674 if (parent_tree) {
6675 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
6676 tree = proto_item_add_subtree(item, ett_samr_samr_EncryptedPasswordAES);
6679 offset = samr_dissect_element_EncryptedPasswordAES_auth_data(tvb, offset, pinfo, tree, di, drep);
6681 offset = samr_dissect_element_EncryptedPasswordAES_salt(tvb, offset, pinfo, tree, di, drep);
6683 offset = samr_dissect_element_EncryptedPasswordAES_cipher_len(tvb, offset, pinfo, tree, di, drep);
6685 offset = samr_dissect_element_EncryptedPasswordAES_cipher(tvb, offset, pinfo, tree, di, drep);
6687 offset = samr_dissect_element_EncryptedPasswordAES_PBKDF2Iterations(tvb, offset, pinfo, tree, di, drep);
6690 proto_item_set_len(item, offset-old_offset);
6693 if (di->call_data->flags & DCERPC_IS_NDR64) {
6694 ALIGN_TO_8_BYTES;
6697 return offset;
6701 /* IDL: struct { */
6702 /* IDL: samr_EncryptedPasswordAES password; */
6703 /* IDL: uint8 password_expired; */
6704 /* IDL: } */
6706 static int
6707 samr_dissect_element_UserInfo31_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6709 offset = samr_dissect_struct_EncryptedPasswordAES(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo31_password,0);
6711 return offset;
6714 static int
6715 samr_dissect_element_UserInfo31_password_expired(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6717 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo31_password_expired, 0);
6719 return offset;
6723 samr_dissect_struct_UserInfo31(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
6725 proto_item *item = NULL;
6726 proto_tree *tree = NULL;
6727 int old_offset;
6729 ALIGN_TO_8_BYTES;
6731 old_offset = offset;
6733 if (parent_tree) {
6734 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
6735 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo31);
6738 offset = samr_dissect_element_UserInfo31_password(tvb, offset, pinfo, tree, di, drep);
6740 offset = samr_dissect_element_UserInfo31_password_expired(tvb, offset, pinfo, tree, di, drep);
6743 proto_item_set_len(item, offset-old_offset);
6746 if (di->call_data->flags & DCERPC_IS_NDR64) {
6747 ALIGN_TO_8_BYTES;
6750 return offset;
6754 /* IDL: struct { */
6755 /* IDL: samr_UserInfo21 info; */
6756 /* IDL: samr_EncryptedPasswordAES password; */
6757 /* IDL: } */
6759 static int
6760 samr_dissect_element_UserInfo32_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6762 offset = samr_dissect_struct_UserInfo21(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo32_info,0);
6764 return offset;
6767 static int
6768 samr_dissect_element_UserInfo32_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6770 offset = samr_dissect_struct_EncryptedPasswordAES(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo32_password,0);
6772 return offset;
6776 samr_dissect_struct_UserInfo32(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
6778 proto_item *item = NULL;
6779 proto_tree *tree = NULL;
6780 int old_offset;
6782 ALIGN_TO_8_BYTES;
6784 old_offset = offset;
6786 if (parent_tree) {
6787 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
6788 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo32);
6791 offset = samr_dissect_element_UserInfo32_info(tvb, offset, pinfo, tree, di, drep);
6793 offset = samr_dissect_element_UserInfo32_password(tvb, offset, pinfo, tree, di, drep);
6796 proto_item_set_len(item, offset-old_offset);
6799 if (di->call_data->flags & DCERPC_IS_NDR64) {
6800 ALIGN_TO_8_BYTES;
6803 return offset;
6807 /* IDL: [switch_type(uint16)] union { */
6808 /* IDL: [case(1)] [case(1)] samr_UserInfo1 info1; */
6809 /* IDL: [case(2)] [case(2)] samr_UserInfo2 info2; */
6810 /* IDL: [case(3)] [case(3)] samr_UserInfo3 info3; */
6811 /* IDL: [case(4)] [case(4)] samr_UserInfo4 info4; */
6812 /* IDL: [case(5)] [case(5)] samr_UserInfo5 info5; */
6813 /* IDL: [case(6)] [case(6)] samr_UserInfo6 info6; */
6814 /* IDL: [case(7)] [case(7)] samr_UserInfo7 info7; */
6815 /* IDL: [case(8)] [case(8)] samr_UserInfo8 info8; */
6816 /* IDL: [case(9)] [case(9)] samr_UserInfo9 info9; */
6817 /* IDL: [case(10)] [case(10)] samr_UserInfo10 info10; */
6818 /* IDL: [case(11)] [case(11)] samr_UserInfo11 info11; */
6819 /* IDL: [case(12)] [case(12)] samr_UserInfo12 info12; */
6820 /* IDL: [case(13)] [case(13)] samr_UserInfo13 info13; */
6821 /* IDL: [case(14)] [case(14)] samr_UserInfo14 info14; */
6822 /* IDL: [case(16)] [case(16)] samr_UserInfo16 info16; */
6823 /* IDL: [case(17)] [case(17)] samr_UserInfo17 info17; */
6824 /* IDL: [case(18)] [case(18)] samr_UserInfo18 info18; */
6825 /* IDL: [case(20)] [case(20)] samr_UserInfo20 info20; */
6826 /* IDL: [case(21)] [case(21)] samr_UserInfo21 info21; */
6827 /* IDL: [case(23)] [case(23)] samr_UserInfo23 info23; */
6828 /* IDL: [case(24)] [case(24)] samr_UserInfo24 info24; */
6829 /* IDL: [case(25)] [case(25)] samr_UserInfo25 info25; */
6830 /* IDL: [case(26)] [case(26)] samr_UserInfo26 info26; */
6831 /* IDL: [case(31)] [case(31)] samr_UserInfo31 info31; */
6832 /* IDL: [case(32)] [case(32)] samr_UserInfo32 info32; */
6833 /* IDL: } */
6835 static int
6836 samr_dissect_element_UserInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6838 offset = samr_dissect_struct_UserInfo1(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo_info1,0);
6840 return offset;
6843 static int
6844 samr_dissect_element_UserInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6846 offset = samr_dissect_struct_UserInfo2(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo_info2,0);
6848 return offset;
6851 static int
6852 samr_dissect_element_UserInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6854 offset = samr_dissect_struct_UserInfo3(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo_info3,0);
6856 return offset;
6859 static int
6860 samr_dissect_element_UserInfo_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6862 offset = samr_dissect_struct_UserInfo4(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo_info4,0);
6864 return offset;
6867 static int
6868 samr_dissect_element_UserInfo_info5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6870 offset = samr_dissect_struct_UserInfo5(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo_info5,0);
6872 return offset;
6875 static int
6876 samr_dissect_element_UserInfo_info6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6878 offset = samr_dissect_struct_UserInfo6(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo_info6,0);
6880 return offset;
6883 static int
6884 samr_dissect_element_UserInfo_info7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6886 offset = samr_dissect_struct_UserInfo7(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo_info7,0);
6888 return offset;
6891 static int
6892 samr_dissect_element_UserInfo_info8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6894 offset = samr_dissect_struct_UserInfo8(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo_info8,0);
6896 return offset;
6899 static int
6900 samr_dissect_element_UserInfo_info9(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6902 offset = samr_dissect_struct_UserInfo9(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo_info9,0);
6904 return offset;
6907 static int
6908 samr_dissect_element_UserInfo_info10(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6910 offset = samr_dissect_struct_UserInfo10(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo_info10,0);
6912 return offset;
6915 static int
6916 samr_dissect_element_UserInfo_info11(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6918 offset = samr_dissect_struct_UserInfo11(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo_info11,0);
6920 return offset;
6923 static int
6924 samr_dissect_element_UserInfo_info12(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6926 offset = samr_dissect_struct_UserInfo12(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo_info12,0);
6928 return offset;
6931 static int
6932 samr_dissect_element_UserInfo_info13(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6934 offset = samr_dissect_struct_UserInfo13(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo_info13,0);
6936 return offset;
6939 static int
6940 samr_dissect_element_UserInfo_info14(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6942 offset = samr_dissect_struct_UserInfo14(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo_info14,0);
6944 return offset;
6947 static int
6948 samr_dissect_element_UserInfo_info16(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6950 offset = samr_dissect_struct_UserInfo16(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo_info16,0);
6952 return offset;
6955 static int
6956 samr_dissect_element_UserInfo_info17(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6958 offset = samr_dissect_struct_UserInfo17(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo_info17,0);
6960 return offset;
6963 static int
6964 samr_dissect_element_UserInfo_info18(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6966 offset = samr_dissect_struct_UserInfo18(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo_info18,0);
6968 return offset;
6971 static int
6972 samr_dissect_element_UserInfo_info20(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6974 offset = samr_dissect_struct_UserInfo20(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo_info20,0);
6976 return offset;
6979 static int
6980 samr_dissect_element_UserInfo_info21(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6982 offset = samr_dissect_struct_UserInfo21(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo_info21,0);
6984 return offset;
6987 static int
6988 samr_dissect_element_UserInfo_info23(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6990 offset = samr_dissect_struct_UserInfo23(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo_info23,0);
6992 return offset;
6995 static int
6996 samr_dissect_element_UserInfo_info24(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6998 offset = samr_dissect_struct_UserInfo24(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo_info24,0);
7000 return offset;
7003 static int
7004 samr_dissect_element_UserInfo_info25(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7006 offset = samr_dissect_struct_UserInfo25(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo_info25,0);
7008 return offset;
7011 static int
7012 samr_dissect_element_UserInfo_info26(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7014 offset = samr_dissect_struct_UserInfo26(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo_info26,0);
7016 return offset;
7019 static int
7020 samr_dissect_element_UserInfo_info31(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7022 offset = samr_dissect_struct_UserInfo31(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo_info31,0);
7024 return offset;
7027 static int
7028 samr_dissect_element_UserInfo_info32(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7030 offset = samr_dissect_struct_UserInfo32(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo_info32,0);
7032 return offset;
7035 static int
7036 samr_dissect_UserInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
7038 proto_item *item = NULL;
7039 proto_tree *tree = NULL;
7040 int old_offset;
7041 uint16_t level;
7043 old_offset = offset;
7044 if (parent_tree) {
7045 tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_samr_samr_UserInfo, &item, "samr_UserInfo");
7048 UNION_ALIGN_TO_8_BYTES;
7049 offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
7050 UNION_ALIGN_TO_8_BYTES;
7052 switch(level) {
7053 case 1:
7054 offset = samr_dissect_element_UserInfo_info1(tvb, offset, pinfo, tree, di, drep);
7055 break;
7057 case 2:
7058 offset = samr_dissect_element_UserInfo_info2(tvb, offset, pinfo, tree, di, drep);
7059 break;
7061 case 3:
7062 offset = samr_dissect_element_UserInfo_info3(tvb, offset, pinfo, tree, di, drep);
7063 break;
7065 case 4:
7066 offset = samr_dissect_element_UserInfo_info4(tvb, offset, pinfo, tree, di, drep);
7067 break;
7069 case 5:
7070 offset = samr_dissect_element_UserInfo_info5(tvb, offset, pinfo, tree, di, drep);
7071 break;
7073 case 6:
7074 offset = samr_dissect_element_UserInfo_info6(tvb, offset, pinfo, tree, di, drep);
7075 break;
7077 case 7:
7078 offset = samr_dissect_element_UserInfo_info7(tvb, offset, pinfo, tree, di, drep);
7079 break;
7081 case 8:
7082 offset = samr_dissect_element_UserInfo_info8(tvb, offset, pinfo, tree, di, drep);
7083 break;
7085 case 9:
7086 offset = samr_dissect_element_UserInfo_info9(tvb, offset, pinfo, tree, di, drep);
7087 break;
7089 case 10:
7090 offset = samr_dissect_element_UserInfo_info10(tvb, offset, pinfo, tree, di, drep);
7091 break;
7093 case 11:
7094 offset = samr_dissect_element_UserInfo_info11(tvb, offset, pinfo, tree, di, drep);
7095 break;
7097 case 12:
7098 offset = samr_dissect_element_UserInfo_info12(tvb, offset, pinfo, tree, di, drep);
7099 break;
7101 case 13:
7102 offset = samr_dissect_element_UserInfo_info13(tvb, offset, pinfo, tree, di, drep);
7103 break;
7105 case 14:
7106 offset = samr_dissect_element_UserInfo_info14(tvb, offset, pinfo, tree, di, drep);
7107 break;
7109 case 16:
7110 offset = samr_dissect_element_UserInfo_info16(tvb, offset, pinfo, tree, di, drep);
7111 break;
7113 case 17:
7114 offset = samr_dissect_element_UserInfo_info17(tvb, offset, pinfo, tree, di, drep);
7115 break;
7117 case 18:
7118 offset = samr_dissect_element_UserInfo_info18(tvb, offset, pinfo, tree, di, drep);
7119 break;
7121 case 20:
7122 offset = samr_dissect_element_UserInfo_info20(tvb, offset, pinfo, tree, di, drep);
7123 break;
7125 case 21:
7126 offset = samr_dissect_element_UserInfo_info21(tvb, offset, pinfo, tree, di, drep);
7127 break;
7129 case 23:
7130 offset = samr_dissect_element_UserInfo_info23(tvb, offset, pinfo, tree, di, drep);
7131 break;
7133 case 24:
7134 offset = samr_dissect_element_UserInfo_info24(tvb, offset, pinfo, tree, di, drep);
7135 break;
7137 case 25:
7138 offset = samr_dissect_element_UserInfo_info25(tvb, offset, pinfo, tree, di, drep);
7139 break;
7141 case 26:
7142 offset = samr_dissect_element_UserInfo_info26(tvb, offset, pinfo, tree, di, drep);
7143 break;
7145 case 31:
7146 offset = samr_dissect_element_UserInfo_info31(tvb, offset, pinfo, tree, di, drep);
7147 break;
7149 case 32:
7150 offset = samr_dissect_element_UserInfo_info32(tvb, offset, pinfo, tree, di, drep);
7151 break;
7153 proto_item_set_len(item, offset-old_offset);
7156 return offset;
7159 /* IDL: struct { */
7160 /* IDL: uint32 rid; */
7161 /* IDL: samr_GroupAttrs attributes; */
7162 /* IDL: } */
7164 static int
7165 samr_dissect_element_RidWithAttribute_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7167 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_rid, 0);
7169 return offset;
7172 static int
7173 samr_dissect_element_RidWithAttribute_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7175 offset = samr_dissect_bitmap_GroupAttrs(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_RidWithAttribute_attributes, 0);
7177 return offset;
7181 samr_dissect_struct_RidWithAttribute(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
7183 proto_item *item = NULL;
7184 proto_tree *tree = NULL;
7185 int old_offset;
7187 ALIGN_TO_4_BYTES;
7189 old_offset = offset;
7191 if (parent_tree) {
7192 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
7193 tree = proto_item_add_subtree(item, ett_samr_samr_RidWithAttribute);
7196 offset = samr_dissect_element_RidWithAttribute_rid(tvb, offset, pinfo, tree, di, drep);
7198 offset = samr_dissect_element_RidWithAttribute_attributes(tvb, offset, pinfo, tree, di, drep);
7201 proto_item_set_len(item, offset-old_offset);
7204 if (di->call_data->flags & DCERPC_IS_NDR64) {
7205 ALIGN_TO_4_BYTES;
7208 return offset;
7212 /* IDL: struct { */
7213 /* IDL: uint32 count; */
7214 /* IDL: [size_is(count)] [unique(1)] samr_RidWithAttribute *rids; */
7215 /* IDL: } */
7217 static int
7218 samr_dissect_element_RidWithAttributeArray_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7220 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_RidWithAttributeArray_count, 0);
7222 return offset;
7225 static int
7226 samr_dissect_element_RidWithAttributeArray_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7228 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_RidWithAttributeArray_rids_, NDR_POINTER_UNIQUE, "Pointer to Rids (samr_RidWithAttribute)",hf_samr_samr_RidWithAttributeArray_rids);
7230 return offset;
7233 static int
7234 samr_dissect_element_RidWithAttributeArray_rids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7236 struct ndr_generic_array nga = { .is_conformant = false, };
7238 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
7240 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, samr_dissect_element_RidWithAttributeArray_rids__);
7242 return offset;
7245 static int
7246 samr_dissect_element_RidWithAttributeArray_rids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7248 offset = samr_dissect_struct_RidWithAttribute(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_RidWithAttributeArray_rids,0);
7250 return offset;
7254 samr_dissect_struct_RidWithAttributeArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
7256 proto_item *item = NULL;
7257 proto_tree *tree = NULL;
7258 int old_offset;
7260 ALIGN_TO_5_BYTES;
7262 old_offset = offset;
7264 if (parent_tree) {
7265 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
7266 tree = proto_item_add_subtree(item, ett_samr_samr_RidWithAttributeArray);
7269 offset = samr_dissect_element_RidWithAttributeArray_count(tvb, offset, pinfo, tree, di, drep);
7271 offset = samr_dissect_element_RidWithAttributeArray_rids(tvb, offset, pinfo, tree, di, drep);
7274 proto_item_set_len(item, offset-old_offset);
7277 if (di->call_data->flags & DCERPC_IS_NDR64) {
7278 ALIGN_TO_5_BYTES;
7281 return offset;
7285 /* IDL: struct { */
7286 /* IDL: uint32 idx; */
7287 /* IDL: uint32 rid; */
7288 /* IDL: samr_AcctFlags acct_flags; */
7289 /* IDL: lsa_String account_name; */
7290 /* IDL: lsa_String description; */
7291 /* IDL: lsa_String full_name; */
7292 /* IDL: } */
7294 static int
7295 samr_dissect_element_DispEntryGeneral_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7297 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DispEntryGeneral_idx, 0);
7299 return offset;
7302 static int
7303 samr_dissect_element_DispEntryGeneral_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7305 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_rid, 0);
7307 return offset;
7310 static int
7311 samr_dissect_element_DispEntryGeneral_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7313 offset = samr_dissect_bitmap_AcctFlags(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DispEntryGeneral_acct_flags, 0);
7315 return offset;
7318 static int
7319 samr_dissect_element_DispEntryGeneral_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7321 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_DispEntryGeneral_account_name);
7323 return offset;
7326 static int
7327 samr_dissect_element_DispEntryGeneral_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7329 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_DispEntryGeneral_description);
7331 return offset;
7334 static int
7335 samr_dissect_element_DispEntryGeneral_full_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7337 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_DispEntryGeneral_full_name);
7339 return offset;
7343 samr_dissect_struct_DispEntryGeneral(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
7345 proto_item *item = NULL;
7346 proto_tree *tree = NULL;
7347 int old_offset;
7349 ALIGN_TO_5_BYTES;
7351 old_offset = offset;
7353 if (parent_tree) {
7354 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
7355 tree = proto_item_add_subtree(item, ett_samr_samr_DispEntryGeneral);
7358 offset = samr_dissect_element_DispEntryGeneral_idx(tvb, offset, pinfo, tree, di, drep);
7360 offset = samr_dissect_element_DispEntryGeneral_rid(tvb, offset, pinfo, tree, di, drep);
7362 offset = samr_dissect_element_DispEntryGeneral_acct_flags(tvb, offset, pinfo, tree, di, drep);
7364 offset = samr_dissect_element_DispEntryGeneral_account_name(tvb, offset, pinfo, tree, di, drep);
7366 offset = samr_dissect_element_DispEntryGeneral_description(tvb, offset, pinfo, tree, di, drep);
7368 offset = samr_dissect_element_DispEntryGeneral_full_name(tvb, offset, pinfo, tree, di, drep);
7371 proto_item_set_len(item, offset-old_offset);
7374 if (di->call_data->flags & DCERPC_IS_NDR64) {
7375 ALIGN_TO_5_BYTES;
7378 return offset;
7382 /* IDL: struct { */
7383 /* IDL: uint32 count; */
7384 /* IDL: [size_is(count)] [unique(1)] samr_DispEntryGeneral *entries; */
7385 /* IDL: } */
7387 static int
7388 samr_dissect_element_DispInfoGeneral_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7390 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DispInfoGeneral_count, 0);
7392 return offset;
7395 static int
7396 samr_dissect_element_DispInfoGeneral_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7398 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_DispInfoGeneral_entries_, NDR_POINTER_UNIQUE, "Pointer to Entries (samr_DispEntryGeneral)",hf_samr_samr_DispInfoGeneral_entries);
7400 return offset;
7403 static int
7404 samr_dissect_element_DispInfoGeneral_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7406 struct ndr_generic_array nga = { .is_conformant = false, };
7408 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
7410 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, samr_dissect_element_DispInfoGeneral_entries__);
7412 return offset;
7415 static int
7416 samr_dissect_element_DispInfoGeneral_entries__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7418 offset = samr_dissect_struct_DispEntryGeneral(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_DispInfoGeneral_entries,0);
7420 return offset;
7424 samr_dissect_struct_DispInfoGeneral(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
7426 proto_item *item = NULL;
7427 proto_tree *tree = NULL;
7428 int old_offset;
7430 ALIGN_TO_5_BYTES;
7432 old_offset = offset;
7434 if (parent_tree) {
7435 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
7436 tree = proto_item_add_subtree(item, ett_samr_samr_DispInfoGeneral);
7439 offset = samr_dissect_element_DispInfoGeneral_count(tvb, offset, pinfo, tree, di, drep);
7441 offset = samr_dissect_element_DispInfoGeneral_entries(tvb, offset, pinfo, tree, di, drep);
7444 proto_item_set_len(item, offset-old_offset);
7447 if (di->call_data->flags & DCERPC_IS_NDR64) {
7448 ALIGN_TO_5_BYTES;
7451 return offset;
7455 /* IDL: struct { */
7456 /* IDL: uint32 idx; */
7457 /* IDL: uint32 rid; */
7458 /* IDL: samr_AcctFlags acct_flags; */
7459 /* IDL: lsa_String account_name; */
7460 /* IDL: lsa_String description; */
7461 /* IDL: } */
7463 static int
7464 samr_dissect_element_DispEntryFull_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7466 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DispEntryFull_idx, 0);
7468 return offset;
7471 static int
7472 samr_dissect_element_DispEntryFull_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7474 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_rid, 0);
7476 return offset;
7479 static int
7480 samr_dissect_element_DispEntryFull_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7482 offset = samr_dissect_bitmap_AcctFlags(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DispEntryFull_acct_flags, 0);
7484 return offset;
7487 static int
7488 samr_dissect_element_DispEntryFull_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7490 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_DispEntryFull_account_name);
7492 return offset;
7495 static int
7496 samr_dissect_element_DispEntryFull_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7498 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_DispEntryFull_description);
7500 return offset;
7504 samr_dissect_struct_DispEntryFull(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
7506 proto_item *item = NULL;
7507 proto_tree *tree = NULL;
7508 int old_offset;
7510 ALIGN_TO_5_BYTES;
7512 old_offset = offset;
7514 if (parent_tree) {
7515 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
7516 tree = proto_item_add_subtree(item, ett_samr_samr_DispEntryFull);
7519 offset = samr_dissect_element_DispEntryFull_idx(tvb, offset, pinfo, tree, di, drep);
7521 offset = samr_dissect_element_DispEntryFull_rid(tvb, offset, pinfo, tree, di, drep);
7523 offset = samr_dissect_element_DispEntryFull_acct_flags(tvb, offset, pinfo, tree, di, drep);
7525 offset = samr_dissect_element_DispEntryFull_account_name(tvb, offset, pinfo, tree, di, drep);
7527 offset = samr_dissect_element_DispEntryFull_description(tvb, offset, pinfo, tree, di, drep);
7530 proto_item_set_len(item, offset-old_offset);
7533 if (di->call_data->flags & DCERPC_IS_NDR64) {
7534 ALIGN_TO_5_BYTES;
7537 return offset;
7541 /* IDL: struct { */
7542 /* IDL: uint32 count; */
7543 /* IDL: [size_is(count)] [unique(1)] samr_DispEntryFull *entries; */
7544 /* IDL: } */
7546 static int
7547 samr_dissect_element_DispInfoFull_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7549 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DispInfoFull_count, 0);
7551 return offset;
7554 static int
7555 samr_dissect_element_DispInfoFull_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7557 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_DispInfoFull_entries_, NDR_POINTER_UNIQUE, "Pointer to Entries (samr_DispEntryFull)",hf_samr_samr_DispInfoFull_entries);
7559 return offset;
7562 static int
7563 samr_dissect_element_DispInfoFull_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7565 struct ndr_generic_array nga = { .is_conformant = false, };
7567 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
7569 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, samr_dissect_element_DispInfoFull_entries__);
7571 return offset;
7574 static int
7575 samr_dissect_element_DispInfoFull_entries__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7577 offset = samr_dissect_struct_DispEntryFull(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_DispInfoFull_entries,0);
7579 return offset;
7583 samr_dissect_struct_DispInfoFull(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
7585 proto_item *item = NULL;
7586 proto_tree *tree = NULL;
7587 int old_offset;
7589 ALIGN_TO_5_BYTES;
7591 old_offset = offset;
7593 if (parent_tree) {
7594 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
7595 tree = proto_item_add_subtree(item, ett_samr_samr_DispInfoFull);
7598 offset = samr_dissect_element_DispInfoFull_count(tvb, offset, pinfo, tree, di, drep);
7600 offset = samr_dissect_element_DispInfoFull_entries(tvb, offset, pinfo, tree, di, drep);
7603 proto_item_set_len(item, offset-old_offset);
7606 if (di->call_data->flags & DCERPC_IS_NDR64) {
7607 ALIGN_TO_5_BYTES;
7610 return offset;
7614 /* IDL: struct { */
7615 /* IDL: uint32 idx; */
7616 /* IDL: uint32 rid; */
7617 /* IDL: samr_GroupAttrs acct_flags; */
7618 /* IDL: lsa_String account_name; */
7619 /* IDL: lsa_String description; */
7620 /* IDL: } */
7622 static int
7623 samr_dissect_element_DispEntryFullGroup_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7625 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DispEntryFullGroup_idx, 0);
7627 return offset;
7630 static int
7631 samr_dissect_element_DispEntryFullGroup_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7633 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_rid, 0);
7635 return offset;
7638 static int
7639 samr_dissect_element_DispEntryFullGroup_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7641 offset = samr_dissect_bitmap_GroupAttrs(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DispEntryFullGroup_acct_flags, 0);
7643 return offset;
7646 static int
7647 samr_dissect_element_DispEntryFullGroup_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7649 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_DispEntryFullGroup_account_name);
7651 return offset;
7654 static int
7655 samr_dissect_element_DispEntryFullGroup_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7657 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_DispEntryFullGroup_description);
7659 return offset;
7663 samr_dissect_struct_DispEntryFullGroup(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
7665 proto_item *item = NULL;
7666 proto_tree *tree = NULL;
7667 int old_offset;
7669 ALIGN_TO_5_BYTES;
7671 old_offset = offset;
7673 if (parent_tree) {
7674 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
7675 tree = proto_item_add_subtree(item, ett_samr_samr_DispEntryFullGroup);
7678 offset = samr_dissect_element_DispEntryFullGroup_idx(tvb, offset, pinfo, tree, di, drep);
7680 offset = samr_dissect_element_DispEntryFullGroup_rid(tvb, offset, pinfo, tree, di, drep);
7682 offset = samr_dissect_element_DispEntryFullGroup_acct_flags(tvb, offset, pinfo, tree, di, drep);
7684 offset = samr_dissect_element_DispEntryFullGroup_account_name(tvb, offset, pinfo, tree, di, drep);
7686 offset = samr_dissect_element_DispEntryFullGroup_description(tvb, offset, pinfo, tree, di, drep);
7689 proto_item_set_len(item, offset-old_offset);
7692 if (di->call_data->flags & DCERPC_IS_NDR64) {
7693 ALIGN_TO_5_BYTES;
7696 return offset;
7700 /* IDL: struct { */
7701 /* IDL: uint32 count; */
7702 /* IDL: [size_is(count)] [unique(1)] samr_DispEntryFullGroup *entries; */
7703 /* IDL: } */
7705 static int
7706 samr_dissect_element_DispInfoFullGroups_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7708 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DispInfoFullGroups_count, 0);
7710 return offset;
7713 static int
7714 samr_dissect_element_DispInfoFullGroups_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7716 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_DispInfoFullGroups_entries_, NDR_POINTER_UNIQUE, "Pointer to Entries (samr_DispEntryFullGroup)",hf_samr_samr_DispInfoFullGroups_entries);
7718 return offset;
7721 static int
7722 samr_dissect_element_DispInfoFullGroups_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7724 struct ndr_generic_array nga = { .is_conformant = false, };
7726 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
7728 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, samr_dissect_element_DispInfoFullGroups_entries__);
7730 return offset;
7733 static int
7734 samr_dissect_element_DispInfoFullGroups_entries__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7736 offset = samr_dissect_struct_DispEntryFullGroup(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_DispInfoFullGroups_entries,0);
7738 return offset;
7742 samr_dissect_struct_DispInfoFullGroups(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
7744 proto_item *item = NULL;
7745 proto_tree *tree = NULL;
7746 int old_offset;
7748 ALIGN_TO_5_BYTES;
7750 old_offset = offset;
7752 if (parent_tree) {
7753 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
7754 tree = proto_item_add_subtree(item, ett_samr_samr_DispInfoFullGroups);
7757 offset = samr_dissect_element_DispInfoFullGroups_count(tvb, offset, pinfo, tree, di, drep);
7759 offset = samr_dissect_element_DispInfoFullGroups_entries(tvb, offset, pinfo, tree, di, drep);
7762 proto_item_set_len(item, offset-old_offset);
7765 if (di->call_data->flags & DCERPC_IS_NDR64) {
7766 ALIGN_TO_5_BYTES;
7769 return offset;
7773 /* IDL: struct { */
7774 /* IDL: uint32 idx; */
7775 /* IDL: lsa_AsciiStringLarge account_name; */
7776 /* IDL: } */
7778 static int
7779 samr_dissect_element_DispEntryAscii_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7781 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DispEntryAscii_idx, 0);
7783 return offset;
7786 static int
7787 samr_dissect_element_DispEntryAscii_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7789 offset=cnf_dissect_lsa_AsciiString(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_DispEntryAscii_account_name);
7791 return offset;
7795 samr_dissect_struct_DispEntryAscii(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
7797 proto_item *item = NULL;
7798 proto_tree *tree = NULL;
7799 int old_offset;
7801 ALIGN_TO_5_BYTES;
7803 old_offset = offset;
7805 if (parent_tree) {
7806 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
7807 tree = proto_item_add_subtree(item, ett_samr_samr_DispEntryAscii);
7810 offset = samr_dissect_element_DispEntryAscii_idx(tvb, offset, pinfo, tree, di, drep);
7812 offset = samr_dissect_element_DispEntryAscii_account_name(tvb, offset, pinfo, tree, di, drep);
7815 proto_item_set_len(item, offset-old_offset);
7818 if (di->call_data->flags & DCERPC_IS_NDR64) {
7819 ALIGN_TO_5_BYTES;
7822 return offset;
7826 /* IDL: struct { */
7827 /* IDL: uint32 count; */
7828 /* IDL: [size_is(count)] [unique(1)] samr_DispEntryAscii *entries; */
7829 /* IDL: } */
7831 static int
7832 samr_dissect_element_DispInfoAscii_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7834 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DispInfoAscii_count, 0);
7836 return offset;
7839 static int
7840 samr_dissect_element_DispInfoAscii_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7842 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_DispInfoAscii_entries_, NDR_POINTER_UNIQUE, "Pointer to Entries (samr_DispEntryAscii)",hf_samr_samr_DispInfoAscii_entries);
7844 return offset;
7847 static int
7848 samr_dissect_element_DispInfoAscii_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7850 struct ndr_generic_array nga = { .is_conformant = false, };
7852 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
7854 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, samr_dissect_element_DispInfoAscii_entries__);
7856 return offset;
7859 static int
7860 samr_dissect_element_DispInfoAscii_entries__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7862 offset = samr_dissect_struct_DispEntryAscii(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_DispInfoAscii_entries,0);
7864 return offset;
7868 samr_dissect_struct_DispInfoAscii(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
7870 proto_item *item = NULL;
7871 proto_tree *tree = NULL;
7872 int old_offset;
7874 ALIGN_TO_5_BYTES;
7876 old_offset = offset;
7878 if (parent_tree) {
7879 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
7880 tree = proto_item_add_subtree(item, ett_samr_samr_DispInfoAscii);
7883 offset = samr_dissect_element_DispInfoAscii_count(tvb, offset, pinfo, tree, di, drep);
7885 offset = samr_dissect_element_DispInfoAscii_entries(tvb, offset, pinfo, tree, di, drep);
7888 proto_item_set_len(item, offset-old_offset);
7891 if (di->call_data->flags & DCERPC_IS_NDR64) {
7892 ALIGN_TO_5_BYTES;
7895 return offset;
7899 /* IDL: enum { */
7900 /* IDL: SAMR_DOMAIN_DISPLAY_USER=1, */
7901 /* IDL: SAMR_DOMAIN_DISPLAY_MACHINE=2, */
7902 /* IDL: SAMR_DOMAIN_DISPLAY_GROUP=3, */
7903 /* IDL: SAMR_DOMAIN_DISPLAY_OEM_USER=4, */
7904 /* IDL: SAMR_DOMAIN_DISPLAY_OEM_GROUP=5, */
7905 /* IDL: } */
7908 samr_dissect_enum_DomainDisplayInformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t *param _U_)
7910 uint32_t parameter=0;
7911 if (param) {
7912 parameter = *param;
7914 offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
7915 if (param) {
7916 *param = parameter;
7918 return offset;
7922 /* IDL: [switch_type(uint16)] union { */
7923 /* IDL: [case(SAMR_DOMAIN_DISPLAY_USER)] [case(SAMR_DOMAIN_DISPLAY_USER)] samr_DispInfoGeneral info1; */
7924 /* IDL: [case(SAMR_DOMAIN_DISPLAY_MACHINE)] [case(SAMR_DOMAIN_DISPLAY_MACHINE)] samr_DispInfoFull info2; */
7925 /* IDL: [case(SAMR_DOMAIN_DISPLAY_GROUP)] [case(SAMR_DOMAIN_DISPLAY_GROUP)] samr_DispInfoFullGroups info3; */
7926 /* IDL: [case(SAMR_DOMAIN_DISPLAY_OEM_USER)] [case(SAMR_DOMAIN_DISPLAY_OEM_USER)] samr_DispInfoAscii info4; */
7927 /* IDL: [case(SAMR_DOMAIN_DISPLAY_OEM_GROUP)] [case(SAMR_DOMAIN_DISPLAY_OEM_GROUP)] samr_DispInfoAscii info5; */
7928 /* IDL: } */
7930 static int
7931 samr_dissect_element_DispInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7933 offset = samr_dissect_struct_DispInfoGeneral(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_DispInfo_info1,0);
7935 return offset;
7938 static int
7939 samr_dissect_element_DispInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7941 offset = samr_dissect_struct_DispInfoFull(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_DispInfo_info2,0);
7943 return offset;
7946 static int
7947 samr_dissect_element_DispInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7949 offset = samr_dissect_struct_DispInfoFullGroups(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_DispInfo_info3,0);
7951 return offset;
7954 static int
7955 samr_dissect_element_DispInfo_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7957 offset = samr_dissect_struct_DispInfoAscii(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_DispInfo_info4,0);
7959 return offset;
7962 static int
7963 samr_dissect_element_DispInfo_info5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
7965 offset = samr_dissect_struct_DispInfoAscii(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_DispInfo_info5,0);
7967 return offset;
7970 static int
7971 samr_dissect_DispInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
7973 proto_item *item = NULL;
7974 proto_tree *tree = NULL;
7975 int old_offset;
7976 uint16_t level;
7978 old_offset = offset;
7979 if (parent_tree) {
7980 tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_samr_samr_DispInfo, &item, "samr_DispInfo");
7983 UNION_ALIGN_TO_5_BYTES;
7984 offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
7985 UNION_ALIGN_TO_5_BYTES;
7987 switch(level) {
7988 case SAMR_DOMAIN_DISPLAY_USER:
7989 offset = samr_dissect_element_DispInfo_info1(tvb, offset, pinfo, tree, di, drep);
7990 break;
7992 case SAMR_DOMAIN_DISPLAY_MACHINE:
7993 offset = samr_dissect_element_DispInfo_info2(tvb, offset, pinfo, tree, di, drep);
7994 break;
7996 case SAMR_DOMAIN_DISPLAY_GROUP:
7997 offset = samr_dissect_element_DispInfo_info3(tvb, offset, pinfo, tree, di, drep);
7998 break;
8000 case SAMR_DOMAIN_DISPLAY_OEM_USER:
8001 offset = samr_dissect_element_DispInfo_info4(tvb, offset, pinfo, tree, di, drep);
8002 break;
8004 case SAMR_DOMAIN_DISPLAY_OEM_GROUP:
8005 offset = samr_dissect_element_DispInfo_info5(tvb, offset, pinfo, tree, di, drep);
8006 break;
8008 proto_item_set_len(item, offset-old_offset);
8011 return offset;
8014 /* IDL: struct { */
8015 /* IDL: uint16 min_password_length; */
8016 /* IDL: samr_PasswordProperties password_properties; */
8017 /* IDL: } */
8019 static int
8020 samr_dissect_element_PwInfo_min_password_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8022 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_PwInfo_min_password_length, 0);
8024 return offset;
8027 static int
8028 samr_dissect_element_PwInfo_password_properties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8030 offset = samr_dissect_bitmap_PasswordProperties(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_PwInfo_password_properties, 0);
8032 return offset;
8036 samr_dissect_struct_PwInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
8038 proto_item *item = NULL;
8039 proto_tree *tree = NULL;
8040 int old_offset;
8042 ALIGN_TO_4_BYTES;
8044 old_offset = offset;
8046 if (parent_tree) {
8047 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
8048 tree = proto_item_add_subtree(item, ett_samr_samr_PwInfo);
8051 offset = samr_dissect_element_PwInfo_min_password_length(tvb, offset, pinfo, tree, di, drep);
8053 offset = samr_dissect_element_PwInfo_password_properties(tvb, offset, pinfo, tree, di, drep);
8056 proto_item_set_len(item, offset-old_offset);
8059 if (di->call_data->flags & DCERPC_IS_NDR64) {
8060 ALIGN_TO_4_BYTES;
8063 return offset;
8067 /* IDL: enum { */
8068 /* IDL: SAMR_CONNECT_PRE_W2K=1, */
8069 /* IDL: SAMR_CONNECT_W2K=2, */
8070 /* IDL: SAMR_CONNECT_AFTER_W2K=3, */
8071 /* IDL: } */
8074 samr_dissect_enum_ConnectVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t *param _U_)
8076 uint32_t parameter=0;
8077 if (param) {
8078 parameter = *param;
8080 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
8081 if (param) {
8082 *param = parameter;
8084 return offset;
8088 /* IDL: enum { */
8089 /* IDL: SAM_PWD_CHANGE_NO_ERROR=0, */
8090 /* IDL: SAM_PWD_CHANGE_PASSWORD_TOO_SHORT=1, */
8091 /* IDL: SAM_PWD_CHANGE_PWD_IN_HISTORY=2, */
8092 /* IDL: SAM_PWD_CHANGE_USERNAME_IN_PASSWORD=3, */
8093 /* IDL: SAM_PWD_CHANGE_FULLNAME_IN_PASSWORD=4, */
8094 /* IDL: SAM_PWD_CHANGE_NOT_COMPLEX=5, */
8095 /* IDL: SAM_PWD_CHANGE_MACHINE_NOT_DEFAULT=6, */
8096 /* IDL: SAM_PWD_CHANGE_FAILED_BY_FILTER=7, */
8097 /* IDL: SAM_PWD_CHANGE_PASSWORD_TOO_LONG=8, */
8098 /* IDL: } */
8101 samr_dissect_enum_samPwdChangeReason(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t *param _U_)
8103 uint32_t parameter=0;
8104 if (param) {
8105 parameter = *param;
8107 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
8108 if (param) {
8109 *param = parameter;
8111 return offset;
8115 /* IDL: struct { */
8116 /* IDL: samPwdChangeReason extendedFailureReason; */
8117 /* IDL: lsa_String filterModuleName; */
8118 /* IDL: } */
8120 static int
8121 samr_dissect_element_userPwdChangeFailureInformation_extendedFailureReason(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8123 offset = samr_dissect_enum_samPwdChangeReason(tvb, offset, pinfo, tree, di, drep, hf_samr_userPwdChangeFailureInformation_extendedFailureReason, 0);
8125 return offset;
8128 static int
8129 samr_dissect_element_userPwdChangeFailureInformation_filterModuleName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8131 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_userPwdChangeFailureInformation_filterModuleName);
8133 return offset;
8137 samr_dissect_struct_userPwdChangeFailureInformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
8139 proto_item *item = NULL;
8140 proto_tree *tree = NULL;
8141 int old_offset;
8143 ALIGN_TO_5_BYTES;
8145 old_offset = offset;
8147 if (parent_tree) {
8148 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
8149 tree = proto_item_add_subtree(item, ett_samr_userPwdChangeFailureInformation);
8152 offset = samr_dissect_element_userPwdChangeFailureInformation_extendedFailureReason(tvb, offset, pinfo, tree, di, drep);
8154 offset = samr_dissect_element_userPwdChangeFailureInformation_filterModuleName(tvb, offset, pinfo, tree, di, drep);
8157 proto_item_set_len(item, offset-old_offset);
8160 if (di->call_data->flags & DCERPC_IS_NDR64) {
8161 ALIGN_TO_5_BYTES;
8164 return offset;
8168 /* IDL: enum { */
8169 /* IDL: SAMR_CONNECT_FEATURE_RID_ONLY=0x00000001, */
8170 /* IDL: SAMR_CONNECT_FEATURE_RESRVED1=0x00000002, */
8171 /* IDL: SAMR_CONNECT_FEATURE_RESRVED2=0x00000004, */
8172 /* IDL: SAMR_CONNECT_FEATURE_USE_AES=0x00000010, */
8173 /* IDL: } */
8176 samr_dissect_enum_SupportedFeatures(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t *param _U_)
8178 uint32_t parameter=0;
8179 if (param) {
8180 parameter = *param;
8182 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
8183 if (param) {
8184 *param = parameter;
8186 return offset;
8190 /* IDL: struct { */
8191 /* IDL: samr_ConnectVersion client_version; */
8192 /* IDL: samr_SupportedFeatures supported_features; */
8193 /* IDL: } */
8195 static int
8196 samr_dissect_element_ConnectInfo1_client_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8198 offset = samr_dissect_enum_ConnectVersion(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_ConnectInfo1_client_version, 0);
8200 return offset;
8203 static int
8204 samr_dissect_element_ConnectInfo1_supported_features(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8206 offset = samr_dissect_enum_SupportedFeatures(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_ConnectInfo1_supported_features, 0);
8208 return offset;
8212 samr_dissect_struct_ConnectInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
8214 proto_item *item = NULL;
8215 proto_tree *tree = NULL;
8216 int old_offset;
8218 ALIGN_TO_4_BYTES;
8220 old_offset = offset;
8222 if (parent_tree) {
8223 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
8224 tree = proto_item_add_subtree(item, ett_samr_samr_ConnectInfo1);
8227 offset = samr_dissect_element_ConnectInfo1_client_version(tvb, offset, pinfo, tree, di, drep);
8229 offset = samr_dissect_element_ConnectInfo1_supported_features(tvb, offset, pinfo, tree, di, drep);
8232 proto_item_set_len(item, offset-old_offset);
8235 if (di->call_data->flags & DCERPC_IS_NDR64) {
8236 ALIGN_TO_4_BYTES;
8239 return offset;
8243 /* IDL: union { */
8244 /* IDL: [case(1)] [case(1)] samr_ConnectInfo1 info1; */
8245 /* IDL: } */
8247 static int
8248 samr_dissect_element_ConnectInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8250 offset = samr_dissect_struct_ConnectInfo1(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ConnectInfo_info1,0);
8252 return offset;
8255 static int
8256 samr_dissect_ConnectInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
8258 proto_item *item = NULL;
8259 proto_tree *tree = NULL;
8260 int old_offset;
8261 uint32_t level;
8263 old_offset = offset;
8264 if (parent_tree) {
8265 tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_samr_samr_ConnectInfo, &item, "samr_ConnectInfo");
8268 UNION_ALIGN_TO_4_BYTES;
8269 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
8270 UNION_ALIGN_TO_4_BYTES;
8272 switch(level) {
8273 case 1:
8274 offset = samr_dissect_element_ConnectInfo_info1(tvb, offset, pinfo, tree, di, drep);
8275 break;
8277 proto_item_set_len(item, offset-old_offset);
8280 return offset;
8283 /* IDL: bitmap { */
8284 /* IDL: SAMR_VALIDATE_FIELD_PASSWORD_LAST_SET = 0x00000001 , */
8285 /* IDL: SAMR_VALIDATE_FIELD_BAD_PASSWORD_TIME = 0x00000002 , */
8286 /* IDL: SAMR_VALIDATE_FIELD_LOCKOUT_TIME = 0x00000004 , */
8287 /* IDL: SAMR_VALIDATE_FIELD_BAD_PASSWORD_COUNT = 0x00000008 , */
8288 /* IDL: SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_LENGTH = 0x00000010 , */
8289 /* IDL: SAMR_VALIDATE_FIELD_PASSWORD_HISTORY = 0x00000020 , */
8290 /* IDL: } */
8293 samr_dissect_bitmap_ValidateFieldsPresent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
8295 proto_item *item;
8296 static int * const samr_samr_ValidateFieldsPresent_fields[] = {
8297 &hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_LAST_SET,
8298 &hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_BAD_PASSWORD_TIME,
8299 &hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_LOCKOUT_TIME,
8300 &hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_BAD_PASSWORD_COUNT,
8301 &hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_LENGTH,
8302 &hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_HISTORY,
8303 NULL
8305 uint32_t flags;
8306 ALIGN_TO_4_BYTES;
8308 item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index,
8309 ett_samr_samr_ValidateFieldsPresent, samr_samr_ValidateFieldsPresent_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE);
8311 offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags);
8313 if (!flags)
8314 proto_item_append_text(item, ": (No values set)");
8316 if (flags & (~0x0000003f)) {
8317 flags &= (~0x0000003f);
8318 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
8321 return offset;
8325 /* IDL: enum { */
8326 /* IDL: NetValidateAuthentication=1, */
8327 /* IDL: NetValidatePasswordChange=2, */
8328 /* IDL: NetValidatePasswordReset=3, */
8329 /* IDL: } */
8332 samr_dissect_enum_ValidatePasswordLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t *param _U_)
8334 uint32_t parameter=0;
8335 if (param) {
8336 parameter = *param;
8338 offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
8339 if (param) {
8340 *param = parameter;
8342 return offset;
8346 /* IDL: enum { */
8347 /* IDL: SAMR_VALIDATION_STATUS_SUCCESS=0, */
8348 /* IDL: SAMR_VALIDATION_STATUS_PASSWORD_MUST_CHANGE=1, */
8349 /* IDL: SAMR_VALIDATION_STATUS_ACCOUNT_LOCKED_OUT=2, */
8350 /* IDL: SAMR_VALIDATION_STATUS_PASSWORD_EXPIRED=3, */
8351 /* IDL: SAMR_VALIDATION_STATUS_BAD_PASSWORD=4, */
8352 /* IDL: SAMR_VALIDATION_STATUS_PWD_HISTORY_CONFLICT=5, */
8353 /* IDL: SAMR_VALIDATION_STATUS_PWD_TOO_SHORT=6, */
8354 /* IDL: SAMR_VALIDATION_STATUS_PWD_TOO_LONG=7, */
8355 /* IDL: SAMR_VALIDATION_STATUS_NOT_COMPLEX_ENOUGH=8, */
8356 /* IDL: SAMR_VALIDATION_STATUS_PASSWORD_TOO_RECENT=9, */
8357 /* IDL: SAMR_VALIDATION_STATUS_PASSWORD_FILTER_ERROR=10, */
8358 /* IDL: } */
8361 samr_dissect_enum_ValidationStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t *param _U_)
8363 uint32_t parameter=0;
8364 if (param) {
8365 parameter = *param;
8367 offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
8368 if (param) {
8369 *param = parameter;
8371 return offset;
8375 /* IDL: struct { */
8376 /* IDL: uint32 length; */
8377 /* IDL: [size_is(length)] [unique(1)] uint8 *data; */
8378 /* IDL: } */
8380 static int
8381 samr_dissect_element_ValidationBlob_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8383 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_ValidationBlob_length, 0);
8385 return offset;
8388 static int
8389 samr_dissect_element_ValidationBlob_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8391 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_ValidationBlob_data_, NDR_POINTER_UNIQUE, "Pointer to Data (uint8)",hf_samr_samr_ValidationBlob_data);
8393 return offset;
8396 static int
8397 samr_dissect_element_ValidationBlob_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8399 struct ndr_generic_array nga = { .is_conformant = false, };
8401 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
8403 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, samr_dissect_element_ValidationBlob_data__);
8405 return offset;
8408 static int
8409 samr_dissect_element_ValidationBlob_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8411 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_ValidationBlob_data, 0);
8413 return offset;
8417 samr_dissect_struct_ValidationBlob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
8419 proto_item *item = NULL;
8420 proto_tree *tree = NULL;
8421 int old_offset;
8423 ALIGN_TO_5_BYTES;
8425 old_offset = offset;
8427 if (parent_tree) {
8428 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
8429 tree = proto_item_add_subtree(item, ett_samr_samr_ValidationBlob);
8432 offset = samr_dissect_element_ValidationBlob_length(tvb, offset, pinfo, tree, di, drep);
8434 offset = samr_dissect_element_ValidationBlob_data(tvb, offset, pinfo, tree, di, drep);
8437 proto_item_set_len(item, offset-old_offset);
8440 if (di->call_data->flags & DCERPC_IS_NDR64) {
8441 ALIGN_TO_5_BYTES;
8444 return offset;
8448 /* IDL: struct { */
8449 /* IDL: samr_ValidateFieldsPresent fields_present; */
8450 /* IDL: NTTIME_hyper last_password_change; */
8451 /* IDL: NTTIME_hyper bad_password_time; */
8452 /* IDL: NTTIME_hyper lockout_time; */
8453 /* IDL: uint32 bad_pwd_count; */
8454 /* IDL: uint32 pwd_history_len; */
8455 /* IDL: [size_is(pwd_history_len)] [unique(1)] samr_ValidationBlob *pwd_history; */
8456 /* IDL: } */
8458 static int
8459 samr_dissect_element_ValidatePasswordInfo_fields_present(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8461 offset = samr_dissect_bitmap_ValidateFieldsPresent(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_ValidatePasswordInfo_fields_present, 0);
8463 return offset;
8466 static int
8467 samr_dissect_element_ValidatePasswordInfo_last_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8469 offset = dissect_ndr_nt_NTTIME_hyper(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_ValidatePasswordInfo_last_password_change);
8471 return offset;
8474 static int
8475 samr_dissect_element_ValidatePasswordInfo_bad_password_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8477 offset = dissect_ndr_nt_NTTIME_hyper(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_ValidatePasswordInfo_bad_password_time);
8479 return offset;
8482 static int
8483 samr_dissect_element_ValidatePasswordInfo_lockout_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8485 offset = dissect_ndr_nt_NTTIME_hyper(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_ValidatePasswordInfo_lockout_time);
8487 return offset;
8490 static int
8491 samr_dissect_element_ValidatePasswordInfo_bad_pwd_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8493 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_ValidatePasswordInfo_bad_pwd_count, 0);
8495 return offset;
8498 static int
8499 samr_dissect_element_ValidatePasswordInfo_pwd_history_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8501 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_ValidatePasswordInfo_pwd_history_len, 0);
8503 return offset;
8506 static int
8507 samr_dissect_element_ValidatePasswordInfo_pwd_history(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8509 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_ValidatePasswordInfo_pwd_history_, NDR_POINTER_UNIQUE, "Pointer to Pwd History (samr_ValidationBlob)",hf_samr_samr_ValidatePasswordInfo_pwd_history);
8511 return offset;
8514 static int
8515 samr_dissect_element_ValidatePasswordInfo_pwd_history_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8517 struct ndr_generic_array nga = { .is_conformant = false, };
8519 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
8521 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, samr_dissect_element_ValidatePasswordInfo_pwd_history__);
8523 return offset;
8526 static int
8527 samr_dissect_element_ValidatePasswordInfo_pwd_history__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8529 offset = samr_dissect_struct_ValidationBlob(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ValidatePasswordInfo_pwd_history,0);
8531 return offset;
8535 samr_dissect_struct_ValidatePasswordInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
8537 proto_item *item = NULL;
8538 proto_tree *tree = NULL;
8539 int old_offset;
8541 ALIGN_TO_8_BYTES;
8543 old_offset = offset;
8545 if (parent_tree) {
8546 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
8547 tree = proto_item_add_subtree(item, ett_samr_samr_ValidatePasswordInfo);
8550 offset = samr_dissect_element_ValidatePasswordInfo_fields_present(tvb, offset, pinfo, tree, di, drep);
8552 offset = samr_dissect_element_ValidatePasswordInfo_last_password_change(tvb, offset, pinfo, tree, di, drep);
8554 offset = samr_dissect_element_ValidatePasswordInfo_bad_password_time(tvb, offset, pinfo, tree, di, drep);
8556 offset = samr_dissect_element_ValidatePasswordInfo_lockout_time(tvb, offset, pinfo, tree, di, drep);
8558 offset = samr_dissect_element_ValidatePasswordInfo_bad_pwd_count(tvb, offset, pinfo, tree, di, drep);
8560 offset = samr_dissect_element_ValidatePasswordInfo_pwd_history_len(tvb, offset, pinfo, tree, di, drep);
8562 offset = samr_dissect_element_ValidatePasswordInfo_pwd_history(tvb, offset, pinfo, tree, di, drep);
8565 proto_item_set_len(item, offset-old_offset);
8568 if (di->call_data->flags & DCERPC_IS_NDR64) {
8569 ALIGN_TO_8_BYTES;
8572 return offset;
8576 /* IDL: struct { */
8577 /* IDL: samr_ValidatePasswordInfo info; */
8578 /* IDL: samr_ValidationStatus status; */
8579 /* IDL: } */
8581 static int
8582 samr_dissect_element_ValidatePasswordRepCtr_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8584 offset = samr_dissect_struct_ValidatePasswordInfo(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ValidatePasswordRepCtr_info,0);
8586 return offset;
8589 static int
8590 samr_dissect_element_ValidatePasswordRepCtr_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8592 offset = samr_dissect_enum_ValidationStatus(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_ValidatePasswordRepCtr_status, 0);
8594 return offset;
8598 samr_dissect_struct_ValidatePasswordRepCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
8600 proto_item *item = NULL;
8601 proto_tree *tree = NULL;
8602 int old_offset;
8604 ALIGN_TO_8_BYTES;
8606 old_offset = offset;
8608 if (parent_tree) {
8609 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
8610 tree = proto_item_add_subtree(item, ett_samr_samr_ValidatePasswordRepCtr);
8613 offset = samr_dissect_element_ValidatePasswordRepCtr_info(tvb, offset, pinfo, tree, di, drep);
8615 offset = samr_dissect_element_ValidatePasswordRepCtr_status(tvb, offset, pinfo, tree, di, drep);
8618 proto_item_set_len(item, offset-old_offset);
8621 if (di->call_data->flags & DCERPC_IS_NDR64) {
8622 ALIGN_TO_8_BYTES;
8625 return offset;
8629 /* IDL: [switch_type(uint16)] union { */
8630 /* IDL: [case(1)] [case(1)] samr_ValidatePasswordRepCtr ctr1; */
8631 /* IDL: [case(2)] [case(2)] samr_ValidatePasswordRepCtr ctr2; */
8632 /* IDL: [case(3)] [case(3)] samr_ValidatePasswordRepCtr ctr3; */
8633 /* IDL: } */
8635 static int
8636 samr_dissect_element_ValidatePasswordRep_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8638 offset = samr_dissect_struct_ValidatePasswordRepCtr(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ValidatePasswordRep_ctr1,0);
8640 return offset;
8643 static int
8644 samr_dissect_element_ValidatePasswordRep_ctr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8646 offset = samr_dissect_struct_ValidatePasswordRepCtr(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ValidatePasswordRep_ctr2,0);
8648 return offset;
8651 static int
8652 samr_dissect_element_ValidatePasswordRep_ctr3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8654 offset = samr_dissect_struct_ValidatePasswordRepCtr(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ValidatePasswordRep_ctr3,0);
8656 return offset;
8659 static int
8660 samr_dissect_ValidatePasswordRep(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
8662 proto_item *item = NULL;
8663 proto_tree *tree = NULL;
8664 int old_offset;
8665 uint16_t level;
8667 old_offset = offset;
8668 if (parent_tree) {
8669 tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_samr_samr_ValidatePasswordRep, &item, "samr_ValidatePasswordRep");
8672 UNION_ALIGN_TO_8_BYTES;
8673 offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
8674 UNION_ALIGN_TO_8_BYTES;
8676 switch(level) {
8677 case 1:
8678 offset = samr_dissect_element_ValidatePasswordRep_ctr1(tvb, offset, pinfo, tree, di, drep);
8679 break;
8681 case 2:
8682 offset = samr_dissect_element_ValidatePasswordRep_ctr2(tvb, offset, pinfo, tree, di, drep);
8683 break;
8685 case 3:
8686 offset = samr_dissect_element_ValidatePasswordRep_ctr3(tvb, offset, pinfo, tree, di, drep);
8687 break;
8689 proto_item_set_len(item, offset-old_offset);
8692 return offset;
8695 /* IDL: struct { */
8696 /* IDL: samr_ValidatePasswordInfo info; */
8697 /* IDL: lsa_StringLarge password; */
8698 /* IDL: lsa_StringLarge account; */
8699 /* IDL: samr_ValidationBlob hash; */
8700 /* IDL: uint8 pwd_must_change_at_next_logon; */
8701 /* IDL: uint8 clear_lockout; */
8702 /* IDL: } */
8704 static int
8705 samr_dissect_element_ValidatePasswordReq3_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8707 offset = samr_dissect_struct_ValidatePasswordInfo(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ValidatePasswordReq3_info,0);
8709 return offset;
8712 static int
8713 samr_dissect_element_ValidatePasswordReq3_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8715 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_ValidatePasswordReq3_password);
8717 return offset;
8720 static int
8721 samr_dissect_element_ValidatePasswordReq3_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8723 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_ValidatePasswordReq3_account);
8725 return offset;
8728 static int
8729 samr_dissect_element_ValidatePasswordReq3_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8731 offset = samr_dissect_struct_ValidationBlob(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ValidatePasswordReq3_hash,0);
8733 return offset;
8736 static int
8737 samr_dissect_element_ValidatePasswordReq3_pwd_must_change_at_next_logon(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8739 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_ValidatePasswordReq3_pwd_must_change_at_next_logon, 0);
8741 return offset;
8744 static int
8745 samr_dissect_element_ValidatePasswordReq3_clear_lockout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8747 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_ValidatePasswordReq3_clear_lockout, 0);
8749 return offset;
8753 samr_dissect_struct_ValidatePasswordReq3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
8755 proto_item *item = NULL;
8756 proto_tree *tree = NULL;
8757 int old_offset;
8759 ALIGN_TO_8_BYTES;
8761 old_offset = offset;
8763 if (parent_tree) {
8764 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
8765 tree = proto_item_add_subtree(item, ett_samr_samr_ValidatePasswordReq3);
8768 offset = samr_dissect_element_ValidatePasswordReq3_info(tvb, offset, pinfo, tree, di, drep);
8770 offset = samr_dissect_element_ValidatePasswordReq3_password(tvb, offset, pinfo, tree, di, drep);
8772 offset = samr_dissect_element_ValidatePasswordReq3_account(tvb, offset, pinfo, tree, di, drep);
8774 offset = samr_dissect_element_ValidatePasswordReq3_hash(tvb, offset, pinfo, tree, di, drep);
8776 offset = samr_dissect_element_ValidatePasswordReq3_pwd_must_change_at_next_logon(tvb, offset, pinfo, tree, di, drep);
8778 offset = samr_dissect_element_ValidatePasswordReq3_clear_lockout(tvb, offset, pinfo, tree, di, drep);
8781 proto_item_set_len(item, offset-old_offset);
8784 if (di->call_data->flags & DCERPC_IS_NDR64) {
8785 ALIGN_TO_8_BYTES;
8788 return offset;
8792 /* IDL: struct { */
8793 /* IDL: samr_ValidatePasswordInfo info; */
8794 /* IDL: lsa_StringLarge password; */
8795 /* IDL: lsa_StringLarge account; */
8796 /* IDL: samr_ValidationBlob hash; */
8797 /* IDL: uint8 password_matched; */
8798 /* IDL: } */
8800 static int
8801 samr_dissect_element_ValidatePasswordReq2_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8803 offset = samr_dissect_struct_ValidatePasswordInfo(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ValidatePasswordReq2_info,0);
8805 return offset;
8808 static int
8809 samr_dissect_element_ValidatePasswordReq2_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8811 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_ValidatePasswordReq2_password);
8813 return offset;
8816 static int
8817 samr_dissect_element_ValidatePasswordReq2_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8819 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_ValidatePasswordReq2_account);
8821 return offset;
8824 static int
8825 samr_dissect_element_ValidatePasswordReq2_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8827 offset = samr_dissect_struct_ValidationBlob(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ValidatePasswordReq2_hash,0);
8829 return offset;
8832 static int
8833 samr_dissect_element_ValidatePasswordReq2_password_matched(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8835 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_ValidatePasswordReq2_password_matched, 0);
8837 return offset;
8841 samr_dissect_struct_ValidatePasswordReq2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
8843 proto_item *item = NULL;
8844 proto_tree *tree = NULL;
8845 int old_offset;
8847 ALIGN_TO_8_BYTES;
8849 old_offset = offset;
8851 if (parent_tree) {
8852 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
8853 tree = proto_item_add_subtree(item, ett_samr_samr_ValidatePasswordReq2);
8856 offset = samr_dissect_element_ValidatePasswordReq2_info(tvb, offset, pinfo, tree, di, drep);
8858 offset = samr_dissect_element_ValidatePasswordReq2_password(tvb, offset, pinfo, tree, di, drep);
8860 offset = samr_dissect_element_ValidatePasswordReq2_account(tvb, offset, pinfo, tree, di, drep);
8862 offset = samr_dissect_element_ValidatePasswordReq2_hash(tvb, offset, pinfo, tree, di, drep);
8864 offset = samr_dissect_element_ValidatePasswordReq2_password_matched(tvb, offset, pinfo, tree, di, drep);
8867 proto_item_set_len(item, offset-old_offset);
8870 if (di->call_data->flags & DCERPC_IS_NDR64) {
8871 ALIGN_TO_8_BYTES;
8874 return offset;
8878 /* IDL: struct { */
8879 /* IDL: samr_ValidatePasswordInfo info; */
8880 /* IDL: uint8 password_matched; */
8881 /* IDL: } */
8883 static int
8884 samr_dissect_element_ValidatePasswordReq1_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8886 offset = samr_dissect_struct_ValidatePasswordInfo(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ValidatePasswordReq1_info,0);
8888 return offset;
8891 static int
8892 samr_dissect_element_ValidatePasswordReq1_password_matched(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8894 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_ValidatePasswordReq1_password_matched, 0);
8896 return offset;
8900 samr_dissect_struct_ValidatePasswordReq1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
8902 proto_item *item = NULL;
8903 proto_tree *tree = NULL;
8904 int old_offset;
8906 ALIGN_TO_8_BYTES;
8908 old_offset = offset;
8910 if (parent_tree) {
8911 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
8912 tree = proto_item_add_subtree(item, ett_samr_samr_ValidatePasswordReq1);
8915 offset = samr_dissect_element_ValidatePasswordReq1_info(tvb, offset, pinfo, tree, di, drep);
8917 offset = samr_dissect_element_ValidatePasswordReq1_password_matched(tvb, offset, pinfo, tree, di, drep);
8920 proto_item_set_len(item, offset-old_offset);
8923 if (di->call_data->flags & DCERPC_IS_NDR64) {
8924 ALIGN_TO_8_BYTES;
8927 return offset;
8931 /* IDL: [switch_type(uint16)] union { */
8932 /* IDL: [case(1)] [case(1)] samr_ValidatePasswordReq1 req1; */
8933 /* IDL: [case(2)] [case(2)] samr_ValidatePasswordReq2 req2; */
8934 /* IDL: [case(3)] [case(3)] samr_ValidatePasswordReq3 req3; */
8935 /* IDL: } */
8937 static int
8938 samr_dissect_element_ValidatePasswordReq_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8940 offset = samr_dissect_struct_ValidatePasswordReq1(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ValidatePasswordReq_req1,0);
8942 return offset;
8945 static int
8946 samr_dissect_element_ValidatePasswordReq_req2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8948 offset = samr_dissect_struct_ValidatePasswordReq2(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ValidatePasswordReq_req2,0);
8950 return offset;
8953 static int
8954 samr_dissect_element_ValidatePasswordReq_req3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8956 offset = samr_dissect_struct_ValidatePasswordReq3(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ValidatePasswordReq_req3,0);
8958 return offset;
8961 static int
8962 samr_dissect_ValidatePasswordReq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
8964 proto_item *item = NULL;
8965 proto_tree *tree = NULL;
8966 int old_offset;
8967 uint16_t level;
8969 old_offset = offset;
8970 if (parent_tree) {
8971 tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_samr_samr_ValidatePasswordReq, &item, "samr_ValidatePasswordReq");
8974 UNION_ALIGN_TO_8_BYTES;
8975 offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
8976 UNION_ALIGN_TO_8_BYTES;
8978 switch(level) {
8979 case 1:
8980 offset = samr_dissect_element_ValidatePasswordReq_req1(tvb, offset, pinfo, tree, di, drep);
8981 break;
8983 case 2:
8984 offset = samr_dissect_element_ValidatePasswordReq_req2(tvb, offset, pinfo, tree, di, drep);
8985 break;
8987 case 3:
8988 offset = samr_dissect_element_ValidatePasswordReq_req3(tvb, offset, pinfo, tree, di, drep);
8989 break;
8991 proto_item_set_len(item, offset-old_offset);
8994 return offset;
8996 static int
8997 samr_dissect_element_Connect_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
8999 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_Connect_system_name_, NDR_POINTER_UNIQUE, "Pointer to System Name (uint16)",hf_samr_samr_Connect_system_name);
9001 return offset;
9004 static int
9005 samr_dissect_element_Connect_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9007 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_Connect_system_name, 0);
9009 return offset;
9012 static int
9013 samr_dissect_element_Connect_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9015 offset = samr_dissect_bitmap_ConnectAccessMask(tvb, offset, pinfo, tree, di, drep, hf_samr_connect_access_mask, 0);
9017 return offset;
9020 static int
9021 samr_dissect_element_Connect_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9023 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_Connect_connect_handle_, NDR_POINTER_REF, "Pointer to Connect Handle (policy_handle)",hf_samr_connect_handle);
9025 return offset;
9028 static int
9029 samr_dissect_element_Connect_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9031 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_connect_handle, PIDL_POLHND_OPEN|PIDL_POLHND_TYPE_SAMR_CONNECT);
9033 return offset;
9036 /* IDL: NTSTATUS samr_Connect( */
9037 /* IDL: [in] [unique(1)] uint16 *system_name, */
9038 /* IDL: [in] samr_ConnectAccessMask access_mask, */
9039 /* IDL: [out] [ref] policy_handle *connect_handle */
9040 /* IDL: ); */
9042 static int
9043 samr_dissect_Connect_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9045 uint32_t status;
9047 di->dcerpc_procedure_name="Connect";
9048 offset = samr_dissect_element_Connect_connect_handle(tvb, offset, pinfo, tree, di, drep);
9049 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9051 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
9053 if (status != 0)
9054 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
9056 return offset;
9059 static int
9060 samr_dissect_Connect_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9062 di->dcerpc_procedure_name="Connect";
9063 offset = samr_dissect_element_Connect_system_name(tvb, offset, pinfo, tree, di, drep);
9064 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9065 offset = samr_dissect_element_Connect_access_mask(tvb, offset, pinfo, tree, di, drep);
9066 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9067 return offset;
9070 static int
9071 samr_dissect_element_Close_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9073 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_Close_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_samr_handle);
9075 return offset;
9078 static int
9079 samr_dissect_element_Close_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9081 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_handle, PIDL_POLHND_CLOSE);
9083 return offset;
9086 /* IDL: NTSTATUS samr_Close( */
9087 /* IDL: [in] [out] [ref] policy_handle *handle */
9088 /* IDL: ); */
9090 static int
9091 samr_dissect_Close_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9093 uint32_t status;
9095 di->dcerpc_procedure_name="Close";
9096 offset = samr_dissect_element_Close_handle(tvb, offset, pinfo, tree, di, drep);
9097 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9099 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
9101 if (status != 0)
9102 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
9104 return offset;
9107 static int
9108 samr_dissect_Close_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9110 di->dcerpc_procedure_name="Close";
9111 offset = samr_dissect_element_Close_handle(tvb, offset, pinfo, tree, di, drep);
9112 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9113 return offset;
9116 static int
9117 samr_dissect_element_SetSecurity_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9119 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_SetSecurity_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_samr_handle);
9121 return offset;
9124 static int
9125 samr_dissect_element_SetSecurity_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9127 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_handle, 0);
9129 return offset;
9132 static int
9133 samr_dissect_element_SetSecurity_sec_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9135 offset=cnf_dissect_samr_security_secinfo(tvb, offset, pinfo, tree, drep);
9137 return offset;
9140 static int
9141 samr_dissect_element_SetSecurity_sdbuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9143 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_SetSecurity_sdbuf_, NDR_POINTER_REF, "Pointer to Sdbuf (sec_desc_buf)",hf_samr_samr_SetSecurity_sdbuf);
9145 return offset;
9148 static int
9149 samr_dissect_element_SetSecurity_sdbuf_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9151 offset=cnf_dissect_sec_desc_buf(tvb, offset, pinfo, tree, di, drep);
9153 return offset;
9156 /* IDL: NTSTATUS samr_SetSecurity( */
9157 /* IDL: [in] [ref] policy_handle *handle, */
9158 /* IDL: [in] security_secinfo sec_info, */
9159 /* IDL: [in] [ref] sec_desc_buf *sdbuf */
9160 /* IDL: ); */
9162 static int
9163 samr_dissect_SetSecurity_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9165 uint32_t status;
9167 di->dcerpc_procedure_name="SetSecurity";
9168 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
9170 if (status != 0)
9171 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
9173 return offset;
9176 static int
9177 samr_dissect_SetSecurity_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9179 di->dcerpc_procedure_name="SetSecurity";
9180 offset = samr_dissect_element_SetSecurity_handle(tvb, offset, pinfo, tree, di, drep);
9181 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9182 offset = samr_dissect_element_SetSecurity_sec_info(tvb, offset, pinfo, tree, di, drep);
9183 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9184 offset = samr_dissect_element_SetSecurity_sdbuf(tvb, offset, pinfo, tree, di, drep);
9185 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9186 return offset;
9189 static int
9190 samr_dissect_element_QuerySecurity_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9192 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_QuerySecurity_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_samr_handle);
9194 return offset;
9197 static int
9198 samr_dissect_element_QuerySecurity_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9200 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_handle, 0);
9202 return offset;
9205 static int
9206 samr_dissect_element_QuerySecurity_sec_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9208 offset=cnf_dissect_samr_security_secinfo(tvb, offset, pinfo, tree, drep);
9210 return offset;
9213 static int
9214 samr_dissect_element_QuerySecurity_sdbuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9216 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_QuerySecurity_sdbuf_, NDR_POINTER_REF, "Pointer to Sdbuf (sec_desc_buf)",hf_samr_samr_QuerySecurity_sdbuf);
9218 return offset;
9221 static int
9222 samr_dissect_element_QuerySecurity_sdbuf_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9224 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_QuerySecurity_sdbuf__, NDR_POINTER_UNIQUE, "Pointer to Sdbuf (sec_desc_buf)",hf_samr_samr_QuerySecurity_sdbuf);
9226 return offset;
9229 static int
9230 samr_dissect_element_QuerySecurity_sdbuf__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9232 offset=cnf_dissect_sec_desc_buf(tvb, offset, pinfo, tree, di, drep);
9234 return offset;
9237 /* IDL: NTSTATUS samr_QuerySecurity( */
9238 /* IDL: [in] [ref] policy_handle *handle, */
9239 /* IDL: [in] security_secinfo sec_info, */
9240 /* IDL: [out] [ref] sec_desc_buf **sdbuf */
9241 /* IDL: ); */
9243 static int
9244 samr_dissect_QuerySecurity_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9246 uint32_t status;
9248 di->dcerpc_procedure_name="QuerySecurity";
9249 offset = samr_dissect_element_QuerySecurity_sdbuf(tvb, offset, pinfo, tree, di, drep);
9250 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9252 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
9254 if (status != 0)
9255 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
9257 return offset;
9260 static int
9261 samr_dissect_QuerySecurity_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9263 di->dcerpc_procedure_name="QuerySecurity";
9264 offset = samr_dissect_element_QuerySecurity_handle(tvb, offset, pinfo, tree, di, drep);
9265 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9266 offset = samr_dissect_element_QuerySecurity_sec_info(tvb, offset, pinfo, tree, di, drep);
9267 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9268 return offset;
9271 static int
9272 samr_dissect_element_Shutdown_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9274 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_Shutdown_connect_handle_, NDR_POINTER_REF, "Pointer to Connect Handle (policy_handle)",hf_samr_samr_Shutdown_connect_handle);
9276 return offset;
9279 static int
9280 samr_dissect_element_Shutdown_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9282 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_Shutdown_connect_handle, PIDL_POLHND_CLOSE);
9284 return offset;
9287 /* IDL: NTSTATUS samr_Shutdown( */
9288 /* IDL: [in] [ref] policy_handle *connect_handle */
9289 /* IDL: ); */
9291 static int
9292 samr_dissect_Shutdown_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9294 uint32_t status;
9296 di->dcerpc_procedure_name="Shutdown";
9297 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
9299 if (status != 0)
9300 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
9302 return offset;
9305 static int
9306 samr_dissect_Shutdown_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9308 di->dcerpc_procedure_name="Shutdown";
9309 offset = samr_dissect_element_Shutdown_connect_handle(tvb, offset, pinfo, tree, di, drep);
9310 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9311 return offset;
9314 static int
9315 samr_dissect_element_LookupDomain_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9317 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_LookupDomain_connect_handle_, NDR_POINTER_REF, "Pointer to Connect Handle (policy_handle)",hf_samr_connect_handle);
9319 return offset;
9322 static int
9323 samr_dissect_element_LookupDomain_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9325 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_connect_handle, 0);
9327 return offset;
9330 static int
9331 samr_dissect_element_LookupDomain_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9333 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_LookupDomain_domain_name_, NDR_POINTER_REF, "Pointer to Domain Name (lsa_String)",hf_samr_samr_LookupDomain_domain_name);
9335 return offset;
9338 static int
9339 samr_dissect_element_LookupDomain_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9341 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 3|PIDL_SET_COL_INFO, hf_samr_samr_LookupDomain_domain_name);
9343 return offset;
9346 static int
9347 samr_dissect_element_LookupDomain_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9349 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_LookupDomain_sid_, NDR_POINTER_REF, "Pointer to Sid (dom_sid2)",hf_samr_samr_LookupDomain_sid);
9351 return offset;
9354 static int
9355 samr_dissect_element_LookupDomain_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9357 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_LookupDomain_sid__, NDR_POINTER_UNIQUE, "Pointer to Sid (dom_sid2)",hf_samr_samr_LookupDomain_sid);
9359 return offset;
9362 static int
9363 samr_dissect_element_LookupDomain_sid__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9365 offset=cnf_dissect_dom_sid2(tvb, offset, pinfo, tree, di, drep);
9367 return offset;
9370 /* IDL: NTSTATUS samr_LookupDomain( */
9371 /* IDL: [in] [ref] policy_handle *connect_handle, */
9372 /* IDL: [in] [ref] lsa_String *domain_name, */
9373 /* IDL: [out] [ref] dom_sid2 **sid */
9374 /* IDL: ); */
9376 static int
9377 samr_dissect_LookupDomain_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9379 uint32_t status;
9381 di->dcerpc_procedure_name="LookupDomain";
9382 offset = samr_dissect_element_LookupDomain_sid(tvb, offset, pinfo, tree, di, drep);
9383 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9385 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
9387 if (status != 0)
9388 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
9390 return offset;
9393 static int
9394 samr_dissect_LookupDomain_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9396 di->dcerpc_procedure_name="LookupDomain";
9397 offset = samr_dissect_element_LookupDomain_connect_handle(tvb, offset, pinfo, tree, di, drep);
9398 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9399 offset = samr_dissect_element_LookupDomain_domain_name(tvb, offset, pinfo, tree, di, drep);
9400 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9401 return offset;
9404 static int
9405 samr_dissect_element_EnumDomains_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9407 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_EnumDomains_connect_handle_, NDR_POINTER_REF, "Pointer to Connect Handle (policy_handle)",hf_samr_samr_EnumDomains_connect_handle);
9409 return offset;
9412 static int
9413 samr_dissect_element_EnumDomains_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9415 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_EnumDomains_connect_handle, 0);
9417 return offset;
9420 static int
9421 samr_dissect_element_EnumDomains_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9423 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_EnumDomains_resume_handle_, NDR_POINTER_REF, "Pointer to Resume Handle (uint32)",hf_samr_samr_EnumDomains_resume_handle);
9425 return offset;
9428 static int
9429 samr_dissect_element_EnumDomains_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9431 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_EnumDomains_resume_handle, 0);
9433 return offset;
9436 static int
9437 samr_dissect_element_EnumDomains_sam(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9439 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_EnumDomains_sam_, NDR_POINTER_REF, "Pointer to Sam (samr_SamArray)",hf_samr_samr_EnumDomains_sam);
9441 return offset;
9444 static int
9445 samr_dissect_element_EnumDomains_sam_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9447 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_EnumDomains_sam__, NDR_POINTER_UNIQUE, "Pointer to Sam (samr_SamArray)",hf_samr_samr_EnumDomains_sam);
9449 return offset;
9452 static int
9453 samr_dissect_element_EnumDomains_sam__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9455 offset = samr_dissect_struct_SamArray(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_EnumDomains_sam,0);
9457 return offset;
9460 static int
9461 samr_dissect_element_EnumDomains_buf_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9463 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_EnumDomains_buf_size, 0);
9465 return offset;
9468 static int
9469 samr_dissect_element_EnumDomains_num_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9471 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_EnumDomains_num_entries_, NDR_POINTER_REF, "Pointer to Num Entries (uint32)",hf_samr_samr_EnumDomains_num_entries);
9473 return offset;
9476 static int
9477 samr_dissect_element_EnumDomains_num_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9479 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_EnumDomains_num_entries, 0);
9481 return offset;
9484 /* IDL: NTSTATUS samr_EnumDomains( */
9485 /* IDL: [in] [ref] policy_handle *connect_handle, */
9486 /* IDL: [in] [out] [ref] uint32 *resume_handle, */
9487 /* IDL: [out] [ref] samr_SamArray **sam, */
9488 /* IDL: [in] uint32 buf_size, */
9489 /* IDL: [out] [ref] uint32 *num_entries */
9490 /* IDL: ); */
9492 static int
9493 samr_dissect_EnumDomains_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9495 uint32_t status;
9497 di->dcerpc_procedure_name="EnumDomains";
9498 offset = samr_dissect_element_EnumDomains_resume_handle(tvb, offset, pinfo, tree, di, drep);
9499 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9501 offset = samr_dissect_element_EnumDomains_sam(tvb, offset, pinfo, tree, di, drep);
9502 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9504 offset = samr_dissect_element_EnumDomains_num_entries(tvb, offset, pinfo, tree, di, drep);
9505 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9507 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
9509 if (status != 0)
9510 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
9512 return offset;
9515 static int
9516 samr_dissect_EnumDomains_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9518 di->dcerpc_procedure_name="EnumDomains";
9519 offset = samr_dissect_element_EnumDomains_connect_handle(tvb, offset, pinfo, tree, di, drep);
9520 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9521 offset = samr_dissect_element_EnumDomains_resume_handle(tvb, offset, pinfo, tree, di, drep);
9522 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9523 offset = samr_dissect_element_EnumDomains_buf_size(tvb, offset, pinfo, tree, di, drep);
9524 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9525 return offset;
9528 static int
9529 samr_dissect_element_OpenDomain_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9531 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_OpenDomain_connect_handle_, NDR_POINTER_REF, "Pointer to Connect Handle (policy_handle)",hf_samr_connect_handle);
9533 return offset;
9536 static int
9537 samr_dissect_element_OpenDomain_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9539 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_connect_handle, 0);
9541 return offset;
9544 static int
9545 samr_dissect_element_OpenDomain_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9547 offset = samr_dissect_bitmap_DomainAccessMask(tvb, offset, pinfo, tree, di, drep, hf_samr_domain_access_mask, 0);
9549 return offset;
9552 static int
9553 samr_dissect_element_OpenDomain_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9555 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_OpenDomain_sid_, NDR_POINTER_REF, "Pointer to Sid (dom_sid2)",hf_samr_samr_OpenDomain_sid);
9557 return offset;
9560 static int
9561 samr_dissect_element_OpenDomain_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9563 offset=cnf_dissect_dom_sid2(tvb, offset, pinfo, tree, di, drep);
9565 return offset;
9568 static int
9569 samr_dissect_element_OpenDomain_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9571 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_OpenDomain_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_domain_handle);
9573 return offset;
9576 static int
9577 samr_dissect_element_OpenDomain_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9579 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_domain_handle, PIDL_POLHND_OPEN|PIDL_POLHND_TYPE_SAMR_DOMAIN);
9581 return offset;
9584 /* IDL: NTSTATUS samr_OpenDomain( */
9585 /* IDL: [in] [ref] policy_handle *connect_handle, */
9586 /* IDL: [in] samr_DomainAccessMask access_mask, */
9587 /* IDL: [in] [ref] dom_sid2 *sid, */
9588 /* IDL: [out] [ref] policy_handle *domain_handle */
9589 /* IDL: ); */
9591 static int
9592 samr_dissect_OpenDomain_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9594 uint32_t status;
9596 di->dcerpc_procedure_name="OpenDomain";
9597 offset = samr_dissect_element_OpenDomain_domain_handle(tvb, offset, pinfo, tree, di, drep);
9598 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9600 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
9602 if (status != 0)
9603 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
9605 return offset;
9608 static int
9609 samr_dissect_OpenDomain_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9611 di->dcerpc_procedure_name="OpenDomain";
9612 offset = samr_dissect_element_OpenDomain_connect_handle(tvb, offset, pinfo, tree, di, drep);
9613 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9614 offset = samr_dissect_element_OpenDomain_access_mask(tvb, offset, pinfo, tree, di, drep);
9615 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9616 offset = samr_dissect_element_OpenDomain_sid(tvb, offset, pinfo, tree, di, drep);
9617 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9618 return offset;
9621 static int
9622 samr_dissect_element_QueryDomainInfo_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9624 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_QueryDomainInfo_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_domain_handle);
9626 return offset;
9629 static int
9630 samr_dissect_element_QueryDomainInfo_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9632 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_domain_handle, 0);
9634 return offset;
9637 static int
9638 samr_dissect_element_QueryDomainInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9640 offset = samr_dissect_enum_DomainInfoClass(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryDomainInfo_level, 0);
9642 return offset;
9645 static int
9646 samr_dissect_element_QueryDomainInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9648 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_QueryDomainInfo_info_, NDR_POINTER_REF, "Pointer to Info (samr_DomainInfo)",hf_samr_samr_QueryDomainInfo_info);
9650 return offset;
9653 static int
9654 samr_dissect_element_QueryDomainInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9656 uint64_t saved_switch_level = di->switch_level;
9658 di->switch_level = 0;
9660 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_QueryDomainInfo_info__, NDR_POINTER_UNIQUE, "Pointer to Info (samr_DomainInfo)",hf_samr_samr_QueryDomainInfo_info);
9662 di->switch_level = saved_switch_level;
9664 return offset;
9667 static int
9668 samr_dissect_element_QueryDomainInfo_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9670 offset = samr_dissect_DomainInfo(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryDomainInfo_info, 0);
9672 return offset;
9675 /* IDL: NTSTATUS samr_QueryDomainInfo( */
9676 /* IDL: [in] [ref] policy_handle *domain_handle, */
9677 /* IDL: [in] samr_DomainInfoClass level, */
9678 /* IDL: [out] [ref] [switch_is(level)] samr_DomainInfo **info */
9679 /* IDL: ); */
9681 static int
9682 samr_dissect_QueryDomainInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9684 uint32_t status;
9686 di->dcerpc_procedure_name="QueryDomainInfo";
9687 offset = samr_dissect_element_QueryDomainInfo_info(tvb, offset, pinfo, tree, di, drep);
9688 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9690 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
9692 if (status != 0)
9693 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
9695 return offset;
9698 static int
9699 samr_dissect_QueryDomainInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9701 di->dcerpc_procedure_name="QueryDomainInfo";
9702 offset = samr_dissect_element_QueryDomainInfo_domain_handle(tvb, offset, pinfo, tree, di, drep);
9703 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9704 offset = samr_dissect_element_QueryDomainInfo_level(tvb, offset, pinfo, tree, di, drep);
9705 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9706 return offset;
9709 static int
9710 samr_dissect_element_SetDomainInfo_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9712 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_SetDomainInfo_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_domain_handle);
9714 return offset;
9717 static int
9718 samr_dissect_element_SetDomainInfo_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9720 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_domain_handle, 0);
9722 return offset;
9725 static int
9726 samr_dissect_element_SetDomainInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9728 offset = samr_dissect_enum_DomainInfoClass(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_SetDomainInfo_level, 0);
9730 return offset;
9733 static int
9734 samr_dissect_element_SetDomainInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9736 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_SetDomainInfo_info_, NDR_POINTER_REF, "Pointer to Info (samr_DomainInfo)",hf_samr_samr_SetDomainInfo_info);
9738 return offset;
9741 static int
9742 samr_dissect_element_SetDomainInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9744 offset = samr_dissect_DomainInfo(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_SetDomainInfo_info, 0);
9746 return offset;
9749 /* IDL: NTSTATUS samr_SetDomainInfo( */
9750 /* IDL: [in] [ref] policy_handle *domain_handle, */
9751 /* IDL: [in] samr_DomainInfoClass level, */
9752 /* IDL: [in] [ref] [switch_is(level)] samr_DomainInfo *info */
9753 /* IDL: ); */
9755 static int
9756 samr_dissect_SetDomainInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9758 uint32_t status;
9760 di->dcerpc_procedure_name="SetDomainInfo";
9761 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
9763 if (status != 0)
9764 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
9766 return offset;
9769 static int
9770 samr_dissect_SetDomainInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9772 di->dcerpc_procedure_name="SetDomainInfo";
9773 offset = samr_dissect_element_SetDomainInfo_domain_handle(tvb, offset, pinfo, tree, di, drep);
9774 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9775 offset = samr_dissect_element_SetDomainInfo_level(tvb, offset, pinfo, tree, di, drep);
9776 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9777 offset = samr_dissect_element_SetDomainInfo_info(tvb, offset, pinfo, tree, di, drep);
9778 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9779 return offset;
9782 static int
9783 samr_dissect_element_CreateDomainGroup_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9785 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_CreateDomainGroup_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_domain_handle);
9787 return offset;
9790 static int
9791 samr_dissect_element_CreateDomainGroup_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9793 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_domain_handle, 0);
9795 return offset;
9798 static int
9799 samr_dissect_element_CreateDomainGroup_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9801 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_CreateDomainGroup_name_, NDR_POINTER_REF, "Pointer to Name (lsa_String)",hf_samr_samr_CreateDomainGroup_name);
9803 return offset;
9806 static int
9807 samr_dissect_element_CreateDomainGroup_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9809 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_CreateDomainGroup_name);
9811 return offset;
9814 static int
9815 samr_dissect_element_CreateDomainGroup_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9817 offset = samr_dissect_bitmap_GroupAccessMask(tvb, offset, pinfo, tree, di, drep, hf_samr_group_access_mask, 0);
9819 return offset;
9822 static int
9823 samr_dissect_element_CreateDomainGroup_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9825 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_CreateDomainGroup_group_handle_, NDR_POINTER_REF, "Pointer to Group Handle (policy_handle)",hf_samr_group_handle);
9827 return offset;
9830 static int
9831 samr_dissect_element_CreateDomainGroup_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9833 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_group_handle, PIDL_POLHND_OPEN|PIDL_POLHND_TYPE_SAMR_GROUP);
9835 return offset;
9838 static int
9839 samr_dissect_element_CreateDomainGroup_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9841 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_CreateDomainGroup_rid_, NDR_POINTER_REF, "Pointer to Rid (uint32)",hf_samr_rid);
9843 return offset;
9846 static int
9847 samr_dissect_element_CreateDomainGroup_rid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9849 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_rid, 0);
9851 return offset;
9854 /* IDL: NTSTATUS samr_CreateDomainGroup( */
9855 /* IDL: [in] [ref] policy_handle *domain_handle, */
9856 /* IDL: [in] [ref] lsa_String *name, */
9857 /* IDL: [in] samr_GroupAccessMask access_mask, */
9858 /* IDL: [out] [ref] policy_handle *group_handle, */
9859 /* IDL: [out] [ref] uint32 *rid */
9860 /* IDL: ); */
9862 static int
9863 samr_dissect_CreateDomainGroup_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9865 uint32_t status;
9867 di->dcerpc_procedure_name="CreateDomainGroup";
9868 offset = samr_dissect_element_CreateDomainGroup_group_handle(tvb, offset, pinfo, tree, di, drep);
9869 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9871 offset = samr_dissect_element_CreateDomainGroup_rid(tvb, offset, pinfo, tree, di, drep);
9872 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9874 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
9876 if (status != 0)
9877 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
9879 return offset;
9882 static int
9883 samr_dissect_CreateDomainGroup_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9885 di->dcerpc_procedure_name="CreateDomainGroup";
9886 offset = samr_dissect_element_CreateDomainGroup_domain_handle(tvb, offset, pinfo, tree, di, drep);
9887 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9888 offset = samr_dissect_element_CreateDomainGroup_name(tvb, offset, pinfo, tree, di, drep);
9889 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9890 offset = samr_dissect_element_CreateDomainGroup_access_mask(tvb, offset, pinfo, tree, di, drep);
9891 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9892 return offset;
9895 static int
9896 samr_dissect_element_EnumDomainGroups_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9898 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_EnumDomainGroups_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_domain_handle);
9900 return offset;
9903 static int
9904 samr_dissect_element_EnumDomainGroups_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9906 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_domain_handle, 0);
9908 return offset;
9911 static int
9912 samr_dissect_element_EnumDomainGroups_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9914 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_EnumDomainGroups_resume_handle_, NDR_POINTER_REF, "Pointer to Resume Handle (uint32)",hf_samr_samr_EnumDomainGroups_resume_handle);
9916 return offset;
9919 static int
9920 samr_dissect_element_EnumDomainGroups_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9922 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_EnumDomainGroups_resume_handle, 0);
9924 return offset;
9927 static int
9928 samr_dissect_element_EnumDomainGroups_sam(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9930 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_EnumDomainGroups_sam_, NDR_POINTER_REF, "Pointer to Sam (samr_SamArray)",hf_samr_samr_EnumDomainGroups_sam);
9932 return offset;
9935 static int
9936 samr_dissect_element_EnumDomainGroups_sam_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9938 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_EnumDomainGroups_sam__, NDR_POINTER_UNIQUE, "Pointer to Sam (samr_SamArray)",hf_samr_samr_EnumDomainGroups_sam);
9940 return offset;
9943 static int
9944 samr_dissect_element_EnumDomainGroups_sam__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9946 offset = samr_dissect_struct_SamArray(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_EnumDomainGroups_sam,0);
9948 return offset;
9951 static int
9952 samr_dissect_element_EnumDomainGroups_max_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9954 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_EnumDomainGroups_max_size, 0);
9956 return offset;
9959 static int
9960 samr_dissect_element_EnumDomainGroups_num_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9962 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_EnumDomainGroups_num_entries_, NDR_POINTER_REF, "Pointer to Num Entries (uint32)",hf_samr_samr_EnumDomainGroups_num_entries);
9964 return offset;
9967 static int
9968 samr_dissect_element_EnumDomainGroups_num_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9970 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_EnumDomainGroups_num_entries, 0);
9972 return offset;
9975 /* IDL: NTSTATUS samr_EnumDomainGroups( */
9976 /* IDL: [in] [ref] policy_handle *domain_handle, */
9977 /* IDL: [in] [out] [ref] uint32 *resume_handle, */
9978 /* IDL: [out] [ref] samr_SamArray **sam, */
9979 /* IDL: [in] uint32 max_size, */
9980 /* IDL: [out] [ref] uint32 *num_entries */
9981 /* IDL: ); */
9983 static int
9984 samr_dissect_EnumDomainGroups_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
9986 uint32_t status;
9988 di->dcerpc_procedure_name="EnumDomainGroups";
9989 offset = samr_dissect_element_EnumDomainGroups_resume_handle(tvb, offset, pinfo, tree, di, drep);
9990 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9992 offset = samr_dissect_element_EnumDomainGroups_sam(tvb, offset, pinfo, tree, di, drep);
9993 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9995 offset = samr_dissect_element_EnumDomainGroups_num_entries(tvb, offset, pinfo, tree, di, drep);
9996 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9998 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
10000 if (status != 0)
10001 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
10003 return offset;
10006 static int
10007 samr_dissect_EnumDomainGroups_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10009 di->dcerpc_procedure_name="EnumDomainGroups";
10010 offset = samr_dissect_element_EnumDomainGroups_domain_handle(tvb, offset, pinfo, tree, di, drep);
10011 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10012 offset = samr_dissect_element_EnumDomainGroups_resume_handle(tvb, offset, pinfo, tree, di, drep);
10013 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10014 offset = samr_dissect_element_EnumDomainGroups_max_size(tvb, offset, pinfo, tree, di, drep);
10015 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10016 return offset;
10019 static int
10020 samr_dissect_element_CreateUser_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10022 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_CreateUser_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_domain_handle);
10024 return offset;
10027 static int
10028 samr_dissect_element_CreateUser_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10030 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_domain_handle, 0);
10032 return offset;
10035 static int
10036 samr_dissect_element_CreateUser_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10038 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_CreateUser_account_name_, NDR_POINTER_REF, "Pointer to Account Name (lsa_String)",hf_samr_samr_CreateUser_account_name);
10040 return offset;
10043 static int
10044 samr_dissect_element_CreateUser_account_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10046 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 3|PIDL_SET_COL_INFO|PIDL_STR_SAVE, hf_samr_samr_CreateUser_account_name);
10048 return offset;
10051 static int
10052 samr_dissect_element_CreateUser_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10054 offset = samr_dissect_bitmap_UserAccessMask(tvb, offset, pinfo, tree, di, drep, hf_samr_user_access_mask, 0);
10056 return offset;
10059 static int
10060 samr_dissect_element_CreateUser_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10062 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_CreateUser_user_handle_, NDR_POINTER_REF, "Pointer to User Handle (policy_handle)",hf_samr_user_handle);
10064 return offset;
10067 static int
10068 samr_dissect_element_CreateUser_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10070 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_user_handle, PIDL_POLHND_OPEN|PIDL_POLHND_TYPE_SAMR_USER);
10072 return offset;
10075 static int
10076 samr_dissect_element_CreateUser_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10078 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_CreateUser_rid_, NDR_POINTER_REF, "Pointer to Rid (uint32)",hf_samr_rid);
10080 return offset;
10083 static int
10084 samr_dissect_element_CreateUser_rid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10086 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_rid, 0);
10088 return offset;
10091 /* IDL: NTSTATUS samr_CreateUser( */
10092 /* IDL: [in] [ref] policy_handle *domain_handle, */
10093 /* IDL: [in] [ref] lsa_String *account_name, */
10094 /* IDL: [in] samr_UserAccessMask access_mask, */
10095 /* IDL: [out] [ref] policy_handle *user_handle, */
10096 /* IDL: [out] [ref] uint32 *rid */
10097 /* IDL: ); */
10099 static int
10100 samr_dissect_CreateUser_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10102 uint32_t status;
10104 di->dcerpc_procedure_name="CreateUser";
10105 offset = samr_dissect_element_CreateUser_user_handle(tvb, offset, pinfo, tree, di, drep);
10106 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10108 offset = samr_dissect_element_CreateUser_rid(tvb, offset, pinfo, tree, di, drep);
10109 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10111 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
10113 if (status != 0)
10114 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
10116 return offset;
10119 static int
10120 samr_dissect_CreateUser_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10122 di->dcerpc_procedure_name="CreateUser";
10123 offset = samr_dissect_element_CreateUser_domain_handle(tvb, offset, pinfo, tree, di, drep);
10124 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10125 offset = samr_dissect_element_CreateUser_account_name(tvb, offset, pinfo, tree, di, drep);
10126 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10127 offset = samr_dissect_element_CreateUser_access_mask(tvb, offset, pinfo, tree, di, drep);
10128 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10129 return offset;
10132 static int
10133 samr_dissect_element_EnumDomainUsers_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10135 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_EnumDomainUsers_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_domain_handle);
10137 return offset;
10140 static int
10141 samr_dissect_element_EnumDomainUsers_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10143 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_domain_handle, 0);
10145 return offset;
10148 static int
10149 samr_dissect_element_EnumDomainUsers_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10151 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_EnumDomainUsers_resume_handle_, NDR_POINTER_REF, "Pointer to Resume Handle (uint32)",hf_samr_samr_EnumDomainUsers_resume_handle);
10153 return offset;
10156 static int
10157 samr_dissect_element_EnumDomainUsers_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10159 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_EnumDomainUsers_resume_handle, 0);
10161 return offset;
10164 static int
10165 samr_dissect_element_EnumDomainUsers_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10167 offset = samr_dissect_bitmap_AcctFlags(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_EnumDomainUsers_acct_flags, 0);
10169 return offset;
10172 static int
10173 samr_dissect_element_EnumDomainUsers_sam(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10175 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_EnumDomainUsers_sam_, NDR_POINTER_REF, "Pointer to Sam (samr_SamArray)",hf_samr_samr_EnumDomainUsers_sam);
10177 return offset;
10180 static int
10181 samr_dissect_element_EnumDomainUsers_sam_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10183 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_EnumDomainUsers_sam__, NDR_POINTER_UNIQUE, "Pointer to Sam (samr_SamArray)",hf_samr_samr_EnumDomainUsers_sam);
10185 return offset;
10188 static int
10189 samr_dissect_element_EnumDomainUsers_sam__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10191 offset = samr_dissect_struct_SamArray(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_EnumDomainUsers_sam,0);
10193 return offset;
10196 static int
10197 samr_dissect_element_EnumDomainUsers_max_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10199 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_EnumDomainUsers_max_size, 0);
10201 return offset;
10204 static int
10205 samr_dissect_element_EnumDomainUsers_num_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10207 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_EnumDomainUsers_num_entries_, NDR_POINTER_REF, "Pointer to Num Entries (uint32)",hf_samr_samr_EnumDomainUsers_num_entries);
10209 return offset;
10212 static int
10213 samr_dissect_element_EnumDomainUsers_num_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10215 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_EnumDomainUsers_num_entries, 0);
10217 return offset;
10220 /* IDL: NTSTATUS samr_EnumDomainUsers( */
10221 /* IDL: [in] [ref] policy_handle *domain_handle, */
10222 /* IDL: [in] [out] [ref] uint32 *resume_handle, */
10223 /* IDL: [in] samr_AcctFlags acct_flags, */
10224 /* IDL: [out] [ref] samr_SamArray **sam, */
10225 /* IDL: [in] uint32 max_size, */
10226 /* IDL: [out] [ref] uint32 *num_entries */
10227 /* IDL: ); */
10229 static int
10230 samr_dissect_EnumDomainUsers_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10232 uint32_t status;
10234 di->dcerpc_procedure_name="EnumDomainUsers";
10235 offset = samr_dissect_element_EnumDomainUsers_resume_handle(tvb, offset, pinfo, tree, di, drep);
10236 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10238 offset = samr_dissect_element_EnumDomainUsers_sam(tvb, offset, pinfo, tree, di, drep);
10239 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10241 offset = samr_dissect_element_EnumDomainUsers_num_entries(tvb, offset, pinfo, tree, di, drep);
10242 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10244 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
10246 if (status != 0)
10247 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
10249 return offset;
10252 static int
10253 samr_dissect_EnumDomainUsers_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10255 di->dcerpc_procedure_name="EnumDomainUsers";
10256 offset = samr_dissect_element_EnumDomainUsers_domain_handle(tvb, offset, pinfo, tree, di, drep);
10257 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10258 offset = samr_dissect_element_EnumDomainUsers_resume_handle(tvb, offset, pinfo, tree, di, drep);
10259 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10260 offset = samr_dissect_element_EnumDomainUsers_acct_flags(tvb, offset, pinfo, tree, di, drep);
10261 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10262 offset = samr_dissect_element_EnumDomainUsers_max_size(tvb, offset, pinfo, tree, di, drep);
10263 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10264 return offset;
10267 static int
10268 samr_dissect_element_CreateDomAlias_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10270 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_CreateDomAlias_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_domain_handle);
10272 return offset;
10275 static int
10276 samr_dissect_element_CreateDomAlias_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10278 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_domain_handle, 0);
10280 return offset;
10283 static int
10284 samr_dissect_element_CreateDomAlias_alias_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10286 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_CreateDomAlias_alias_name_, NDR_POINTER_REF, "Pointer to Alias Name (lsa_String)",hf_samr_samr_CreateDomAlias_alias_name);
10288 return offset;
10291 static int
10292 samr_dissect_element_CreateDomAlias_alias_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10294 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_CreateDomAlias_alias_name);
10296 return offset;
10299 static int
10300 samr_dissect_element_CreateDomAlias_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10302 offset = samr_dissect_bitmap_AliasAccessMask(tvb, offset, pinfo, tree, di, drep, hf_samr_alias_access_mask, 0);
10304 return offset;
10307 static int
10308 samr_dissect_element_CreateDomAlias_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10310 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_CreateDomAlias_alias_handle_, NDR_POINTER_REF, "Pointer to Alias Handle (policy_handle)",hf_samr_alias_handle);
10312 return offset;
10315 static int
10316 samr_dissect_element_CreateDomAlias_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10318 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_alias_handle, PIDL_POLHND_OPEN|PIDL_POLHND_TYPE_SAMR_ALIAS);
10320 return offset;
10323 static int
10324 samr_dissect_element_CreateDomAlias_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10326 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_CreateDomAlias_rid_, NDR_POINTER_REF, "Pointer to Rid (uint32)",hf_samr_rid);
10328 return offset;
10331 static int
10332 samr_dissect_element_CreateDomAlias_rid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10334 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_rid, 0);
10336 return offset;
10339 /* IDL: NTSTATUS samr_CreateDomAlias( */
10340 /* IDL: [in] [ref] policy_handle *domain_handle, */
10341 /* IDL: [in] [ref] lsa_String *alias_name, */
10342 /* IDL: [in] samr_AliasAccessMask access_mask, */
10343 /* IDL: [out] [ref] policy_handle *alias_handle, */
10344 /* IDL: [out] [ref] uint32 *rid */
10345 /* IDL: ); */
10347 static int
10348 samr_dissect_CreateDomAlias_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10350 uint32_t status;
10352 di->dcerpc_procedure_name="CreateDomAlias";
10353 offset = samr_dissect_element_CreateDomAlias_alias_handle(tvb, offset, pinfo, tree, di, drep);
10354 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10356 offset = samr_dissect_element_CreateDomAlias_rid(tvb, offset, pinfo, tree, di, drep);
10357 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10359 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
10361 if (status != 0)
10362 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
10364 return offset;
10367 static int
10368 samr_dissect_CreateDomAlias_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10370 di->dcerpc_procedure_name="CreateDomAlias";
10371 offset = samr_dissect_element_CreateDomAlias_domain_handle(tvb, offset, pinfo, tree, di, drep);
10372 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10373 offset = samr_dissect_element_CreateDomAlias_alias_name(tvb, offset, pinfo, tree, di, drep);
10374 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10375 offset = samr_dissect_element_CreateDomAlias_access_mask(tvb, offset, pinfo, tree, di, drep);
10376 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10377 return offset;
10380 static int
10381 samr_dissect_element_EnumDomainAliases_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10383 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_EnumDomainAliases_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_domain_handle);
10385 return offset;
10388 static int
10389 samr_dissect_element_EnumDomainAliases_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10391 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_domain_handle, 0);
10393 return offset;
10396 static int
10397 samr_dissect_element_EnumDomainAliases_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10399 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_EnumDomainAliases_resume_handle_, NDR_POINTER_REF, "Pointer to Resume Handle (uint32)",hf_samr_samr_EnumDomainAliases_resume_handle);
10401 return offset;
10404 static int
10405 samr_dissect_element_EnumDomainAliases_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10407 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_EnumDomainAliases_resume_handle, 0);
10409 return offset;
10412 static int
10413 samr_dissect_element_EnumDomainAliases_sam(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10415 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_EnumDomainAliases_sam_, NDR_POINTER_REF, "Pointer to Sam (samr_SamArray)",hf_samr_samr_EnumDomainAliases_sam);
10417 return offset;
10420 static int
10421 samr_dissect_element_EnumDomainAliases_sam_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10423 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_EnumDomainAliases_sam__, NDR_POINTER_UNIQUE, "Pointer to Sam (samr_SamArray)",hf_samr_samr_EnumDomainAliases_sam);
10425 return offset;
10428 static int
10429 samr_dissect_element_EnumDomainAliases_sam__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10431 offset = samr_dissect_struct_SamArray(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_EnumDomainAliases_sam,0);
10433 return offset;
10436 static int
10437 samr_dissect_element_EnumDomainAliases_max_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10439 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_EnumDomainAliases_max_size, 0);
10441 return offset;
10444 static int
10445 samr_dissect_element_EnumDomainAliases_num_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10447 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_EnumDomainAliases_num_entries_, NDR_POINTER_REF, "Pointer to Num Entries (uint32)",hf_samr_samr_EnumDomainAliases_num_entries);
10449 return offset;
10452 static int
10453 samr_dissect_element_EnumDomainAliases_num_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10455 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_EnumDomainAliases_num_entries, 0);
10457 return offset;
10460 /* IDL: NTSTATUS samr_EnumDomainAliases( */
10461 /* IDL: [in] [ref] policy_handle *domain_handle, */
10462 /* IDL: [in] [out] [ref] uint32 *resume_handle, */
10463 /* IDL: [out] [ref] samr_SamArray **sam, */
10464 /* IDL: [in] uint32 max_size, */
10465 /* IDL: [out] [ref] uint32 *num_entries */
10466 /* IDL: ); */
10468 static int
10469 samr_dissect_EnumDomainAliases_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10471 uint32_t status;
10473 di->dcerpc_procedure_name="EnumDomainAliases";
10474 offset = samr_dissect_element_EnumDomainAliases_resume_handle(tvb, offset, pinfo, tree, di, drep);
10475 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10477 offset = samr_dissect_element_EnumDomainAliases_sam(tvb, offset, pinfo, tree, di, drep);
10478 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10480 offset = samr_dissect_element_EnumDomainAliases_num_entries(tvb, offset, pinfo, tree, di, drep);
10481 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10483 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
10485 if (status != 0)
10486 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
10488 return offset;
10491 static int
10492 samr_dissect_EnumDomainAliases_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10494 di->dcerpc_procedure_name="EnumDomainAliases";
10495 offset = samr_dissect_element_EnumDomainAliases_domain_handle(tvb, offset, pinfo, tree, di, drep);
10496 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10497 offset = samr_dissect_element_EnumDomainAliases_resume_handle(tvb, offset, pinfo, tree, di, drep);
10498 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10499 offset = samr_dissect_element_EnumDomainAliases_max_size(tvb, offset, pinfo, tree, di, drep);
10500 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10501 return offset;
10504 static int
10505 samr_dissect_element_GetAliasMembership_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10507 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_GetAliasMembership_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_domain_handle);
10509 return offset;
10512 static int
10513 samr_dissect_element_GetAliasMembership_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10515 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_domain_handle, 0);
10517 return offset;
10520 static int
10521 samr_dissect_element_GetAliasMembership_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10523 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_GetAliasMembership_sids_, NDR_POINTER_REF, "Pointer to Sids (lsa_SidArray)",hf_samr_samr_GetAliasMembership_sids);
10525 return offset;
10528 static int
10529 samr_dissect_element_GetAliasMembership_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10531 offset=cnf_dissect_lsa_SidArray(tvb, offset, pinfo, tree, di, drep);
10533 return offset;
10536 static int
10537 samr_dissect_element_GetAliasMembership_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10539 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_GetAliasMembership_rids_, NDR_POINTER_REF, "Pointer to Rids (samr_Ids)",hf_samr_samr_GetAliasMembership_rids);
10541 return offset;
10544 static int
10545 samr_dissect_element_GetAliasMembership_rids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10547 offset = samr_dissect_struct_Ids(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_GetAliasMembership_rids,0);
10549 return offset;
10552 /* IDL: NTSTATUS samr_GetAliasMembership( */
10553 /* IDL: [in] [ref] policy_handle *domain_handle, */
10554 /* IDL: [in] [ref] lsa_SidArray *sids, */
10555 /* IDL: [out] [ref] samr_Ids *rids */
10556 /* IDL: ); */
10558 static int
10559 samr_dissect_GetAliasMembership_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10561 uint32_t status;
10563 di->dcerpc_procedure_name="GetAliasMembership";
10564 offset = samr_dissect_element_GetAliasMembership_rids(tvb, offset, pinfo, tree, di, drep);
10565 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10567 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
10569 if (status != 0)
10570 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
10572 return offset;
10575 static int
10576 samr_dissect_GetAliasMembership_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10578 di->dcerpc_procedure_name="GetAliasMembership";
10579 offset = samr_dissect_element_GetAliasMembership_domain_handle(tvb, offset, pinfo, tree, di, drep);
10580 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10581 offset = samr_dissect_element_GetAliasMembership_sids(tvb, offset, pinfo, tree, di, drep);
10582 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10583 return offset;
10586 static int
10587 samr_dissect_element_LookupNames_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10589 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_LookupNames_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_domain_handle);
10591 return offset;
10594 static int
10595 samr_dissect_element_LookupNames_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10597 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_domain_handle, 0);
10599 return offset;
10602 static int
10603 samr_dissect_element_LookupNames_num_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10605 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_LookupNames_num_names, 0);
10607 return offset;
10610 static int
10611 samr_dissect_element_LookupNames_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10613 struct ndr_generic_array nga = { .is_conformant = false, };
10615 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
10617 offset = dissect_ndr_varying_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
10619 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, samr_dissect_element_LookupNames_names_);
10621 return offset;
10624 static int
10625 samr_dissect_element_LookupNames_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10627 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_LookupNames_names);
10629 return offset;
10632 static int
10633 samr_dissect_element_LookupNames_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10635 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_LookupNames_rids_, NDR_POINTER_REF, "Pointer to Rids (samr_Ids)",hf_samr_samr_LookupNames_rids);
10637 return offset;
10640 static int
10641 samr_dissect_element_LookupNames_rids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10643 offset = samr_dissect_struct_Ids(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_LookupNames_rids,0);
10645 return offset;
10648 static int
10649 samr_dissect_element_LookupNames_types(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10651 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_LookupNames_types_, NDR_POINTER_REF, "Pointer to Types (samr_Ids)",hf_samr_samr_LookupNames_types);
10653 return offset;
10656 static int
10657 samr_dissect_element_LookupNames_types_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10659 offset = samr_dissect_struct_Ids(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_LookupNames_types,0);
10661 return offset;
10664 /* IDL: NTSTATUS samr_LookupNames( */
10665 /* IDL: [in] [ref] policy_handle *domain_handle, */
10666 /* IDL: [in] [range(0,1000)] uint32 num_names, */
10667 /* IDL: [in] [length_is(num_names)] [size_is(1000)] lsa_String names[*], */
10668 /* IDL: [out] [ref] samr_Ids *rids, */
10669 /* IDL: [out] [ref] samr_Ids *types */
10670 /* IDL: ); */
10672 static int
10673 samr_dissect_LookupNames_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10675 uint32_t status;
10677 di->dcerpc_procedure_name="LookupNames";
10678 offset = samr_dissect_element_LookupNames_rids(tvb, offset, pinfo, tree, di, drep);
10679 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10681 offset = samr_dissect_element_LookupNames_types(tvb, offset, pinfo, tree, di, drep);
10682 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10684 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
10686 if (status != 0)
10687 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
10689 return offset;
10692 static int
10693 samr_dissect_LookupNames_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10695 di->dcerpc_procedure_name="LookupNames";
10696 offset = samr_dissect_element_LookupNames_domain_handle(tvb, offset, pinfo, tree, di, drep);
10697 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10698 offset = samr_dissect_element_LookupNames_num_names(tvb, offset, pinfo, tree, di, drep);
10699 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10700 offset = samr_dissect_element_LookupNames_names(tvb, offset, pinfo, tree, di, drep);
10701 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10702 return offset;
10705 static int
10706 samr_dissect_element_LookupRids_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10708 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_LookupRids_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_domain_handle);
10710 return offset;
10713 static int
10714 samr_dissect_element_LookupRids_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10716 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_domain_handle, 0);
10718 return offset;
10721 static int
10722 samr_dissect_element_LookupRids_num_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10724 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_LookupRids_num_rids, 0);
10726 return offset;
10729 static int
10730 samr_dissect_element_LookupRids_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10732 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_LookupRids_rids_, NDR_POINTER_REF, "Pointer to Rids (uint32)",hf_samr_rid);
10734 return offset;
10737 static int
10738 samr_dissect_element_LookupRids_rids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10740 struct ndr_generic_array nga = { .is_conformant = false, };
10742 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
10744 offset = dissect_ndr_varying_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
10746 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, samr_dissect_element_LookupRids_rids__);
10748 return offset;
10751 static int
10752 samr_dissect_element_LookupRids_rids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10754 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_rid, 0);
10756 return offset;
10759 static int
10760 samr_dissect_element_LookupRids_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10762 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_LookupRids_names_, NDR_POINTER_REF, "Pointer to Names (lsa_Strings)",hf_samr_samr_LookupRids_names);
10764 return offset;
10767 static int
10768 samr_dissect_element_LookupRids_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10770 offset = samr_dissect_struct_lsa_Strings(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_LookupRids_names,0);
10772 return offset;
10775 static int
10776 samr_dissect_element_LookupRids_types(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10778 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_LookupRids_types_, NDR_POINTER_REF, "Pointer to Types (samr_Ids)",hf_samr_samr_LookupRids_types);
10780 return offset;
10783 static int
10784 samr_dissect_element_LookupRids_types_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10786 offset = samr_dissect_struct_Ids(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_LookupRids_types,0);
10788 return offset;
10791 /* IDL: NTSTATUS samr_LookupRids( */
10792 /* IDL: [in] [ref] policy_handle *domain_handle, */
10793 /* IDL: [in] [range(0,1000)] uint32 num_rids, */
10794 /* IDL: [in] [length_is(num_rids)] [ref] [size_is(1000)] uint32 *rids, */
10795 /* IDL: [out] [ref] lsa_Strings *names, */
10796 /* IDL: [out] [ref] samr_Ids *types */
10797 /* IDL: ); */
10799 static int
10800 samr_dissect_LookupRids_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10802 uint32_t status;
10804 di->dcerpc_procedure_name="LookupRids";
10805 offset = samr_dissect_element_LookupRids_names(tvb, offset, pinfo, tree, di, drep);
10806 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10808 offset = samr_dissect_element_LookupRids_types(tvb, offset, pinfo, tree, di, drep);
10809 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10811 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
10813 if (status != 0)
10814 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
10816 return offset;
10819 static int
10820 samr_dissect_LookupRids_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10822 di->dcerpc_procedure_name="LookupRids";
10823 offset = samr_dissect_element_LookupRids_domain_handle(tvb, offset, pinfo, tree, di, drep);
10824 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10825 offset = samr_dissect_element_LookupRids_num_rids(tvb, offset, pinfo, tree, di, drep);
10826 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10827 offset = samr_dissect_element_LookupRids_rids(tvb, offset, pinfo, tree, di, drep);
10828 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10829 return offset;
10832 static int
10833 samr_dissect_element_OpenGroup_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10835 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_OpenGroup_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_domain_handle);
10837 return offset;
10840 static int
10841 samr_dissect_element_OpenGroup_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10843 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_domain_handle, 0);
10845 return offset;
10848 static int
10849 samr_dissect_element_OpenGroup_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10851 offset = samr_dissect_bitmap_GroupAccessMask(tvb, offset, pinfo, tree, di, drep, hf_samr_group_access_mask, 0);
10853 return offset;
10856 static int
10857 samr_dissect_element_OpenGroup_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10859 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_rid, 0);
10861 return offset;
10864 static int
10865 samr_dissect_element_OpenGroup_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10867 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_OpenGroup_group_handle_, NDR_POINTER_REF, "Pointer to Group Handle (policy_handle)",hf_samr_group_handle);
10869 return offset;
10872 static int
10873 samr_dissect_element_OpenGroup_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10875 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_group_handle, PIDL_POLHND_OPEN|PIDL_POLHND_TYPE_SAMR_GROUP);
10877 return offset;
10880 /* IDL: NTSTATUS samr_OpenGroup( */
10881 /* IDL: [in] [ref] policy_handle *domain_handle, */
10882 /* IDL: [in] samr_GroupAccessMask access_mask, */
10883 /* IDL: [in] uint32 rid, */
10884 /* IDL: [out] [ref] policy_handle *group_handle */
10885 /* IDL: ); */
10887 static int
10888 samr_dissect_OpenGroup_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10890 uint32_t status;
10892 di->dcerpc_procedure_name="OpenGroup";
10893 offset = samr_dissect_element_OpenGroup_group_handle(tvb, offset, pinfo, tree, di, drep);
10894 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10896 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
10898 if (status != 0)
10899 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
10901 return offset;
10904 static int
10905 samr_dissect_OpenGroup_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10907 di->dcerpc_procedure_name="OpenGroup";
10908 offset = samr_dissect_element_OpenGroup_domain_handle(tvb, offset, pinfo, tree, di, drep);
10909 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10910 offset = samr_dissect_element_OpenGroup_access_mask(tvb, offset, pinfo, tree, di, drep);
10911 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10912 offset = samr_dissect_element_OpenGroup_rid(tvb, offset, pinfo, tree, di, drep);
10913 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10914 return offset;
10917 static int
10918 samr_dissect_element_QueryGroupInfo_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10920 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_QueryGroupInfo_group_handle_, NDR_POINTER_REF, "Pointer to Group Handle (policy_handle)",hf_samr_group_handle);
10922 return offset;
10925 static int
10926 samr_dissect_element_QueryGroupInfo_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10928 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_group_handle, 0);
10930 return offset;
10933 static int
10934 samr_dissect_element_QueryGroupInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10936 offset = samr_dissect_enum_GroupInfoEnum(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryGroupInfo_level, 0);
10938 return offset;
10941 static int
10942 samr_dissect_element_QueryGroupInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10944 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_QueryGroupInfo_info_, NDR_POINTER_REF, "Pointer to Info (samr_GroupInfo)",hf_samr_samr_QueryGroupInfo_info);
10946 return offset;
10949 static int
10950 samr_dissect_element_QueryGroupInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10952 uint64_t saved_switch_level = di->switch_level;
10954 di->switch_level = 0;
10956 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_QueryGroupInfo_info__, NDR_POINTER_UNIQUE, "Pointer to Info (samr_GroupInfo)",hf_samr_samr_QueryGroupInfo_info);
10958 di->switch_level = saved_switch_level;
10960 return offset;
10963 static int
10964 samr_dissect_element_QueryGroupInfo_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10966 offset = samr_dissect_GroupInfo(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryGroupInfo_info, 0);
10968 return offset;
10971 /* IDL: NTSTATUS samr_QueryGroupInfo( */
10972 /* IDL: [in] [ref] policy_handle *group_handle, */
10973 /* IDL: [in] samr_GroupInfoEnum level, */
10974 /* IDL: [out] [ref] [switch_is(level)] samr_GroupInfo **info */
10975 /* IDL: ); */
10977 static int
10978 samr_dissect_QueryGroupInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10980 uint32_t status;
10982 di->dcerpc_procedure_name="QueryGroupInfo";
10983 offset = samr_dissect_element_QueryGroupInfo_info(tvb, offset, pinfo, tree, di, drep);
10984 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10986 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
10988 if (status != 0)
10989 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
10991 return offset;
10994 static int
10995 samr_dissect_QueryGroupInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
10997 di->dcerpc_procedure_name="QueryGroupInfo";
10998 offset = samr_dissect_element_QueryGroupInfo_group_handle(tvb, offset, pinfo, tree, di, drep);
10999 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11000 offset = samr_dissect_element_QueryGroupInfo_level(tvb, offset, pinfo, tree, di, drep);
11001 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11002 return offset;
11005 static int
11006 samr_dissect_element_SetGroupInfo_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11008 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_SetGroupInfo_group_handle_, NDR_POINTER_REF, "Pointer to Group Handle (policy_handle)",hf_samr_group_handle);
11010 return offset;
11013 static int
11014 samr_dissect_element_SetGroupInfo_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11016 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_group_handle, 0);
11018 return offset;
11021 static int
11022 samr_dissect_element_SetGroupInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11024 offset = samr_dissect_enum_GroupInfoEnum(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_SetGroupInfo_level, 0);
11026 return offset;
11029 static int
11030 samr_dissect_element_SetGroupInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11032 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_SetGroupInfo_info_, NDR_POINTER_REF, "Pointer to Info (samr_GroupInfo)",hf_samr_samr_SetGroupInfo_info);
11034 return offset;
11037 static int
11038 samr_dissect_element_SetGroupInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11040 offset = samr_dissect_GroupInfo(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_SetGroupInfo_info, 0);
11042 return offset;
11045 /* IDL: NTSTATUS samr_SetGroupInfo( */
11046 /* IDL: [in] [ref] policy_handle *group_handle, */
11047 /* IDL: [in] samr_GroupInfoEnum level, */
11048 /* IDL: [in] [ref] [switch_is(level)] samr_GroupInfo *info */
11049 /* IDL: ); */
11051 static int
11052 samr_dissect_SetGroupInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11054 uint32_t status;
11056 di->dcerpc_procedure_name="SetGroupInfo";
11057 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
11059 if (status != 0)
11060 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
11062 return offset;
11065 static int
11066 samr_dissect_SetGroupInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11068 di->dcerpc_procedure_name="SetGroupInfo";
11069 offset = samr_dissect_element_SetGroupInfo_group_handle(tvb, offset, pinfo, tree, di, drep);
11070 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11071 offset = samr_dissect_element_SetGroupInfo_level(tvb, offset, pinfo, tree, di, drep);
11072 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11073 offset = samr_dissect_element_SetGroupInfo_info(tvb, offset, pinfo, tree, di, drep);
11074 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11075 return offset;
11078 static int
11079 samr_dissect_element_AddGroupMember_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11081 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_AddGroupMember_group_handle_, NDR_POINTER_REF, "Pointer to Group Handle (policy_handle)",hf_samr_group_handle);
11083 return offset;
11086 static int
11087 samr_dissect_element_AddGroupMember_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11089 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_group_handle, 0);
11091 return offset;
11094 static int
11095 samr_dissect_element_AddGroupMember_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11097 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_rid, 0);
11099 return offset;
11102 static int
11103 samr_dissect_element_AddGroupMember_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11105 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_AddGroupMember_flags, 0);
11107 return offset;
11110 /* IDL: NTSTATUS samr_AddGroupMember( */
11111 /* IDL: [in] [ref] policy_handle *group_handle, */
11112 /* IDL: [in] uint32 rid, */
11113 /* IDL: [in] uint32 flags */
11114 /* IDL: ); */
11116 static int
11117 samr_dissect_AddGroupMember_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11119 uint32_t status;
11121 di->dcerpc_procedure_name="AddGroupMember";
11122 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
11124 if (status != 0)
11125 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
11127 return offset;
11130 static int
11131 samr_dissect_AddGroupMember_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11133 di->dcerpc_procedure_name="AddGroupMember";
11134 offset = samr_dissect_element_AddGroupMember_group_handle(tvb, offset, pinfo, tree, di, drep);
11135 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11136 offset = samr_dissect_element_AddGroupMember_rid(tvb, offset, pinfo, tree, di, drep);
11137 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11138 offset = samr_dissect_element_AddGroupMember_flags(tvb, offset, pinfo, tree, di, drep);
11139 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11140 return offset;
11143 static int
11144 samr_dissect_element_DeleteDomainGroup_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11146 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_DeleteDomainGroup_group_handle_, NDR_POINTER_REF, "Pointer to Group Handle (policy_handle)",hf_samr_group_handle);
11148 return offset;
11151 static int
11152 samr_dissect_element_DeleteDomainGroup_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11154 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_group_handle, PIDL_POLHND_CLOSE);
11156 return offset;
11159 /* IDL: NTSTATUS samr_DeleteDomainGroup( */
11160 /* IDL: [in] [out] [ref] policy_handle *group_handle */
11161 /* IDL: ); */
11163 static int
11164 samr_dissect_DeleteDomainGroup_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11166 uint32_t status;
11168 di->dcerpc_procedure_name="DeleteDomainGroup";
11169 offset = samr_dissect_element_DeleteDomainGroup_group_handle(tvb, offset, pinfo, tree, di, drep);
11170 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11172 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
11174 if (status != 0)
11175 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
11177 return offset;
11180 static int
11181 samr_dissect_DeleteDomainGroup_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11183 di->dcerpc_procedure_name="DeleteDomainGroup";
11184 offset = samr_dissect_element_DeleteDomainGroup_group_handle(tvb, offset, pinfo, tree, di, drep);
11185 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11186 return offset;
11189 static int
11190 samr_dissect_element_DeleteGroupMember_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11192 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_DeleteGroupMember_group_handle_, NDR_POINTER_REF, "Pointer to Group Handle (policy_handle)",hf_samr_group_handle);
11194 return offset;
11197 static int
11198 samr_dissect_element_DeleteGroupMember_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11200 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_group_handle, 0);
11202 return offset;
11205 static int
11206 samr_dissect_element_DeleteGroupMember_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11208 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_rid, 0);
11210 return offset;
11213 /* IDL: NTSTATUS samr_DeleteGroupMember( */
11214 /* IDL: [in] [ref] policy_handle *group_handle, */
11215 /* IDL: [in] uint32 rid */
11216 /* IDL: ); */
11218 static int
11219 samr_dissect_DeleteGroupMember_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11221 uint32_t status;
11223 di->dcerpc_procedure_name="DeleteGroupMember";
11224 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
11226 if (status != 0)
11227 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
11229 return offset;
11232 static int
11233 samr_dissect_DeleteGroupMember_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11235 di->dcerpc_procedure_name="DeleteGroupMember";
11236 offset = samr_dissect_element_DeleteGroupMember_group_handle(tvb, offset, pinfo, tree, di, drep);
11237 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11238 offset = samr_dissect_element_DeleteGroupMember_rid(tvb, offset, pinfo, tree, di, drep);
11239 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11240 return offset;
11243 static int
11244 samr_dissect_element_QueryGroupMember_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11246 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_QueryGroupMember_group_handle_, NDR_POINTER_REF, "Pointer to Group Handle (policy_handle)",hf_samr_group_handle);
11248 return offset;
11251 static int
11252 samr_dissect_element_QueryGroupMember_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11254 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_group_handle, 0);
11256 return offset;
11259 static int
11260 samr_dissect_element_QueryGroupMember_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11262 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_QueryGroupMember_rids_, NDR_POINTER_REF, "Pointer to Rids (samr_RidTypeArray)",hf_samr_samr_QueryGroupMember_rids);
11264 return offset;
11267 static int
11268 samr_dissect_element_QueryGroupMember_rids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11270 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_QueryGroupMember_rids__, NDR_POINTER_UNIQUE, "Pointer to Rids (samr_RidTypeArray)",hf_samr_samr_QueryGroupMember_rids);
11272 return offset;
11275 static int
11276 samr_dissect_element_QueryGroupMember_rids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11278 offset = samr_dissect_struct_RidTypeArray(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_QueryGroupMember_rids,0);
11280 return offset;
11283 /* IDL: NTSTATUS samr_QueryGroupMember( */
11284 /* IDL: [in] [ref] policy_handle *group_handle, */
11285 /* IDL: [out] [ref] samr_RidTypeArray **rids */
11286 /* IDL: ); */
11288 static int
11289 samr_dissect_QueryGroupMember_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11291 uint32_t status;
11293 di->dcerpc_procedure_name="QueryGroupMember";
11294 offset = samr_dissect_element_QueryGroupMember_rids(tvb, offset, pinfo, tree, di, drep);
11295 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11297 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
11299 if (status != 0)
11300 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
11302 return offset;
11305 static int
11306 samr_dissect_QueryGroupMember_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11308 di->dcerpc_procedure_name="QueryGroupMember";
11309 offset = samr_dissect_element_QueryGroupMember_group_handle(tvb, offset, pinfo, tree, di, drep);
11310 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11311 return offset;
11314 static int
11315 samr_dissect_element_SetMemberAttributesOfGroup_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11317 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_SetMemberAttributesOfGroup_group_handle_, NDR_POINTER_REF, "Pointer to Group Handle (policy_handle)",hf_samr_group_handle);
11319 return offset;
11322 static int
11323 samr_dissect_element_SetMemberAttributesOfGroup_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11325 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_group_handle, 0);
11327 return offset;
11330 static int
11331 samr_dissect_element_SetMemberAttributesOfGroup_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11333 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_SetMemberAttributesOfGroup_unknown1, 0);
11335 return offset;
11338 static int
11339 samr_dissect_element_SetMemberAttributesOfGroup_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11341 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_SetMemberAttributesOfGroup_unknown2, 0);
11343 return offset;
11346 /* IDL: NTSTATUS samr_SetMemberAttributesOfGroup( */
11347 /* IDL: [in] [ref] policy_handle *group_handle, */
11348 /* IDL: [in] uint32 unknown1, */
11349 /* IDL: [in] uint32 unknown2 */
11350 /* IDL: ); */
11352 static int
11353 samr_dissect_SetMemberAttributesOfGroup_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11355 uint32_t status;
11357 di->dcerpc_procedure_name="SetMemberAttributesOfGroup";
11358 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
11360 if (status != 0)
11361 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
11363 return offset;
11366 static int
11367 samr_dissect_SetMemberAttributesOfGroup_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11369 di->dcerpc_procedure_name="SetMemberAttributesOfGroup";
11370 offset = samr_dissect_element_SetMemberAttributesOfGroup_group_handle(tvb, offset, pinfo, tree, di, drep);
11371 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11372 offset = samr_dissect_element_SetMemberAttributesOfGroup_unknown1(tvb, offset, pinfo, tree, di, drep);
11373 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11374 offset = samr_dissect_element_SetMemberAttributesOfGroup_unknown2(tvb, offset, pinfo, tree, di, drep);
11375 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11376 return offset;
11379 static int
11380 samr_dissect_element_OpenAlias_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11382 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_OpenAlias_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_domain_handle);
11384 return offset;
11387 static int
11388 samr_dissect_element_OpenAlias_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11390 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_domain_handle, 0);
11392 return offset;
11395 static int
11396 samr_dissect_element_OpenAlias_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11398 offset = samr_dissect_bitmap_AliasAccessMask(tvb, offset, pinfo, tree, di, drep, hf_samr_alias_access_mask, 0);
11400 return offset;
11403 static int
11404 samr_dissect_element_OpenAlias_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11406 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_rid, 0);
11408 return offset;
11411 static int
11412 samr_dissect_element_OpenAlias_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11414 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_OpenAlias_alias_handle_, NDR_POINTER_REF, "Pointer to Alias Handle (policy_handle)",hf_samr_alias_handle);
11416 return offset;
11419 static int
11420 samr_dissect_element_OpenAlias_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11422 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_alias_handle, PIDL_POLHND_OPEN|PIDL_POLHND_TYPE_SAMR_ALIAS);
11424 return offset;
11427 /* IDL: NTSTATUS samr_OpenAlias( */
11428 /* IDL: [in] [ref] policy_handle *domain_handle, */
11429 /* IDL: [in] samr_AliasAccessMask access_mask, */
11430 /* IDL: [in] uint32 rid, */
11431 /* IDL: [out] [ref] policy_handle *alias_handle */
11432 /* IDL: ); */
11434 static int
11435 samr_dissect_OpenAlias_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11437 uint32_t status;
11439 di->dcerpc_procedure_name="OpenAlias";
11440 offset = samr_dissect_element_OpenAlias_alias_handle(tvb, offset, pinfo, tree, di, drep);
11441 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11443 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
11445 if (status != 0)
11446 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
11448 return offset;
11451 static int
11452 samr_dissect_OpenAlias_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11454 di->dcerpc_procedure_name="OpenAlias";
11455 offset = samr_dissect_element_OpenAlias_domain_handle(tvb, offset, pinfo, tree, di, drep);
11456 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11457 offset = samr_dissect_element_OpenAlias_access_mask(tvb, offset, pinfo, tree, di, drep);
11458 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11459 offset = samr_dissect_element_OpenAlias_rid(tvb, offset, pinfo, tree, di, drep);
11460 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11461 return offset;
11464 static int
11465 samr_dissect_element_QueryAliasInfo_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11467 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_QueryAliasInfo_alias_handle_, NDR_POINTER_REF, "Pointer to Alias Handle (policy_handle)",hf_samr_alias_handle);
11469 return offset;
11472 static int
11473 samr_dissect_element_QueryAliasInfo_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11475 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_alias_handle, 0);
11477 return offset;
11480 static int
11481 samr_dissect_element_QueryAliasInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11483 offset = samr_dissect_enum_AliasInfoEnum(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryAliasInfo_level, 0);
11485 return offset;
11488 static int
11489 samr_dissect_element_QueryAliasInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11491 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_QueryAliasInfo_info_, NDR_POINTER_REF, "Pointer to Info (samr_AliasInfo)",hf_samr_samr_QueryAliasInfo_info);
11493 return offset;
11496 static int
11497 samr_dissect_element_QueryAliasInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11499 uint64_t saved_switch_level = di->switch_level;
11501 di->switch_level = 0;
11503 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_QueryAliasInfo_info__, NDR_POINTER_UNIQUE, "Pointer to Info (samr_AliasInfo)",hf_samr_samr_QueryAliasInfo_info);
11505 di->switch_level = saved_switch_level;
11507 return offset;
11510 static int
11511 samr_dissect_element_QueryAliasInfo_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11513 offset = samr_dissect_AliasInfo(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryAliasInfo_info, 0);
11515 return offset;
11518 /* IDL: NTSTATUS samr_QueryAliasInfo( */
11519 /* IDL: [in] [ref] policy_handle *alias_handle, */
11520 /* IDL: [in] samr_AliasInfoEnum level, */
11521 /* IDL: [out] [ref] [switch_is(level)] samr_AliasInfo **info */
11522 /* IDL: ); */
11524 static int
11525 samr_dissect_QueryAliasInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11527 uint32_t status;
11529 di->dcerpc_procedure_name="QueryAliasInfo";
11530 offset = samr_dissect_element_QueryAliasInfo_info(tvb, offset, pinfo, tree, di, drep);
11531 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11533 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
11535 if (status != 0)
11536 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
11538 return offset;
11541 static int
11542 samr_dissect_QueryAliasInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11544 di->dcerpc_procedure_name="QueryAliasInfo";
11545 offset = samr_dissect_element_QueryAliasInfo_alias_handle(tvb, offset, pinfo, tree, di, drep);
11546 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11547 offset = samr_dissect_element_QueryAliasInfo_level(tvb, offset, pinfo, tree, di, drep);
11548 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11549 return offset;
11552 static int
11553 samr_dissect_element_SetAliasInfo_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11555 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_SetAliasInfo_alias_handle_, NDR_POINTER_REF, "Pointer to Alias Handle (policy_handle)",hf_samr_alias_handle);
11557 return offset;
11560 static int
11561 samr_dissect_element_SetAliasInfo_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11563 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_alias_handle, 0);
11565 return offset;
11568 static int
11569 samr_dissect_element_SetAliasInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11571 offset = samr_dissect_enum_AliasInfoEnum(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_SetAliasInfo_level, 0);
11573 return offset;
11576 static int
11577 samr_dissect_element_SetAliasInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11579 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_SetAliasInfo_info_, NDR_POINTER_REF, "Pointer to Info (samr_AliasInfo)",hf_samr_samr_SetAliasInfo_info);
11581 return offset;
11584 static int
11585 samr_dissect_element_SetAliasInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11587 offset = samr_dissect_AliasInfo(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_SetAliasInfo_info, 0);
11589 return offset;
11592 /* IDL: NTSTATUS samr_SetAliasInfo( */
11593 /* IDL: [in] [ref] policy_handle *alias_handle, */
11594 /* IDL: [in] samr_AliasInfoEnum level, */
11595 /* IDL: [in] [ref] [switch_is(level)] samr_AliasInfo *info */
11596 /* IDL: ); */
11598 static int
11599 samr_dissect_SetAliasInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11601 uint32_t status;
11603 di->dcerpc_procedure_name="SetAliasInfo";
11604 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
11606 if (status != 0)
11607 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
11609 return offset;
11612 static int
11613 samr_dissect_SetAliasInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11615 di->dcerpc_procedure_name="SetAliasInfo";
11616 offset = samr_dissect_element_SetAliasInfo_alias_handle(tvb, offset, pinfo, tree, di, drep);
11617 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11618 offset = samr_dissect_element_SetAliasInfo_level(tvb, offset, pinfo, tree, di, drep);
11619 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11620 offset = samr_dissect_element_SetAliasInfo_info(tvb, offset, pinfo, tree, di, drep);
11621 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11622 return offset;
11625 static int
11626 samr_dissect_element_DeleteDomAlias_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11628 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_DeleteDomAlias_alias_handle_, NDR_POINTER_REF, "Pointer to Alias Handle (policy_handle)",hf_samr_alias_handle);
11630 return offset;
11633 static int
11634 samr_dissect_element_DeleteDomAlias_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11636 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_alias_handle, PIDL_POLHND_CLOSE);
11638 return offset;
11641 /* IDL: NTSTATUS samr_DeleteDomAlias( */
11642 /* IDL: [in] [out] [ref] policy_handle *alias_handle */
11643 /* IDL: ); */
11645 static int
11646 samr_dissect_DeleteDomAlias_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11648 uint32_t status;
11650 di->dcerpc_procedure_name="DeleteDomAlias";
11651 offset = samr_dissect_element_DeleteDomAlias_alias_handle(tvb, offset, pinfo, tree, di, drep);
11652 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11654 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
11656 if (status != 0)
11657 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
11659 return offset;
11662 static int
11663 samr_dissect_DeleteDomAlias_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11665 di->dcerpc_procedure_name="DeleteDomAlias";
11666 offset = samr_dissect_element_DeleteDomAlias_alias_handle(tvb, offset, pinfo, tree, di, drep);
11667 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11668 return offset;
11671 static int
11672 samr_dissect_element_AddAliasMember_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11674 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_AddAliasMember_alias_handle_, NDR_POINTER_REF, "Pointer to Alias Handle (policy_handle)",hf_samr_alias_handle);
11676 return offset;
11679 static int
11680 samr_dissect_element_AddAliasMember_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11682 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_alias_handle, 0);
11684 return offset;
11687 static int
11688 samr_dissect_element_AddAliasMember_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11690 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_AddAliasMember_sid_, NDR_POINTER_REF, "Pointer to Sid (dom_sid2)",hf_samr_samr_AddAliasMember_sid);
11692 return offset;
11695 static int
11696 samr_dissect_element_AddAliasMember_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11698 offset=cnf_dissect_dom_sid2(tvb, offset, pinfo, tree, di, drep);
11700 return offset;
11703 /* IDL: NTSTATUS samr_AddAliasMember( */
11704 /* IDL: [in] [ref] policy_handle *alias_handle, */
11705 /* IDL: [in] [ref] dom_sid2 *sid */
11706 /* IDL: ); */
11708 static int
11709 samr_dissect_AddAliasMember_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11711 uint32_t status;
11713 di->dcerpc_procedure_name="AddAliasMember";
11714 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
11716 if (status != 0)
11717 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
11719 return offset;
11722 static int
11723 samr_dissect_AddAliasMember_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11725 di->dcerpc_procedure_name="AddAliasMember";
11726 offset = samr_dissect_element_AddAliasMember_alias_handle(tvb, offset, pinfo, tree, di, drep);
11727 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11728 offset = samr_dissect_element_AddAliasMember_sid(tvb, offset, pinfo, tree, di, drep);
11729 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11730 return offset;
11733 static int
11734 samr_dissect_element_DeleteAliasMember_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11736 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_DeleteAliasMember_alias_handle_, NDR_POINTER_REF, "Pointer to Alias Handle (policy_handle)",hf_samr_alias_handle);
11738 return offset;
11741 static int
11742 samr_dissect_element_DeleteAliasMember_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11744 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_alias_handle, 0);
11746 return offset;
11749 static int
11750 samr_dissect_element_DeleteAliasMember_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11752 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_DeleteAliasMember_sid_, NDR_POINTER_REF, "Pointer to Sid (dom_sid2)",hf_samr_samr_DeleteAliasMember_sid);
11754 return offset;
11757 static int
11758 samr_dissect_element_DeleteAliasMember_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11760 offset=cnf_dissect_dom_sid2(tvb, offset, pinfo, tree, di, drep);
11762 return offset;
11765 /* IDL: NTSTATUS samr_DeleteAliasMember( */
11766 /* IDL: [in] [ref] policy_handle *alias_handle, */
11767 /* IDL: [in] [ref] dom_sid2 *sid */
11768 /* IDL: ); */
11770 static int
11771 samr_dissect_DeleteAliasMember_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11773 uint32_t status;
11775 di->dcerpc_procedure_name="DeleteAliasMember";
11776 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
11778 if (status != 0)
11779 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
11781 return offset;
11784 static int
11785 samr_dissect_DeleteAliasMember_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11787 di->dcerpc_procedure_name="DeleteAliasMember";
11788 offset = samr_dissect_element_DeleteAliasMember_alias_handle(tvb, offset, pinfo, tree, di, drep);
11789 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11790 offset = samr_dissect_element_DeleteAliasMember_sid(tvb, offset, pinfo, tree, di, drep);
11791 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11792 return offset;
11795 static int
11796 samr_dissect_element_GetMembersInAlias_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11798 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_GetMembersInAlias_alias_handle_, NDR_POINTER_REF, "Pointer to Alias Handle (policy_handle)",hf_samr_alias_handle);
11800 return offset;
11803 static int
11804 samr_dissect_element_GetMembersInAlias_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11806 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_alias_handle, 0);
11808 return offset;
11811 static int
11812 samr_dissect_element_GetMembersInAlias_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11814 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_GetMembersInAlias_sids_, NDR_POINTER_REF, "Pointer to Sids (lsa_SidArray)",hf_samr_samr_GetMembersInAlias_sids);
11816 return offset;
11819 static int
11820 samr_dissect_element_GetMembersInAlias_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11822 offset=cnf_dissect_lsa_SidArray(tvb, offset, pinfo, tree, di, drep);
11824 return offset;
11827 /* IDL: NTSTATUS samr_GetMembersInAlias( */
11828 /* IDL: [in] [ref] policy_handle *alias_handle, */
11829 /* IDL: [out] [ref] lsa_SidArray *sids */
11830 /* IDL: ); */
11832 static int
11833 samr_dissect_GetMembersInAlias_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11835 uint32_t status;
11837 di->dcerpc_procedure_name="GetMembersInAlias";
11838 offset = samr_dissect_element_GetMembersInAlias_sids(tvb, offset, pinfo, tree, di, drep);
11839 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11841 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
11843 if (status != 0)
11844 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
11846 return offset;
11849 static int
11850 samr_dissect_GetMembersInAlias_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11852 di->dcerpc_procedure_name="GetMembersInAlias";
11853 offset = samr_dissect_element_GetMembersInAlias_alias_handle(tvb, offset, pinfo, tree, di, drep);
11854 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11855 return offset;
11858 static int
11859 samr_dissect_element_OpenUser_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11861 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_OpenUser_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_domain_handle);
11863 return offset;
11866 static int
11867 samr_dissect_element_OpenUser_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11869 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_domain_handle, 0);
11871 return offset;
11874 static int
11875 samr_dissect_element_OpenUser_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11877 offset = samr_dissect_bitmap_UserAccessMask(tvb, offset, pinfo, tree, di, drep, hf_samr_user_access_mask, 0);
11879 return offset;
11882 static int
11883 samr_dissect_element_OpenUser_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11885 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_rid, 0);
11887 return offset;
11890 static int
11891 samr_dissect_element_OpenUser_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11893 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_OpenUser_user_handle_, NDR_POINTER_REF, "Pointer to User Handle (policy_handle)",hf_samr_user_handle);
11895 return offset;
11898 static int
11899 samr_dissect_element_OpenUser_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11901 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_user_handle, PIDL_POLHND_OPEN|PIDL_POLHND_TYPE_SAMR_USER);
11903 return offset;
11906 /* IDL: NTSTATUS samr_OpenUser( */
11907 /* IDL: [in] [ref] policy_handle *domain_handle, */
11908 /* IDL: [in] samr_UserAccessMask access_mask, */
11909 /* IDL: [in] uint32 rid, */
11910 /* IDL: [out] [ref] policy_handle *user_handle */
11911 /* IDL: ); */
11913 static int
11914 samr_dissect_OpenUser_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11916 uint32_t status;
11918 di->dcerpc_procedure_name="OpenUser";
11919 offset = samr_dissect_element_OpenUser_user_handle(tvb, offset, pinfo, tree, di, drep);
11920 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11922 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
11924 if (status != 0)
11925 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
11927 return offset;
11930 static int
11931 samr_dissect_OpenUser_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11933 di->dcerpc_procedure_name="OpenUser";
11934 offset = samr_dissect_element_OpenUser_domain_handle(tvb, offset, pinfo, tree, di, drep);
11935 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11936 offset = samr_dissect_element_OpenUser_access_mask(tvb, offset, pinfo, tree, di, drep);
11937 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11938 offset = samr_dissect_element_OpenUser_rid(tvb, offset, pinfo, tree, di, drep);
11939 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11940 return offset;
11943 static int
11944 samr_dissect_element_DeleteUser_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11946 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_DeleteUser_user_handle_, NDR_POINTER_REF, "Pointer to User Handle (policy_handle)",hf_samr_user_handle);
11948 return offset;
11951 static int
11952 samr_dissect_element_DeleteUser_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11954 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_user_handle, PIDL_POLHND_CLOSE);
11956 return offset;
11959 /* IDL: NTSTATUS samr_DeleteUser( */
11960 /* IDL: [in] [out] [ref] policy_handle *user_handle */
11961 /* IDL: ); */
11963 static int
11964 samr_dissect_DeleteUser_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11966 uint32_t status;
11968 di->dcerpc_procedure_name="DeleteUser";
11969 offset = samr_dissect_element_DeleteUser_user_handle(tvb, offset, pinfo, tree, di, drep);
11970 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11972 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
11974 if (status != 0)
11975 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
11977 return offset;
11980 static int
11981 samr_dissect_DeleteUser_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11983 di->dcerpc_procedure_name="DeleteUser";
11984 offset = samr_dissect_element_DeleteUser_user_handle(tvb, offset, pinfo, tree, di, drep);
11985 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11986 return offset;
11989 static int
11990 samr_dissect_element_QueryUserInfo_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
11992 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_QueryUserInfo_user_handle_, NDR_POINTER_REF, "Pointer to User Handle (policy_handle)",hf_samr_user_handle);
11994 return offset;
11997 static int
11998 samr_dissect_element_QueryUserInfo_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12000 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_user_handle, 0);
12002 return offset;
12005 static int
12006 samr_dissect_element_QueryUserInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12008 offset = samr_dissect_enum_UserInfoLevel(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryUserInfo_level, 0);
12010 return offset;
12013 static int
12014 samr_dissect_element_QueryUserInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12016 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_QueryUserInfo_info_, NDR_POINTER_REF, "Pointer to Info (samr_UserInfo)",hf_samr_samr_QueryUserInfo_info);
12018 return offset;
12021 static int
12022 samr_dissect_element_QueryUserInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12024 uint64_t saved_switch_level = di->switch_level;
12026 di->switch_level = 0;
12028 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_QueryUserInfo_info__, NDR_POINTER_UNIQUE, "Pointer to Info (samr_UserInfo)",hf_samr_samr_QueryUserInfo_info);
12030 di->switch_level = saved_switch_level;
12032 return offset;
12035 static int
12036 samr_dissect_element_QueryUserInfo_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12038 offset = samr_dissect_UserInfo(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryUserInfo_info, 0);
12040 return offset;
12043 /* IDL: NTSTATUS samr_QueryUserInfo( */
12044 /* IDL: [in] [ref] policy_handle *user_handle, */
12045 /* IDL: [in] samr_UserInfoLevel level, */
12046 /* IDL: [out] [ref] [switch_is(level)] samr_UserInfo **info */
12047 /* IDL: ); */
12049 static int
12050 samr_dissect_QueryUserInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12052 uint32_t status;
12054 di->dcerpc_procedure_name="QueryUserInfo";
12055 offset = samr_dissect_element_QueryUserInfo_info(tvb, offset, pinfo, tree, di, drep);
12056 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12058 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
12060 if (status != 0)
12061 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
12063 return offset;
12066 static int
12067 samr_dissect_QueryUserInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12069 di->dcerpc_procedure_name="QueryUserInfo";
12070 offset = samr_dissect_element_QueryUserInfo_user_handle(tvb, offset, pinfo, tree, di, drep);
12071 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12072 offset = samr_dissect_element_QueryUserInfo_level(tvb, offset, pinfo, tree, di, drep);
12073 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12074 return offset;
12077 static int
12078 samr_dissect_element_SetUserInfo_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12080 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_SetUserInfo_user_handle_, NDR_POINTER_REF, "Pointer to User Handle (policy_handle)",hf_samr_user_handle);
12082 return offset;
12085 static int
12086 samr_dissect_element_SetUserInfo_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12088 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_user_handle, 0);
12090 return offset;
12093 static int
12094 samr_dissect_element_SetUserInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12096 offset = samr_dissect_enum_UserInfoLevel(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_SetUserInfo_level, 0);
12098 return offset;
12101 static int
12102 samr_dissect_element_SetUserInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12104 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_SetUserInfo_info_, NDR_POINTER_REF, "Pointer to Info (samr_UserInfo)",hf_samr_samr_SetUserInfo_info);
12106 return offset;
12109 static int
12110 samr_dissect_element_SetUserInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12112 offset = samr_dissect_UserInfo(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_SetUserInfo_info, 0);
12114 return offset;
12117 /* IDL: NTSTATUS samr_SetUserInfo( */
12118 /* IDL: [in] [ref] policy_handle *user_handle, */
12119 /* IDL: [in] samr_UserInfoLevel level, */
12120 /* IDL: [in] [ref] [switch_is(level)] samr_UserInfo *info */
12121 /* IDL: ); */
12123 static int
12124 samr_dissect_SetUserInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12126 uint32_t status;
12128 di->dcerpc_procedure_name="SetUserInfo";
12129 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
12131 if (status != 0)
12132 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
12134 return offset;
12137 static int
12138 samr_dissect_SetUserInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12140 di->dcerpc_procedure_name="SetUserInfo";
12141 offset = samr_dissect_element_SetUserInfo_user_handle(tvb, offset, pinfo, tree, di, drep);
12142 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12143 offset = samr_dissect_element_SetUserInfo_level(tvb, offset, pinfo, tree, di, drep);
12144 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12145 offset = samr_dissect_element_SetUserInfo_info(tvb, offset, pinfo, tree, di, drep);
12146 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12147 return offset;
12150 static int
12151 samr_dissect_element_ChangePasswordUser_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12153 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_ChangePasswordUser_user_handle_, NDR_POINTER_REF, "Pointer to User Handle (policy_handle)",hf_samr_user_handle);
12155 return offset;
12158 static int
12159 samr_dissect_element_ChangePasswordUser_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12161 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_user_handle, 0);
12163 return offset;
12166 static int
12167 samr_dissect_element_ChangePasswordUser_lm_present(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12169 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_ChangePasswordUser_lm_present, 0);
12171 return offset;
12174 static int
12175 samr_dissect_element_ChangePasswordUser_old_lm_crypted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12177 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_ChangePasswordUser_old_lm_crypted_, NDR_POINTER_UNIQUE, "Pointer to Old Lm Crypted (samr_Password)",hf_samr_samr_ChangePasswordUser_old_lm_crypted);
12179 return offset;
12182 static int
12183 samr_dissect_element_ChangePasswordUser_old_lm_crypted_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12185 offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ChangePasswordUser_old_lm_crypted,0);
12187 return offset;
12190 static int
12191 samr_dissect_element_ChangePasswordUser_new_lm_crypted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12193 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_ChangePasswordUser_new_lm_crypted_, NDR_POINTER_UNIQUE, "Pointer to New Lm Crypted (samr_Password)",hf_samr_samr_ChangePasswordUser_new_lm_crypted);
12195 return offset;
12198 static int
12199 samr_dissect_element_ChangePasswordUser_new_lm_crypted_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12201 offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ChangePasswordUser_new_lm_crypted,0);
12203 return offset;
12206 static int
12207 samr_dissect_element_ChangePasswordUser_nt_present(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12209 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_ChangePasswordUser_nt_present, 0);
12211 return offset;
12214 static int
12215 samr_dissect_element_ChangePasswordUser_old_nt_crypted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12217 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_ChangePasswordUser_old_nt_crypted_, NDR_POINTER_UNIQUE, "Pointer to Old Nt Crypted (samr_Password)",hf_samr_samr_ChangePasswordUser_old_nt_crypted);
12219 return offset;
12222 static int
12223 samr_dissect_element_ChangePasswordUser_old_nt_crypted_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12225 offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ChangePasswordUser_old_nt_crypted,0);
12227 return offset;
12230 static int
12231 samr_dissect_element_ChangePasswordUser_new_nt_crypted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12233 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_ChangePasswordUser_new_nt_crypted_, NDR_POINTER_UNIQUE, "Pointer to New Nt Crypted (samr_Password)",hf_samr_samr_ChangePasswordUser_new_nt_crypted);
12235 return offset;
12238 static int
12239 samr_dissect_element_ChangePasswordUser_new_nt_crypted_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12241 offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ChangePasswordUser_new_nt_crypted,0);
12243 return offset;
12246 static int
12247 samr_dissect_element_ChangePasswordUser_cross1_present(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12249 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_ChangePasswordUser_cross1_present, 0);
12251 return offset;
12254 static int
12255 samr_dissect_element_ChangePasswordUser_nt_cross(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12257 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_ChangePasswordUser_nt_cross_, NDR_POINTER_UNIQUE, "Pointer to Nt Cross (samr_Password)",hf_samr_samr_ChangePasswordUser_nt_cross);
12259 return offset;
12262 static int
12263 samr_dissect_element_ChangePasswordUser_nt_cross_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12265 offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ChangePasswordUser_nt_cross,0);
12267 return offset;
12270 static int
12271 samr_dissect_element_ChangePasswordUser_cross2_present(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12273 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_ChangePasswordUser_cross2_present, 0);
12275 return offset;
12278 static int
12279 samr_dissect_element_ChangePasswordUser_lm_cross(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12281 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_ChangePasswordUser_lm_cross_, NDR_POINTER_UNIQUE, "Pointer to Lm Cross (samr_Password)",hf_samr_samr_ChangePasswordUser_lm_cross);
12283 return offset;
12286 static int
12287 samr_dissect_element_ChangePasswordUser_lm_cross_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12289 offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ChangePasswordUser_lm_cross,0);
12291 return offset;
12294 /* IDL: NTSTATUS samr_ChangePasswordUser( */
12295 /* IDL: [in] [ref] policy_handle *user_handle, */
12296 /* IDL: [in] uint8 lm_present, */
12297 /* IDL: [in] [unique(1)] samr_Password *old_lm_crypted, */
12298 /* IDL: [in] [unique(1)] samr_Password *new_lm_crypted, */
12299 /* IDL: [in] uint8 nt_present, */
12300 /* IDL: [in] [unique(1)] samr_Password *old_nt_crypted, */
12301 /* IDL: [in] [unique(1)] samr_Password *new_nt_crypted, */
12302 /* IDL: [in] uint8 cross1_present, */
12303 /* IDL: [in] [unique(1)] samr_Password *nt_cross, */
12304 /* IDL: [in] uint8 cross2_present, */
12305 /* IDL: [in] [unique(1)] samr_Password *lm_cross */
12306 /* IDL: ); */
12308 static int
12309 samr_dissect_ChangePasswordUser_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12311 uint32_t status;
12313 di->dcerpc_procedure_name="ChangePasswordUser";
12314 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
12316 if (status != 0)
12317 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
12319 return offset;
12322 static int
12323 samr_dissect_ChangePasswordUser_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12325 di->dcerpc_procedure_name="ChangePasswordUser";
12326 offset = samr_dissect_element_ChangePasswordUser_user_handle(tvb, offset, pinfo, tree, di, drep);
12327 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12328 offset = samr_dissect_element_ChangePasswordUser_lm_present(tvb, offset, pinfo, tree, di, drep);
12329 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12330 offset = samr_dissect_element_ChangePasswordUser_old_lm_crypted(tvb, offset, pinfo, tree, di, drep);
12331 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12332 offset = samr_dissect_element_ChangePasswordUser_new_lm_crypted(tvb, offset, pinfo, tree, di, drep);
12333 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12334 offset = samr_dissect_element_ChangePasswordUser_nt_present(tvb, offset, pinfo, tree, di, drep);
12335 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12336 offset = samr_dissect_element_ChangePasswordUser_old_nt_crypted(tvb, offset, pinfo, tree, di, drep);
12337 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12338 offset = samr_dissect_element_ChangePasswordUser_new_nt_crypted(tvb, offset, pinfo, tree, di, drep);
12339 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12340 offset = samr_dissect_element_ChangePasswordUser_cross1_present(tvb, offset, pinfo, tree, di, drep);
12341 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12342 offset = samr_dissect_element_ChangePasswordUser_nt_cross(tvb, offset, pinfo, tree, di, drep);
12343 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12344 offset = samr_dissect_element_ChangePasswordUser_cross2_present(tvb, offset, pinfo, tree, di, drep);
12345 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12346 offset = samr_dissect_element_ChangePasswordUser_lm_cross(tvb, offset, pinfo, tree, di, drep);
12347 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12348 return offset;
12351 static int
12352 samr_dissect_element_GetGroupsForUser_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12354 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_GetGroupsForUser_user_handle_, NDR_POINTER_REF, "Pointer to User Handle (policy_handle)",hf_samr_user_handle);
12356 return offset;
12359 static int
12360 samr_dissect_element_GetGroupsForUser_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12362 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_user_handle, 0);
12364 return offset;
12367 static int
12368 samr_dissect_element_GetGroupsForUser_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12370 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_GetGroupsForUser_rids_, NDR_POINTER_REF, "Pointer to Rids (samr_RidWithAttributeArray)",hf_samr_samr_GetGroupsForUser_rids);
12372 return offset;
12375 static int
12376 samr_dissect_element_GetGroupsForUser_rids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12378 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_GetGroupsForUser_rids__, NDR_POINTER_UNIQUE, "Pointer to Rids (samr_RidWithAttributeArray)",hf_samr_samr_GetGroupsForUser_rids);
12380 return offset;
12383 static int
12384 samr_dissect_element_GetGroupsForUser_rids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12386 offset = samr_dissect_struct_RidWithAttributeArray(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_GetGroupsForUser_rids,0);
12388 return offset;
12391 /* IDL: NTSTATUS samr_GetGroupsForUser( */
12392 /* IDL: [in] [ref] policy_handle *user_handle, */
12393 /* IDL: [out] [ref] samr_RidWithAttributeArray **rids */
12394 /* IDL: ); */
12396 static int
12397 samr_dissect_GetGroupsForUser_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12399 uint32_t status;
12401 di->dcerpc_procedure_name="GetGroupsForUser";
12402 offset = samr_dissect_element_GetGroupsForUser_rids(tvb, offset, pinfo, tree, di, drep);
12403 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12405 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
12407 if (status != 0)
12408 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
12410 return offset;
12413 static int
12414 samr_dissect_GetGroupsForUser_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12416 di->dcerpc_procedure_name="GetGroupsForUser";
12417 offset = samr_dissect_element_GetGroupsForUser_user_handle(tvb, offset, pinfo, tree, di, drep);
12418 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12419 return offset;
12422 static int
12423 samr_dissect_element_QueryDisplayInfo_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12425 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_QueryDisplayInfo_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_domain_handle);
12427 return offset;
12430 static int
12431 samr_dissect_element_QueryDisplayInfo_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12433 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_domain_handle, 0);
12435 return offset;
12438 static int
12439 samr_dissect_element_QueryDisplayInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12441 offset = samr_dissect_enum_DomainDisplayInformation(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryDisplayInfo_level, 0);
12443 return offset;
12446 static int
12447 samr_dissect_element_QueryDisplayInfo_start_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12449 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryDisplayInfo_start_idx, 0);
12451 return offset;
12454 static int
12455 samr_dissect_element_QueryDisplayInfo_max_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12457 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryDisplayInfo_max_entries, 0);
12459 return offset;
12462 static int
12463 samr_dissect_element_QueryDisplayInfo_buf_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12465 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryDisplayInfo_buf_size, 0);
12467 return offset;
12470 static int
12471 samr_dissect_element_QueryDisplayInfo_total_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12473 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_QueryDisplayInfo_total_size_, NDR_POINTER_REF, "Pointer to Total Size (uint32)",hf_samr_samr_QueryDisplayInfo_total_size);
12475 return offset;
12478 static int
12479 samr_dissect_element_QueryDisplayInfo_total_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12481 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryDisplayInfo_total_size, 0);
12483 return offset;
12486 static int
12487 samr_dissect_element_QueryDisplayInfo_returned_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12489 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_QueryDisplayInfo_returned_size_, NDR_POINTER_REF, "Pointer to Returned Size (uint32)",hf_samr_samr_QueryDisplayInfo_returned_size);
12491 return offset;
12494 static int
12495 samr_dissect_element_QueryDisplayInfo_returned_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12497 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryDisplayInfo_returned_size, 0);
12499 return offset;
12502 static int
12503 samr_dissect_element_QueryDisplayInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12505 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_QueryDisplayInfo_info_, NDR_POINTER_REF, "Pointer to Info (samr_DispInfo)",hf_samr_samr_QueryDisplayInfo_info);
12507 return offset;
12510 static int
12511 samr_dissect_element_QueryDisplayInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12513 offset = samr_dissect_DispInfo(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryDisplayInfo_info, 0);
12515 return offset;
12518 /* IDL: NTSTATUS samr_QueryDisplayInfo( */
12519 /* IDL: [in] [ref] policy_handle *domain_handle, */
12520 /* IDL: [in] samr_DomainDisplayInformation level, */
12521 /* IDL: [in] uint32 start_idx, */
12522 /* IDL: [in] uint32 max_entries, */
12523 /* IDL: [in] uint32 buf_size, */
12524 /* IDL: [out] [ref] uint32 *total_size, */
12525 /* IDL: [out] [ref] uint32 *returned_size, */
12526 /* IDL: [out] [ref] [switch_is(level)] samr_DispInfo *info */
12527 /* IDL: ); */
12529 static int
12530 samr_dissect_QueryDisplayInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12532 uint32_t status;
12534 di->dcerpc_procedure_name="QueryDisplayInfo";
12535 offset = samr_dissect_element_QueryDisplayInfo_total_size(tvb, offset, pinfo, tree, di, drep);
12536 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12538 offset = samr_dissect_element_QueryDisplayInfo_returned_size(tvb, offset, pinfo, tree, di, drep);
12539 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12541 offset = samr_dissect_element_QueryDisplayInfo_info(tvb, offset, pinfo, tree, di, drep);
12542 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12544 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
12546 if (status != 0)
12547 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
12549 return offset;
12552 static int
12553 samr_dissect_QueryDisplayInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12555 di->dcerpc_procedure_name="QueryDisplayInfo";
12556 offset = samr_dissect_element_QueryDisplayInfo_domain_handle(tvb, offset, pinfo, tree, di, drep);
12557 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12558 offset = samr_dissect_element_QueryDisplayInfo_level(tvb, offset, pinfo, tree, di, drep);
12559 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12560 offset = samr_dissect_element_QueryDisplayInfo_start_idx(tvb, offset, pinfo, tree, di, drep);
12561 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12562 offset = samr_dissect_element_QueryDisplayInfo_max_entries(tvb, offset, pinfo, tree, di, drep);
12563 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12564 offset = samr_dissect_element_QueryDisplayInfo_buf_size(tvb, offset, pinfo, tree, di, drep);
12565 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12566 return offset;
12569 static int
12570 samr_dissect_element_GetDisplayEnumerationIndex_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12572 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_GetDisplayEnumerationIndex_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_domain_handle);
12574 return offset;
12577 static int
12578 samr_dissect_element_GetDisplayEnumerationIndex_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12580 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_domain_handle, 0);
12582 return offset;
12585 static int
12586 samr_dissect_element_GetDisplayEnumerationIndex_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12588 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_GetDisplayEnumerationIndex_level, 0);
12590 return offset;
12593 static int
12594 samr_dissect_element_GetDisplayEnumerationIndex_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12596 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_GetDisplayEnumerationIndex_name_, NDR_POINTER_REF, "Pointer to Name (lsa_String)",hf_samr_samr_GetDisplayEnumerationIndex_name);
12598 return offset;
12601 static int
12602 samr_dissect_element_GetDisplayEnumerationIndex_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12604 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_GetDisplayEnumerationIndex_name);
12606 return offset;
12609 static int
12610 samr_dissect_element_GetDisplayEnumerationIndex_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12612 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_GetDisplayEnumerationIndex_idx_, NDR_POINTER_REF, "Pointer to Idx (uint32)",hf_samr_samr_GetDisplayEnumerationIndex_idx);
12614 return offset;
12617 static int
12618 samr_dissect_element_GetDisplayEnumerationIndex_idx_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12620 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_GetDisplayEnumerationIndex_idx, 0);
12622 return offset;
12625 /* IDL: NTSTATUS samr_GetDisplayEnumerationIndex( */
12626 /* IDL: [in] [ref] policy_handle *domain_handle, */
12627 /* IDL: [in] uint16 level, */
12628 /* IDL: [in] [ref] lsa_String *name, */
12629 /* IDL: [out] [ref] uint32 *idx */
12630 /* IDL: ); */
12632 static int
12633 samr_dissect_GetDisplayEnumerationIndex_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12635 uint32_t status;
12637 di->dcerpc_procedure_name="GetDisplayEnumerationIndex";
12638 offset = samr_dissect_element_GetDisplayEnumerationIndex_idx(tvb, offset, pinfo, tree, di, drep);
12639 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12641 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
12643 if (status != 0)
12644 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
12646 return offset;
12649 static int
12650 samr_dissect_GetDisplayEnumerationIndex_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12652 di->dcerpc_procedure_name="GetDisplayEnumerationIndex";
12653 offset = samr_dissect_element_GetDisplayEnumerationIndex_domain_handle(tvb, offset, pinfo, tree, di, drep);
12654 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12655 offset = samr_dissect_element_GetDisplayEnumerationIndex_level(tvb, offset, pinfo, tree, di, drep);
12656 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12657 offset = samr_dissect_element_GetDisplayEnumerationIndex_name(tvb, offset, pinfo, tree, di, drep);
12658 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12659 return offset;
12662 static int
12663 samr_dissect_element_TestPrivateFunctionsDomain_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12665 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_TestPrivateFunctionsDomain_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_domain_handle);
12667 return offset;
12670 static int
12671 samr_dissect_element_TestPrivateFunctionsDomain_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12673 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_domain_handle, 0);
12675 return offset;
12678 /* IDL: NTSTATUS samr_TestPrivateFunctionsDomain( */
12679 /* IDL: [in] [ref] policy_handle *domain_handle */
12680 /* IDL: ); */
12682 static int
12683 samr_dissect_TestPrivateFunctionsDomain_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12685 uint32_t status;
12687 di->dcerpc_procedure_name="TestPrivateFunctionsDomain";
12688 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
12690 if (status != 0)
12691 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
12693 return offset;
12696 static int
12697 samr_dissect_TestPrivateFunctionsDomain_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12699 di->dcerpc_procedure_name="TestPrivateFunctionsDomain";
12700 offset = samr_dissect_element_TestPrivateFunctionsDomain_domain_handle(tvb, offset, pinfo, tree, di, drep);
12701 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12702 return offset;
12705 static int
12706 samr_dissect_element_TestPrivateFunctionsUser_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12708 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_TestPrivateFunctionsUser_user_handle_, NDR_POINTER_REF, "Pointer to User Handle (policy_handle)",hf_samr_user_handle);
12710 return offset;
12713 static int
12714 samr_dissect_element_TestPrivateFunctionsUser_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12716 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_user_handle, 0);
12718 return offset;
12721 /* IDL: NTSTATUS samr_TestPrivateFunctionsUser( */
12722 /* IDL: [in] [ref] policy_handle *user_handle */
12723 /* IDL: ); */
12725 static int
12726 samr_dissect_TestPrivateFunctionsUser_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12728 uint32_t status;
12730 di->dcerpc_procedure_name="TestPrivateFunctionsUser";
12731 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
12733 if (status != 0)
12734 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
12736 return offset;
12739 static int
12740 samr_dissect_TestPrivateFunctionsUser_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12742 di->dcerpc_procedure_name="TestPrivateFunctionsUser";
12743 offset = samr_dissect_element_TestPrivateFunctionsUser_user_handle(tvb, offset, pinfo, tree, di, drep);
12744 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12745 return offset;
12748 static int
12749 samr_dissect_element_GetUserPwInfo_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12751 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_GetUserPwInfo_user_handle_, NDR_POINTER_REF, "Pointer to User Handle (policy_handle)",hf_samr_user_handle);
12753 return offset;
12756 static int
12757 samr_dissect_element_GetUserPwInfo_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12759 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_user_handle, 0);
12761 return offset;
12764 static int
12765 samr_dissect_element_GetUserPwInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12767 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_GetUserPwInfo_info_, NDR_POINTER_REF, "Pointer to Info (samr_PwInfo)",hf_samr_samr_GetUserPwInfo_info);
12769 return offset;
12772 static int
12773 samr_dissect_element_GetUserPwInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12775 offset = samr_dissect_struct_PwInfo(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_GetUserPwInfo_info,0);
12777 return offset;
12780 /* IDL: NTSTATUS samr_GetUserPwInfo( */
12781 /* IDL: [in] [ref] policy_handle *user_handle, */
12782 /* IDL: [out] [ref] samr_PwInfo *info */
12783 /* IDL: ); */
12785 static int
12786 samr_dissect_GetUserPwInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12788 uint32_t status;
12790 di->dcerpc_procedure_name="GetUserPwInfo";
12791 offset = samr_dissect_element_GetUserPwInfo_info(tvb, offset, pinfo, tree, di, drep);
12792 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12794 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
12796 if (status != 0)
12797 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
12799 return offset;
12802 static int
12803 samr_dissect_GetUserPwInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12805 di->dcerpc_procedure_name="GetUserPwInfo";
12806 offset = samr_dissect_element_GetUserPwInfo_user_handle(tvb, offset, pinfo, tree, di, drep);
12807 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12808 return offset;
12811 static int
12812 samr_dissect_element_RemoveMemberFromForeignDomain_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12814 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_RemoveMemberFromForeignDomain_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_domain_handle);
12816 return offset;
12819 static int
12820 samr_dissect_element_RemoveMemberFromForeignDomain_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12822 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_domain_handle, 0);
12824 return offset;
12827 static int
12828 samr_dissect_element_RemoveMemberFromForeignDomain_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12830 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_RemoveMemberFromForeignDomain_sid_, NDR_POINTER_REF, "Pointer to Sid (dom_sid2)",hf_samr_samr_RemoveMemberFromForeignDomain_sid);
12832 return offset;
12835 static int
12836 samr_dissect_element_RemoveMemberFromForeignDomain_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12838 offset=cnf_dissect_dom_sid2(tvb, offset, pinfo, tree, di, drep);
12840 return offset;
12843 /* IDL: NTSTATUS samr_RemoveMemberFromForeignDomain( */
12844 /* IDL: [in] [ref] policy_handle *domain_handle, */
12845 /* IDL: [in] [ref] dom_sid2 *sid */
12846 /* IDL: ); */
12848 static int
12849 samr_dissect_RemoveMemberFromForeignDomain_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12851 uint32_t status;
12853 di->dcerpc_procedure_name="RemoveMemberFromForeignDomain";
12854 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
12856 if (status != 0)
12857 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
12859 return offset;
12862 static int
12863 samr_dissect_RemoveMemberFromForeignDomain_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12865 di->dcerpc_procedure_name="RemoveMemberFromForeignDomain";
12866 offset = samr_dissect_element_RemoveMemberFromForeignDomain_domain_handle(tvb, offset, pinfo, tree, di, drep);
12867 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12868 offset = samr_dissect_element_RemoveMemberFromForeignDomain_sid(tvb, offset, pinfo, tree, di, drep);
12869 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12870 return offset;
12873 static int
12874 samr_dissect_element_QueryDomainInfo2_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12876 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_QueryDomainInfo2_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_domain_handle);
12878 return offset;
12881 static int
12882 samr_dissect_element_QueryDomainInfo2_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12884 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_domain_handle, 0);
12886 return offset;
12889 static int
12890 samr_dissect_element_QueryDomainInfo2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12892 offset = samr_dissect_enum_DomainInfoClass(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryDomainInfo2_level, 0);
12894 return offset;
12897 static int
12898 samr_dissect_element_QueryDomainInfo2_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12900 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_QueryDomainInfo2_info_, NDR_POINTER_REF, "Pointer to Info (samr_DomainInfo)",hf_samr_samr_QueryDomainInfo2_info);
12902 return offset;
12905 static int
12906 samr_dissect_element_QueryDomainInfo2_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12908 uint64_t saved_switch_level = di->switch_level;
12910 di->switch_level = 0;
12912 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_QueryDomainInfo2_info__, NDR_POINTER_UNIQUE, "Pointer to Info (samr_DomainInfo)",hf_samr_samr_QueryDomainInfo2_info);
12914 di->switch_level = saved_switch_level;
12916 return offset;
12919 static int
12920 samr_dissect_element_QueryDomainInfo2_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12922 offset = samr_dissect_DomainInfo(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryDomainInfo2_info, 0);
12924 return offset;
12927 /* IDL: NTSTATUS samr_QueryDomainInfo2( */
12928 /* IDL: [in] [ref] policy_handle *domain_handle, */
12929 /* IDL: [in] samr_DomainInfoClass level, */
12930 /* IDL: [out] [ref] [switch_is(level)] samr_DomainInfo **info */
12931 /* IDL: ); */
12933 static int
12934 samr_dissect_QueryDomainInfo2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12936 uint32_t status;
12938 di->dcerpc_procedure_name="QueryDomainInfo2";
12939 offset = samr_dissect_element_QueryDomainInfo2_info(tvb, offset, pinfo, tree, di, drep);
12940 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12942 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
12944 if (status != 0)
12945 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
12947 return offset;
12950 static int
12951 samr_dissect_QueryDomainInfo2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12953 di->dcerpc_procedure_name="QueryDomainInfo2";
12954 offset = samr_dissect_element_QueryDomainInfo2_domain_handle(tvb, offset, pinfo, tree, di, drep);
12955 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12956 offset = samr_dissect_element_QueryDomainInfo2_level(tvb, offset, pinfo, tree, di, drep);
12957 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12958 return offset;
12961 static int
12962 samr_dissect_element_QueryUserInfo2_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12964 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_QueryUserInfo2_user_handle_, NDR_POINTER_REF, "Pointer to User Handle (policy_handle)",hf_samr_user_handle);
12966 return offset;
12969 static int
12970 samr_dissect_element_QueryUserInfo2_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12972 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_user_handle, 0);
12974 return offset;
12977 static int
12978 samr_dissect_element_QueryUserInfo2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12980 offset = samr_dissect_enum_UserInfoLevel(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryUserInfo2_level, 0);
12982 return offset;
12985 static int
12986 samr_dissect_element_QueryUserInfo2_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12988 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_QueryUserInfo2_info_, NDR_POINTER_REF, "Pointer to Info (samr_UserInfo)",hf_samr_samr_QueryUserInfo2_info);
12990 return offset;
12993 static int
12994 samr_dissect_element_QueryUserInfo2_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
12996 uint64_t saved_switch_level = di->switch_level;
12998 di->switch_level = 0;
13000 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_QueryUserInfo2_info__, NDR_POINTER_UNIQUE, "Pointer to Info (samr_UserInfo)",hf_samr_samr_QueryUserInfo2_info);
13002 di->switch_level = saved_switch_level;
13004 return offset;
13007 static int
13008 samr_dissect_element_QueryUserInfo2_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13010 offset = samr_dissect_UserInfo(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryUserInfo2_info, 0);
13012 return offset;
13015 /* IDL: NTSTATUS samr_QueryUserInfo2( */
13016 /* IDL: [in] [ref] policy_handle *user_handle, */
13017 /* IDL: [in] samr_UserInfoLevel level, */
13018 /* IDL: [out] [ref] [switch_is(level)] samr_UserInfo **info */
13019 /* IDL: ); */
13021 static int
13022 samr_dissect_QueryUserInfo2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13024 uint32_t status;
13026 di->dcerpc_procedure_name="QueryUserInfo2";
13027 offset = samr_dissect_element_QueryUserInfo2_info(tvb, offset, pinfo, tree, di, drep);
13028 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13030 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
13032 if (status != 0)
13033 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
13035 return offset;
13038 static int
13039 samr_dissect_QueryUserInfo2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13041 di->dcerpc_procedure_name="QueryUserInfo2";
13042 offset = samr_dissect_element_QueryUserInfo2_user_handle(tvb, offset, pinfo, tree, di, drep);
13043 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13044 offset = samr_dissect_element_QueryUserInfo2_level(tvb, offset, pinfo, tree, di, drep);
13045 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13046 return offset;
13049 static int
13050 samr_dissect_element_QueryDisplayInfo2_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13052 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_QueryDisplayInfo2_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_domain_handle);
13054 return offset;
13057 static int
13058 samr_dissect_element_QueryDisplayInfo2_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13060 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_domain_handle, 0);
13062 return offset;
13065 static int
13066 samr_dissect_element_QueryDisplayInfo2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13068 offset = samr_dissect_enum_DomainDisplayInformation(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryDisplayInfo2_level, 0);
13070 return offset;
13073 static int
13074 samr_dissect_element_QueryDisplayInfo2_start_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13076 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryDisplayInfo2_start_idx, 0);
13078 return offset;
13081 static int
13082 samr_dissect_element_QueryDisplayInfo2_max_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13084 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryDisplayInfo2_max_entries, 0);
13086 return offset;
13089 static int
13090 samr_dissect_element_QueryDisplayInfo2_buf_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13092 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryDisplayInfo2_buf_size, 0);
13094 return offset;
13097 static int
13098 samr_dissect_element_QueryDisplayInfo2_total_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13100 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_QueryDisplayInfo2_total_size_, NDR_POINTER_REF, "Pointer to Total Size (uint32)",hf_samr_samr_QueryDisplayInfo2_total_size);
13102 return offset;
13105 static int
13106 samr_dissect_element_QueryDisplayInfo2_total_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13108 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryDisplayInfo2_total_size, 0);
13110 return offset;
13113 static int
13114 samr_dissect_element_QueryDisplayInfo2_returned_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13116 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_QueryDisplayInfo2_returned_size_, NDR_POINTER_REF, "Pointer to Returned Size (uint32)",hf_samr_samr_QueryDisplayInfo2_returned_size);
13118 return offset;
13121 static int
13122 samr_dissect_element_QueryDisplayInfo2_returned_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13124 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryDisplayInfo2_returned_size, 0);
13126 return offset;
13129 static int
13130 samr_dissect_element_QueryDisplayInfo2_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13132 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_QueryDisplayInfo2_info_, NDR_POINTER_REF, "Pointer to Info (samr_DispInfo)",hf_samr_samr_QueryDisplayInfo2_info);
13134 return offset;
13137 static int
13138 samr_dissect_element_QueryDisplayInfo2_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13140 offset = samr_dissect_DispInfo(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryDisplayInfo2_info, 0);
13142 return offset;
13145 /* IDL: NTSTATUS samr_QueryDisplayInfo2( */
13146 /* IDL: [in] [ref] policy_handle *domain_handle, */
13147 /* IDL: [in] samr_DomainDisplayInformation level, */
13148 /* IDL: [in] uint32 start_idx, */
13149 /* IDL: [in] uint32 max_entries, */
13150 /* IDL: [in] uint32 buf_size, */
13151 /* IDL: [out] [ref] uint32 *total_size, */
13152 /* IDL: [out] [ref] uint32 *returned_size, */
13153 /* IDL: [out] [ref] [switch_is(level)] samr_DispInfo *info */
13154 /* IDL: ); */
13156 static int
13157 samr_dissect_QueryDisplayInfo2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13159 uint32_t status;
13161 di->dcerpc_procedure_name="QueryDisplayInfo2";
13162 offset = samr_dissect_element_QueryDisplayInfo2_total_size(tvb, offset, pinfo, tree, di, drep);
13163 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13165 offset = samr_dissect_element_QueryDisplayInfo2_returned_size(tvb, offset, pinfo, tree, di, drep);
13166 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13168 offset = samr_dissect_element_QueryDisplayInfo2_info(tvb, offset, pinfo, tree, di, drep);
13169 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13171 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
13173 if (status != 0)
13174 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
13176 return offset;
13179 static int
13180 samr_dissect_QueryDisplayInfo2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13182 di->dcerpc_procedure_name="QueryDisplayInfo2";
13183 offset = samr_dissect_element_QueryDisplayInfo2_domain_handle(tvb, offset, pinfo, tree, di, drep);
13184 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13185 offset = samr_dissect_element_QueryDisplayInfo2_level(tvb, offset, pinfo, tree, di, drep);
13186 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13187 offset = samr_dissect_element_QueryDisplayInfo2_start_idx(tvb, offset, pinfo, tree, di, drep);
13188 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13189 offset = samr_dissect_element_QueryDisplayInfo2_max_entries(tvb, offset, pinfo, tree, di, drep);
13190 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13191 offset = samr_dissect_element_QueryDisplayInfo2_buf_size(tvb, offset, pinfo, tree, di, drep);
13192 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13193 return offset;
13196 static int
13197 samr_dissect_element_GetDisplayEnumerationIndex2_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13199 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_GetDisplayEnumerationIndex2_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_domain_handle);
13201 return offset;
13204 static int
13205 samr_dissect_element_GetDisplayEnumerationIndex2_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13207 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_domain_handle, 0);
13209 return offset;
13212 static int
13213 samr_dissect_element_GetDisplayEnumerationIndex2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13215 offset = samr_dissect_enum_DomainDisplayInformation(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_GetDisplayEnumerationIndex2_level, 0);
13217 return offset;
13220 static int
13221 samr_dissect_element_GetDisplayEnumerationIndex2_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13223 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_GetDisplayEnumerationIndex2_name_, NDR_POINTER_REF, "Pointer to Name (lsa_String)",hf_samr_samr_GetDisplayEnumerationIndex2_name);
13225 return offset;
13228 static int
13229 samr_dissect_element_GetDisplayEnumerationIndex2_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13231 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_GetDisplayEnumerationIndex2_name);
13233 return offset;
13236 static int
13237 samr_dissect_element_GetDisplayEnumerationIndex2_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13239 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_GetDisplayEnumerationIndex2_idx_, NDR_POINTER_REF, "Pointer to Idx (uint32)",hf_samr_samr_GetDisplayEnumerationIndex2_idx);
13241 return offset;
13244 static int
13245 samr_dissect_element_GetDisplayEnumerationIndex2_idx_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13247 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_GetDisplayEnumerationIndex2_idx, 0);
13249 return offset;
13252 /* IDL: NTSTATUS samr_GetDisplayEnumerationIndex2( */
13253 /* IDL: [in] [ref] policy_handle *domain_handle, */
13254 /* IDL: [in] samr_DomainDisplayInformation level, */
13255 /* IDL: [in] [ref] lsa_String *name, */
13256 /* IDL: [out] [ref] uint32 *idx */
13257 /* IDL: ); */
13259 static int
13260 samr_dissect_GetDisplayEnumerationIndex2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13262 uint32_t status;
13264 di->dcerpc_procedure_name="GetDisplayEnumerationIndex2";
13265 offset = samr_dissect_element_GetDisplayEnumerationIndex2_idx(tvb, offset, pinfo, tree, di, drep);
13266 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13268 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
13270 if (status != 0)
13271 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
13273 return offset;
13276 static int
13277 samr_dissect_GetDisplayEnumerationIndex2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13279 di->dcerpc_procedure_name="GetDisplayEnumerationIndex2";
13280 offset = samr_dissect_element_GetDisplayEnumerationIndex2_domain_handle(tvb, offset, pinfo, tree, di, drep);
13281 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13282 offset = samr_dissect_element_GetDisplayEnumerationIndex2_level(tvb, offset, pinfo, tree, di, drep);
13283 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13284 offset = samr_dissect_element_GetDisplayEnumerationIndex2_name(tvb, offset, pinfo, tree, di, drep);
13285 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13286 return offset;
13289 static int
13290 samr_dissect_element_CreateUser2_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13292 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_CreateUser2_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_domain_handle);
13294 return offset;
13297 static int
13298 samr_dissect_element_CreateUser2_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13300 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_domain_handle, 0);
13302 return offset;
13305 static int
13306 samr_dissect_element_CreateUser2_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13308 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_CreateUser2_account_name_, NDR_POINTER_REF, "Pointer to Account Name (lsa_String)",hf_samr_samr_CreateUser2_account_name);
13310 return offset;
13313 static int
13314 samr_dissect_element_CreateUser2_account_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13316 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 3|PIDL_SET_COL_INFO|PIDL_STR_SAVE, hf_samr_samr_CreateUser2_account_name);
13318 return offset;
13321 static int
13322 samr_dissect_element_CreateUser2_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13324 offset = samr_dissect_bitmap_AcctFlags(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_CreateUser2_acct_flags, 0);
13326 return offset;
13329 static int
13330 samr_dissect_element_CreateUser2_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13332 offset = samr_dissect_bitmap_UserAccessMask(tvb, offset, pinfo, tree, di, drep, hf_samr_user_access_mask, 0);
13334 return offset;
13337 static int
13338 samr_dissect_element_CreateUser2_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13340 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_CreateUser2_user_handle_, NDR_POINTER_REF, "Pointer to User Handle (policy_handle)",hf_samr_user_handle);
13342 return offset;
13345 static int
13346 samr_dissect_element_CreateUser2_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13348 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_user_handle, PIDL_POLHND_OPEN|PIDL_POLHND_TYPE_SAMR_USER);
13350 return offset;
13353 static int
13354 samr_dissect_element_CreateUser2_access_granted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13356 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_CreateUser2_access_granted_, NDR_POINTER_REF, "Pointer to Access Granted (uint32)",hf_samr_samr_CreateUser2_access_granted);
13358 return offset;
13361 static int
13362 samr_dissect_element_CreateUser2_access_granted_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13364 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_CreateUser2_access_granted, 0);
13366 return offset;
13369 static int
13370 samr_dissect_element_CreateUser2_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13372 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_CreateUser2_rid_, NDR_POINTER_REF, "Pointer to Rid (uint32)",hf_samr_rid);
13374 return offset;
13377 static int
13378 samr_dissect_element_CreateUser2_rid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13380 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_rid, 0);
13382 return offset;
13385 /* IDL: NTSTATUS samr_CreateUser2( */
13386 /* IDL: [in] [ref] policy_handle *domain_handle, */
13387 /* IDL: [in] [ref] lsa_String *account_name, */
13388 /* IDL: [in] samr_AcctFlags acct_flags, */
13389 /* IDL: [in] samr_UserAccessMask access_mask, */
13390 /* IDL: [out] [ref] policy_handle *user_handle, */
13391 /* IDL: [out] [ref] uint32 *access_granted, */
13392 /* IDL: [out] [ref] uint32 *rid */
13393 /* IDL: ); */
13395 static int
13396 samr_dissect_CreateUser2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13398 uint32_t status;
13400 di->dcerpc_procedure_name="CreateUser2";
13401 offset = samr_dissect_element_CreateUser2_user_handle(tvb, offset, pinfo, tree, di, drep);
13402 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13404 offset = samr_dissect_element_CreateUser2_access_granted(tvb, offset, pinfo, tree, di, drep);
13405 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13407 offset = samr_dissect_element_CreateUser2_rid(tvb, offset, pinfo, tree, di, drep);
13408 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13410 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
13412 if (status != 0)
13413 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
13415 return offset;
13418 static int
13419 samr_dissect_CreateUser2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13421 di->dcerpc_procedure_name="CreateUser2";
13422 offset = samr_dissect_element_CreateUser2_domain_handle(tvb, offset, pinfo, tree, di, drep);
13423 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13424 offset = samr_dissect_element_CreateUser2_account_name(tvb, offset, pinfo, tree, di, drep);
13425 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13426 offset = samr_dissect_element_CreateUser2_acct_flags(tvb, offset, pinfo, tree, di, drep);
13427 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13428 offset = samr_dissect_element_CreateUser2_access_mask(tvb, offset, pinfo, tree, di, drep);
13429 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13430 return offset;
13433 static int
13434 samr_dissect_element_QueryDisplayInfo3_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13436 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_QueryDisplayInfo3_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_domain_handle);
13438 return offset;
13441 static int
13442 samr_dissect_element_QueryDisplayInfo3_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13444 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_domain_handle, 0);
13446 return offset;
13449 static int
13450 samr_dissect_element_QueryDisplayInfo3_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13452 offset = samr_dissect_enum_DomainDisplayInformation(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryDisplayInfo3_level, 0);
13454 return offset;
13457 static int
13458 samr_dissect_element_QueryDisplayInfo3_start_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13460 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryDisplayInfo3_start_idx, 0);
13462 return offset;
13465 static int
13466 samr_dissect_element_QueryDisplayInfo3_max_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13468 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryDisplayInfo3_max_entries, 0);
13470 return offset;
13473 static int
13474 samr_dissect_element_QueryDisplayInfo3_buf_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13476 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryDisplayInfo3_buf_size, 0);
13478 return offset;
13481 static int
13482 samr_dissect_element_QueryDisplayInfo3_total_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13484 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_QueryDisplayInfo3_total_size_, NDR_POINTER_REF, "Pointer to Total Size (uint32)",hf_samr_samr_QueryDisplayInfo3_total_size);
13486 return offset;
13489 static int
13490 samr_dissect_element_QueryDisplayInfo3_total_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13492 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryDisplayInfo3_total_size, 0);
13494 return offset;
13497 static int
13498 samr_dissect_element_QueryDisplayInfo3_returned_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13500 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_QueryDisplayInfo3_returned_size_, NDR_POINTER_REF, "Pointer to Returned Size (uint32)",hf_samr_samr_QueryDisplayInfo3_returned_size);
13502 return offset;
13505 static int
13506 samr_dissect_element_QueryDisplayInfo3_returned_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13508 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryDisplayInfo3_returned_size, 0);
13510 return offset;
13513 static int
13514 samr_dissect_element_QueryDisplayInfo3_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13516 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_QueryDisplayInfo3_info_, NDR_POINTER_REF, "Pointer to Info (samr_DispInfo)",hf_samr_samr_QueryDisplayInfo3_info);
13518 return offset;
13521 static int
13522 samr_dissect_element_QueryDisplayInfo3_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13524 offset = samr_dissect_DispInfo(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryDisplayInfo3_info, 0);
13526 return offset;
13529 /* IDL: NTSTATUS samr_QueryDisplayInfo3( */
13530 /* IDL: [in] [ref] policy_handle *domain_handle, */
13531 /* IDL: [in] samr_DomainDisplayInformation level, */
13532 /* IDL: [in] uint32 start_idx, */
13533 /* IDL: [in] uint32 max_entries, */
13534 /* IDL: [in] uint32 buf_size, */
13535 /* IDL: [out] [ref] uint32 *total_size, */
13536 /* IDL: [out] [ref] uint32 *returned_size, */
13537 /* IDL: [out] [ref] [switch_is(level)] samr_DispInfo *info */
13538 /* IDL: ); */
13540 static int
13541 samr_dissect_QueryDisplayInfo3_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13543 uint32_t status;
13545 di->dcerpc_procedure_name="QueryDisplayInfo3";
13546 offset = samr_dissect_element_QueryDisplayInfo3_total_size(tvb, offset, pinfo, tree, di, drep);
13547 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13549 offset = samr_dissect_element_QueryDisplayInfo3_returned_size(tvb, offset, pinfo, tree, di, drep);
13550 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13552 offset = samr_dissect_element_QueryDisplayInfo3_info(tvb, offset, pinfo, tree, di, drep);
13553 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13555 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
13557 if (status != 0)
13558 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
13560 return offset;
13563 static int
13564 samr_dissect_QueryDisplayInfo3_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13566 di->dcerpc_procedure_name="QueryDisplayInfo3";
13567 offset = samr_dissect_element_QueryDisplayInfo3_domain_handle(tvb, offset, pinfo, tree, di, drep);
13568 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13569 offset = samr_dissect_element_QueryDisplayInfo3_level(tvb, offset, pinfo, tree, di, drep);
13570 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13571 offset = samr_dissect_element_QueryDisplayInfo3_start_idx(tvb, offset, pinfo, tree, di, drep);
13572 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13573 offset = samr_dissect_element_QueryDisplayInfo3_max_entries(tvb, offset, pinfo, tree, di, drep);
13574 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13575 offset = samr_dissect_element_QueryDisplayInfo3_buf_size(tvb, offset, pinfo, tree, di, drep);
13576 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13577 return offset;
13580 static int
13581 samr_dissect_element_AddMultipleMembersToAlias_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13583 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_AddMultipleMembersToAlias_alias_handle_, NDR_POINTER_REF, "Pointer to Alias Handle (policy_handle)",hf_samr_alias_handle);
13585 return offset;
13588 static int
13589 samr_dissect_element_AddMultipleMembersToAlias_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13591 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_alias_handle, 0);
13593 return offset;
13596 static int
13597 samr_dissect_element_AddMultipleMembersToAlias_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13599 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_AddMultipleMembersToAlias_sids_, NDR_POINTER_REF, "Pointer to Sids (lsa_SidArray)",hf_samr_samr_AddMultipleMembersToAlias_sids);
13601 return offset;
13604 static int
13605 samr_dissect_element_AddMultipleMembersToAlias_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13607 offset=cnf_dissect_lsa_SidArray(tvb, offset, pinfo, tree, di, drep);
13609 return offset;
13612 /* IDL: NTSTATUS samr_AddMultipleMembersToAlias( */
13613 /* IDL: [in] [ref] policy_handle *alias_handle, */
13614 /* IDL: [in] [ref] lsa_SidArray *sids */
13615 /* IDL: ); */
13617 static int
13618 samr_dissect_AddMultipleMembersToAlias_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13620 uint32_t status;
13622 di->dcerpc_procedure_name="AddMultipleMembersToAlias";
13623 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
13625 if (status != 0)
13626 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
13628 return offset;
13631 static int
13632 samr_dissect_AddMultipleMembersToAlias_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13634 di->dcerpc_procedure_name="AddMultipleMembersToAlias";
13635 offset = samr_dissect_element_AddMultipleMembersToAlias_alias_handle(tvb, offset, pinfo, tree, di, drep);
13636 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13637 offset = samr_dissect_element_AddMultipleMembersToAlias_sids(tvb, offset, pinfo, tree, di, drep);
13638 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13639 return offset;
13642 static int
13643 samr_dissect_element_RemoveMultipleMembersFromAlias_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13645 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_RemoveMultipleMembersFromAlias_alias_handle_, NDR_POINTER_REF, "Pointer to Alias Handle (policy_handle)",hf_samr_alias_handle);
13647 return offset;
13650 static int
13651 samr_dissect_element_RemoveMultipleMembersFromAlias_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13653 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_alias_handle, 0);
13655 return offset;
13658 static int
13659 samr_dissect_element_RemoveMultipleMembersFromAlias_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13661 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_RemoveMultipleMembersFromAlias_sids_, NDR_POINTER_REF, "Pointer to Sids (lsa_SidArray)",hf_samr_samr_RemoveMultipleMembersFromAlias_sids);
13663 return offset;
13666 static int
13667 samr_dissect_element_RemoveMultipleMembersFromAlias_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13669 offset=cnf_dissect_lsa_SidArray(tvb, offset, pinfo, tree, di, drep);
13671 return offset;
13674 /* IDL: NTSTATUS samr_RemoveMultipleMembersFromAlias( */
13675 /* IDL: [in] [ref] policy_handle *alias_handle, */
13676 /* IDL: [in] [ref] lsa_SidArray *sids */
13677 /* IDL: ); */
13679 static int
13680 samr_dissect_RemoveMultipleMembersFromAlias_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13682 uint32_t status;
13684 di->dcerpc_procedure_name="RemoveMultipleMembersFromAlias";
13685 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
13687 if (status != 0)
13688 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
13690 return offset;
13693 static int
13694 samr_dissect_RemoveMultipleMembersFromAlias_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13696 di->dcerpc_procedure_name="RemoveMultipleMembersFromAlias";
13697 offset = samr_dissect_element_RemoveMultipleMembersFromAlias_alias_handle(tvb, offset, pinfo, tree, di, drep);
13698 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13699 offset = samr_dissect_element_RemoveMultipleMembersFromAlias_sids(tvb, offset, pinfo, tree, di, drep);
13700 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13701 return offset;
13704 static int
13705 samr_dissect_element_OemChangePasswordUser2_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13707 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_OemChangePasswordUser2_server_, NDR_POINTER_UNIQUE, "Pointer to Server (lsa_AsciiString)",hf_samr_samr_OemChangePasswordUser2_server);
13709 return offset;
13712 static int
13713 samr_dissect_element_OemChangePasswordUser2_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13715 offset=cnf_dissect_lsa_AsciiString(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_OemChangePasswordUser2_server);
13717 return offset;
13720 static int
13721 samr_dissect_element_OemChangePasswordUser2_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13723 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_OemChangePasswordUser2_account_, NDR_POINTER_REF, "Pointer to Account (lsa_AsciiString)",hf_samr_samr_OemChangePasswordUser2_account);
13725 return offset;
13728 static int
13729 samr_dissect_element_OemChangePasswordUser2_account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13731 offset=cnf_dissect_lsa_AsciiString(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_OemChangePasswordUser2_account);
13733 return offset;
13736 static int
13737 samr_dissect_element_OemChangePasswordUser2_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13739 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_OemChangePasswordUser2_password_, NDR_POINTER_UNIQUE, "Pointer to Password (samr_CryptPassword)",hf_samr_samr_OemChangePasswordUser2_password);
13741 return offset;
13744 static int
13745 samr_dissect_element_OemChangePasswordUser2_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13747 offset = samr_dissect_struct_CryptPassword(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_OemChangePasswordUser2_password,0);
13749 return offset;
13752 static int
13753 samr_dissect_element_OemChangePasswordUser2_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13755 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_OemChangePasswordUser2_hash_, NDR_POINTER_UNIQUE, "Pointer to Hash (samr_Password)",hf_samr_samr_OemChangePasswordUser2_hash);
13757 return offset;
13760 static int
13761 samr_dissect_element_OemChangePasswordUser2_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13763 offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_OemChangePasswordUser2_hash,0);
13765 return offset;
13768 /* IDL: NTSTATUS samr_OemChangePasswordUser2( */
13769 /* IDL: [in] [unique(1)] lsa_AsciiString *server, */
13770 /* IDL: [in] [ref] lsa_AsciiString *account, */
13771 /* IDL: [in] [unique(1)] samr_CryptPassword *password, */
13772 /* IDL: [in] [unique(1)] samr_Password *hash */
13773 /* IDL: ); */
13775 static int
13776 samr_dissect_OemChangePasswordUser2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13778 uint32_t status;
13780 di->dcerpc_procedure_name="OemChangePasswordUser2";
13781 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
13783 if (status != 0)
13784 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
13786 return offset;
13789 static int
13790 samr_dissect_OemChangePasswordUser2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13792 di->dcerpc_procedure_name="OemChangePasswordUser2";
13793 offset = samr_dissect_element_OemChangePasswordUser2_server(tvb, offset, pinfo, tree, di, drep);
13794 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13795 offset = samr_dissect_element_OemChangePasswordUser2_account(tvb, offset, pinfo, tree, di, drep);
13796 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13797 offset = samr_dissect_element_OemChangePasswordUser2_password(tvb, offset, pinfo, tree, di, drep);
13798 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13799 offset = samr_dissect_element_OemChangePasswordUser2_hash(tvb, offset, pinfo, tree, di, drep);
13800 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13801 return offset;
13804 static int
13805 samr_dissect_element_ChangePasswordUser2_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13807 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_ChangePasswordUser2_server_, NDR_POINTER_UNIQUE, "Pointer to Server (lsa_String)",hf_samr_samr_ChangePasswordUser2_server);
13809 return offset;
13812 static int
13813 samr_dissect_element_ChangePasswordUser2_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13815 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_ChangePasswordUser2_server);
13817 return offset;
13820 static int
13821 samr_dissect_element_ChangePasswordUser2_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13823 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_ChangePasswordUser2_account_, NDR_POINTER_REF, "Pointer to Account (lsa_String)",hf_samr_samr_ChangePasswordUser2_account);
13825 return offset;
13828 static int
13829 samr_dissect_element_ChangePasswordUser2_account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13831 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_ChangePasswordUser2_account);
13833 return offset;
13836 static int
13837 samr_dissect_element_ChangePasswordUser2_nt_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13839 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_ChangePasswordUser2_nt_password_, NDR_POINTER_UNIQUE, "Pointer to Nt Password (samr_CryptPassword)",hf_samr_samr_ChangePasswordUser2_nt_password);
13841 return offset;
13844 static int
13845 samr_dissect_element_ChangePasswordUser2_nt_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13847 offset = samr_dissect_struct_CryptPassword(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ChangePasswordUser2_nt_password,0);
13849 return offset;
13852 static int
13853 samr_dissect_element_ChangePasswordUser2_nt_verifier(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13855 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_ChangePasswordUser2_nt_verifier_, NDR_POINTER_UNIQUE, "Pointer to Nt Verifier (samr_Password)",hf_samr_samr_ChangePasswordUser2_nt_verifier);
13857 return offset;
13860 static int
13861 samr_dissect_element_ChangePasswordUser2_nt_verifier_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13863 offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ChangePasswordUser2_nt_verifier,0);
13865 return offset;
13868 static int
13869 samr_dissect_element_ChangePasswordUser2_lm_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13871 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_ChangePasswordUser2_lm_change, 0);
13873 return offset;
13876 static int
13877 samr_dissect_element_ChangePasswordUser2_lm_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13879 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_ChangePasswordUser2_lm_password_, NDR_POINTER_UNIQUE, "Pointer to Lm Password (samr_CryptPassword)",hf_samr_samr_ChangePasswordUser2_lm_password);
13881 return offset;
13884 static int
13885 samr_dissect_element_ChangePasswordUser2_lm_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13887 offset = samr_dissect_struct_CryptPassword(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ChangePasswordUser2_lm_password,0);
13889 return offset;
13892 static int
13893 samr_dissect_element_ChangePasswordUser2_lm_verifier(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13895 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_ChangePasswordUser2_lm_verifier_, NDR_POINTER_UNIQUE, "Pointer to Lm Verifier (samr_Password)",hf_samr_samr_ChangePasswordUser2_lm_verifier);
13897 return offset;
13900 static int
13901 samr_dissect_element_ChangePasswordUser2_lm_verifier_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13903 offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ChangePasswordUser2_lm_verifier,0);
13905 return offset;
13908 /* IDL: NTSTATUS samr_ChangePasswordUser2( */
13909 /* IDL: [in] [unique(1)] lsa_String *server, */
13910 /* IDL: [in] [ref] lsa_String *account, */
13911 /* IDL: [in] [unique(1)] samr_CryptPassword *nt_password, */
13912 /* IDL: [in] [unique(1)] samr_Password *nt_verifier, */
13913 /* IDL: [in] uint8 lm_change, */
13914 /* IDL: [in] [unique(1)] samr_CryptPassword *lm_password, */
13915 /* IDL: [in] [unique(1)] samr_Password *lm_verifier */
13916 /* IDL: ); */
13918 static int
13919 samr_dissect_ChangePasswordUser2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13921 uint32_t status;
13923 di->dcerpc_procedure_name="ChangePasswordUser2";
13924 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
13926 if (status != 0)
13927 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
13929 return offset;
13932 static int
13933 samr_dissect_ChangePasswordUser2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13935 di->dcerpc_procedure_name="ChangePasswordUser2";
13936 offset = samr_dissect_element_ChangePasswordUser2_server(tvb, offset, pinfo, tree, di, drep);
13937 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13938 offset = samr_dissect_element_ChangePasswordUser2_account(tvb, offset, pinfo, tree, di, drep);
13939 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13940 offset = samr_dissect_element_ChangePasswordUser2_nt_password(tvb, offset, pinfo, tree, di, drep);
13941 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13942 offset = samr_dissect_element_ChangePasswordUser2_nt_verifier(tvb, offset, pinfo, tree, di, drep);
13943 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13944 offset = samr_dissect_element_ChangePasswordUser2_lm_change(tvb, offset, pinfo, tree, di, drep);
13945 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13946 offset = samr_dissect_element_ChangePasswordUser2_lm_password(tvb, offset, pinfo, tree, di, drep);
13947 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13948 offset = samr_dissect_element_ChangePasswordUser2_lm_verifier(tvb, offset, pinfo, tree, di, drep);
13949 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13950 return offset;
13953 static int
13954 samr_dissect_element_GetDomPwInfo_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13956 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_GetDomPwInfo_domain_name_, NDR_POINTER_UNIQUE, "Pointer to Domain Name (lsa_String)",hf_samr_samr_GetDomPwInfo_domain_name);
13958 return offset;
13961 static int
13962 samr_dissect_element_GetDomPwInfo_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13964 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 3|PIDL_SET_COL_INFO, hf_samr_samr_GetDomPwInfo_domain_name);
13966 return offset;
13969 static int
13970 samr_dissect_element_GetDomPwInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13972 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_GetDomPwInfo_info_, NDR_POINTER_REF, "Pointer to Info (samr_PwInfo)",hf_samr_samr_GetDomPwInfo_info);
13974 return offset;
13977 static int
13978 samr_dissect_element_GetDomPwInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13980 offset = samr_dissect_struct_PwInfo(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_GetDomPwInfo_info,0);
13982 return offset;
13985 /* IDL: NTSTATUS samr_GetDomPwInfo( */
13986 /* IDL: [in] [unique(1)] lsa_String *domain_name, */
13987 /* IDL: [out] [ref] samr_PwInfo *info */
13988 /* IDL: ); */
13990 static int
13991 samr_dissect_GetDomPwInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
13993 uint32_t status;
13995 di->dcerpc_procedure_name="GetDomPwInfo";
13996 offset = samr_dissect_element_GetDomPwInfo_info(tvb, offset, pinfo, tree, di, drep);
13997 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13999 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
14001 if (status != 0)
14002 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
14004 return offset;
14007 static int
14008 samr_dissect_GetDomPwInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14010 di->dcerpc_procedure_name="GetDomPwInfo";
14011 offset = samr_dissect_element_GetDomPwInfo_domain_name(tvb, offset, pinfo, tree, di, drep);
14012 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14013 return offset;
14016 static int
14017 samr_dissect_element_Connect2_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14019 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_Connect2_system_name_, NDR_POINTER_UNIQUE, "Pointer to System Name (uint16)",hf_samr_samr_Connect2_system_name);
14021 return offset;
14024 static int
14025 samr_dissect_element_Connect2_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14027 char *data = NULL;
14028 struct ndr_generic_array nga = { .is_conformant = false, };
14030 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
14032 offset = dissect_ndr_varying_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
14033 offset = dissect_ndr_generic_array_string(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_samr_samr_Connect2_system_name, false, &nga, &data);
14034 proto_item_append_text(tree, ": %s", data);
14036 return offset;
14039 static int
14040 samr_dissect_element_Connect2_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14042 offset = samr_dissect_bitmap_ConnectAccessMask(tvb, offset, pinfo, tree, di, drep, hf_samr_connect_access_mask, 0);
14044 return offset;
14047 static int
14048 samr_dissect_element_Connect2_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14050 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_Connect2_connect_handle_, NDR_POINTER_REF, "Pointer to Connect Handle (policy_handle)",hf_samr_connect_handle);
14052 return offset;
14055 static int
14056 samr_dissect_element_Connect2_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14058 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_connect_handle, PIDL_POLHND_OPEN|PIDL_POLHND_TYPE_SAMR_CONNECT);
14060 return offset;
14063 /* IDL: NTSTATUS samr_Connect2( */
14064 /* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *system_name, */
14065 /* IDL: [in] samr_ConnectAccessMask access_mask, */
14066 /* IDL: [out] [ref] policy_handle *connect_handle */
14067 /* IDL: ); */
14069 static int
14070 samr_dissect_Connect2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14072 uint32_t status;
14074 di->dcerpc_procedure_name="Connect2";
14075 offset = samr_dissect_element_Connect2_connect_handle(tvb, offset, pinfo, tree, di, drep);
14076 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14078 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
14080 if (status != 0)
14081 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
14083 return offset;
14086 static int
14087 samr_dissect_Connect2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14089 di->dcerpc_procedure_name="Connect2";
14090 offset = samr_dissect_element_Connect2_system_name(tvb, offset, pinfo, tree, di, drep);
14091 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14092 offset = samr_dissect_element_Connect2_access_mask(tvb, offset, pinfo, tree, di, drep);
14093 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14094 return offset;
14097 static int
14098 samr_dissect_element_SetUserInfo2_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14100 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_SetUserInfo2_user_handle_, NDR_POINTER_REF, "Pointer to User Handle (policy_handle)",hf_samr_user_handle);
14102 return offset;
14105 static int
14106 samr_dissect_element_SetUserInfo2_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14108 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_user_handle, 0);
14110 return offset;
14113 static int
14114 samr_dissect_element_SetUserInfo2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14116 offset = samr_dissect_enum_UserInfoLevel(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_SetUserInfo2_level, 0);
14118 return offset;
14121 static int
14122 samr_dissect_element_SetUserInfo2_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14124 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_SetUserInfo2_info_, NDR_POINTER_REF, "Pointer to Info (samr_UserInfo)",hf_samr_samr_SetUserInfo2_info);
14126 return offset;
14129 static int
14130 samr_dissect_element_SetUserInfo2_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14132 offset = samr_dissect_UserInfo(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_SetUserInfo2_info, 0);
14134 return offset;
14137 /* IDL: NTSTATUS samr_SetUserInfo2( */
14138 /* IDL: [in] [ref] policy_handle *user_handle, */
14139 /* IDL: [in] samr_UserInfoLevel level, */
14140 /* IDL: [in] [ref] [switch_is(level)] samr_UserInfo *info */
14141 /* IDL: ); */
14143 static int
14144 samr_dissect_SetUserInfo2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14146 uint32_t status;
14148 di->dcerpc_procedure_name="SetUserInfo2";
14149 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
14151 if (status != 0)
14152 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
14154 return offset;
14157 static int
14158 samr_dissect_SetUserInfo2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14160 di->dcerpc_procedure_name="SetUserInfo2";
14161 offset = samr_dissect_element_SetUserInfo2_user_handle(tvb, offset, pinfo, tree, di, drep);
14162 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14163 offset = samr_dissect_element_SetUserInfo2_level(tvb, offset, pinfo, tree, di, drep);
14164 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14165 offset = samr_dissect_element_SetUserInfo2_info(tvb, offset, pinfo, tree, di, drep);
14166 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14167 return offset;
14170 static int
14171 samr_dissect_element_SetBootKeyInformation_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14173 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_SetBootKeyInformation_connect_handle_, NDR_POINTER_REF, "Pointer to Connect Handle (policy_handle)",hf_samr_connect_handle);
14175 return offset;
14178 static int
14179 samr_dissect_element_SetBootKeyInformation_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14181 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_connect_handle, 0);
14183 return offset;
14186 static int
14187 samr_dissect_element_SetBootKeyInformation_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14189 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_SetBootKeyInformation_unknown1, 0);
14191 return offset;
14194 static int
14195 samr_dissect_element_SetBootKeyInformation_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14197 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_SetBootKeyInformation_unknown2, 0);
14199 return offset;
14202 static int
14203 samr_dissect_element_SetBootKeyInformation_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14205 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_SetBootKeyInformation_unknown3, 0);
14207 return offset;
14210 /* IDL: NTSTATUS samr_SetBootKeyInformation( */
14211 /* IDL: [in] [ref] policy_handle *connect_handle, */
14212 /* IDL: [in] uint32 unknown1, */
14213 /* IDL: [in] uint32 unknown2, */
14214 /* IDL: [in] uint32 unknown3 */
14215 /* IDL: ); */
14217 static int
14218 samr_dissect_SetBootKeyInformation_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14220 uint32_t status;
14222 di->dcerpc_procedure_name="SetBootKeyInformation";
14223 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
14225 if (status != 0)
14226 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
14228 return offset;
14231 static int
14232 samr_dissect_SetBootKeyInformation_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14234 di->dcerpc_procedure_name="SetBootKeyInformation";
14235 offset = samr_dissect_element_SetBootKeyInformation_connect_handle(tvb, offset, pinfo, tree, di, drep);
14236 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14237 offset = samr_dissect_element_SetBootKeyInformation_unknown1(tvb, offset, pinfo, tree, di, drep);
14238 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14239 offset = samr_dissect_element_SetBootKeyInformation_unknown2(tvb, offset, pinfo, tree, di, drep);
14240 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14241 offset = samr_dissect_element_SetBootKeyInformation_unknown3(tvb, offset, pinfo, tree, di, drep);
14242 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14243 return offset;
14246 static int
14247 samr_dissect_element_GetBootKeyInformation_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14249 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_GetBootKeyInformation_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_samr_GetBootKeyInformation_domain_handle);
14251 return offset;
14254 static int
14255 samr_dissect_element_GetBootKeyInformation_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14257 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_GetBootKeyInformation_domain_handle, 0);
14259 return offset;
14262 static int
14263 samr_dissect_element_GetBootKeyInformation_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14265 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_GetBootKeyInformation_unknown_, NDR_POINTER_REF, "Pointer to Unknown (uint32)",hf_samr_samr_GetBootKeyInformation_unknown);
14267 return offset;
14270 static int
14271 samr_dissect_element_GetBootKeyInformation_unknown_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14273 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_GetBootKeyInformation_unknown, 0);
14275 return offset;
14278 /* IDL: NTSTATUS samr_GetBootKeyInformation( */
14279 /* IDL: [in] [ref] policy_handle *domain_handle, */
14280 /* IDL: [out] [ref] uint32 *unknown */
14281 /* IDL: ); */
14283 static int
14284 samr_dissect_GetBootKeyInformation_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14286 uint32_t status;
14288 di->dcerpc_procedure_name="GetBootKeyInformation";
14289 offset = samr_dissect_element_GetBootKeyInformation_unknown(tvb, offset, pinfo, tree, di, drep);
14290 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14292 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
14294 if (status != 0)
14295 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
14297 return offset;
14300 static int
14301 samr_dissect_GetBootKeyInformation_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14303 di->dcerpc_procedure_name="GetBootKeyInformation";
14304 offset = samr_dissect_element_GetBootKeyInformation_domain_handle(tvb, offset, pinfo, tree, di, drep);
14305 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14306 return offset;
14309 static int
14310 samr_dissect_element_Connect3_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14312 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_Connect3_system_name_, NDR_POINTER_UNIQUE, "Pointer to System Name (uint16)",hf_samr_samr_Connect3_system_name);
14314 return offset;
14317 static int
14318 samr_dissect_element_Connect3_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14320 char *data = NULL;
14321 struct ndr_generic_array nga = { .is_conformant = false, };
14323 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
14325 offset = dissect_ndr_varying_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
14326 offset = dissect_ndr_generic_array_string(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_samr_samr_Connect3_system_name, false, &nga, &data);
14327 proto_item_append_text(tree, ": %s", data);
14329 return offset;
14332 static int
14333 samr_dissect_element_Connect3_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14335 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_Connect3_unknown, 0);
14337 return offset;
14340 static int
14341 samr_dissect_element_Connect3_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14343 offset = samr_dissect_bitmap_ConnectAccessMask(tvb, offset, pinfo, tree, di, drep, hf_samr_connect_access_mask, 0);
14345 return offset;
14348 static int
14349 samr_dissect_element_Connect3_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14351 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_Connect3_connect_handle_, NDR_POINTER_REF, "Pointer to Connect Handle (policy_handle)",hf_samr_connect_handle);
14353 return offset;
14356 static int
14357 samr_dissect_element_Connect3_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14359 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_connect_handle, PIDL_POLHND_OPEN|PIDL_POLHND_TYPE_SAMR_CONNECT);
14361 return offset;
14364 /* IDL: NTSTATUS samr_Connect3( */
14365 /* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *system_name, */
14366 /* IDL: [in] uint32 unknown, */
14367 /* IDL: [in] samr_ConnectAccessMask access_mask, */
14368 /* IDL: [out] [ref] policy_handle *connect_handle */
14369 /* IDL: ); */
14371 static int
14372 samr_dissect_Connect3_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14374 uint32_t status;
14376 di->dcerpc_procedure_name="Connect3";
14377 offset = samr_dissect_element_Connect3_connect_handle(tvb, offset, pinfo, tree, di, drep);
14378 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14380 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
14382 if (status != 0)
14383 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
14385 return offset;
14388 static int
14389 samr_dissect_Connect3_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14391 di->dcerpc_procedure_name="Connect3";
14392 offset = samr_dissect_element_Connect3_system_name(tvb, offset, pinfo, tree, di, drep);
14393 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14394 offset = samr_dissect_element_Connect3_unknown(tvb, offset, pinfo, tree, di, drep);
14395 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14396 offset = samr_dissect_element_Connect3_access_mask(tvb, offset, pinfo, tree, di, drep);
14397 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14398 return offset;
14401 static int
14402 samr_dissect_element_Connect4_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14404 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_Connect4_system_name_, NDR_POINTER_UNIQUE, "Pointer to System Name (uint16)",hf_samr_samr_Connect4_system_name);
14406 return offset;
14409 static int
14410 samr_dissect_element_Connect4_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14412 char *data = NULL;
14413 struct ndr_generic_array nga = { .is_conformant = false, };
14415 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
14417 offset = dissect_ndr_varying_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
14418 offset = dissect_ndr_generic_array_string(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_samr_samr_Connect4_system_name, false, &nga, &data);
14419 proto_item_append_text(tree, ": %s", data);
14421 return offset;
14424 static int
14425 samr_dissect_element_Connect4_client_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14427 offset = samr_dissect_enum_ConnectVersion(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_Connect4_client_version, 0);
14429 return offset;
14432 static int
14433 samr_dissect_element_Connect4_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14435 offset = samr_dissect_bitmap_ConnectAccessMask(tvb, offset, pinfo, tree, di, drep, hf_samr_connect_access_mask, 0);
14437 return offset;
14440 static int
14441 samr_dissect_element_Connect4_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14443 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_Connect4_connect_handle_, NDR_POINTER_REF, "Pointer to Connect Handle (policy_handle)",hf_samr_connect_handle);
14445 return offset;
14448 static int
14449 samr_dissect_element_Connect4_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14451 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_connect_handle, PIDL_POLHND_OPEN|PIDL_POLHND_TYPE_SAMR_CONNECT);
14453 return offset;
14456 /* IDL: NTSTATUS samr_Connect4( */
14457 /* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *system_name, */
14458 /* IDL: [in] samr_ConnectVersion client_version, */
14459 /* IDL: [in] samr_ConnectAccessMask access_mask, */
14460 /* IDL: [out] [ref] policy_handle *connect_handle */
14461 /* IDL: ); */
14463 static int
14464 samr_dissect_Connect4_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14466 uint32_t status;
14468 di->dcerpc_procedure_name="Connect4";
14469 offset = samr_dissect_element_Connect4_connect_handle(tvb, offset, pinfo, tree, di, drep);
14470 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14472 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
14474 if (status != 0)
14475 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
14477 return offset;
14480 static int
14481 samr_dissect_Connect4_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14483 di->dcerpc_procedure_name="Connect4";
14484 offset = samr_dissect_element_Connect4_system_name(tvb, offset, pinfo, tree, di, drep);
14485 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14486 offset = samr_dissect_element_Connect4_client_version(tvb, offset, pinfo, tree, di, drep);
14487 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14488 offset = samr_dissect_element_Connect4_access_mask(tvb, offset, pinfo, tree, di, drep);
14489 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14490 return offset;
14493 static int
14494 samr_dissect_element_ChangePasswordUser3_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14496 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_ChangePasswordUser3_server_, NDR_POINTER_UNIQUE, "Pointer to Server (lsa_String)",hf_samr_samr_ChangePasswordUser3_server);
14498 return offset;
14501 static int
14502 samr_dissect_element_ChangePasswordUser3_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14504 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_ChangePasswordUser3_server);
14506 return offset;
14509 static int
14510 samr_dissect_element_ChangePasswordUser3_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14512 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_ChangePasswordUser3_account_, NDR_POINTER_REF, "Pointer to Account (lsa_String)",hf_samr_samr_ChangePasswordUser3_account);
14514 return offset;
14517 static int
14518 samr_dissect_element_ChangePasswordUser3_account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14520 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_ChangePasswordUser3_account);
14522 return offset;
14525 static int
14526 samr_dissect_element_ChangePasswordUser3_nt_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14528 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_ChangePasswordUser3_nt_password_, NDR_POINTER_UNIQUE, "Pointer to Nt Password (samr_CryptPassword)",hf_samr_samr_ChangePasswordUser3_nt_password);
14530 return offset;
14533 static int
14534 samr_dissect_element_ChangePasswordUser3_nt_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14536 offset = samr_dissect_struct_CryptPassword(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ChangePasswordUser3_nt_password,0);
14538 return offset;
14541 static int
14542 samr_dissect_element_ChangePasswordUser3_nt_verifier(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14544 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_ChangePasswordUser3_nt_verifier_, NDR_POINTER_UNIQUE, "Pointer to Nt Verifier (samr_Password)",hf_samr_samr_ChangePasswordUser3_nt_verifier);
14546 return offset;
14549 static int
14550 samr_dissect_element_ChangePasswordUser3_nt_verifier_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14552 offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ChangePasswordUser3_nt_verifier,0);
14554 return offset;
14557 static int
14558 samr_dissect_element_ChangePasswordUser3_lm_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14560 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_ChangePasswordUser3_lm_change, 0);
14562 return offset;
14565 static int
14566 samr_dissect_element_ChangePasswordUser3_lm_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14568 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_ChangePasswordUser3_lm_password_, NDR_POINTER_UNIQUE, "Pointer to Lm Password (samr_CryptPassword)",hf_samr_samr_ChangePasswordUser3_lm_password);
14570 return offset;
14573 static int
14574 samr_dissect_element_ChangePasswordUser3_lm_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14576 offset = samr_dissect_struct_CryptPassword(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ChangePasswordUser3_lm_password,0);
14578 return offset;
14581 static int
14582 samr_dissect_element_ChangePasswordUser3_lm_verifier(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14584 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_ChangePasswordUser3_lm_verifier_, NDR_POINTER_UNIQUE, "Pointer to Lm Verifier (samr_Password)",hf_samr_samr_ChangePasswordUser3_lm_verifier);
14586 return offset;
14589 static int
14590 samr_dissect_element_ChangePasswordUser3_lm_verifier_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14592 offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ChangePasswordUser3_lm_verifier,0);
14594 return offset;
14597 static int
14598 samr_dissect_element_ChangePasswordUser3_password3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14600 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_ChangePasswordUser3_password3_, NDR_POINTER_UNIQUE, "Pointer to Password3 (samr_CryptPassword)",hf_samr_samr_ChangePasswordUser3_password3);
14602 return offset;
14605 static int
14606 samr_dissect_element_ChangePasswordUser3_password3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14608 offset = samr_dissect_struct_CryptPassword(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ChangePasswordUser3_password3,0);
14610 return offset;
14613 static int
14614 samr_dissect_element_ChangePasswordUser3_dominfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14616 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_ChangePasswordUser3_dominfo_, NDR_POINTER_REF, "Pointer to Dominfo (samr_DomInfo1)",hf_samr_samr_ChangePasswordUser3_dominfo);
14618 return offset;
14621 static int
14622 samr_dissect_element_ChangePasswordUser3_dominfo_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14624 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_ChangePasswordUser3_dominfo__, NDR_POINTER_UNIQUE, "Pointer to Dominfo (samr_DomInfo1)",hf_samr_samr_ChangePasswordUser3_dominfo);
14626 return offset;
14629 static int
14630 samr_dissect_element_ChangePasswordUser3_dominfo__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14632 offset = samr_dissect_struct_DomInfo1(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ChangePasswordUser3_dominfo,0);
14634 return offset;
14637 static int
14638 samr_dissect_element_ChangePasswordUser3_reject(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14640 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_ChangePasswordUser3_reject_, NDR_POINTER_REF, "Pointer to Reject (userPwdChangeFailureInformation)",hf_samr_samr_ChangePasswordUser3_reject);
14642 return offset;
14645 static int
14646 samr_dissect_element_ChangePasswordUser3_reject_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14648 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_ChangePasswordUser3_reject__, NDR_POINTER_UNIQUE, "Pointer to Reject (userPwdChangeFailureInformation)",hf_samr_samr_ChangePasswordUser3_reject);
14650 return offset;
14653 static int
14654 samr_dissect_element_ChangePasswordUser3_reject__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14656 offset = samr_dissect_struct_userPwdChangeFailureInformation(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ChangePasswordUser3_reject,0);
14658 return offset;
14661 /* IDL: NTSTATUS samr_ChangePasswordUser3( */
14662 /* IDL: [in] [unique(1)] lsa_String *server, */
14663 /* IDL: [in] [ref] lsa_String *account, */
14664 /* IDL: [in] [unique(1)] samr_CryptPassword *nt_password, */
14665 /* IDL: [in] [unique(1)] samr_Password *nt_verifier, */
14666 /* IDL: [in] uint8 lm_change, */
14667 /* IDL: [in] [unique(1)] samr_CryptPassword *lm_password, */
14668 /* IDL: [in] [unique(1)] samr_Password *lm_verifier, */
14669 /* IDL: [in] [unique(1)] samr_CryptPassword *password3, */
14670 /* IDL: [out] [ref] samr_DomInfo1 **dominfo, */
14671 /* IDL: [out] [ref] userPwdChangeFailureInformation **reject */
14672 /* IDL: ); */
14674 static int
14675 samr_dissect_ChangePasswordUser3_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14677 uint32_t status;
14679 di->dcerpc_procedure_name="ChangePasswordUser3";
14680 offset = samr_dissect_element_ChangePasswordUser3_dominfo(tvb, offset, pinfo, tree, di, drep);
14681 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14683 offset = samr_dissect_element_ChangePasswordUser3_reject(tvb, offset, pinfo, tree, di, drep);
14684 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14686 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
14688 if (status != 0)
14689 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
14691 return offset;
14694 static int
14695 samr_dissect_ChangePasswordUser3_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14697 di->dcerpc_procedure_name="ChangePasswordUser3";
14698 offset = samr_dissect_element_ChangePasswordUser3_server(tvb, offset, pinfo, tree, di, drep);
14699 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14700 offset = samr_dissect_element_ChangePasswordUser3_account(tvb, offset, pinfo, tree, di, drep);
14701 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14702 offset = samr_dissect_element_ChangePasswordUser3_nt_password(tvb, offset, pinfo, tree, di, drep);
14703 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14704 offset = samr_dissect_element_ChangePasswordUser3_nt_verifier(tvb, offset, pinfo, tree, di, drep);
14705 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14706 offset = samr_dissect_element_ChangePasswordUser3_lm_change(tvb, offset, pinfo, tree, di, drep);
14707 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14708 offset = samr_dissect_element_ChangePasswordUser3_lm_password(tvb, offset, pinfo, tree, di, drep);
14709 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14710 offset = samr_dissect_element_ChangePasswordUser3_lm_verifier(tvb, offset, pinfo, tree, di, drep);
14711 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14712 offset = samr_dissect_element_ChangePasswordUser3_password3(tvb, offset, pinfo, tree, di, drep);
14713 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14714 return offset;
14717 static int
14718 samr_dissect_element_Connect5_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14720 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_Connect5_system_name_, NDR_POINTER_UNIQUE, "Pointer to System Name (uint16)",hf_samr_samr_Connect5_system_name);
14722 return offset;
14725 static int
14726 samr_dissect_element_Connect5_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14728 char *data = NULL;
14729 struct ndr_generic_array nga = { .is_conformant = false, };
14731 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
14733 offset = dissect_ndr_varying_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
14734 offset = dissect_ndr_generic_array_string(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_samr_samr_Connect5_system_name, false, &nga, &data);
14735 proto_item_append_text(tree, ": %s", data);
14737 return offset;
14740 static int
14741 samr_dissect_element_Connect5_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14743 offset = samr_dissect_bitmap_ConnectAccessMask(tvb, offset, pinfo, tree, di, drep, hf_samr_connect_access_mask, 0);
14745 return offset;
14748 static int
14749 samr_dissect_element_Connect5_level_in(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14751 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_Connect5_level_in, 0);
14753 return offset;
14756 static int
14757 samr_dissect_element_Connect5_info_in(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14759 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_Connect5_info_in_, NDR_POINTER_REF, "Pointer to Info In (samr_ConnectInfo)",hf_samr_samr_Connect5_info_in);
14761 return offset;
14764 static int
14765 samr_dissect_element_Connect5_info_in_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14767 offset = samr_dissect_ConnectInfo(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_Connect5_info_in, 0);
14769 return offset;
14772 static int
14773 samr_dissect_element_Connect5_level_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14775 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_Connect5_level_out_, NDR_POINTER_REF, "Pointer to Level Out (uint32)",hf_samr_samr_Connect5_level_out);
14777 return offset;
14780 static int
14781 samr_dissect_element_Connect5_level_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14783 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_Connect5_level_out, 0);
14785 return offset;
14788 static int
14789 samr_dissect_element_Connect5_info_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14791 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_Connect5_info_out_, NDR_POINTER_REF, "Pointer to Info Out (samr_ConnectInfo)",hf_samr_samr_Connect5_info_out);
14793 return offset;
14796 static int
14797 samr_dissect_element_Connect5_info_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14799 offset = samr_dissect_ConnectInfo(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_Connect5_info_out, 0);
14801 return offset;
14804 static int
14805 samr_dissect_element_Connect5_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14807 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_Connect5_connect_handle_, NDR_POINTER_REF, "Pointer to Connect Handle (policy_handle)",hf_samr_connect_handle);
14809 return offset;
14812 static int
14813 samr_dissect_element_Connect5_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14815 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_connect_handle, PIDL_POLHND_OPEN|PIDL_POLHND_TYPE_SAMR_CONNECT);
14817 return offset;
14820 /* IDL: NTSTATUS samr_Connect5( */
14821 /* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *system_name, */
14822 /* IDL: [in] samr_ConnectAccessMask access_mask, */
14823 /* IDL: [in] uint32 level_in, */
14824 /* IDL: [in] [ref] [switch_is(level_in)] samr_ConnectInfo *info_in, */
14825 /* IDL: [out] [ref] uint32 *level_out, */
14826 /* IDL: [out] [ref] [switch_is(*level_out)] samr_ConnectInfo *info_out, */
14827 /* IDL: [out] [ref] policy_handle *connect_handle */
14828 /* IDL: ); */
14830 static int
14831 samr_dissect_Connect5_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14833 uint32_t status;
14835 di->dcerpc_procedure_name="Connect5";
14836 offset = samr_dissect_element_Connect5_level_out(tvb, offset, pinfo, tree, di, drep);
14837 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14839 offset = samr_dissect_element_Connect5_info_out(tvb, offset, pinfo, tree, di, drep);
14840 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14842 offset = samr_dissect_element_Connect5_connect_handle(tvb, offset, pinfo, tree, di, drep);
14843 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14845 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
14847 if (status != 0)
14848 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
14850 return offset;
14853 static int
14854 samr_dissect_Connect5_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14856 di->dcerpc_procedure_name="Connect5";
14857 offset = samr_dissect_element_Connect5_system_name(tvb, offset, pinfo, tree, di, drep);
14858 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14859 offset = samr_dissect_element_Connect5_access_mask(tvb, offset, pinfo, tree, di, drep);
14860 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14861 offset = samr_dissect_element_Connect5_level_in(tvb, offset, pinfo, tree, di, drep);
14862 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14863 offset = samr_dissect_element_Connect5_info_in(tvb, offset, pinfo, tree, di, drep);
14864 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14865 return offset;
14868 static int
14869 samr_dissect_element_RidToSid_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14871 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_RidToSid_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_domain_handle);
14873 return offset;
14876 static int
14877 samr_dissect_element_RidToSid_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14879 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_domain_handle, 0);
14881 return offset;
14884 static int
14885 samr_dissect_element_RidToSid_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14887 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_rid, 0);
14889 return offset;
14892 static int
14893 samr_dissect_element_RidToSid_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14895 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_RidToSid_sid_, NDR_POINTER_REF, "Pointer to Sid (dom_sid2)",hf_samr_samr_RidToSid_sid);
14897 return offset;
14900 static int
14901 samr_dissect_element_RidToSid_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14903 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_RidToSid_sid__, NDR_POINTER_UNIQUE, "Pointer to Sid (dom_sid2)",hf_samr_samr_RidToSid_sid);
14905 return offset;
14908 static int
14909 samr_dissect_element_RidToSid_sid__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14911 offset=cnf_dissect_dom_sid2(tvb, offset, pinfo, tree, di, drep);
14913 return offset;
14916 /* IDL: NTSTATUS samr_RidToSid( */
14917 /* IDL: [in] [ref] policy_handle *domain_handle, */
14918 /* IDL: [in] uint32 rid, */
14919 /* IDL: [out] [ref] dom_sid2 **sid */
14920 /* IDL: ); */
14922 static int
14923 samr_dissect_RidToSid_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14925 uint32_t status;
14927 di->dcerpc_procedure_name="RidToSid";
14928 offset = samr_dissect_element_RidToSid_sid(tvb, offset, pinfo, tree, di, drep);
14929 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14931 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
14933 if (status != 0)
14934 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
14936 return offset;
14939 static int
14940 samr_dissect_RidToSid_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14942 di->dcerpc_procedure_name="RidToSid";
14943 offset = samr_dissect_element_RidToSid_domain_handle(tvb, offset, pinfo, tree, di, drep);
14944 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14945 offset = samr_dissect_element_RidToSid_rid(tvb, offset, pinfo, tree, di, drep);
14946 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14947 return offset;
14950 static int
14951 samr_dissect_element_SetDsrmPassword_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14953 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_SetDsrmPassword_name_, NDR_POINTER_UNIQUE, "Pointer to Name (lsa_String)",hf_samr_samr_SetDsrmPassword_name);
14955 return offset;
14958 static int
14959 samr_dissect_element_SetDsrmPassword_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14961 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_SetDsrmPassword_name);
14963 return offset;
14966 static int
14967 samr_dissect_element_SetDsrmPassword_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14969 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_SetDsrmPassword_unknown, 0);
14971 return offset;
14974 static int
14975 samr_dissect_element_SetDsrmPassword_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14977 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_SetDsrmPassword_hash_, NDR_POINTER_UNIQUE, "Pointer to Hash (samr_Password)",hf_samr_samr_SetDsrmPassword_hash);
14979 return offset;
14982 static int
14983 samr_dissect_element_SetDsrmPassword_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14985 offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_SetDsrmPassword_hash,0);
14987 return offset;
14990 /* IDL: NTSTATUS samr_SetDsrmPassword( */
14991 /* IDL: [in] [unique(1)] lsa_String *name, */
14992 /* IDL: [in] uint32 unknown, */
14993 /* IDL: [in] [unique(1)] samr_Password *hash */
14994 /* IDL: ); */
14996 static int
14997 samr_dissect_SetDsrmPassword_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
14999 uint32_t status;
15001 di->dcerpc_procedure_name="SetDsrmPassword";
15002 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
15004 if (status != 0)
15005 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
15007 return offset;
15010 static int
15011 samr_dissect_SetDsrmPassword_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
15013 di->dcerpc_procedure_name="SetDsrmPassword";
15014 offset = samr_dissect_element_SetDsrmPassword_name(tvb, offset, pinfo, tree, di, drep);
15015 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
15016 offset = samr_dissect_element_SetDsrmPassword_unknown(tvb, offset, pinfo, tree, di, drep);
15017 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
15018 offset = samr_dissect_element_SetDsrmPassword_hash(tvb, offset, pinfo, tree, di, drep);
15019 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
15020 return offset;
15023 static int
15024 samr_dissect_element_ValidatePassword_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
15026 offset = samr_dissect_enum_ValidatePasswordLevel(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_ValidatePassword_level, 0);
15028 return offset;
15031 static int
15032 samr_dissect_element_ValidatePassword_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
15034 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_ValidatePassword_req_, NDR_POINTER_REF, "Pointer to Req (samr_ValidatePasswordReq)",hf_samr_samr_ValidatePassword_req);
15036 return offset;
15039 static int
15040 samr_dissect_element_ValidatePassword_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
15042 offset = samr_dissect_ValidatePasswordReq(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_ValidatePassword_req, 0);
15044 return offset;
15047 static int
15048 samr_dissect_element_ValidatePassword_rep(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
15050 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_ValidatePassword_rep_, NDR_POINTER_REF, "Pointer to Rep (samr_ValidatePasswordRep)",hf_samr_samr_ValidatePassword_rep);
15052 return offset;
15055 static int
15056 samr_dissect_element_ValidatePassword_rep_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
15058 uint64_t saved_switch_level = di->switch_level;
15060 di->switch_level = 0;
15062 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_ValidatePassword_rep__, NDR_POINTER_UNIQUE, "Pointer to Rep (samr_ValidatePasswordRep)",hf_samr_samr_ValidatePassword_rep);
15064 di->switch_level = saved_switch_level;
15066 return offset;
15069 static int
15070 samr_dissect_element_ValidatePassword_rep__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
15072 offset = samr_dissect_ValidatePasswordRep(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_ValidatePassword_rep, 0);
15074 return offset;
15077 /* IDL: NTSTATUS samr_ValidatePassword( */
15078 /* IDL: [in] samr_ValidatePasswordLevel level, */
15079 /* IDL: [in] [ref] [switch_is(level)] samr_ValidatePasswordReq *req, */
15080 /* IDL: [out] [ref] [switch_is(level)] samr_ValidatePasswordRep **rep */
15081 /* IDL: ); */
15083 static int
15084 samr_dissect_ValidatePassword_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
15086 uint32_t status;
15088 di->dcerpc_procedure_name="ValidatePassword";
15089 offset = samr_dissect_element_ValidatePassword_rep(tvb, offset, pinfo, tree, di, drep);
15090 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
15092 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
15094 if (status != 0)
15095 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
15097 return offset;
15100 static int
15101 samr_dissect_ValidatePassword_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
15103 di->dcerpc_procedure_name="ValidatePassword";
15104 offset = samr_dissect_element_ValidatePassword_level(tvb, offset, pinfo, tree, di, drep);
15105 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
15106 offset = samr_dissect_element_ValidatePassword_req(tvb, offset, pinfo, tree, di, drep);
15107 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
15108 return offset;
15111 /* IDL: void samr_Opnum68NotUsedOnWire( */
15112 /* IDL: */
15113 /* IDL: ); */
15115 static int
15116 samr_dissect_Opnum68NotUsedOnWire_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
15118 di->dcerpc_procedure_name="Opnum68NotUsedOnWire";
15119 return offset;
15122 static int
15123 samr_dissect_Opnum68NotUsedOnWire_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
15125 di->dcerpc_procedure_name="Opnum68NotUsedOnWire";
15126 return offset;
15129 /* IDL: void samr_Opnum69NotUsedOnWire( */
15130 /* IDL: */
15131 /* IDL: ); */
15133 static int
15134 samr_dissect_Opnum69NotUsedOnWire_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
15136 di->dcerpc_procedure_name="Opnum69NotUsedOnWire";
15137 return offset;
15140 static int
15141 samr_dissect_Opnum69NotUsedOnWire_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
15143 di->dcerpc_procedure_name="Opnum69NotUsedOnWire";
15144 return offset;
15147 /* IDL: void samr_Opnum70NotUsedOnWire( */
15148 /* IDL: */
15149 /* IDL: ); */
15151 static int
15152 samr_dissect_Opnum70NotUsedOnWire_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
15154 di->dcerpc_procedure_name="Opnum70NotUsedOnWire";
15155 return offset;
15158 static int
15159 samr_dissect_Opnum70NotUsedOnWire_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
15161 di->dcerpc_procedure_name="Opnum70NotUsedOnWire";
15162 return offset;
15165 /* IDL: void samr_Opnum71NotUsedOnWire( */
15166 /* IDL: */
15167 /* IDL: ); */
15169 static int
15170 samr_dissect_Opnum71NotUsedOnWire_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
15172 di->dcerpc_procedure_name="Opnum71NotUsedOnWire";
15173 return offset;
15176 static int
15177 samr_dissect_Opnum71NotUsedOnWire_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
15179 di->dcerpc_procedure_name="Opnum71NotUsedOnWire";
15180 return offset;
15183 /* IDL: void samr_Opnum72NotUsedOnWire( */
15184 /* IDL: */
15185 /* IDL: ); */
15187 static int
15188 samr_dissect_Opnum72NotUsedOnWire_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
15190 di->dcerpc_procedure_name="Opnum72NotUsedOnWire";
15191 return offset;
15194 static int
15195 samr_dissect_Opnum72NotUsedOnWire_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
15197 di->dcerpc_procedure_name="Opnum72NotUsedOnWire";
15198 return offset;
15201 static int
15202 samr_dissect_element_ChangePasswordUser4_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
15204 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_ChangePasswordUser4_server_, NDR_POINTER_UNIQUE, "Pointer to Server (lsa_String)",hf_samr_samr_ChangePasswordUser4_server);
15206 return offset;
15209 static int
15210 samr_dissect_element_ChangePasswordUser4_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
15212 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_ChangePasswordUser4_server);
15214 return offset;
15217 static int
15218 samr_dissect_element_ChangePasswordUser4_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
15220 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_ChangePasswordUser4_account_, NDR_POINTER_REF, "Pointer to Account (lsa_String)",hf_samr_samr_ChangePasswordUser4_account);
15222 return offset;
15225 static int
15226 samr_dissect_element_ChangePasswordUser4_account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
15228 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_ChangePasswordUser4_account);
15230 return offset;
15233 static int
15234 samr_dissect_element_ChangePasswordUser4_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
15236 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_ChangePasswordUser4_password_, NDR_POINTER_REF, "Pointer to Password (samr_EncryptedPasswordAES)",hf_samr_samr_ChangePasswordUser4_password);
15238 return offset;
15241 static int
15242 samr_dissect_element_ChangePasswordUser4_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
15244 offset = samr_dissect_struct_EncryptedPasswordAES(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ChangePasswordUser4_password,0);
15246 return offset;
15249 /* IDL: NTSTATUS samr_ChangePasswordUser4( */
15250 /* IDL: [in] [unique(1)] lsa_String *server, */
15251 /* IDL: [in] [ref] lsa_String *account, */
15252 /* IDL: [in] [ref] samr_EncryptedPasswordAES *password */
15253 /* IDL: ); */
15255 static int
15256 samr_dissect_ChangePasswordUser4_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
15258 uint32_t status;
15260 di->dcerpc_procedure_name="ChangePasswordUser4";
15261 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
15263 if (status != 0)
15264 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
15266 return offset;
15269 static int
15270 samr_dissect_ChangePasswordUser4_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
15272 di->dcerpc_procedure_name="ChangePasswordUser4";
15273 offset = samr_dissect_element_ChangePasswordUser4_server(tvb, offset, pinfo, tree, di, drep);
15274 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
15275 offset = samr_dissect_element_ChangePasswordUser4_account(tvb, offset, pinfo, tree, di, drep);
15276 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
15277 offset = samr_dissect_element_ChangePasswordUser4_password(tvb, offset, pinfo, tree, di, drep);
15278 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
15279 return offset;
15283 static const dcerpc_sub_dissector samr_dissectors[] = {
15284 { 0, "Connect",
15285 samr_dissect_Connect_request, samr_dissect_Connect_response},
15286 { 1, "Close",
15287 samr_dissect_Close_request, samr_dissect_Close_response},
15288 { 2, "SetSecurity",
15289 samr_dissect_SetSecurity_request, samr_dissect_SetSecurity_response},
15290 { 3, "QuerySecurity",
15291 samr_dissect_QuerySecurity_request, samr_dissect_QuerySecurity_response},
15292 { 4, "Shutdown",
15293 samr_dissect_Shutdown_request, samr_dissect_Shutdown_response},
15294 { 5, "LookupDomain",
15295 samr_dissect_LookupDomain_request, samr_dissect_LookupDomain_response},
15296 { 6, "EnumDomains",
15297 samr_dissect_EnumDomains_request, samr_dissect_EnumDomains_response},
15298 { 7, "OpenDomain",
15299 samr_dissect_OpenDomain_request, samr_dissect_OpenDomain_response},
15300 { 8, "QueryDomainInfo",
15301 samr_dissect_QueryDomainInfo_request, samr_dissect_QueryDomainInfo_response},
15302 { 9, "SetDomainInfo",
15303 samr_dissect_SetDomainInfo_request, samr_dissect_SetDomainInfo_response},
15304 { 10, "CreateDomainGroup",
15305 samr_dissect_CreateDomainGroup_request, samr_dissect_CreateDomainGroup_response},
15306 { 11, "EnumDomainGroups",
15307 samr_dissect_EnumDomainGroups_request, samr_dissect_EnumDomainGroups_response},
15308 { 12, "CreateUser",
15309 samr_dissect_CreateUser_request, samr_dissect_CreateUser_response},
15310 { 13, "EnumDomainUsers",
15311 samr_dissect_EnumDomainUsers_request, samr_dissect_EnumDomainUsers_response},
15312 { 14, "CreateDomAlias",
15313 samr_dissect_CreateDomAlias_request, samr_dissect_CreateDomAlias_response},
15314 { 15, "EnumDomainAliases",
15315 samr_dissect_EnumDomainAliases_request, samr_dissect_EnumDomainAliases_response},
15316 { 16, "GetAliasMembership",
15317 samr_dissect_GetAliasMembership_request, samr_dissect_GetAliasMembership_response},
15318 { 17, "LookupNames",
15319 samr_dissect_LookupNames_request, samr_dissect_LookupNames_response},
15320 { 18, "LookupRids",
15321 samr_dissect_LookupRids_request, samr_dissect_LookupRids_response},
15322 { 19, "OpenGroup",
15323 samr_dissect_OpenGroup_request, samr_dissect_OpenGroup_response},
15324 { 20, "QueryGroupInfo",
15325 samr_dissect_QueryGroupInfo_request, samr_dissect_QueryGroupInfo_response},
15326 { 21, "SetGroupInfo",
15327 samr_dissect_SetGroupInfo_request, samr_dissect_SetGroupInfo_response},
15328 { 22, "AddGroupMember",
15329 samr_dissect_AddGroupMember_request, samr_dissect_AddGroupMember_response},
15330 { 23, "DeleteDomainGroup",
15331 samr_dissect_DeleteDomainGroup_request, samr_dissect_DeleteDomainGroup_response},
15332 { 24, "DeleteGroupMember",
15333 samr_dissect_DeleteGroupMember_request, samr_dissect_DeleteGroupMember_response},
15334 { 25, "QueryGroupMember",
15335 samr_dissect_QueryGroupMember_request, samr_dissect_QueryGroupMember_response},
15336 { 26, "SetMemberAttributesOfGroup",
15337 samr_dissect_SetMemberAttributesOfGroup_request, samr_dissect_SetMemberAttributesOfGroup_response},
15338 { 27, "OpenAlias",
15339 samr_dissect_OpenAlias_request, samr_dissect_OpenAlias_response},
15340 { 28, "QueryAliasInfo",
15341 samr_dissect_QueryAliasInfo_request, samr_dissect_QueryAliasInfo_response},
15342 { 29, "SetAliasInfo",
15343 samr_dissect_SetAliasInfo_request, samr_dissect_SetAliasInfo_response},
15344 { 30, "DeleteDomAlias",
15345 samr_dissect_DeleteDomAlias_request, samr_dissect_DeleteDomAlias_response},
15346 { 31, "AddAliasMember",
15347 samr_dissect_AddAliasMember_request, samr_dissect_AddAliasMember_response},
15348 { 32, "DeleteAliasMember",
15349 samr_dissect_DeleteAliasMember_request, samr_dissect_DeleteAliasMember_response},
15350 { 33, "GetMembersInAlias",
15351 samr_dissect_GetMembersInAlias_request, samr_dissect_GetMembersInAlias_response},
15352 { 34, "OpenUser",
15353 samr_dissect_OpenUser_request, samr_dissect_OpenUser_response},
15354 { 35, "DeleteUser",
15355 samr_dissect_DeleteUser_request, samr_dissect_DeleteUser_response},
15356 { 36, "QueryUserInfo",
15357 samr_dissect_QueryUserInfo_request, samr_dissect_QueryUserInfo_response},
15358 { 37, "SetUserInfo",
15359 samr_dissect_SetUserInfo_request, samr_dissect_SetUserInfo_response},
15360 { 38, "ChangePasswordUser",
15361 samr_dissect_ChangePasswordUser_request, samr_dissect_ChangePasswordUser_response},
15362 { 39, "GetGroupsForUser",
15363 samr_dissect_GetGroupsForUser_request, samr_dissect_GetGroupsForUser_response},
15364 { 40, "QueryDisplayInfo",
15365 samr_dissect_QueryDisplayInfo_request, samr_dissect_QueryDisplayInfo_response},
15366 { 41, "GetDisplayEnumerationIndex",
15367 samr_dissect_GetDisplayEnumerationIndex_request, samr_dissect_GetDisplayEnumerationIndex_response},
15368 { 42, "TestPrivateFunctionsDomain",
15369 samr_dissect_TestPrivateFunctionsDomain_request, samr_dissect_TestPrivateFunctionsDomain_response},
15370 { 43, "TestPrivateFunctionsUser",
15371 samr_dissect_TestPrivateFunctionsUser_request, samr_dissect_TestPrivateFunctionsUser_response},
15372 { 44, "GetUserPwInfo",
15373 samr_dissect_GetUserPwInfo_request, samr_dissect_GetUserPwInfo_response},
15374 { 45, "RemoveMemberFromForeignDomain",
15375 samr_dissect_RemoveMemberFromForeignDomain_request, samr_dissect_RemoveMemberFromForeignDomain_response},
15376 { 46, "QueryDomainInfo2",
15377 samr_dissect_QueryDomainInfo2_request, samr_dissect_QueryDomainInfo2_response},
15378 { 47, "QueryUserInfo2",
15379 samr_dissect_QueryUserInfo2_request, samr_dissect_QueryUserInfo2_response},
15380 { 48, "QueryDisplayInfo2",
15381 samr_dissect_QueryDisplayInfo2_request, samr_dissect_QueryDisplayInfo2_response},
15382 { 49, "GetDisplayEnumerationIndex2",
15383 samr_dissect_GetDisplayEnumerationIndex2_request, samr_dissect_GetDisplayEnumerationIndex2_response},
15384 { 50, "CreateUser2",
15385 samr_dissect_CreateUser2_request, samr_dissect_CreateUser2_response},
15386 { 51, "QueryDisplayInfo3",
15387 samr_dissect_QueryDisplayInfo3_request, samr_dissect_QueryDisplayInfo3_response},
15388 { 52, "AddMultipleMembersToAlias",
15389 samr_dissect_AddMultipleMembersToAlias_request, samr_dissect_AddMultipleMembersToAlias_response},
15390 { 53, "RemoveMultipleMembersFromAlias",
15391 samr_dissect_RemoveMultipleMembersFromAlias_request, samr_dissect_RemoveMultipleMembersFromAlias_response},
15392 { 54, "OemChangePasswordUser2",
15393 samr_dissect_OemChangePasswordUser2_request, samr_dissect_OemChangePasswordUser2_response},
15394 { 55, "ChangePasswordUser2",
15395 samr_dissect_ChangePasswordUser2_request, samr_dissect_ChangePasswordUser2_response},
15396 { 56, "GetDomPwInfo",
15397 samr_dissect_GetDomPwInfo_request, samr_dissect_GetDomPwInfo_response},
15398 { 57, "Connect2",
15399 samr_dissect_Connect2_request, samr_dissect_Connect2_response},
15400 { 58, "SetUserInfo2",
15401 samr_dissect_SetUserInfo2_request, samr_dissect_SetUserInfo2_response},
15402 { 59, "SetBootKeyInformation",
15403 samr_dissect_SetBootKeyInformation_request, samr_dissect_SetBootKeyInformation_response},
15404 { 60, "GetBootKeyInformation",
15405 samr_dissect_GetBootKeyInformation_request, samr_dissect_GetBootKeyInformation_response},
15406 { 61, "Connect3",
15407 samr_dissect_Connect3_request, samr_dissect_Connect3_response},
15408 { 62, "Connect4",
15409 samr_dissect_Connect4_request, samr_dissect_Connect4_response},
15410 { 63, "ChangePasswordUser3",
15411 samr_dissect_ChangePasswordUser3_request, samr_dissect_ChangePasswordUser3_response},
15412 { 64, "Connect5",
15413 samr_dissect_Connect5_request, samr_dissect_Connect5_response},
15414 { 65, "RidToSid",
15415 samr_dissect_RidToSid_request, samr_dissect_RidToSid_response},
15416 { 66, "SetDsrmPassword",
15417 samr_dissect_SetDsrmPassword_request, samr_dissect_SetDsrmPassword_response},
15418 { 67, "ValidatePassword",
15419 samr_dissect_ValidatePassword_request, samr_dissect_ValidatePassword_response},
15420 { 68, "Opnum68NotUsedOnWire",
15421 samr_dissect_Opnum68NotUsedOnWire_request, samr_dissect_Opnum68NotUsedOnWire_response},
15422 { 69, "Opnum69NotUsedOnWire",
15423 samr_dissect_Opnum69NotUsedOnWire_request, samr_dissect_Opnum69NotUsedOnWire_response},
15424 { 70, "Opnum70NotUsedOnWire",
15425 samr_dissect_Opnum70NotUsedOnWire_request, samr_dissect_Opnum70NotUsedOnWire_response},
15426 { 71, "Opnum71NotUsedOnWire",
15427 samr_dissect_Opnum71NotUsedOnWire_request, samr_dissect_Opnum71NotUsedOnWire_response},
15428 { 72, "Opnum72NotUsedOnWire",
15429 samr_dissect_Opnum72NotUsedOnWire_request, samr_dissect_Opnum72NotUsedOnWire_response},
15430 { 73, "ChangePasswordUser4",
15431 samr_dissect_ChangePasswordUser4_request, samr_dissect_ChangePasswordUser4_response},
15432 { 0, NULL, NULL, NULL }
15435 void proto_register_dcerpc_samr(void)
15437 static hf_register_info hf[] = {
15438 { &hf_samr_alias_access_mask,
15439 { "Access Mask", "samr.alias.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
15440 { &hf_samr_alias_handle,
15441 { "Alias Handle", "samr.alias_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15442 { &hf_samr_connect_access_mask,
15443 { "Access Mask", "samr.connect.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
15444 { &hf_samr_connect_handle,
15445 { "Connect Handle", "samr.connect_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15446 { &hf_samr_domain_access_mask,
15447 { "Access Mask", "samr.domain.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
15448 { &hf_samr_domain_handle,
15449 { "Domain Handle", "samr.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15450 { &hf_samr_group_access_mask,
15451 { "Access Mask", "samr.group.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
15452 { &hf_samr_group_handle,
15453 { "Group Handle", "samr.group_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15454 { &hf_samr_handle,
15455 { "Handle", "samr.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15456 { &hf_samr_lsa_Strings_count,
15457 { "Count", "samr.lsa_Strings.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15458 { &hf_samr_lsa_Strings_names,
15459 { "Names", "samr.lsa_Strings.names", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15460 { &hf_samr_opnum,
15461 { "Operation", "samr.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
15462 { &hf_samr_rid,
15463 { "RID", "samr.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15464 { &hf_samr_samr_AcctFlags_ACB_AUTOLOCK,
15465 { "ACB AUTOLOCK", "samr.samr_AcctFlags.ACB_AUTOLOCK", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_AUTOLOCK_tfs), ( 0x00000400 ), NULL, HFILL }},
15466 { &hf_samr_samr_AcctFlags_ACB_DISABLED,
15467 { "ACB DISABLED", "samr.samr_AcctFlags.ACB_DISABLED", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_DISABLED_tfs), ( 0x00000001 ), NULL, HFILL }},
15468 { &hf_samr_samr_AcctFlags_ACB_DOMTRUST,
15469 { "ACB DOMTRUST", "samr.samr_AcctFlags.ACB_DOMTRUST", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_DOMTRUST_tfs), ( 0x00000040 ), NULL, HFILL }},
15470 { &hf_samr_samr_AcctFlags_ACB_DONT_REQUIRE_PREAUTH,
15471 { "ACB DONT REQUIRE PREAUTH", "samr.samr_AcctFlags.ACB_DONT_REQUIRE_PREAUTH", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_DONT_REQUIRE_PREAUTH_tfs), ( 0x00010000 ), NULL, HFILL }},
15472 { &hf_samr_samr_AcctFlags_ACB_ENC_TXT_PWD_ALLOWED,
15473 { "ACB ENC TXT PWD ALLOWED", "samr.samr_AcctFlags.ACB_ENC_TXT_PWD_ALLOWED", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_ENC_TXT_PWD_ALLOWED_tfs), ( 0x00000800 ), NULL, HFILL }},
15474 { &hf_samr_samr_AcctFlags_ACB_HOMDIRREQ,
15475 { "ACB HOMDIRREQ", "samr.samr_AcctFlags.ACB_HOMDIRREQ", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_HOMDIRREQ_tfs), ( 0x00000002 ), NULL, HFILL }},
15476 { &hf_samr_samr_AcctFlags_ACB_MNS,
15477 { "ACB MNS", "samr.samr_AcctFlags.ACB_MNS", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_MNS_tfs), ( 0x00000020 ), NULL, HFILL }},
15478 { &hf_samr_samr_AcctFlags_ACB_NORMAL,
15479 { "ACB NORMAL", "samr.samr_AcctFlags.ACB_NORMAL", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_NORMAL_tfs), ( 0x00000010 ), NULL, HFILL }},
15480 { &hf_samr_samr_AcctFlags_ACB_NOT_DELEGATED,
15481 { "ACB NOT DELEGATED", "samr.samr_AcctFlags.ACB_NOT_DELEGATED", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_NOT_DELEGATED_tfs), ( 0x00004000 ), NULL, HFILL }},
15482 { &hf_samr_samr_AcctFlags_ACB_NO_AUTH_DATA_REQD,
15483 { "ACB NO AUTH DATA REQD", "samr.samr_AcctFlags.ACB_NO_AUTH_DATA_REQD", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_NO_AUTH_DATA_REQD_tfs), ( 0x00080000 ), NULL, HFILL }},
15484 { &hf_samr_samr_AcctFlags_ACB_PARTIAL_SECRETS_ACCOUNT,
15485 { "ACB PARTIAL SECRETS ACCOUNT", "samr.samr_AcctFlags.ACB_PARTIAL_SECRETS_ACCOUNT", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_PARTIAL_SECRETS_ACCOUNT_tfs), ( 0x00100000 ), NULL, HFILL }},
15486 { &hf_samr_samr_AcctFlags_ACB_PWNOEXP,
15487 { "ACB PWNOEXP", "samr.samr_AcctFlags.ACB_PWNOEXP", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_PWNOEXP_tfs), ( 0x00000200 ), NULL, HFILL }},
15488 { &hf_samr_samr_AcctFlags_ACB_PWNOTREQ,
15489 { "ACB PWNOTREQ", "samr.samr_AcctFlags.ACB_PWNOTREQ", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_PWNOTREQ_tfs), ( 0x00000004 ), NULL, HFILL }},
15490 { &hf_samr_samr_AcctFlags_ACB_PW_EXPIRED,
15491 { "ACB PW EXPIRED", "samr.samr_AcctFlags.ACB_PW_EXPIRED", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_PW_EXPIRED_tfs), ( 0x00020000 ), NULL, HFILL }},
15492 { &hf_samr_samr_AcctFlags_ACB_SMARTCARD_REQUIRED,
15493 { "ACB SMARTCARD REQUIRED", "samr.samr_AcctFlags.ACB_SMARTCARD_REQUIRED", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_SMARTCARD_REQUIRED_tfs), ( 0x00001000 ), NULL, HFILL }},
15494 { &hf_samr_samr_AcctFlags_ACB_SVRTRUST,
15495 { "ACB SVRTRUST", "samr.samr_AcctFlags.ACB_SVRTRUST", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_SVRTRUST_tfs), ( 0x00000100 ), NULL, HFILL }},
15496 { &hf_samr_samr_AcctFlags_ACB_TEMPDUP,
15497 { "ACB TEMPDUP", "samr.samr_AcctFlags.ACB_TEMPDUP", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_TEMPDUP_tfs), ( 0x00000008 ), NULL, HFILL }},
15498 { &hf_samr_samr_AcctFlags_ACB_TRUSTED_FOR_DELEGATION,
15499 { "ACB TRUSTED FOR DELEGATION", "samr.samr_AcctFlags.ACB_TRUSTED_FOR_DELEGATION", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_TRUSTED_FOR_DELEGATION_tfs), ( 0x00002000 ), NULL, HFILL }},
15500 { &hf_samr_samr_AcctFlags_ACB_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION,
15501 { "ACB TRUSTED TO AUTHENTICATE FOR DELEGATION", "samr.samr_AcctFlags.ACB_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION_tfs), ( 0x00040000 ), NULL, HFILL }},
15502 { &hf_samr_samr_AcctFlags_ACB_USE_AES_KEYS,
15503 { "ACB USE AES KEYS", "samr.samr_AcctFlags.ACB_USE_AES_KEYS", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_USE_AES_KEYS_tfs), ( 0x00200000 ), NULL, HFILL }},
15504 { &hf_samr_samr_AcctFlags_ACB_USE_DES_KEY_ONLY,
15505 { "ACB USE DES KEY ONLY", "samr.samr_AcctFlags.ACB_USE_DES_KEY_ONLY", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_USE_DES_KEY_ONLY_tfs), ( 0x00008000 ), NULL, HFILL }},
15506 { &hf_samr_samr_AcctFlags_ACB_WSTRUST,
15507 { "ACB WSTRUST", "samr.samr_AcctFlags.ACB_WSTRUST", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_WSTRUST_tfs), ( 0x00000080 ), NULL, HFILL }},
15508 { &hf_samr_samr_AddAliasMember_sid,
15509 { "Sid", "samr.samr_AddAliasMember.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15510 { &hf_samr_samr_AddGroupMember_flags,
15511 { "Flags", "samr.samr_AddGroupMember.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15512 { &hf_samr_samr_AddMultipleMembersToAlias_sids,
15513 { "Sids", "samr.samr_AddMultipleMembersToAlias.sids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15514 { &hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_ADD_MEMBER,
15515 { "SAMR ALIAS ACCESS ADD MEMBER", "samr.samr_AliasAccessMask.SAMR_ALIAS_ACCESS_ADD_MEMBER", FT_BOOLEAN, 32, TFS(&samr_AliasAccessMask_SAMR_ALIAS_ACCESS_ADD_MEMBER_tfs), ( 0x00000001 ), NULL, HFILL }},
15516 { &hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_GET_MEMBERS,
15517 { "SAMR ALIAS ACCESS GET MEMBERS", "samr.samr_AliasAccessMask.SAMR_ALIAS_ACCESS_GET_MEMBERS", FT_BOOLEAN, 32, TFS(&samr_AliasAccessMask_SAMR_ALIAS_ACCESS_GET_MEMBERS_tfs), ( 0x00000004 ), NULL, HFILL }},
15518 { &hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_LOOKUP_INFO,
15519 { "SAMR ALIAS ACCESS LOOKUP INFO", "samr.samr_AliasAccessMask.SAMR_ALIAS_ACCESS_LOOKUP_INFO", FT_BOOLEAN, 32, TFS(&samr_AliasAccessMask_SAMR_ALIAS_ACCESS_LOOKUP_INFO_tfs), ( 0x00000008 ), NULL, HFILL }},
15520 { &hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_REMOVE_MEMBER,
15521 { "SAMR ALIAS ACCESS REMOVE MEMBER", "samr.samr_AliasAccessMask.SAMR_ALIAS_ACCESS_REMOVE_MEMBER", FT_BOOLEAN, 32, TFS(&samr_AliasAccessMask_SAMR_ALIAS_ACCESS_REMOVE_MEMBER_tfs), ( 0x00000002 ), NULL, HFILL }},
15522 { &hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_SET_INFO,
15523 { "SAMR ALIAS ACCESS SET INFO", "samr.samr_AliasAccessMask.SAMR_ALIAS_ACCESS_SET_INFO", FT_BOOLEAN, 32, TFS(&samr_AliasAccessMask_SAMR_ALIAS_ACCESS_SET_INFO_tfs), ( 0x00000010 ), NULL, HFILL }},
15524 { &hf_samr_samr_AliasInfoAll_description,
15525 { "Description", "samr.samr_AliasInfoAll.description", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15526 { &hf_samr_samr_AliasInfoAll_name,
15527 { "Name", "samr.samr_AliasInfoAll.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15528 { &hf_samr_samr_AliasInfoAll_num_members,
15529 { "Num Members", "samr.samr_AliasInfoAll.num_members", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15530 { &hf_samr_samr_AliasInfo_all,
15531 { "All", "samr.samr_AliasInfo.all", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15532 { &hf_samr_samr_AliasInfo_description,
15533 { "Description", "samr.samr_AliasInfo.description", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15534 { &hf_samr_samr_AliasInfo_name,
15535 { "Name", "samr.samr_AliasInfo.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15536 { &hf_samr_samr_ChangePasswordUser2_account,
15537 { "Account", "samr.samr_ChangePasswordUser2.account", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15538 { &hf_samr_samr_ChangePasswordUser2_lm_change,
15539 { "Lm Change", "samr.samr_ChangePasswordUser2.lm_change", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
15540 { &hf_samr_samr_ChangePasswordUser2_lm_password,
15541 { "Lm Password", "samr.samr_ChangePasswordUser2.lm_password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15542 { &hf_samr_samr_ChangePasswordUser2_lm_verifier,
15543 { "Lm Verifier", "samr.samr_ChangePasswordUser2.lm_verifier", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15544 { &hf_samr_samr_ChangePasswordUser2_nt_password,
15545 { "Nt Password", "samr.samr_ChangePasswordUser2.nt_password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15546 { &hf_samr_samr_ChangePasswordUser2_nt_verifier,
15547 { "Nt Verifier", "samr.samr_ChangePasswordUser2.nt_verifier", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15548 { &hf_samr_samr_ChangePasswordUser2_server,
15549 { "Server", "samr.samr_ChangePasswordUser2.server", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15550 { &hf_samr_samr_ChangePasswordUser3_account,
15551 { "Account", "samr.samr_ChangePasswordUser3.account", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15552 { &hf_samr_samr_ChangePasswordUser3_dominfo,
15553 { "Dominfo", "samr.samr_ChangePasswordUser3.dominfo", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15554 { &hf_samr_samr_ChangePasswordUser3_lm_change,
15555 { "Lm Change", "samr.samr_ChangePasswordUser3.lm_change", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
15556 { &hf_samr_samr_ChangePasswordUser3_lm_password,
15557 { "Lm Password", "samr.samr_ChangePasswordUser3.lm_password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15558 { &hf_samr_samr_ChangePasswordUser3_lm_verifier,
15559 { "Lm Verifier", "samr.samr_ChangePasswordUser3.lm_verifier", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15560 { &hf_samr_samr_ChangePasswordUser3_nt_password,
15561 { "Nt Password", "samr.samr_ChangePasswordUser3.nt_password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15562 { &hf_samr_samr_ChangePasswordUser3_nt_verifier,
15563 { "Nt Verifier", "samr.samr_ChangePasswordUser3.nt_verifier", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15564 { &hf_samr_samr_ChangePasswordUser3_password3,
15565 { "Password3", "samr.samr_ChangePasswordUser3.password3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15566 { &hf_samr_samr_ChangePasswordUser3_reject,
15567 { "Reject", "samr.samr_ChangePasswordUser3.reject", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15568 { &hf_samr_samr_ChangePasswordUser3_server,
15569 { "Server", "samr.samr_ChangePasswordUser3.server", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15570 { &hf_samr_samr_ChangePasswordUser4_account,
15571 { "Account", "samr.samr_ChangePasswordUser4.account", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15572 { &hf_samr_samr_ChangePasswordUser4_password,
15573 { "Password", "samr.samr_ChangePasswordUser4.password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15574 { &hf_samr_samr_ChangePasswordUser4_server,
15575 { "Server", "samr.samr_ChangePasswordUser4.server", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15576 { &hf_samr_samr_ChangePasswordUser_cross1_present,
15577 { "Cross1 Present", "samr.samr_ChangePasswordUser.cross1_present", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
15578 { &hf_samr_samr_ChangePasswordUser_cross2_present,
15579 { "Cross2 Present", "samr.samr_ChangePasswordUser.cross2_present", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
15580 { &hf_samr_samr_ChangePasswordUser_lm_cross,
15581 { "Lm Cross", "samr.samr_ChangePasswordUser.lm_cross", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15582 { &hf_samr_samr_ChangePasswordUser_lm_present,
15583 { "Lm Present", "samr.samr_ChangePasswordUser.lm_present", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
15584 { &hf_samr_samr_ChangePasswordUser_new_lm_crypted,
15585 { "New Lm Crypted", "samr.samr_ChangePasswordUser.new_lm_crypted", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15586 { &hf_samr_samr_ChangePasswordUser_new_nt_crypted,
15587 { "New Nt Crypted", "samr.samr_ChangePasswordUser.new_nt_crypted", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15588 { &hf_samr_samr_ChangePasswordUser_nt_cross,
15589 { "Nt Cross", "samr.samr_ChangePasswordUser.nt_cross", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15590 { &hf_samr_samr_ChangePasswordUser_nt_present,
15591 { "Nt Present", "samr.samr_ChangePasswordUser.nt_present", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
15592 { &hf_samr_samr_ChangePasswordUser_old_lm_crypted,
15593 { "Old Lm Crypted", "samr.samr_ChangePasswordUser.old_lm_crypted", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15594 { &hf_samr_samr_ChangePasswordUser_old_nt_crypted,
15595 { "Old Nt Crypted", "samr.samr_ChangePasswordUser.old_nt_crypted", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15596 { &hf_samr_samr_Connect2_system_name,
15597 { "System Name", "samr.samr_Connect2.system_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15598 { &hf_samr_samr_Connect3_system_name,
15599 { "System Name", "samr.samr_Connect3.system_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15600 { &hf_samr_samr_Connect3_unknown,
15601 { "Unknown", "samr.samr_Connect3.unknown", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15602 { &hf_samr_samr_Connect4_client_version,
15603 { "Client Version", "samr.samr_Connect4.client_version", FT_UINT32, BASE_DEC, VALS(samr_samr_ConnectVersion_vals), 0, NULL, HFILL }},
15604 { &hf_samr_samr_Connect4_system_name,
15605 { "System Name", "samr.samr_Connect4.system_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15606 { &hf_samr_samr_Connect5_info_in,
15607 { "Info In", "samr.samr_Connect5.info_in", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15608 { &hf_samr_samr_Connect5_info_out,
15609 { "Info Out", "samr.samr_Connect5.info_out", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15610 { &hf_samr_samr_Connect5_level_in,
15611 { "Level In", "samr.samr_Connect5.level_in", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15612 { &hf_samr_samr_Connect5_level_out,
15613 { "Level Out", "samr.samr_Connect5.level_out", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15614 { &hf_samr_samr_Connect5_system_name,
15615 { "System Name", "samr.samr_Connect5.system_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15616 { &hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_CONNECT_TO_SERVER,
15617 { "SAMR ACCESS CONNECT TO SERVER", "samr.samr_ConnectAccessMask.SAMR_ACCESS_CONNECT_TO_SERVER", FT_BOOLEAN, 32, TFS(&samr_ConnectAccessMask_SAMR_ACCESS_CONNECT_TO_SERVER_tfs), ( 0x00000001 ), NULL, HFILL }},
15618 { &hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_CREATE_DOMAIN,
15619 { "SAMR ACCESS CREATE DOMAIN", "samr.samr_ConnectAccessMask.SAMR_ACCESS_CREATE_DOMAIN", FT_BOOLEAN, 32, TFS(&samr_ConnectAccessMask_SAMR_ACCESS_CREATE_DOMAIN_tfs), ( 0x00000008 ), NULL, HFILL }},
15620 { &hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_ENUM_DOMAINS,
15621 { "SAMR ACCESS ENUM DOMAINS", "samr.samr_ConnectAccessMask.SAMR_ACCESS_ENUM_DOMAINS", FT_BOOLEAN, 32, TFS(&samr_ConnectAccessMask_SAMR_ACCESS_ENUM_DOMAINS_tfs), ( 0x00000010 ), NULL, HFILL }},
15622 { &hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_INITIALIZE_SERVER,
15623 { "SAMR ACCESS INITIALIZE SERVER", "samr.samr_ConnectAccessMask.SAMR_ACCESS_INITIALIZE_SERVER", FT_BOOLEAN, 32, TFS(&samr_ConnectAccessMask_SAMR_ACCESS_INITIALIZE_SERVER_tfs), ( 0x00000004 ), NULL, HFILL }},
15624 { &hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_LOOKUP_DOMAIN,
15625 { "SAMR ACCESS LOOKUP DOMAIN", "samr.samr_ConnectAccessMask.SAMR_ACCESS_LOOKUP_DOMAIN", FT_BOOLEAN, 32, TFS(&samr_ConnectAccessMask_SAMR_ACCESS_LOOKUP_DOMAIN_tfs), ( 0x00000020 ), NULL, HFILL }},
15626 { &hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_SHUTDOWN_SERVER,
15627 { "SAMR ACCESS SHUTDOWN SERVER", "samr.samr_ConnectAccessMask.SAMR_ACCESS_SHUTDOWN_SERVER", FT_BOOLEAN, 32, TFS(&samr_ConnectAccessMask_SAMR_ACCESS_SHUTDOWN_SERVER_tfs), ( 0x00000002 ), NULL, HFILL }},
15628 { &hf_samr_samr_ConnectInfo1_client_version,
15629 { "Client Version", "samr.samr_ConnectInfo1.client_version", FT_UINT32, BASE_DEC, VALS(samr_samr_ConnectVersion_vals), 0, NULL, HFILL }},
15630 { &hf_samr_samr_ConnectInfo1_supported_features,
15631 { "Supported Features", "samr.samr_ConnectInfo1.supported_features", FT_UINT32, BASE_DEC, VALS(samr_samr_SupportedFeatures_vals), 0, NULL, HFILL }},
15632 { &hf_samr_samr_ConnectInfo_info1,
15633 { "Info1", "samr.samr_ConnectInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15634 { &hf_samr_samr_Connect_system_name,
15635 { "System Name", "samr.samr_Connect.system_name", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
15636 { &hf_samr_samr_CreateDomAlias_alias_name,
15637 { "Alias Name", "samr.samr_CreateDomAlias.alias_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15638 { &hf_samr_samr_CreateDomainGroup_name,
15639 { "Name", "samr.samr_CreateDomainGroup.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15640 { &hf_samr_samr_CreateUser2_access_granted,
15641 { "Access Granted", "samr.samr_CreateUser2.access_granted", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15642 { &hf_samr_samr_CreateUser2_account_name,
15643 { "Account Name", "samr.samr_CreateUser2.account_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15644 { &hf_samr_samr_CreateUser2_acct_flags,
15645 { "Acct Flags", "samr.samr_CreateUser2.acct_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
15646 { &hf_samr_samr_CreateUser_account_name,
15647 { "Account Name", "samr.samr_CreateUser.account_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15648 { &hf_samr_samr_CryptPasswordEx_data,
15649 { "Data", "samr.samr_CryptPasswordEx.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
15650 { &hf_samr_samr_CryptPassword_data,
15651 { "Data", "samr.samr_CryptPassword.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
15652 { &hf_samr_samr_DeleteAliasMember_sid,
15653 { "Sid", "samr.samr_DeleteAliasMember.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15654 { &hf_samr_samr_DispEntryAscii_account_name,
15655 { "Account Name", "samr.samr_DispEntryAscii.account_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15656 { &hf_samr_samr_DispEntryAscii_idx,
15657 { "Idx", "samr.samr_DispEntryAscii.idx", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15658 { &hf_samr_samr_DispEntryFullGroup_account_name,
15659 { "Account Name", "samr.samr_DispEntryFullGroup.account_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15660 { &hf_samr_samr_DispEntryFullGroup_acct_flags,
15661 { "Acct Flags", "samr.samr_DispEntryFullGroup.acct_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
15662 { &hf_samr_samr_DispEntryFullGroup_description,
15663 { "Description", "samr.samr_DispEntryFullGroup.description", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15664 { &hf_samr_samr_DispEntryFullGroup_idx,
15665 { "Idx", "samr.samr_DispEntryFullGroup.idx", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15666 { &hf_samr_samr_DispEntryFull_account_name,
15667 { "Account Name", "samr.samr_DispEntryFull.account_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15668 { &hf_samr_samr_DispEntryFull_acct_flags,
15669 { "Acct Flags", "samr.samr_DispEntryFull.acct_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
15670 { &hf_samr_samr_DispEntryFull_description,
15671 { "Description", "samr.samr_DispEntryFull.description", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15672 { &hf_samr_samr_DispEntryFull_idx,
15673 { "Idx", "samr.samr_DispEntryFull.idx", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15674 { &hf_samr_samr_DispEntryGeneral_account_name,
15675 { "Account Name", "samr.samr_DispEntryGeneral.account_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15676 { &hf_samr_samr_DispEntryGeneral_acct_flags,
15677 { "Acct Flags", "samr.samr_DispEntryGeneral.acct_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
15678 { &hf_samr_samr_DispEntryGeneral_description,
15679 { "Description", "samr.samr_DispEntryGeneral.description", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15680 { &hf_samr_samr_DispEntryGeneral_full_name,
15681 { "Full Name", "samr.samr_DispEntryGeneral.full_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15682 { &hf_samr_samr_DispEntryGeneral_idx,
15683 { "Idx", "samr.samr_DispEntryGeneral.idx", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15684 { &hf_samr_samr_DispInfoAscii_count,
15685 { "Count", "samr.samr_DispInfoAscii.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15686 { &hf_samr_samr_DispInfoAscii_entries,
15687 { "Entries", "samr.samr_DispInfoAscii.entries", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15688 { &hf_samr_samr_DispInfoFullGroups_count,
15689 { "Count", "samr.samr_DispInfoFullGroups.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15690 { &hf_samr_samr_DispInfoFullGroups_entries,
15691 { "Entries", "samr.samr_DispInfoFullGroups.entries", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15692 { &hf_samr_samr_DispInfoFull_count,
15693 { "Count", "samr.samr_DispInfoFull.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15694 { &hf_samr_samr_DispInfoFull_entries,
15695 { "Entries", "samr.samr_DispInfoFull.entries", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15696 { &hf_samr_samr_DispInfoGeneral_count,
15697 { "Count", "samr.samr_DispInfoGeneral.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15698 { &hf_samr_samr_DispInfoGeneral_entries,
15699 { "Entries", "samr.samr_DispInfoGeneral.entries", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15700 { &hf_samr_samr_DispInfo_info1,
15701 { "Info1", "samr.samr_DispInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15702 { &hf_samr_samr_DispInfo_info2,
15703 { "Info2", "samr.samr_DispInfo.info2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15704 { &hf_samr_samr_DispInfo_info3,
15705 { "Info3", "samr.samr_DispInfo.info3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15706 { &hf_samr_samr_DispInfo_info4,
15707 { "Info4", "samr.samr_DispInfo.info4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15708 { &hf_samr_samr_DispInfo_info5,
15709 { "Info5", "samr.samr_DispInfo.info5", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15710 { &hf_samr_samr_DomGeneralInformation2_general,
15711 { "General", "samr.samr_DomGeneralInformation2.general", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15712 { &hf_samr_samr_DomGeneralInformation2_lockout_duration,
15713 { "Lockout Duration", "samr.samr_DomGeneralInformation2.lockout_duration", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
15714 { &hf_samr_samr_DomGeneralInformation2_lockout_threshold,
15715 { "Lockout Threshold", "samr.samr_DomGeneralInformation2.lockout_threshold", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
15716 { &hf_samr_samr_DomGeneralInformation2_lockout_window,
15717 { "Lockout Window", "samr.samr_DomGeneralInformation2.lockout_window", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
15718 { &hf_samr_samr_DomGeneralInformation_domain_name,
15719 { "Domain Name", "samr.samr_DomGeneralInformation.domain_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15720 { &hf_samr_samr_DomGeneralInformation_domain_server_state,
15721 { "Domain Server State", "samr.samr_DomGeneralInformation.domain_server_state", FT_UINT32, BASE_DEC, VALS(samr_samr_DomainServerState_vals), 0, NULL, HFILL }},
15722 { &hf_samr_samr_DomGeneralInformation_force_logoff_time,
15723 { "Force Logoff Time", "samr.samr_DomGeneralInformation.force_logoff_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
15724 { &hf_samr_samr_DomGeneralInformation_num_aliases,
15725 { "Num Aliases", "samr.samr_DomGeneralInformation.num_aliases", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15726 { &hf_samr_samr_DomGeneralInformation_num_groups,
15727 { "Num Groups", "samr.samr_DomGeneralInformation.num_groups", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15728 { &hf_samr_samr_DomGeneralInformation_num_users,
15729 { "Num Users", "samr.samr_DomGeneralInformation.num_users", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15730 { &hf_samr_samr_DomGeneralInformation_oem_information,
15731 { "Oem Information", "samr.samr_DomGeneralInformation.oem_information", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15732 { &hf_samr_samr_DomGeneralInformation_primary,
15733 { "Primary", "samr.samr_DomGeneralInformation.primary", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15734 { &hf_samr_samr_DomGeneralInformation_role,
15735 { "Role", "samr.samr_DomGeneralInformation.role", FT_UINT32, BASE_DEC, VALS(samr_samr_Role_vals), 0, NULL, HFILL }},
15736 { &hf_samr_samr_DomGeneralInformation_sequence_num,
15737 { "Sequence Num", "samr.samr_DomGeneralInformation.sequence_num", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
15738 { &hf_samr_samr_DomGeneralInformation_unknown3,
15739 { "Unknown3", "samr.samr_DomGeneralInformation.unknown3", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15740 { &hf_samr_samr_DomInfo12_lockout_duration,
15741 { "Lockout Duration", "samr.samr_DomInfo12.lockout_duration", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
15742 { &hf_samr_samr_DomInfo12_lockout_threshold,
15743 { "Lockout Threshold", "samr.samr_DomInfo12.lockout_threshold", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
15744 { &hf_samr_samr_DomInfo12_lockout_window,
15745 { "Lockout Window", "samr.samr_DomInfo12.lockout_window", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
15746 { &hf_samr_samr_DomInfo13_domain_create_time,
15747 { "Domain Create Time", "samr.samr_DomInfo13.domain_create_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
15748 { &hf_samr_samr_DomInfo13_modified_count_at_last_promotion,
15749 { "Modified Count At Last Promotion", "samr.samr_DomInfo13.modified_count_at_last_promotion", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
15750 { &hf_samr_samr_DomInfo13_sequence_num,
15751 { "Sequence Num", "samr.samr_DomInfo13.sequence_num", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
15752 { &hf_samr_samr_DomInfo1_max_password_age,
15753 { "Max Password Age", "samr.samr_DomInfo1.max_password_age", FT_INT64, BASE_DEC, NULL, 0, NULL, HFILL }},
15754 { &hf_samr_samr_DomInfo1_min_password_age,
15755 { "Min Password Age", "samr.samr_DomInfo1.min_password_age", FT_INT64, BASE_DEC, NULL, 0, NULL, HFILL }},
15756 { &hf_samr_samr_DomInfo1_min_password_length,
15757 { "Min Password Length", "samr.samr_DomInfo1.min_password_length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
15758 { &hf_samr_samr_DomInfo1_password_history_length,
15759 { "Password History Length", "samr.samr_DomInfo1.password_history_length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
15760 { &hf_samr_samr_DomInfo1_password_properties,
15761 { "Password Properties", "samr.samr_DomInfo1.password_properties", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
15762 { &hf_samr_samr_DomInfo3_force_logoff_time,
15763 { "Force Logoff Time", "samr.samr_DomInfo3.force_logoff_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
15764 { &hf_samr_samr_DomInfo5_domain_name,
15765 { "Domain Name", "samr.samr_DomInfo5.domain_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15766 { &hf_samr_samr_DomInfo6_primary,
15767 { "Primary", "samr.samr_DomInfo6.primary", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15768 { &hf_samr_samr_DomInfo7_role,
15769 { "Role", "samr.samr_DomInfo7.role", FT_UINT32, BASE_DEC, VALS(samr_samr_Role_vals), 0, NULL, HFILL }},
15770 { &hf_samr_samr_DomInfo8_domain_create_time,
15771 { "Domain Create Time", "samr.samr_DomInfo8.domain_create_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
15772 { &hf_samr_samr_DomInfo8_sequence_num,
15773 { "Sequence Num", "samr.samr_DomInfo8.sequence_num", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
15774 { &hf_samr_samr_DomInfo9_domain_server_state,
15775 { "Domain Server State", "samr.samr_DomInfo9.domain_server_state", FT_UINT32, BASE_DEC, VALS(samr_samr_DomainServerState_vals), 0, NULL, HFILL }},
15776 { &hf_samr_samr_DomOEMInformation_oem_information,
15777 { "Oem Information", "samr.samr_DomOEMInformation.oem_information", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15778 { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_ALIAS,
15779 { "SAMR DOMAIN ACCESS CREATE ALIAS", "samr.samr_DomainAccessMask.SAMR_DOMAIN_ACCESS_CREATE_ALIAS", FT_BOOLEAN, 32, TFS(&samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_ALIAS_tfs), ( 0x00000040 ), NULL, HFILL }},
15780 { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_GROUP,
15781 { "SAMR DOMAIN ACCESS CREATE GROUP", "samr.samr_DomainAccessMask.SAMR_DOMAIN_ACCESS_CREATE_GROUP", FT_BOOLEAN, 32, TFS(&samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_GROUP_tfs), ( 0x00000020 ), NULL, HFILL }},
15782 { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_USER,
15783 { "SAMR DOMAIN ACCESS CREATE USER", "samr.samr_DomainAccessMask.SAMR_DOMAIN_ACCESS_CREATE_USER", FT_BOOLEAN, 32, TFS(&samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_USER_tfs), ( 0x00000010 ), NULL, HFILL }},
15784 { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_ENUM_ACCOUNTS,
15785 { "SAMR DOMAIN ACCESS ENUM ACCOUNTS", "samr.samr_DomainAccessMask.SAMR_DOMAIN_ACCESS_ENUM_ACCOUNTS", FT_BOOLEAN, 32, TFS(&samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_ENUM_ACCOUNTS_tfs), ( 0x00000100 ), NULL, HFILL }},
15786 { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_ALIAS,
15787 { "SAMR DOMAIN ACCESS LOOKUP ALIAS", "samr.samr_DomainAccessMask.SAMR_DOMAIN_ACCESS_LOOKUP_ALIAS", FT_BOOLEAN, 32, TFS(&samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_ALIAS_tfs), ( 0x00000080 ), NULL, HFILL }},
15788 { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_INFO_1,
15789 { "SAMR DOMAIN ACCESS LOOKUP INFO 1", "samr.samr_DomainAccessMask.SAMR_DOMAIN_ACCESS_LOOKUP_INFO_1", FT_BOOLEAN, 32, TFS(&samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_INFO_1_tfs), ( 0x00000001 ), NULL, HFILL }},
15790 { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_INFO_2,
15791 { "SAMR DOMAIN ACCESS LOOKUP INFO 2", "samr.samr_DomainAccessMask.SAMR_DOMAIN_ACCESS_LOOKUP_INFO_2", FT_BOOLEAN, 32, TFS(&samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_INFO_2_tfs), ( 0x00000004 ), NULL, HFILL }},
15792 { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT,
15793 { "SAMR DOMAIN ACCESS OPEN ACCOUNT", "samr.samr_DomainAccessMask.SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT", FT_BOOLEAN, 32, TFS(&samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT_tfs), ( 0x00000200 ), NULL, HFILL }},
15794 { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_1,
15795 { "SAMR DOMAIN ACCESS SET INFO 1", "samr.samr_DomainAccessMask.SAMR_DOMAIN_ACCESS_SET_INFO_1", FT_BOOLEAN, 32, TFS(&samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_1_tfs), ( 0x00000002 ), NULL, HFILL }},
15796 { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_2,
15797 { "SAMR DOMAIN ACCESS SET INFO 2", "samr.samr_DomainAccessMask.SAMR_DOMAIN_ACCESS_SET_INFO_2", FT_BOOLEAN, 32, TFS(&samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_2_tfs), ( 0x00000008 ), NULL, HFILL }},
15798 { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_3,
15799 { "SAMR DOMAIN ACCESS SET INFO 3", "samr.samr_DomainAccessMask.SAMR_DOMAIN_ACCESS_SET_INFO_3", FT_BOOLEAN, 32, TFS(&samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_3_tfs), ( 0x00000400 ), NULL, HFILL }},
15800 { &hf_samr_samr_DomainInfo_general,
15801 { "General", "samr.samr_DomainInfo.general", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15802 { &hf_samr_samr_DomainInfo_general2,
15803 { "General2", "samr.samr_DomainInfo.general2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15804 { &hf_samr_samr_DomainInfo_info1,
15805 { "Info1", "samr.samr_DomainInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15806 { &hf_samr_samr_DomainInfo_info12,
15807 { "Info12", "samr.samr_DomainInfo.info12", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15808 { &hf_samr_samr_DomainInfo_info13,
15809 { "Info13", "samr.samr_DomainInfo.info13", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15810 { &hf_samr_samr_DomainInfo_info3,
15811 { "Info3", "samr.samr_DomainInfo.info3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15812 { &hf_samr_samr_DomainInfo_info5,
15813 { "Info5", "samr.samr_DomainInfo.info5", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15814 { &hf_samr_samr_DomainInfo_info6,
15815 { "Info6", "samr.samr_DomainInfo.info6", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15816 { &hf_samr_samr_DomainInfo_info7,
15817 { "Info7", "samr.samr_DomainInfo.info7", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15818 { &hf_samr_samr_DomainInfo_info8,
15819 { "Info8", "samr.samr_DomainInfo.info8", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15820 { &hf_samr_samr_DomainInfo_info9,
15821 { "Info9", "samr.samr_DomainInfo.info9", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15822 { &hf_samr_samr_DomainInfo_oem,
15823 { "Oem", "samr.samr_DomainInfo.oem", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15824 { &hf_samr_samr_EncryptedPasswordAES_PBKDF2Iterations,
15825 { "PBKDF2Iterations", "samr.samr_EncryptedPasswordAES.PBKDF2Iterations", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
15826 { &hf_samr_samr_EncryptedPasswordAES_auth_data,
15827 { "Auth Data", "samr.samr_EncryptedPasswordAES.auth_data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
15828 { &hf_samr_samr_EncryptedPasswordAES_cipher,
15829 { "Cipher", "samr.samr_EncryptedPasswordAES.cipher", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
15830 { &hf_samr_samr_EncryptedPasswordAES_cipher_len,
15831 { "Cipher Len", "samr.samr_EncryptedPasswordAES.cipher_len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15832 { &hf_samr_samr_EncryptedPasswordAES_salt,
15833 { "Salt", "samr.samr_EncryptedPasswordAES.salt", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
15834 { &hf_samr_samr_EnumDomainAliases_max_size,
15835 { "Max Size", "samr.samr_EnumDomainAliases.max_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15836 { &hf_samr_samr_EnumDomainAliases_num_entries,
15837 { "Num Entries", "samr.samr_EnumDomainAliases.num_entries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15838 { &hf_samr_samr_EnumDomainAliases_resume_handle,
15839 { "Resume Handle", "samr.samr_EnumDomainAliases.resume_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15840 { &hf_samr_samr_EnumDomainAliases_sam,
15841 { "Sam", "samr.samr_EnumDomainAliases.sam", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15842 { &hf_samr_samr_EnumDomainGroups_max_size,
15843 { "Max Size", "samr.samr_EnumDomainGroups.max_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15844 { &hf_samr_samr_EnumDomainGroups_num_entries,
15845 { "Num Entries", "samr.samr_EnumDomainGroups.num_entries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15846 { &hf_samr_samr_EnumDomainGroups_resume_handle,
15847 { "Resume Handle", "samr.samr_EnumDomainGroups.resume_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15848 { &hf_samr_samr_EnumDomainGroups_sam,
15849 { "Sam", "samr.samr_EnumDomainGroups.sam", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15850 { &hf_samr_samr_EnumDomainUsers_acct_flags,
15851 { "Acct Flags", "samr.samr_EnumDomainUsers.acct_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
15852 { &hf_samr_samr_EnumDomainUsers_max_size,
15853 { "Max Size", "samr.samr_EnumDomainUsers.max_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15854 { &hf_samr_samr_EnumDomainUsers_num_entries,
15855 { "Num Entries", "samr.samr_EnumDomainUsers.num_entries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15856 { &hf_samr_samr_EnumDomainUsers_resume_handle,
15857 { "Resume Handle", "samr.samr_EnumDomainUsers.resume_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15858 { &hf_samr_samr_EnumDomainUsers_sam,
15859 { "Sam", "samr.samr_EnumDomainUsers.sam", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15860 { &hf_samr_samr_EnumDomains_buf_size,
15861 { "Buf Size", "samr.samr_EnumDomains.buf_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15862 { &hf_samr_samr_EnumDomains_connect_handle,
15863 { "Connect Handle", "samr.samr_EnumDomains.connect_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15864 { &hf_samr_samr_EnumDomains_num_entries,
15865 { "Num Entries", "samr.samr_EnumDomains.num_entries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15866 { &hf_samr_samr_EnumDomains_resume_handle,
15867 { "Resume Handle", "samr.samr_EnumDomains.resume_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15868 { &hf_samr_samr_EnumDomains_sam,
15869 { "Sam", "samr.samr_EnumDomains.sam", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15870 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_ACCOUNT_NAME,
15871 { "SAMR FIELD ACCOUNT NAME", "samr.samr_FieldsPresent.SAMR_FIELD_ACCOUNT_NAME", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_ACCOUNT_NAME_tfs), ( 0x00000001 ), NULL, HFILL }},
15872 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_ACCT_EXPIRY,
15873 { "SAMR FIELD ACCT EXPIRY", "samr.samr_FieldsPresent.SAMR_FIELD_ACCT_EXPIRY", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_ACCT_EXPIRY_tfs), ( 0x00080000 ), NULL, HFILL }},
15874 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_ACCT_FLAGS,
15875 { "SAMR FIELD ACCT FLAGS", "samr.samr_FieldsPresent.SAMR_FIELD_ACCT_FLAGS", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_ACCT_FLAGS_tfs), ( 0x00100000 ), NULL, HFILL }},
15876 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_ALLOW_PWD_CHANGE,
15877 { "SAMR FIELD ALLOW PWD CHANGE", "samr.samr_FieldsPresent.SAMR_FIELD_ALLOW_PWD_CHANGE", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_ALLOW_PWD_CHANGE_tfs), ( 0x00010000 ), NULL, HFILL }},
15878 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_BAD_PWD_COUNT,
15879 { "SAMR FIELD BAD PWD COUNT", "samr.samr_FieldsPresent.SAMR_FIELD_BAD_PWD_COUNT", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_BAD_PWD_COUNT_tfs), ( 0x00004000 ), NULL, HFILL }},
15880 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_CODE_PAGE,
15881 { "SAMR FIELD CODE PAGE", "samr.samr_FieldsPresent.SAMR_FIELD_CODE_PAGE", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_CODE_PAGE_tfs), ( 0x00800000 ), NULL, HFILL }},
15882 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_COMMENT,
15883 { "SAMR FIELD COMMENT", "samr.samr_FieldsPresent.SAMR_FIELD_COMMENT", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_COMMENT_tfs), ( 0x00000020 ), NULL, HFILL }},
15884 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_COUNTRY_CODE,
15885 { "SAMR FIELD COUNTRY CODE", "samr.samr_FieldsPresent.SAMR_FIELD_COUNTRY_CODE", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_COUNTRY_CODE_tfs), ( 0x00400000 ), NULL, HFILL }},
15886 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_DESCRIPTION,
15887 { "SAMR FIELD DESCRIPTION", "samr.samr_FieldsPresent.SAMR_FIELD_DESCRIPTION", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_DESCRIPTION_tfs), ( 0x00000010 ), NULL, HFILL }},
15888 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_EXPIRED_FLAG,
15889 { "SAMR FIELD EXPIRED FLAG", "samr.samr_FieldsPresent.SAMR_FIELD_EXPIRED_FLAG", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_EXPIRED_FLAG_tfs), ( 0x08000000 ), NULL, HFILL }},
15890 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_FORCE_PWD_CHANGE,
15891 { "SAMR FIELD FORCE PWD CHANGE", "samr.samr_FieldsPresent.SAMR_FIELD_FORCE_PWD_CHANGE", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_FORCE_PWD_CHANGE_tfs), ( 0x00020000 ), NULL, HFILL }},
15892 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_FULL_NAME,
15893 { "SAMR FIELD FULL NAME", "samr.samr_FieldsPresent.SAMR_FIELD_FULL_NAME", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_FULL_NAME_tfs), ( 0x00000002 ), NULL, HFILL }},
15894 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_HOME_DIRECTORY,
15895 { "SAMR FIELD HOME DIRECTORY", "samr.samr_FieldsPresent.SAMR_FIELD_HOME_DIRECTORY", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_HOME_DIRECTORY_tfs), ( 0x00000040 ), NULL, HFILL }},
15896 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_HOME_DRIVE,
15897 { "SAMR FIELD HOME DRIVE", "samr.samr_FieldsPresent.SAMR_FIELD_HOME_DRIVE", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_HOME_DRIVE_tfs), ( 0x00000080 ), NULL, HFILL }},
15898 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_LAST_LOGOFF,
15899 { "SAMR FIELD LAST LOGOFF", "samr.samr_FieldsPresent.SAMR_FIELD_LAST_LOGOFF", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_LAST_LOGOFF_tfs), ( 0x00001000 ), NULL, HFILL }},
15900 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_LAST_LOGON,
15901 { "SAMR FIELD LAST LOGON", "samr.samr_FieldsPresent.SAMR_FIELD_LAST_LOGON", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_LAST_LOGON_tfs), ( 0x00000800 ), NULL, HFILL }},
15902 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_LAST_PWD_CHANGE,
15903 { "SAMR FIELD LAST PWD CHANGE", "samr.samr_FieldsPresent.SAMR_FIELD_LAST_PWD_CHANGE", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_LAST_PWD_CHANGE_tfs), ( 0x00040000 ), NULL, HFILL }},
15904 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_LM_PASSWORD_PRESENT,
15905 { "SAMR FIELD LM PASSWORD PRESENT", "samr.samr_FieldsPresent.SAMR_FIELD_LM_PASSWORD_PRESENT", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_LM_PASSWORD_PRESENT_tfs), ( 0x02000000 ), NULL, HFILL }},
15906 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_LOGON_HOURS,
15907 { "SAMR FIELD LOGON HOURS", "samr.samr_FieldsPresent.SAMR_FIELD_LOGON_HOURS", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_LOGON_HOURS_tfs), ( 0x00002000 ), NULL, HFILL }},
15908 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_LOGON_SCRIPT,
15909 { "SAMR FIELD LOGON SCRIPT", "samr.samr_FieldsPresent.SAMR_FIELD_LOGON_SCRIPT", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_LOGON_SCRIPT_tfs), ( 0x00000100 ), NULL, HFILL }},
15910 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_NT_PASSWORD_PRESENT,
15911 { "SAMR FIELD NT PASSWORD PRESENT", "samr.samr_FieldsPresent.SAMR_FIELD_NT_PASSWORD_PRESENT", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_NT_PASSWORD_PRESENT_tfs), ( 0x01000000 ), NULL, HFILL }},
15912 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_NUM_LOGONS,
15913 { "SAMR FIELD NUM LOGONS", "samr.samr_FieldsPresent.SAMR_FIELD_NUM_LOGONS", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_NUM_LOGONS_tfs), ( 0x00008000 ), NULL, HFILL }},
15914 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_OWF_PWD,
15915 { "SAMR FIELD OWF PWD", "samr.samr_FieldsPresent.SAMR_FIELD_OWF_PWD", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_OWF_PWD_tfs), ( 0x20000000 ), NULL, HFILL }},
15916 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_PARAMETERS,
15917 { "SAMR FIELD PARAMETERS", "samr.samr_FieldsPresent.SAMR_FIELD_PARAMETERS", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_PARAMETERS_tfs), ( 0x00200000 ), NULL, HFILL }},
15918 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_PRIMARY_GID,
15919 { "SAMR FIELD PRIMARY GID", "samr.samr_FieldsPresent.SAMR_FIELD_PRIMARY_GID", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_PRIMARY_GID_tfs), ( 0x00000008 ), NULL, HFILL }},
15920 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_PRIVATE_DATA,
15921 { "SAMR FIELD PRIVATE DATA", "samr.samr_FieldsPresent.SAMR_FIELD_PRIVATE_DATA", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_PRIVATE_DATA_tfs), ( 0x04000000 ), NULL, HFILL }},
15922 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_PROFILE_PATH,
15923 { "SAMR FIELD PROFILE PATH", "samr.samr_FieldsPresent.SAMR_FIELD_PROFILE_PATH", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_PROFILE_PATH_tfs), ( 0x00000200 ), NULL, HFILL }},
15924 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_RID,
15925 { "SAMR FIELD RID", "samr.samr_FieldsPresent.SAMR_FIELD_RID", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_RID_tfs), ( 0x00000004 ), NULL, HFILL }},
15926 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_SEC_DESC,
15927 { "SAMR FIELD SEC DESC", "samr.samr_FieldsPresent.SAMR_FIELD_SEC_DESC", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_SEC_DESC_tfs), ( 0x10000000 ), NULL, HFILL }},
15928 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_WORKSTATIONS,
15929 { "SAMR FIELD WORKSTATIONS", "samr.samr_FieldsPresent.SAMR_FIELD_WORKSTATIONS", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_WORKSTATIONS_tfs), ( 0x00000400 ), NULL, HFILL }},
15930 { &hf_samr_samr_GetAliasMembership_rids,
15931 { "Rids", "samr.samr_GetAliasMembership.rids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15932 { &hf_samr_samr_GetAliasMembership_sids,
15933 { "Sids", "samr.samr_GetAliasMembership.sids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15934 { &hf_samr_samr_GetBootKeyInformation_domain_handle,
15935 { "Domain Handle", "samr.samr_GetBootKeyInformation.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15936 { &hf_samr_samr_GetBootKeyInformation_unknown,
15937 { "Unknown", "samr.samr_GetBootKeyInformation.unknown", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15938 { &hf_samr_samr_GetDisplayEnumerationIndex2_idx,
15939 { "Idx", "samr.samr_GetDisplayEnumerationIndex2.idx", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15940 { &hf_samr_samr_GetDisplayEnumerationIndex2_level,
15941 { "Level", "samr.samr_GetDisplayEnumerationIndex2.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_DomainDisplayInformation_vals), 0, NULL, HFILL }},
15942 { &hf_samr_samr_GetDisplayEnumerationIndex2_name,
15943 { "Name", "samr.samr_GetDisplayEnumerationIndex2.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15944 { &hf_samr_samr_GetDisplayEnumerationIndex_idx,
15945 { "Idx", "samr.samr_GetDisplayEnumerationIndex.idx", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15946 { &hf_samr_samr_GetDisplayEnumerationIndex_level,
15947 { "Level", "samr.samr_GetDisplayEnumerationIndex.level", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
15948 { &hf_samr_samr_GetDisplayEnumerationIndex_name,
15949 { "Name", "samr.samr_GetDisplayEnumerationIndex.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15950 { &hf_samr_samr_GetDomPwInfo_domain_name,
15951 { "Domain Name", "samr.samr_GetDomPwInfo.domain_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15952 { &hf_samr_samr_GetDomPwInfo_info,
15953 { "Info", "samr.samr_GetDomPwInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15954 { &hf_samr_samr_GetGroupsForUser_rids,
15955 { "Rids", "samr.samr_GetGroupsForUser.rids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15956 { &hf_samr_samr_GetMembersInAlias_sids,
15957 { "Sids", "samr.samr_GetMembersInAlias.sids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15958 { &hf_samr_samr_GetUserPwInfo_info,
15959 { "Info", "samr.samr_GetUserPwInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15960 { &hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_ADD_MEMBER,
15961 { "SAMR GROUP ACCESS ADD MEMBER", "samr.samr_GroupAccessMask.SAMR_GROUP_ACCESS_ADD_MEMBER", FT_BOOLEAN, 32, TFS(&samr_GroupAccessMask_SAMR_GROUP_ACCESS_ADD_MEMBER_tfs), ( 0x00000004 ), NULL, HFILL }},
15962 { &hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_GET_MEMBERS,
15963 { "SAMR GROUP ACCESS GET MEMBERS", "samr.samr_GroupAccessMask.SAMR_GROUP_ACCESS_GET_MEMBERS", FT_BOOLEAN, 32, TFS(&samr_GroupAccessMask_SAMR_GROUP_ACCESS_GET_MEMBERS_tfs), ( 0x00000010 ), NULL, HFILL }},
15964 { &hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_LOOKUP_INFO,
15965 { "SAMR GROUP ACCESS LOOKUP INFO", "samr.samr_GroupAccessMask.SAMR_GROUP_ACCESS_LOOKUP_INFO", FT_BOOLEAN, 32, TFS(&samr_GroupAccessMask_SAMR_GROUP_ACCESS_LOOKUP_INFO_tfs), ( 0x00000001 ), NULL, HFILL }},
15966 { &hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_REMOVE_MEMBER,
15967 { "SAMR GROUP ACCESS REMOVE MEMBER", "samr.samr_GroupAccessMask.SAMR_GROUP_ACCESS_REMOVE_MEMBER", FT_BOOLEAN, 32, TFS(&samr_GroupAccessMask_SAMR_GROUP_ACCESS_REMOVE_MEMBER_tfs), ( 0x00000008 ), NULL, HFILL }},
15968 { &hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_SET_INFO,
15969 { "SAMR GROUP ACCESS SET INFO", "samr.samr_GroupAccessMask.SAMR_GROUP_ACCESS_SET_INFO", FT_BOOLEAN, 32, TFS(&samr_GroupAccessMask_SAMR_GROUP_ACCESS_SET_INFO_tfs), ( 0x00000002 ), NULL, HFILL }},
15970 { &hf_samr_samr_GroupAttrs_SE_GROUP_ENABLED,
15971 { "SE GROUP ENABLED", "samr.samr_GroupAttrs.SE_GROUP_ENABLED", FT_BOOLEAN, 32, TFS(&samr_GroupAttrs_SE_GROUP_ENABLED_tfs), ( 0x00000004 ), NULL, HFILL }},
15972 { &hf_samr_samr_GroupAttrs_SE_GROUP_ENABLED_BY_DEFAULT,
15973 { "SE GROUP ENABLED BY DEFAULT", "samr.samr_GroupAttrs.SE_GROUP_ENABLED_BY_DEFAULT", FT_BOOLEAN, 32, TFS(&samr_GroupAttrs_SE_GROUP_ENABLED_BY_DEFAULT_tfs), ( 0x00000002 ), NULL, HFILL }},
15974 { &hf_samr_samr_GroupAttrs_SE_GROUP_LOGON_ID,
15975 { "SE GROUP LOGON ID", "samr.samr_GroupAttrs.SE_GROUP_LOGON_ID", FT_BOOLEAN, 32, TFS(&samr_GroupAttrs_SE_GROUP_LOGON_ID_tfs), ( 0xC0000000 ), NULL, HFILL }},
15976 { &hf_samr_samr_GroupAttrs_SE_GROUP_MANDATORY,
15977 { "SE GROUP MANDATORY", "samr.samr_GroupAttrs.SE_GROUP_MANDATORY", FT_BOOLEAN, 32, TFS(&samr_GroupAttrs_SE_GROUP_MANDATORY_tfs), ( 0x00000001 ), NULL, HFILL }},
15978 { &hf_samr_samr_GroupAttrs_SE_GROUP_OWNER,
15979 { "SE GROUP OWNER", "samr.samr_GroupAttrs.SE_GROUP_OWNER", FT_BOOLEAN, 32, TFS(&samr_GroupAttrs_SE_GROUP_OWNER_tfs), ( 0x00000008 ), NULL, HFILL }},
15980 { &hf_samr_samr_GroupAttrs_SE_GROUP_RESOURCE,
15981 { "SE GROUP RESOURCE", "samr.samr_GroupAttrs.SE_GROUP_RESOURCE", FT_BOOLEAN, 32, TFS(&samr_GroupAttrs_SE_GROUP_RESOURCE_tfs), ( 0x20000000 ), NULL, HFILL }},
15982 { &hf_samr_samr_GroupAttrs_SE_GROUP_USE_FOR_DENY_ONLY,
15983 { "SE GROUP USE FOR DENY ONLY", "samr.samr_GroupAttrs.SE_GROUP_USE_FOR_DENY_ONLY", FT_BOOLEAN, 32, TFS(&samr_GroupAttrs_SE_GROUP_USE_FOR_DENY_ONLY_tfs), ( 0x00000010 ), NULL, HFILL }},
15984 { &hf_samr_samr_GroupInfoAll_attributes,
15985 { "Attributes", "samr.samr_GroupInfoAll.attributes", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
15986 { &hf_samr_samr_GroupInfoAll_description,
15987 { "Description", "samr.samr_GroupInfoAll.description", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15988 { &hf_samr_samr_GroupInfoAll_name,
15989 { "Name", "samr.samr_GroupInfoAll.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15990 { &hf_samr_samr_GroupInfoAll_num_members,
15991 { "Num Members", "samr.samr_GroupInfoAll.num_members", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15992 { &hf_samr_samr_GroupInfoAttributes_attributes,
15993 { "Attributes", "samr.samr_GroupInfoAttributes.attributes", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
15994 { &hf_samr_samr_GroupInfoDescription_description,
15995 { "Description", "samr.samr_GroupInfoDescription.description", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15996 { &hf_samr_samr_GroupInfo_all,
15997 { "All", "samr.samr_GroupInfo.all", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15998 { &hf_samr_samr_GroupInfo_all2,
15999 { "All2", "samr.samr_GroupInfo.all2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16000 { &hf_samr_samr_GroupInfo_attributes,
16001 { "Attributes", "samr.samr_GroupInfo.attributes", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16002 { &hf_samr_samr_GroupInfo_description,
16003 { "Description", "samr.samr_GroupInfo.description", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16004 { &hf_samr_samr_GroupInfo_name,
16005 { "Name", "samr.samr_GroupInfo.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16006 { &hf_samr_samr_Ids_count,
16007 { "Count", "samr.samr_Ids.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16008 { &hf_samr_samr_LogonHours_bits,
16009 { "Bits", "samr.samr_LogonHours.bits", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16010 { &hf_samr_samr_LogonHours_units_per_week,
16011 { "Units Per Week", "samr.samr_LogonHours.units_per_week", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16012 { &hf_samr_samr_LookupDomain_domain_name,
16013 { "Domain Name", "samr.samr_LookupDomain.domain_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16014 { &hf_samr_samr_LookupDomain_sid,
16015 { "Sid", "samr.samr_LookupDomain.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16016 { &hf_samr_samr_LookupNames_names,
16017 { "Names", "samr.samr_LookupNames.names", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16018 { &hf_samr_samr_LookupNames_num_names,
16019 { "Num Names", "samr.samr_LookupNames.num_names", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16020 { &hf_samr_samr_LookupNames_rids,
16021 { "Rids", "samr.samr_LookupNames.rids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16022 { &hf_samr_samr_LookupNames_types,
16023 { "Types", "samr.samr_LookupNames.types", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16024 { &hf_samr_samr_LookupRids_names,
16025 { "Names", "samr.samr_LookupRids.names", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16026 { &hf_samr_samr_LookupRids_num_rids,
16027 { "Num Rids", "samr.samr_LookupRids.num_rids", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16028 { &hf_samr_samr_LookupRids_types,
16029 { "Types", "samr.samr_LookupRids.types", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16030 { &hf_samr_samr_OemChangePasswordUser2_account,
16031 { "Account", "samr.samr_OemChangePasswordUser2.account", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16032 { &hf_samr_samr_OemChangePasswordUser2_hash,
16033 { "Hash", "samr.samr_OemChangePasswordUser2.hash", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16034 { &hf_samr_samr_OemChangePasswordUser2_password,
16035 { "Password", "samr.samr_OemChangePasswordUser2.password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16036 { &hf_samr_samr_OemChangePasswordUser2_server,
16037 { "Server", "samr.samr_OemChangePasswordUser2.server", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16038 { &hf_samr_samr_OpenDomain_sid,
16039 { "Sid", "samr.samr_OpenDomain.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16040 { &hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_COMPLEX,
16041 { "DOMAIN PASSWORD COMPLEX", "samr.samr_PasswordProperties.DOMAIN_PASSWORD_COMPLEX", FT_BOOLEAN, 32, TFS(&samr_PasswordProperties_DOMAIN_PASSWORD_COMPLEX_tfs), ( 0x00000001 ), NULL, HFILL }},
16042 { &hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_LOCKOUT_ADMINS,
16043 { "DOMAIN PASSWORD LOCKOUT ADMINS", "samr.samr_PasswordProperties.DOMAIN_PASSWORD_LOCKOUT_ADMINS", FT_BOOLEAN, 32, TFS(&samr_PasswordProperties_DOMAIN_PASSWORD_LOCKOUT_ADMINS_tfs), ( 0x00000008 ), NULL, HFILL }},
16044 { &hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_NO_ANON_CHANGE,
16045 { "DOMAIN PASSWORD NO ANON CHANGE", "samr.samr_PasswordProperties.DOMAIN_PASSWORD_NO_ANON_CHANGE", FT_BOOLEAN, 32, TFS(&samr_PasswordProperties_DOMAIN_PASSWORD_NO_ANON_CHANGE_tfs), ( 0x00000002 ), NULL, HFILL }},
16046 { &hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_NO_CLEAR_CHANGE,
16047 { "DOMAIN PASSWORD NO CLEAR CHANGE", "samr.samr_PasswordProperties.DOMAIN_PASSWORD_NO_CLEAR_CHANGE", FT_BOOLEAN, 32, TFS(&samr_PasswordProperties_DOMAIN_PASSWORD_NO_CLEAR_CHANGE_tfs), ( 0x00000004 ), NULL, HFILL }},
16048 { &hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_STORE_CLEARTEXT,
16049 { "DOMAIN PASSWORD STORE CLEARTEXT", "samr.samr_PasswordProperties.DOMAIN_PASSWORD_STORE_CLEARTEXT", FT_BOOLEAN, 32, TFS(&samr_PasswordProperties_DOMAIN_PASSWORD_STORE_CLEARTEXT_tfs), ( 0x00000010 ), NULL, HFILL }},
16050 { &hf_samr_samr_PasswordProperties_DOMAIN_REFUSE_PASSWORD_CHANGE,
16051 { "DOMAIN REFUSE PASSWORD CHANGE", "samr.samr_PasswordProperties.DOMAIN_REFUSE_PASSWORD_CHANGE", FT_BOOLEAN, 32, TFS(&samr_PasswordProperties_DOMAIN_REFUSE_PASSWORD_CHANGE_tfs), ( 0x00000020 ), NULL, HFILL }},
16052 { &hf_samr_samr_Password_hash,
16053 { "Hash", "samr.samr_Password.hash", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16054 { &hf_samr_samr_PwInfo_min_password_length,
16055 { "Min Password Length", "samr.samr_PwInfo.min_password_length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16056 { &hf_samr_samr_PwInfo_password_properties,
16057 { "Password Properties", "samr.samr_PwInfo.password_properties", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16058 { &hf_samr_samr_QueryAliasInfo_info,
16059 { "Info", "samr.samr_QueryAliasInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16060 { &hf_samr_samr_QueryAliasInfo_level,
16061 { "Level", "samr.samr_QueryAliasInfo.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_AliasInfoEnum_vals), 0, NULL, HFILL }},
16062 { &hf_samr_samr_QueryDisplayInfo2_buf_size,
16063 { "Buf Size", "samr.samr_QueryDisplayInfo2.buf_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16064 { &hf_samr_samr_QueryDisplayInfo2_info,
16065 { "Info", "samr.samr_QueryDisplayInfo2.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16066 { &hf_samr_samr_QueryDisplayInfo2_level,
16067 { "Level", "samr.samr_QueryDisplayInfo2.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_DomainDisplayInformation_vals), 0, NULL, HFILL }},
16068 { &hf_samr_samr_QueryDisplayInfo2_max_entries,
16069 { "Max Entries", "samr.samr_QueryDisplayInfo2.max_entries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16070 { &hf_samr_samr_QueryDisplayInfo2_returned_size,
16071 { "Returned Size", "samr.samr_QueryDisplayInfo2.returned_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16072 { &hf_samr_samr_QueryDisplayInfo2_start_idx,
16073 { "Start Idx", "samr.samr_QueryDisplayInfo2.start_idx", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16074 { &hf_samr_samr_QueryDisplayInfo2_total_size,
16075 { "Total Size", "samr.samr_QueryDisplayInfo2.total_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16076 { &hf_samr_samr_QueryDisplayInfo3_buf_size,
16077 { "Buf Size", "samr.samr_QueryDisplayInfo3.buf_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16078 { &hf_samr_samr_QueryDisplayInfo3_info,
16079 { "Info", "samr.samr_QueryDisplayInfo3.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16080 { &hf_samr_samr_QueryDisplayInfo3_level,
16081 { "Level", "samr.samr_QueryDisplayInfo3.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_DomainDisplayInformation_vals), 0, NULL, HFILL }},
16082 { &hf_samr_samr_QueryDisplayInfo3_max_entries,
16083 { "Max Entries", "samr.samr_QueryDisplayInfo3.max_entries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16084 { &hf_samr_samr_QueryDisplayInfo3_returned_size,
16085 { "Returned Size", "samr.samr_QueryDisplayInfo3.returned_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16086 { &hf_samr_samr_QueryDisplayInfo3_start_idx,
16087 { "Start Idx", "samr.samr_QueryDisplayInfo3.start_idx", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16088 { &hf_samr_samr_QueryDisplayInfo3_total_size,
16089 { "Total Size", "samr.samr_QueryDisplayInfo3.total_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16090 { &hf_samr_samr_QueryDisplayInfo_buf_size,
16091 { "Buf Size", "samr.samr_QueryDisplayInfo.buf_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16092 { &hf_samr_samr_QueryDisplayInfo_info,
16093 { "Info", "samr.samr_QueryDisplayInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16094 { &hf_samr_samr_QueryDisplayInfo_level,
16095 { "Level", "samr.samr_QueryDisplayInfo.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_DomainDisplayInformation_vals), 0, NULL, HFILL }},
16096 { &hf_samr_samr_QueryDisplayInfo_max_entries,
16097 { "Max Entries", "samr.samr_QueryDisplayInfo.max_entries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16098 { &hf_samr_samr_QueryDisplayInfo_returned_size,
16099 { "Returned Size", "samr.samr_QueryDisplayInfo.returned_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16100 { &hf_samr_samr_QueryDisplayInfo_start_idx,
16101 { "Start Idx", "samr.samr_QueryDisplayInfo.start_idx", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16102 { &hf_samr_samr_QueryDisplayInfo_total_size,
16103 { "Total Size", "samr.samr_QueryDisplayInfo.total_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16104 { &hf_samr_samr_QueryDomainInfo2_info,
16105 { "Info", "samr.samr_QueryDomainInfo2.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16106 { &hf_samr_samr_QueryDomainInfo2_level,
16107 { "Level", "samr.samr_QueryDomainInfo2.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_DomainInfoClass_vals), 0, NULL, HFILL }},
16108 { &hf_samr_samr_QueryDomainInfo_info,
16109 { "Info", "samr.samr_QueryDomainInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16110 { &hf_samr_samr_QueryDomainInfo_level,
16111 { "Level", "samr.samr_QueryDomainInfo.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_DomainInfoClass_vals), 0, NULL, HFILL }},
16112 { &hf_samr_samr_QueryGroupInfo_info,
16113 { "Info", "samr.samr_QueryGroupInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16114 { &hf_samr_samr_QueryGroupInfo_level,
16115 { "Level", "samr.samr_QueryGroupInfo.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_GroupInfoEnum_vals), 0, NULL, HFILL }},
16116 { &hf_samr_samr_QueryGroupMember_rids,
16117 { "Rids", "samr.samr_QueryGroupMember.rids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16118 { &hf_samr_samr_QuerySecurity_sdbuf,
16119 { "Sdbuf", "samr.samr_QuerySecurity.sdbuf", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16120 { &hf_samr_samr_QuerySecurity_sec_info,
16121 { "Sec Info", "samr.samr_QuerySecurity.sec_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16122 { &hf_samr_samr_QueryUserInfo2_info,
16123 { "Info", "samr.samr_QueryUserInfo2.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16124 { &hf_samr_samr_QueryUserInfo2_level,
16125 { "Level", "samr.samr_QueryUserInfo2.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_UserInfoLevel_vals), 0, NULL, HFILL }},
16126 { &hf_samr_samr_QueryUserInfo_info,
16127 { "Info", "samr.samr_QueryUserInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16128 { &hf_samr_samr_QueryUserInfo_level,
16129 { "Level", "samr.samr_QueryUserInfo.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_UserInfoLevel_vals), 0, NULL, HFILL }},
16130 { &hf_samr_samr_RemoveMemberFromForeignDomain_sid,
16131 { "Sid", "samr.samr_RemoveMemberFromForeignDomain.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16132 { &hf_samr_samr_RemoveMultipleMembersFromAlias_sids,
16133 { "Sids", "samr.samr_RemoveMultipleMembersFromAlias.sids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16134 { &hf_samr_samr_RidToSid_sid,
16135 { "Sid", "samr.samr_RidToSid.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16136 { &hf_samr_samr_RidTypeArray_count,
16137 { "Count", "samr.samr_RidTypeArray.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16138 { &hf_samr_samr_RidTypeArray_types,
16139 { "Types", "samr.samr_RidTypeArray.types", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16140 { &hf_samr_samr_RidWithAttributeArray_count,
16141 { "Count", "samr.samr_RidWithAttributeArray.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16142 { &hf_samr_samr_RidWithAttributeArray_rids,
16143 { "Rids", "samr.samr_RidWithAttributeArray.rids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16144 { &hf_samr_samr_RidWithAttribute_attributes,
16145 { "Attributes", "samr.samr_RidWithAttribute.attributes", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16146 { &hf_samr_samr_SamArray_count,
16147 { "Count", "samr.samr_SamArray.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16148 { &hf_samr_samr_SamArray_entries,
16149 { "Entries", "samr.samr_SamArray.entries", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16150 { &hf_samr_samr_SamEntry_idx,
16151 { "Idx", "samr.samr_SamEntry.idx", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16152 { &hf_samr_samr_SamEntry_name,
16153 { "Name", "samr.samr_SamEntry.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16154 { &hf_samr_samr_SetAliasInfo_info,
16155 { "Info", "samr.samr_SetAliasInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16156 { &hf_samr_samr_SetAliasInfo_level,
16157 { "Level", "samr.samr_SetAliasInfo.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_AliasInfoEnum_vals), 0, NULL, HFILL }},
16158 { &hf_samr_samr_SetBootKeyInformation_unknown1,
16159 { "Unknown1", "samr.samr_SetBootKeyInformation.unknown1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16160 { &hf_samr_samr_SetBootKeyInformation_unknown2,
16161 { "Unknown2", "samr.samr_SetBootKeyInformation.unknown2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16162 { &hf_samr_samr_SetBootKeyInformation_unknown3,
16163 { "Unknown3", "samr.samr_SetBootKeyInformation.unknown3", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16164 { &hf_samr_samr_SetDomainInfo_info,
16165 { "Info", "samr.samr_SetDomainInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16166 { &hf_samr_samr_SetDomainInfo_level,
16167 { "Level", "samr.samr_SetDomainInfo.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_DomainInfoClass_vals), 0, NULL, HFILL }},
16168 { &hf_samr_samr_SetDsrmPassword_hash,
16169 { "Hash", "samr.samr_SetDsrmPassword.hash", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16170 { &hf_samr_samr_SetDsrmPassword_name,
16171 { "Name", "samr.samr_SetDsrmPassword.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16172 { &hf_samr_samr_SetDsrmPassword_unknown,
16173 { "Unknown", "samr.samr_SetDsrmPassword.unknown", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16174 { &hf_samr_samr_SetGroupInfo_info,
16175 { "Info", "samr.samr_SetGroupInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16176 { &hf_samr_samr_SetGroupInfo_level,
16177 { "Level", "samr.samr_SetGroupInfo.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_GroupInfoEnum_vals), 0, NULL, HFILL }},
16178 { &hf_samr_samr_SetMemberAttributesOfGroup_unknown1,
16179 { "Unknown1", "samr.samr_SetMemberAttributesOfGroup.unknown1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16180 { &hf_samr_samr_SetMemberAttributesOfGroup_unknown2,
16181 { "Unknown2", "samr.samr_SetMemberAttributesOfGroup.unknown2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16182 { &hf_samr_samr_SetSecurity_sdbuf,
16183 { "Sdbuf", "samr.samr_SetSecurity.sdbuf", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16184 { &hf_samr_samr_SetSecurity_sec_info,
16185 { "Sec Info", "samr.samr_SetSecurity.sec_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16186 { &hf_samr_samr_SetUserInfo2_info,
16187 { "Info", "samr.samr_SetUserInfo2.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16188 { &hf_samr_samr_SetUserInfo2_level,
16189 { "Level", "samr.samr_SetUserInfo2.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_UserInfoLevel_vals), 0, NULL, HFILL }},
16190 { &hf_samr_samr_SetUserInfo_info,
16191 { "Info", "samr.samr_SetUserInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16192 { &hf_samr_samr_SetUserInfo_level,
16193 { "Level", "samr.samr_SetUserInfo.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_UserInfoLevel_vals), 0, NULL, HFILL }},
16194 { &hf_samr_samr_Shutdown_connect_handle,
16195 { "Connect Handle", "samr.samr_Shutdown.connect_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16196 { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_CHANGE_GROUP_MEMBERSHIP,
16197 { "SAMR USER ACCESS CHANGE GROUP MEMBERSHIP", "samr.samr_UserAccessMask.SAMR_USER_ACCESS_CHANGE_GROUP_MEMBERSHIP", FT_BOOLEAN, 32, TFS(&samr_UserAccessMask_SAMR_USER_ACCESS_CHANGE_GROUP_MEMBERSHIP_tfs), ( 0x00000400 ), NULL, HFILL }},
16198 { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_CHANGE_PASSWORD,
16199 { "SAMR USER ACCESS CHANGE PASSWORD", "samr.samr_UserAccessMask.SAMR_USER_ACCESS_CHANGE_PASSWORD", FT_BOOLEAN, 32, TFS(&samr_UserAccessMask_SAMR_USER_ACCESS_CHANGE_PASSWORD_tfs), ( 0x00000040 ), NULL, HFILL }},
16200 { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_ATTRIBUTES,
16201 { "SAMR USER ACCESS GET ATTRIBUTES", "samr.samr_UserAccessMask.SAMR_USER_ACCESS_GET_ATTRIBUTES", FT_BOOLEAN, 32, TFS(&samr_UserAccessMask_SAMR_USER_ACCESS_GET_ATTRIBUTES_tfs), ( 0x00000010 ), NULL, HFILL }},
16202 { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_GROUPS,
16203 { "SAMR USER ACCESS GET GROUPS", "samr.samr_UserAccessMask.SAMR_USER_ACCESS_GET_GROUPS", FT_BOOLEAN, 32, TFS(&samr_UserAccessMask_SAMR_USER_ACCESS_GET_GROUPS_tfs), ( 0x00000100 ), NULL, HFILL }},
16204 { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_GROUP_MEMBERSHIP,
16205 { "SAMR USER ACCESS GET GROUP MEMBERSHIP", "samr.samr_UserAccessMask.SAMR_USER_ACCESS_GET_GROUP_MEMBERSHIP", FT_BOOLEAN, 32, TFS(&samr_UserAccessMask_SAMR_USER_ACCESS_GET_GROUP_MEMBERSHIP_tfs), ( 0x00000200 ), NULL, HFILL }},
16206 { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_LOCALE,
16207 { "SAMR USER ACCESS GET LOCALE", "samr.samr_UserAccessMask.SAMR_USER_ACCESS_GET_LOCALE", FT_BOOLEAN, 32, TFS(&samr_UserAccessMask_SAMR_USER_ACCESS_GET_LOCALE_tfs), ( 0x00000002 ), NULL, HFILL }},
16208 { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_LOGONINFO,
16209 { "SAMR USER ACCESS GET LOGONINFO", "samr.samr_UserAccessMask.SAMR_USER_ACCESS_GET_LOGONINFO", FT_BOOLEAN, 32, TFS(&samr_UserAccessMask_SAMR_USER_ACCESS_GET_LOGONINFO_tfs), ( 0x00000008 ), NULL, HFILL }},
16210 { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_NAME_ETC,
16211 { "SAMR USER ACCESS GET NAME ETC", "samr.samr_UserAccessMask.SAMR_USER_ACCESS_GET_NAME_ETC", FT_BOOLEAN, 32, TFS(&samr_UserAccessMask_SAMR_USER_ACCESS_GET_NAME_ETC_tfs), ( 0x00000001 ), NULL, HFILL }},
16212 { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_SET_ATTRIBUTES,
16213 { "SAMR USER ACCESS SET ATTRIBUTES", "samr.samr_UserAccessMask.SAMR_USER_ACCESS_SET_ATTRIBUTES", FT_BOOLEAN, 32, TFS(&samr_UserAccessMask_SAMR_USER_ACCESS_SET_ATTRIBUTES_tfs), ( 0x00000020 ), NULL, HFILL }},
16214 { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_SET_LOC_COM,
16215 { "SAMR USER ACCESS SET LOC COM", "samr.samr_UserAccessMask.SAMR_USER_ACCESS_SET_LOC_COM", FT_BOOLEAN, 32, TFS(&samr_UserAccessMask_SAMR_USER_ACCESS_SET_LOC_COM_tfs), ( 0x00000004 ), NULL, HFILL }},
16216 { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_SET_PASSWORD,
16217 { "SAMR USER ACCESS SET PASSWORD", "samr.samr_UserAccessMask.SAMR_USER_ACCESS_SET_PASSWORD", FT_BOOLEAN, 32, TFS(&samr_UserAccessMask_SAMR_USER_ACCESS_SET_PASSWORD_tfs), ( 0x00000080 ), NULL, HFILL }},
16218 { &hf_samr_samr_UserInfo10_home_directory,
16219 { "Home Directory", "samr.samr_UserInfo10.home_directory", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16220 { &hf_samr_samr_UserInfo10_home_drive,
16221 { "Home Drive", "samr.samr_UserInfo10.home_drive", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16222 { &hf_samr_samr_UserInfo11_logon_script,
16223 { "Logon Script", "samr.samr_UserInfo11.logon_script", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16224 { &hf_samr_samr_UserInfo12_profile_path,
16225 { "Profile Path", "samr.samr_UserInfo12.profile_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16226 { &hf_samr_samr_UserInfo13_description,
16227 { "Description", "samr.samr_UserInfo13.description", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16228 { &hf_samr_samr_UserInfo14_workstations,
16229 { "Workstations", "samr.samr_UserInfo14.workstations", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16230 { &hf_samr_samr_UserInfo16_acct_flags,
16231 { "Acct Flags", "samr.samr_UserInfo16.acct_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16232 { &hf_samr_samr_UserInfo17_acct_expiry,
16233 { "Acct Expiry", "samr.samr_UserInfo17.acct_expiry", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16234 { &hf_samr_samr_UserInfo18_lm_pwd,
16235 { "Lm Pwd", "samr.samr_UserInfo18.lm_pwd", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16236 { &hf_samr_samr_UserInfo18_lm_pwd_active,
16237 { "Lm Pwd Active", "samr.samr_UserInfo18.lm_pwd_active", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16238 { &hf_samr_samr_UserInfo18_nt_pwd,
16239 { "Nt Pwd", "samr.samr_UserInfo18.nt_pwd", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16240 { &hf_samr_samr_UserInfo18_nt_pwd_active,
16241 { "Nt Pwd Active", "samr.samr_UserInfo18.nt_pwd_active", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16242 { &hf_samr_samr_UserInfo18_password_expired,
16243 { "Password Expired", "samr.samr_UserInfo18.password_expired", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16244 { &hf_samr_samr_UserInfo1_account_name,
16245 { "Account Name", "samr.samr_UserInfo1.account_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16246 { &hf_samr_samr_UserInfo1_comment,
16247 { "Comment", "samr.samr_UserInfo1.comment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16248 { &hf_samr_samr_UserInfo1_description,
16249 { "Description", "samr.samr_UserInfo1.description", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16250 { &hf_samr_samr_UserInfo1_full_name,
16251 { "Full Name", "samr.samr_UserInfo1.full_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16252 { &hf_samr_samr_UserInfo1_primary_gid,
16253 { "Primary Gid", "samr.samr_UserInfo1.primary_gid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16254 { &hf_samr_samr_UserInfo20_parameters,
16255 { "Parameters", "samr.samr_UserInfo20.parameters", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16256 { &hf_samr_samr_UserInfo21_account_name,
16257 { "Account Name", "samr.samr_UserInfo21.account_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16258 { &hf_samr_samr_UserInfo21_acct_expiry,
16259 { "Acct Expiry", "samr.samr_UserInfo21.acct_expiry", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16260 { &hf_samr_samr_UserInfo21_acct_flags,
16261 { "Acct Flags", "samr.samr_UserInfo21.acct_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16262 { &hf_samr_samr_UserInfo21_allow_password_change,
16263 { "Allow Password Change", "samr.samr_UserInfo21.allow_password_change", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16264 { &hf_samr_samr_UserInfo21_bad_password_count,
16265 { "Bad Password Count", "samr.samr_UserInfo21.bad_password_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16266 { &hf_samr_samr_UserInfo21_buf_count,
16267 { "Buf Count", "samr.samr_UserInfo21.buf_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16268 { &hf_samr_samr_UserInfo21_buffer,
16269 { "Buffer", "samr.samr_UserInfo21.buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16270 { &hf_samr_samr_UserInfo21_code_page,
16271 { "Code Page", "samr.samr_UserInfo21.code_page", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16272 { &hf_samr_samr_UserInfo21_comment,
16273 { "Comment", "samr.samr_UserInfo21.comment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16274 { &hf_samr_samr_UserInfo21_country_code,
16275 { "Country Code", "samr.samr_UserInfo21.country_code", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16276 { &hf_samr_samr_UserInfo21_description,
16277 { "Description", "samr.samr_UserInfo21.description", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16278 { &hf_samr_samr_UserInfo21_fields_present,
16279 { "Fields Present", "samr.samr_UserInfo21.fields_present", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16280 { &hf_samr_samr_UserInfo21_force_password_change,
16281 { "Force Password Change", "samr.samr_UserInfo21.force_password_change", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16282 { &hf_samr_samr_UserInfo21_full_name,
16283 { "Full Name", "samr.samr_UserInfo21.full_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16284 { &hf_samr_samr_UserInfo21_home_directory,
16285 { "Home Directory", "samr.samr_UserInfo21.home_directory", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16286 { &hf_samr_samr_UserInfo21_home_drive,
16287 { "Home Drive", "samr.samr_UserInfo21.home_drive", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16288 { &hf_samr_samr_UserInfo21_last_logoff,
16289 { "Last Logoff", "samr.samr_UserInfo21.last_logoff", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16290 { &hf_samr_samr_UserInfo21_last_logon,
16291 { "Last Logon", "samr.samr_UserInfo21.last_logon", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16292 { &hf_samr_samr_UserInfo21_last_password_change,
16293 { "Last Password Change", "samr.samr_UserInfo21.last_password_change", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16294 { &hf_samr_samr_UserInfo21_lm_owf_password,
16295 { "Lm Owf Password", "samr.samr_UserInfo21.lm_owf_password", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16296 { &hf_samr_samr_UserInfo21_lm_password_set,
16297 { "Lm Password Set", "samr.samr_UserInfo21.lm_password_set", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16298 { &hf_samr_samr_UserInfo21_logon_count,
16299 { "Logon Count", "samr.samr_UserInfo21.logon_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16300 { &hf_samr_samr_UserInfo21_logon_hours,
16301 { "Logon Hours", "samr.samr_UserInfo21.logon_hours", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16302 { &hf_samr_samr_UserInfo21_logon_script,
16303 { "Logon Script", "samr.samr_UserInfo21.logon_script", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16304 { &hf_samr_samr_UserInfo21_nt_owf_password,
16305 { "Nt Owf Password", "samr.samr_UserInfo21.nt_owf_password", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16306 { &hf_samr_samr_UserInfo21_nt_password_set,
16307 { "Nt Password Set", "samr.samr_UserInfo21.nt_password_set", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16308 { &hf_samr_samr_UserInfo21_parameters,
16309 { "Parameters", "samr.samr_UserInfo21.parameters", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16310 { &hf_samr_samr_UserInfo21_password_expired,
16311 { "Password Expired", "samr.samr_UserInfo21.password_expired", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16312 { &hf_samr_samr_UserInfo21_primary_gid,
16313 { "Primary Gid", "samr.samr_UserInfo21.primary_gid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16314 { &hf_samr_samr_UserInfo21_private_data,
16315 { "Private Data", "samr.samr_UserInfo21.private_data", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16316 { &hf_samr_samr_UserInfo21_private_data_sensitive,
16317 { "Private Data Sensitive", "samr.samr_UserInfo21.private_data_sensitive", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16318 { &hf_samr_samr_UserInfo21_profile_path,
16319 { "Profile Path", "samr.samr_UserInfo21.profile_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16320 { &hf_samr_samr_UserInfo21_workstations,
16321 { "Workstations", "samr.samr_UserInfo21.workstations", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16322 { &hf_samr_samr_UserInfo23_info,
16323 { "Info", "samr.samr_UserInfo23.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16324 { &hf_samr_samr_UserInfo23_password,
16325 { "Password", "samr.samr_UserInfo23.password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16326 { &hf_samr_samr_UserInfo24_password,
16327 { "Password", "samr.samr_UserInfo24.password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16328 { &hf_samr_samr_UserInfo24_password_expired,
16329 { "Password Expired", "samr.samr_UserInfo24.password_expired", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16330 { &hf_samr_samr_UserInfo25_info,
16331 { "Info", "samr.samr_UserInfo25.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16332 { &hf_samr_samr_UserInfo25_password,
16333 { "Password", "samr.samr_UserInfo25.password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16334 { &hf_samr_samr_UserInfo26_password,
16335 { "Password", "samr.samr_UserInfo26.password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16336 { &hf_samr_samr_UserInfo26_password_expired,
16337 { "Password Expired", "samr.samr_UserInfo26.password_expired", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16338 { &hf_samr_samr_UserInfo2_code_page,
16339 { "Code Page", "samr.samr_UserInfo2.code_page", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16340 { &hf_samr_samr_UserInfo2_comment,
16341 { "Comment", "samr.samr_UserInfo2.comment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16342 { &hf_samr_samr_UserInfo2_country_code,
16343 { "Country Code", "samr.samr_UserInfo2.country_code", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16344 { &hf_samr_samr_UserInfo2_reserved,
16345 { "Reserved", "samr.samr_UserInfo2.reserved", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16346 { &hf_samr_samr_UserInfo31_password,
16347 { "Password", "samr.samr_UserInfo31.password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16348 { &hf_samr_samr_UserInfo31_password_expired,
16349 { "Password Expired", "samr.samr_UserInfo31.password_expired", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16350 { &hf_samr_samr_UserInfo32_info,
16351 { "Info", "samr.samr_UserInfo32.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16352 { &hf_samr_samr_UserInfo32_password,
16353 { "Password", "samr.samr_UserInfo32.password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16354 { &hf_samr_samr_UserInfo3_account_name,
16355 { "Account Name", "samr.samr_UserInfo3.account_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16356 { &hf_samr_samr_UserInfo3_acct_flags,
16357 { "Acct Flags", "samr.samr_UserInfo3.acct_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16358 { &hf_samr_samr_UserInfo3_allow_password_change,
16359 { "Allow Password Change", "samr.samr_UserInfo3.allow_password_change", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16360 { &hf_samr_samr_UserInfo3_bad_password_count,
16361 { "Bad Password Count", "samr.samr_UserInfo3.bad_password_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16362 { &hf_samr_samr_UserInfo3_force_password_change,
16363 { "Force Password Change", "samr.samr_UserInfo3.force_password_change", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16364 { &hf_samr_samr_UserInfo3_full_name,
16365 { "Full Name", "samr.samr_UserInfo3.full_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16366 { &hf_samr_samr_UserInfo3_home_directory,
16367 { "Home Directory", "samr.samr_UserInfo3.home_directory", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16368 { &hf_samr_samr_UserInfo3_home_drive,
16369 { "Home Drive", "samr.samr_UserInfo3.home_drive", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16370 { &hf_samr_samr_UserInfo3_last_logoff,
16371 { "Last Logoff", "samr.samr_UserInfo3.last_logoff", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16372 { &hf_samr_samr_UserInfo3_last_logon,
16373 { "Last Logon", "samr.samr_UserInfo3.last_logon", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16374 { &hf_samr_samr_UserInfo3_last_password_change,
16375 { "Last Password Change", "samr.samr_UserInfo3.last_password_change", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16376 { &hf_samr_samr_UserInfo3_logon_count,
16377 { "Logon Count", "samr.samr_UserInfo3.logon_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16378 { &hf_samr_samr_UserInfo3_logon_hours,
16379 { "Logon Hours", "samr.samr_UserInfo3.logon_hours", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16380 { &hf_samr_samr_UserInfo3_logon_script,
16381 { "Logon Script", "samr.samr_UserInfo3.logon_script", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16382 { &hf_samr_samr_UserInfo3_primary_gid,
16383 { "Primary Gid", "samr.samr_UserInfo3.primary_gid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16384 { &hf_samr_samr_UserInfo3_profile_path,
16385 { "Profile Path", "samr.samr_UserInfo3.profile_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16386 { &hf_samr_samr_UserInfo3_workstations,
16387 { "Workstations", "samr.samr_UserInfo3.workstations", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16388 { &hf_samr_samr_UserInfo4_logon_hours,
16389 { "Logon Hours", "samr.samr_UserInfo4.logon_hours", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16390 { &hf_samr_samr_UserInfo5_account_name,
16391 { "Account Name", "samr.samr_UserInfo5.account_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16392 { &hf_samr_samr_UserInfo5_acct_expiry,
16393 { "Acct Expiry", "samr.samr_UserInfo5.acct_expiry", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16394 { &hf_samr_samr_UserInfo5_acct_flags,
16395 { "Acct Flags", "samr.samr_UserInfo5.acct_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16396 { &hf_samr_samr_UserInfo5_bad_password_count,
16397 { "Bad Password Count", "samr.samr_UserInfo5.bad_password_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16398 { &hf_samr_samr_UserInfo5_description,
16399 { "Description", "samr.samr_UserInfo5.description", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16400 { &hf_samr_samr_UserInfo5_full_name,
16401 { "Full Name", "samr.samr_UserInfo5.full_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16402 { &hf_samr_samr_UserInfo5_home_directory,
16403 { "Home Directory", "samr.samr_UserInfo5.home_directory", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16404 { &hf_samr_samr_UserInfo5_home_drive,
16405 { "Home Drive", "samr.samr_UserInfo5.home_drive", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16406 { &hf_samr_samr_UserInfo5_last_logoff,
16407 { "Last Logoff", "samr.samr_UserInfo5.last_logoff", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16408 { &hf_samr_samr_UserInfo5_last_logon,
16409 { "Last Logon", "samr.samr_UserInfo5.last_logon", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16410 { &hf_samr_samr_UserInfo5_last_password_change,
16411 { "Last Password Change", "samr.samr_UserInfo5.last_password_change", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16412 { &hf_samr_samr_UserInfo5_logon_count,
16413 { "Logon Count", "samr.samr_UserInfo5.logon_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16414 { &hf_samr_samr_UserInfo5_logon_hours,
16415 { "Logon Hours", "samr.samr_UserInfo5.logon_hours", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16416 { &hf_samr_samr_UserInfo5_logon_script,
16417 { "Logon Script", "samr.samr_UserInfo5.logon_script", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16418 { &hf_samr_samr_UserInfo5_primary_gid,
16419 { "Primary Gid", "samr.samr_UserInfo5.primary_gid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16420 { &hf_samr_samr_UserInfo5_profile_path,
16421 { "Profile Path", "samr.samr_UserInfo5.profile_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16422 { &hf_samr_samr_UserInfo5_workstations,
16423 { "Workstations", "samr.samr_UserInfo5.workstations", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16424 { &hf_samr_samr_UserInfo6_account_name,
16425 { "Account Name", "samr.samr_UserInfo6.account_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16426 { &hf_samr_samr_UserInfo6_full_name,
16427 { "Full Name", "samr.samr_UserInfo6.full_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16428 { &hf_samr_samr_UserInfo7_account_name,
16429 { "Account Name", "samr.samr_UserInfo7.account_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16430 { &hf_samr_samr_UserInfo8_full_name,
16431 { "Full Name", "samr.samr_UserInfo8.full_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16432 { &hf_samr_samr_UserInfo9_primary_gid,
16433 { "Primary Gid", "samr.samr_UserInfo9.primary_gid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16434 { &hf_samr_samr_UserInfo_info1,
16435 { "Info1", "samr.samr_UserInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16436 { &hf_samr_samr_UserInfo_info10,
16437 { "Info10", "samr.samr_UserInfo.info10", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16438 { &hf_samr_samr_UserInfo_info11,
16439 { "Info11", "samr.samr_UserInfo.info11", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16440 { &hf_samr_samr_UserInfo_info12,
16441 { "Info12", "samr.samr_UserInfo.info12", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16442 { &hf_samr_samr_UserInfo_info13,
16443 { "Info13", "samr.samr_UserInfo.info13", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16444 { &hf_samr_samr_UserInfo_info14,
16445 { "Info14", "samr.samr_UserInfo.info14", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16446 { &hf_samr_samr_UserInfo_info16,
16447 { "Info16", "samr.samr_UserInfo.info16", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16448 { &hf_samr_samr_UserInfo_info17,
16449 { "Info17", "samr.samr_UserInfo.info17", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16450 { &hf_samr_samr_UserInfo_info18,
16451 { "Info18", "samr.samr_UserInfo.info18", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16452 { &hf_samr_samr_UserInfo_info2,
16453 { "Info2", "samr.samr_UserInfo.info2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16454 { &hf_samr_samr_UserInfo_info20,
16455 { "Info20", "samr.samr_UserInfo.info20", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16456 { &hf_samr_samr_UserInfo_info21,
16457 { "Info21", "samr.samr_UserInfo.info21", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16458 { &hf_samr_samr_UserInfo_info23,
16459 { "Info23", "samr.samr_UserInfo.info23", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16460 { &hf_samr_samr_UserInfo_info24,
16461 { "Info24", "samr.samr_UserInfo.info24", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16462 { &hf_samr_samr_UserInfo_info25,
16463 { "Info25", "samr.samr_UserInfo.info25", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16464 { &hf_samr_samr_UserInfo_info26,
16465 { "Info26", "samr.samr_UserInfo.info26", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16466 { &hf_samr_samr_UserInfo_info3,
16467 { "Info3", "samr.samr_UserInfo.info3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16468 { &hf_samr_samr_UserInfo_info31,
16469 { "Info31", "samr.samr_UserInfo.info31", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16470 { &hf_samr_samr_UserInfo_info32,
16471 { "Info32", "samr.samr_UserInfo.info32", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16472 { &hf_samr_samr_UserInfo_info4,
16473 { "Info4", "samr.samr_UserInfo.info4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16474 { &hf_samr_samr_UserInfo_info5,
16475 { "Info5", "samr.samr_UserInfo.info5", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16476 { &hf_samr_samr_UserInfo_info6,
16477 { "Info6", "samr.samr_UserInfo.info6", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16478 { &hf_samr_samr_UserInfo_info7,
16479 { "Info7", "samr.samr_UserInfo.info7", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16480 { &hf_samr_samr_UserInfo_info8,
16481 { "Info8", "samr.samr_UserInfo.info8", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16482 { &hf_samr_samr_UserInfo_info9,
16483 { "Info9", "samr.samr_UserInfo.info9", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16484 { &hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_BAD_PASSWORD_COUNT,
16485 { "SAMR VALIDATE FIELD BAD PASSWORD COUNT", "samr.samr_ValidateFieldsPresent.SAMR_VALIDATE_FIELD_BAD_PASSWORD_COUNT", FT_BOOLEAN, 32, TFS(&samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_BAD_PASSWORD_COUNT_tfs), ( 0x00000008 ), NULL, HFILL }},
16486 { &hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_BAD_PASSWORD_TIME,
16487 { "SAMR VALIDATE FIELD BAD PASSWORD TIME", "samr.samr_ValidateFieldsPresent.SAMR_VALIDATE_FIELD_BAD_PASSWORD_TIME", FT_BOOLEAN, 32, TFS(&samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_BAD_PASSWORD_TIME_tfs), ( 0x00000002 ), NULL, HFILL }},
16488 { &hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_LOCKOUT_TIME,
16489 { "SAMR VALIDATE FIELD LOCKOUT TIME", "samr.samr_ValidateFieldsPresent.SAMR_VALIDATE_FIELD_LOCKOUT_TIME", FT_BOOLEAN, 32, TFS(&samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_LOCKOUT_TIME_tfs), ( 0x00000004 ), NULL, HFILL }},
16490 { &hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_HISTORY,
16491 { "SAMR VALIDATE FIELD PASSWORD HISTORY", "samr.samr_ValidateFieldsPresent.SAMR_VALIDATE_FIELD_PASSWORD_HISTORY", FT_BOOLEAN, 32, TFS(&samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_tfs), ( 0x00000020 ), NULL, HFILL }},
16492 { &hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_LENGTH,
16493 { "SAMR VALIDATE FIELD PASSWORD HISTORY LENGTH", "samr.samr_ValidateFieldsPresent.SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_LENGTH", FT_BOOLEAN, 32, TFS(&samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_LENGTH_tfs), ( 0x00000010 ), NULL, HFILL }},
16494 { &hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_LAST_SET,
16495 { "SAMR VALIDATE FIELD PASSWORD LAST SET", "samr.samr_ValidateFieldsPresent.SAMR_VALIDATE_FIELD_PASSWORD_LAST_SET", FT_BOOLEAN, 32, TFS(&samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_LAST_SET_tfs), ( 0x00000001 ), NULL, HFILL }},
16496 { &hf_samr_samr_ValidatePasswordInfo_bad_password_time,
16497 { "Bad Password Time", "samr.samr_ValidatePasswordInfo.bad_password_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16498 { &hf_samr_samr_ValidatePasswordInfo_bad_pwd_count,
16499 { "Bad Pwd Count", "samr.samr_ValidatePasswordInfo.bad_pwd_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16500 { &hf_samr_samr_ValidatePasswordInfo_fields_present,
16501 { "Fields Present", "samr.samr_ValidatePasswordInfo.fields_present", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16502 { &hf_samr_samr_ValidatePasswordInfo_last_password_change,
16503 { "Last Password Change", "samr.samr_ValidatePasswordInfo.last_password_change", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16504 { &hf_samr_samr_ValidatePasswordInfo_lockout_time,
16505 { "Lockout Time", "samr.samr_ValidatePasswordInfo.lockout_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16506 { &hf_samr_samr_ValidatePasswordInfo_pwd_history,
16507 { "Pwd History", "samr.samr_ValidatePasswordInfo.pwd_history", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16508 { &hf_samr_samr_ValidatePasswordInfo_pwd_history_len,
16509 { "Pwd History Len", "samr.samr_ValidatePasswordInfo.pwd_history_len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16510 { &hf_samr_samr_ValidatePasswordRepCtr_info,
16511 { "Info", "samr.samr_ValidatePasswordRepCtr.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16512 { &hf_samr_samr_ValidatePasswordRepCtr_status,
16513 { "Status", "samr.samr_ValidatePasswordRepCtr.status", FT_UINT1632, BASE_DEC, VALS(samr_samr_ValidationStatus_vals), 0, NULL, HFILL }},
16514 { &hf_samr_samr_ValidatePasswordRep_ctr1,
16515 { "Ctr1", "samr.samr_ValidatePasswordRep.ctr1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16516 { &hf_samr_samr_ValidatePasswordRep_ctr2,
16517 { "Ctr2", "samr.samr_ValidatePasswordRep.ctr2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16518 { &hf_samr_samr_ValidatePasswordRep_ctr3,
16519 { "Ctr3", "samr.samr_ValidatePasswordRep.ctr3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16520 { &hf_samr_samr_ValidatePasswordReq1_info,
16521 { "Info", "samr.samr_ValidatePasswordReq1.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16522 { &hf_samr_samr_ValidatePasswordReq1_password_matched,
16523 { "Password Matched", "samr.samr_ValidatePasswordReq1.password_matched", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16524 { &hf_samr_samr_ValidatePasswordReq2_account,
16525 { "Account", "samr.samr_ValidatePasswordReq2.account", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16526 { &hf_samr_samr_ValidatePasswordReq2_hash,
16527 { "Hash", "samr.samr_ValidatePasswordReq2.hash", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16528 { &hf_samr_samr_ValidatePasswordReq2_info,
16529 { "Info", "samr.samr_ValidatePasswordReq2.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16530 { &hf_samr_samr_ValidatePasswordReq2_password,
16531 { "Password", "samr.samr_ValidatePasswordReq2.password", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16532 { &hf_samr_samr_ValidatePasswordReq2_password_matched,
16533 { "Password Matched", "samr.samr_ValidatePasswordReq2.password_matched", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16534 { &hf_samr_samr_ValidatePasswordReq3_account,
16535 { "Account", "samr.samr_ValidatePasswordReq3.account", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16536 { &hf_samr_samr_ValidatePasswordReq3_clear_lockout,
16537 { "Clear Lockout", "samr.samr_ValidatePasswordReq3.clear_lockout", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16538 { &hf_samr_samr_ValidatePasswordReq3_hash,
16539 { "Hash", "samr.samr_ValidatePasswordReq3.hash", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16540 { &hf_samr_samr_ValidatePasswordReq3_info,
16541 { "Info", "samr.samr_ValidatePasswordReq3.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16542 { &hf_samr_samr_ValidatePasswordReq3_password,
16543 { "Password", "samr.samr_ValidatePasswordReq3.password", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16544 { &hf_samr_samr_ValidatePasswordReq3_pwd_must_change_at_next_logon,
16545 { "Pwd Must Change At Next Logon", "samr.samr_ValidatePasswordReq3.pwd_must_change_at_next_logon", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16546 { &hf_samr_samr_ValidatePasswordReq_req1,
16547 { "Req1", "samr.samr_ValidatePasswordReq.req1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16548 { &hf_samr_samr_ValidatePasswordReq_req2,
16549 { "Req2", "samr.samr_ValidatePasswordReq.req2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16550 { &hf_samr_samr_ValidatePasswordReq_req3,
16551 { "Req3", "samr.samr_ValidatePasswordReq.req3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16552 { &hf_samr_samr_ValidatePassword_level,
16553 { "Level", "samr.samr_ValidatePassword.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_ValidatePasswordLevel_vals), 0, NULL, HFILL }},
16554 { &hf_samr_samr_ValidatePassword_rep,
16555 { "Rep", "samr.samr_ValidatePassword.rep", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16556 { &hf_samr_samr_ValidatePassword_req,
16557 { "Req", "samr.samr_ValidatePassword.req", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16558 { &hf_samr_samr_ValidationBlob_data,
16559 { "Data", "samr.samr_ValidationBlob.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16560 { &hf_samr_samr_ValidationBlob_length,
16561 { "Length", "samr.samr_ValidationBlob.length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16562 { &hf_samr_sec_desc_buf_len,
16563 { "Sec Desc Buf Len", "samr.sec_desc_buf_len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16564 { &hf_samr_status,
16565 { "NT Error", "samr.status", FT_UINT32, BASE_HEX|BASE_EXT_STRING, &NT_errors_ext, 0, NULL, HFILL }},
16566 { &hf_samr_userPwdChangeFailureInformation_extendedFailureReason,
16567 { "ExtendedFailureReason", "samr.userPwdChangeFailureInformation.extendedFailureReason", FT_UINT32, BASE_DEC, VALS(samr_samPwdChangeReason_vals), 0, NULL, HFILL }},
16568 { &hf_samr_userPwdChangeFailureInformation_filterModuleName,
16569 { "FilterModuleName", "samr.userPwdChangeFailureInformation.filterModuleName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16570 { &hf_samr_user_access_mask,
16571 { "Access Mask", "samr.user.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16572 { &hf_samr_user_handle,
16573 { "User Handle", "samr.user_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16577 static int *ett[] = {
16578 &ett_dcerpc_samr,
16579 &ett_samr_lsa_Strings,
16580 &ett_samr_samr_AcctFlags,
16581 &ett_samr_samr_ConnectAccessMask,
16582 &ett_samr_samr_UserAccessMask,
16583 &ett_samr_samr_DomainAccessMask,
16584 &ett_samr_samr_GroupAccessMask,
16585 &ett_samr_samr_AliasAccessMask,
16586 &ett_samr_samr_SamEntry,
16587 &ett_samr_samr_SamArray,
16588 &ett_samr_samr_PasswordProperties,
16589 &ett_samr_samr_DomInfo1,
16590 &ett_samr_samr_DomGeneralInformation,
16591 &ett_samr_samr_DomInfo3,
16592 &ett_samr_samr_DomOEMInformation,
16593 &ett_samr_samr_DomInfo5,
16594 &ett_samr_samr_DomInfo6,
16595 &ett_samr_samr_DomInfo7,
16596 &ett_samr_samr_DomInfo8,
16597 &ett_samr_samr_DomInfo9,
16598 &ett_samr_samr_DomGeneralInformation2,
16599 &ett_samr_samr_DomInfo12,
16600 &ett_samr_samr_DomInfo13,
16601 &ett_samr_samr_DomainInfo,
16602 &ett_samr_samr_Ids,
16603 &ett_samr_samr_GroupAttrs,
16604 &ett_samr_samr_GroupInfoAll,
16605 &ett_samr_samr_GroupInfoAttributes,
16606 &ett_samr_samr_GroupInfoDescription,
16607 &ett_samr_samr_GroupInfo,
16608 &ett_samr_samr_RidTypeArray,
16609 &ett_samr_samr_AliasInfoAll,
16610 &ett_samr_samr_AliasInfo,
16611 &ett_samr_samr_UserInfo1,
16612 &ett_samr_samr_UserInfo2,
16613 &ett_samr_samr_LogonHours,
16614 &ett_samr_samr_UserInfo3,
16615 &ett_samr_samr_UserInfo4,
16616 &ett_samr_samr_UserInfo5,
16617 &ett_samr_samr_UserInfo6,
16618 &ett_samr_samr_UserInfo7,
16619 &ett_samr_samr_UserInfo8,
16620 &ett_samr_samr_UserInfo9,
16621 &ett_samr_samr_UserInfo10,
16622 &ett_samr_samr_UserInfo11,
16623 &ett_samr_samr_UserInfo12,
16624 &ett_samr_samr_UserInfo13,
16625 &ett_samr_samr_UserInfo14,
16626 &ett_samr_samr_UserInfo16,
16627 &ett_samr_samr_UserInfo17,
16628 &ett_samr_samr_Password,
16629 &ett_samr_samr_UserInfo18,
16630 &ett_samr_samr_UserInfo20,
16631 &ett_samr_samr_FieldsPresent,
16632 &ett_samr_samr_UserInfo21,
16633 &ett_samr_samr_CryptPassword,
16634 &ett_samr_samr_UserInfo23,
16635 &ett_samr_samr_UserInfo24,
16636 &ett_samr_samr_CryptPasswordEx,
16637 &ett_samr_samr_UserInfo25,
16638 &ett_samr_samr_UserInfo26,
16639 &ett_samr_samr_EncryptedPasswordAES,
16640 &ett_samr_samr_UserInfo31,
16641 &ett_samr_samr_UserInfo32,
16642 &ett_samr_samr_UserInfo,
16643 &ett_samr_samr_RidWithAttribute,
16644 &ett_samr_samr_RidWithAttributeArray,
16645 &ett_samr_samr_DispEntryGeneral,
16646 &ett_samr_samr_DispInfoGeneral,
16647 &ett_samr_samr_DispEntryFull,
16648 &ett_samr_samr_DispInfoFull,
16649 &ett_samr_samr_DispEntryFullGroup,
16650 &ett_samr_samr_DispInfoFullGroups,
16651 &ett_samr_samr_DispEntryAscii,
16652 &ett_samr_samr_DispInfoAscii,
16653 &ett_samr_samr_DispInfo,
16654 &ett_samr_samr_PwInfo,
16655 &ett_samr_userPwdChangeFailureInformation,
16656 &ett_samr_samr_ConnectInfo1,
16657 &ett_samr_samr_ConnectInfo,
16658 &ett_samr_samr_ValidateFieldsPresent,
16659 &ett_samr_samr_ValidationBlob,
16660 &ett_samr_samr_ValidatePasswordInfo,
16661 &ett_samr_samr_ValidatePasswordRepCtr,
16662 &ett_samr_samr_ValidatePasswordRep,
16663 &ett_samr_samr_ValidatePasswordReq3,
16664 &ett_samr_samr_ValidatePasswordReq2,
16665 &ett_samr_samr_ValidatePasswordReq1,
16666 &ett_samr_samr_ValidatePasswordReq,
16669 proto_dcerpc_samr = proto_register_protocol("SAMR (pidl)", "SAMR", "samr");
16670 proto_register_field_array(proto_dcerpc_samr, hf, array_length (hf));
16671 proto_register_subtree_array(ett, array_length(ett));
16674 void proto_reg_handoff_dcerpc_samr(void)
16676 dcerpc_init_uuid(proto_dcerpc_samr, ett_dcerpc_samr,
16677 &uuid_dcerpc_samr, ver_dcerpc_samr,
16678 samr_dissectors, hf_samr_opnum);