Revert "TODO epan/dissectors/asn1/kerberos/packet-kerberos-template.c new GSS flags"
[wireshark-sm.git] / epan / dissectors / packet-dcerpc-samr.c
blob5fb941239667f1b2526e7786f651a54111acfd9c
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_names__(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_rids_(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_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_);
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_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_);
1727 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_);
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_rids__(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_names_(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_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_);
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_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_);
1737 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_);
1738 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_);
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_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_);
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_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_);
1743 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_);
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_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_);
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_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_);
1749 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_);
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_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_);
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_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_);
1754 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_);
1755 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_);
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_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_);
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_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_);
1760 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_);
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_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_);
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_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_);
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_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_);
1768 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_);
1769 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_);
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_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_);
1772 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_);
1773 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_);
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_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_);
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_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_);
1778 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_);
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_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_);
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_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_);
1784 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_);
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_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_);
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_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_);
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_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_);
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_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_);
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_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_);
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_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_);
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_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_);
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_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_);
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_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_);
1803 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_);
1804 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_);
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_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_);
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_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_);
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_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_);
1811 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_);
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_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_);
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_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_);
1817 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_);
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_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_);
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_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_);
1822 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_);
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_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_);
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_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_);
1827 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_);
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_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_);
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_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_);
1832 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_);
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_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_);
1835 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_);
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_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_);
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_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_);
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_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_);
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_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_);
1845 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_);
1846 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_);
1847 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_);
1848 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_);
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_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_);
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_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_);
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_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_);
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_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_);
1857 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_);
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_name_(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_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_);
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_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_);
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_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_);
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_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_);
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_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_);
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_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_);
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_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_);
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_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_);
1876 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_);
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_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_);
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_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_);
1882 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_);
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_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_);
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_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_);
1888 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_);
1889 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_);
1890 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_);
1891 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_);
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_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_);
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_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_);
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_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_);
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_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_);
1900 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_);
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_name_(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_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_);
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_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_);
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_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_);
1909 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_);
1910 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_);
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_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_);
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_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_);
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_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_);
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_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_);
1919 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_);
1920 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_);
1921 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_);
1922 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_);
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_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_);
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_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_);
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_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_);
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_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_);
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_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_);
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_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_);
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_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_);
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_server_(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_account_(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_password_(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_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_);
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_server_(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_account_(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_password_(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_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_);
1953 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_);
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_password_(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_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_);
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_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_);
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_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_);
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_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_);
1964 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_);
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_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_);
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_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_);
1969 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_);
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_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_);
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_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_);
1974 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_);
1975 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_);
1976 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_);
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_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_);
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_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_);
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_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_);
1983 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_);
1984 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_);
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_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_);
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_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_);
1989 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_);
1990 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_);
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_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_);
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_server_(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_account_(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_password_(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_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_);
2001 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_);
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_password_(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_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_);
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_password3_(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_dominfo__(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_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_);
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_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_);
2016 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_);
2017 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_);
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_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_);
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_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_);
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_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_);
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_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_);
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_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_);
2028 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_);
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_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_);
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_name_(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_unknown(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_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_);
2037 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_);
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_req_(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_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_);
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_server_(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_account_(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 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_);
2049 #include "packet-dcerpc-lsa.h"
2050 static void
2051 samr_connect_specific_rights(tvbuff_t *tvb, int offset, proto_tree *tree, uint32_t access)
2053 static int* const access_flags[] = {
2054 &hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_LOOKUP_DOMAIN,
2055 &hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_ENUM_DOMAINS,
2056 &hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_CREATE_DOMAIN,
2057 &hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_INITIALIZE_SERVER,
2058 &hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_SHUTDOWN_SERVER,
2059 &hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_CONNECT_TO_SERVER,
2060 NULL
2062 proto_tree_add_bitmask_list_value(tree, tvb, offset, 4, access_flags, access);
2064 static struct access_mask_info samr_connect_access_mask_info = {
2065 "SAMR Connect", /* Name of specific rights */
2066 samr_connect_specific_rights, /* Dissection function */
2067 NULL, /* Generic mapping table */
2068 NULL /* Standard mapping table */
2071 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_)
2073 offset = dissect_nt_access_mask(
2074 tvb, offset, pinfo, tree, di, drep, hf_samr_connect_access_mask,
2075 &samr_connect_access_mask_info, NULL);
2076 return offset;
2078 static void
2079 samr_alias_specific_rights(tvbuff_t *tvb, int offset, proto_tree *tree, uint32_t access)
2081 static int* const access_flags[] = {
2082 &hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_ADD_MEMBER,
2083 &hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_REMOVE_MEMBER,
2084 &hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_GET_MEMBERS,
2085 &hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_LOOKUP_INFO,
2086 &hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_SET_INFO,
2087 NULL
2089 proto_tree_add_bitmask_list_value(tree, tvb, offset, 4, access_flags, access);
2091 static struct access_mask_info samr_alias_access_mask_info = {
2092 "SAMR Alias", /* Name of specific rights */
2093 samr_alias_specific_rights, /* Dissection function */
2094 NULL, /* Generic mapping table */
2095 NULL /* Standard mapping table */
2098 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_)
2100 offset = dissect_nt_access_mask(
2101 tvb, offset, pinfo, tree, di, drep, hf_samr_alias_access_mask,
2102 &samr_alias_access_mask_info, NULL);
2103 return offset;
2105 static void
2106 samr_group_specific_rights(tvbuff_t *tvb, int offset, proto_tree *tree, uint32_t access)
2108 static int* const access_flags[] = {
2109 &hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_GET_MEMBERS,
2110 &hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_REMOVE_MEMBER,
2111 &hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_ADD_MEMBER,
2112 &hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_SET_INFO,
2113 &hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_LOOKUP_INFO,
2114 NULL
2116 proto_tree_add_bitmask_list_value(tree, tvb, offset, 4, access_flags, access);
2118 static struct access_mask_info samr_group_access_mask_info = {
2119 "SAMR Group", /* Name of specific rights */
2120 samr_group_specific_rights, /* Dissection function */
2121 NULL, /* Generic mapping table */
2122 NULL /* Standard mapping table */
2125 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_)
2127 offset = dissect_nt_access_mask(
2128 tvb, offset, pinfo, tree, di, drep, hf_samr_group_access_mask,
2129 &samr_group_access_mask_info, NULL);
2130 return offset;
2132 static void
2133 samr_domain_specific_rights(tvbuff_t *tvb, int offset, proto_tree *tree, uint32_t access)
2135 static int* const access_flags[] = {
2136 &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_INFO_1,
2137 &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_1,
2138 &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_INFO_2,
2139 &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_2,
2140 &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_USER,
2141 &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_GROUP,
2142 &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_ALIAS,
2143 &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_ALIAS,
2144 &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_ENUM_ACCOUNTS,
2145 &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT,
2146 &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_3,
2147 NULL
2149 proto_tree_add_bitmask_list_value(tree, tvb, offset, 4, access_flags, access);
2151 static struct access_mask_info samr_domain_access_mask_info = {
2152 "SAMR Domain", /* Name of specific rights */
2153 samr_domain_specific_rights, /* Dissection function */
2154 NULL, /* Generic mapping table */
2155 NULL /* Standard mapping table */
2158 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_)
2160 offset = dissect_nt_access_mask(
2161 tvb, offset, pinfo, tree, di, drep, hf_samr_domain_access_mask,
2162 &samr_domain_access_mask_info, NULL);
2163 return offset;
2165 static void
2166 samr_user_specific_rights(tvbuff_t *tvb, int offset, proto_tree *tree, uint32_t access)
2168 static int* const access_flags[] = {
2169 &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_CHANGE_GROUP_MEMBERSHIP,
2170 &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_GROUP_MEMBERSHIP,
2171 &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_GROUPS,
2172 &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_SET_PASSWORD,
2173 &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_CHANGE_PASSWORD,
2174 &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_SET_ATTRIBUTES,
2175 &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_ATTRIBUTES,
2176 &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_LOGONINFO,
2177 &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_SET_LOC_COM,
2178 &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_LOCALE,
2179 &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_NAME_ETC,
2180 NULL
2182 proto_tree_add_bitmask_list_value(tree, tvb, offset, 4, access_flags, access);
2184 static struct access_mask_info samr_user_access_mask_info = {
2185 "SAMR User", /* Name of specific rights */
2186 samr_user_specific_rights, /* Dissection function */
2187 NULL, /* Generic mapping table */
2188 NULL /* Standard mapping table */
2191 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_)
2193 offset = dissect_nt_access_mask(
2194 tvb, offset, pinfo, tree, di, drep, hf_samr_user_access_mask,
2195 &samr_user_access_mask_info, NULL);
2196 return offset;
2198 static int
2199 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)
2201 offset = dissect_ndr_counted_ascii_string(tvb, offset, pinfo, tree, di, drep,
2202 hfindex, 0);
2203 return offset;
2205 static int
2206 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)
2208 offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hfindex, NULL);
2209 return offset;
2211 static int
2212 cnf_dissect_sec_desc_buf_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, dcerpc_info* di, uint8_t *drep)
2214 uint64_t len;
2215 e_ctx_hnd *polhnd = NULL;
2216 dcerpc_call_value *dcv = NULL;
2217 uint32_t type=0;
2218 struct access_mask_info *ami=NULL;
2219 if(di->conformant_run){
2220 /*just a run to handle conformant arrays, nothing to dissect */
2221 return offset;
2223 offset = dissect_ndr_uint3264 (tvb, offset, pinfo, tree, di, drep,
2224 hf_samr_sec_desc_buf_len, &len);
2225 dcv = (dcerpc_call_value *)di->call_data;
2226 if(dcv){
2227 polhnd = dcv->pol;
2229 if(polhnd){
2230 dcerpc_fetch_polhnd_data(polhnd, NULL, &type, NULL, NULL,
2231 pinfo->num);
2233 switch(type){
2234 case PIDL_POLHND_TYPE_SAMR_USER:
2235 ami=&samr_user_access_mask_info;
2236 break;
2237 case PIDL_POLHND_TYPE_SAMR_CONNECT:
2238 ami=&samr_connect_access_mask_info;
2239 break;
2240 case PIDL_POLHND_TYPE_SAMR_DOMAIN:
2241 ami=&samr_domain_access_mask_info;
2242 break;
2243 case PIDL_POLHND_TYPE_SAMR_GROUP:
2244 ami=&samr_group_access_mask_info;
2245 break;
2246 case PIDL_POLHND_TYPE_SAMR_ALIAS:
2247 ami=&samr_alias_access_mask_info;
2248 break;
2250 dissect_nt_sec_desc(tvb, offset, pinfo, tree, drep, true, (int)len, ami);
2251 offset += (int)len;
2252 return offset;
2254 static int
2255 cnf_dissect_sec_desc_buf(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, dcerpc_info* di, uint8_t *drep)
2257 uint64_t len;
2258 if(di->conformant_run){
2259 /*just a run to handle conformant arrays, nothing to dissect */
2260 return offset;
2262 offset = dissect_ndr_uint3264 (tvb, offset, pinfo, tree, di, drep,
2263 hf_samr_sec_desc_buf_len, &len);
2264 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, di, drep,
2265 cnf_dissect_sec_desc_buf_, NDR_POINTER_UNIQUE,
2266 "SAM SECURITY DESCRIPTOR data:", -1);
2267 return offset;
2269 static int
2270 cnf_dissect_dom_sid2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, dcerpc_info* di, uint8_t *drep)
2272 offset = dissect_ndr_nt_SID(tvb, offset, pinfo, tree, di, drep);
2273 return offset;
2275 static int
2276 cnf_dissect_lsa_SidArray(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, dcerpc_info* di, uint8_t *drep)
2278 offset = dissect_ndr_nt_PSID_ARRAY(tvb, offset, pinfo, tree, di, drep);
2279 return offset;
2281 static int
2282 cnf_dissect_samr_security_secinfo(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, uint8_t *drep _U_)
2284 offset = dissect_nt_security_information(tvb, offset, tree);
2285 return offset;
2289 /* IDL: struct { */
2290 /* IDL: uint32 count; */
2291 /* IDL: [size_is(count)] [unique(1)] lsa_String *names; */
2292 /* IDL: } */
2294 static int
2295 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_)
2297 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_lsa_Strings_count, 0);
2299 return offset;
2302 static int
2303 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_)
2305 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);
2307 return offset;
2310 static int
2311 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_)
2313 struct ndr_generic_array nga = { .is_conformant = false, };
2315 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
2317 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, samr_dissect_element_lsa_Strings_names__);
2319 return offset;
2322 static int
2323 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_)
2325 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_lsa_Strings_names);
2327 return offset;
2331 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_)
2333 proto_item *item = NULL;
2334 proto_tree *tree = NULL;
2335 int old_offset;
2337 ALIGN_TO_5_BYTES;
2339 old_offset = offset;
2341 if (parent_tree) {
2342 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2343 tree = proto_item_add_subtree(item, ett_samr_lsa_Strings);
2346 offset = samr_dissect_element_lsa_Strings_count(tvb, offset, pinfo, tree, di, drep);
2348 offset = samr_dissect_element_lsa_Strings_names(tvb, offset, pinfo, tree, di, drep);
2351 proto_item_set_len(item, offset-old_offset);
2354 if (di->call_data->flags & DCERPC_IS_NDR64) {
2355 ALIGN_TO_5_BYTES;
2358 return offset;
2362 /* IDL: enum { */
2363 /* IDL: SID_NAME_USE_NONE=0, */
2364 /* IDL: SID_NAME_USER=1, */
2365 /* IDL: SID_NAME_DOM_GRP=2, */
2366 /* IDL: SID_NAME_DOMAIN=3, */
2367 /* IDL: SID_NAME_ALIAS=4, */
2368 /* IDL: SID_NAME_WKN_GRP=5, */
2369 /* IDL: SID_NAME_DELETED=6, */
2370 /* IDL: SID_NAME_INVALID=7, */
2371 /* IDL: SID_NAME_UNKNOWN=8, */
2372 /* IDL: SID_NAME_COMPUTER=9, */
2373 /* IDL: } */
2376 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_)
2378 uint32_t parameter=0;
2379 if (param) {
2380 parameter = *param;
2382 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
2383 if (param) {
2384 *param = parameter;
2386 return offset;
2390 /* IDL: bitmap { */
2391 /* IDL: ACB_DISABLED = 0x00000001 , */
2392 /* IDL: ACB_HOMDIRREQ = 0x00000002 , */
2393 /* IDL: ACB_PWNOTREQ = 0x00000004 , */
2394 /* IDL: ACB_TEMPDUP = 0x00000008 , */
2395 /* IDL: ACB_NORMAL = 0x00000010 , */
2396 /* IDL: ACB_MNS = 0x00000020 , */
2397 /* IDL: ACB_DOMTRUST = 0x00000040 , */
2398 /* IDL: ACB_WSTRUST = 0x00000080 , */
2399 /* IDL: ACB_SVRTRUST = 0x00000100 , */
2400 /* IDL: ACB_PWNOEXP = 0x00000200 , */
2401 /* IDL: ACB_AUTOLOCK = 0x00000400 , */
2402 /* IDL: ACB_ENC_TXT_PWD_ALLOWED = 0x00000800 , */
2403 /* IDL: ACB_SMARTCARD_REQUIRED = 0x00001000 , */
2404 /* IDL: ACB_TRUSTED_FOR_DELEGATION = 0x00002000 , */
2405 /* IDL: ACB_NOT_DELEGATED = 0x00004000 , */
2406 /* IDL: ACB_USE_DES_KEY_ONLY = 0x00008000 , */
2407 /* IDL: ACB_DONT_REQUIRE_PREAUTH = 0x00010000 , */
2408 /* IDL: ACB_PW_EXPIRED = 0x00020000 , */
2409 /* IDL: ACB_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION = 0x00040000 , */
2410 /* IDL: ACB_NO_AUTH_DATA_REQD = 0x00080000 , */
2411 /* IDL: ACB_PARTIAL_SECRETS_ACCOUNT = 0x00100000 , */
2412 /* IDL: ACB_USE_AES_KEYS = 0x00200000 , */
2413 /* IDL: } */
2416 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_)
2418 proto_item *item;
2419 static int * const samr_samr_AcctFlags_fields[] = {
2420 &hf_samr_samr_AcctFlags_ACB_DISABLED,
2421 &hf_samr_samr_AcctFlags_ACB_HOMDIRREQ,
2422 &hf_samr_samr_AcctFlags_ACB_PWNOTREQ,
2423 &hf_samr_samr_AcctFlags_ACB_TEMPDUP,
2424 &hf_samr_samr_AcctFlags_ACB_NORMAL,
2425 &hf_samr_samr_AcctFlags_ACB_MNS,
2426 &hf_samr_samr_AcctFlags_ACB_DOMTRUST,
2427 &hf_samr_samr_AcctFlags_ACB_WSTRUST,
2428 &hf_samr_samr_AcctFlags_ACB_SVRTRUST,
2429 &hf_samr_samr_AcctFlags_ACB_PWNOEXP,
2430 &hf_samr_samr_AcctFlags_ACB_AUTOLOCK,
2431 &hf_samr_samr_AcctFlags_ACB_ENC_TXT_PWD_ALLOWED,
2432 &hf_samr_samr_AcctFlags_ACB_SMARTCARD_REQUIRED,
2433 &hf_samr_samr_AcctFlags_ACB_TRUSTED_FOR_DELEGATION,
2434 &hf_samr_samr_AcctFlags_ACB_NOT_DELEGATED,
2435 &hf_samr_samr_AcctFlags_ACB_USE_DES_KEY_ONLY,
2436 &hf_samr_samr_AcctFlags_ACB_DONT_REQUIRE_PREAUTH,
2437 &hf_samr_samr_AcctFlags_ACB_PW_EXPIRED,
2438 &hf_samr_samr_AcctFlags_ACB_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION,
2439 &hf_samr_samr_AcctFlags_ACB_NO_AUTH_DATA_REQD,
2440 &hf_samr_samr_AcctFlags_ACB_PARTIAL_SECRETS_ACCOUNT,
2441 &hf_samr_samr_AcctFlags_ACB_USE_AES_KEYS,
2442 NULL
2444 uint32_t flags;
2445 ALIGN_TO_4_BYTES;
2447 item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index,
2448 ett_samr_samr_AcctFlags, samr_samr_AcctFlags_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE);
2450 offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags);
2452 if (!flags)
2453 proto_item_append_text(item, ": (No values set)");
2455 if (flags & (~0x003fffff)) {
2456 flags &= (~0x003fffff);
2457 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
2460 return offset;
2464 /* IDL: bitmap { */
2465 /* IDL: SAMR_ACCESS_CONNECT_TO_SERVER = 0x00000001 , */
2466 /* IDL: SAMR_ACCESS_SHUTDOWN_SERVER = 0x00000002 , */
2467 /* IDL: SAMR_ACCESS_INITIALIZE_SERVER = 0x00000004 , */
2468 /* IDL: SAMR_ACCESS_CREATE_DOMAIN = 0x00000008 , */
2469 /* IDL: SAMR_ACCESS_ENUM_DOMAINS = 0x00000010 , */
2470 /* IDL: SAMR_ACCESS_LOOKUP_DOMAIN = 0x00000020 , */
2471 /* IDL: } */
2474 /* IDL: bitmap { */
2475 /* IDL: SAMR_USER_ACCESS_GET_NAME_ETC = 0x00000001 , */
2476 /* IDL: SAMR_USER_ACCESS_GET_LOCALE = 0x00000002 , */
2477 /* IDL: SAMR_USER_ACCESS_SET_LOC_COM = 0x00000004 , */
2478 /* IDL: SAMR_USER_ACCESS_GET_LOGONINFO = 0x00000008 , */
2479 /* IDL: SAMR_USER_ACCESS_GET_ATTRIBUTES = 0x00000010 , */
2480 /* IDL: SAMR_USER_ACCESS_SET_ATTRIBUTES = 0x00000020 , */
2481 /* IDL: SAMR_USER_ACCESS_CHANGE_PASSWORD = 0x00000040 , */
2482 /* IDL: SAMR_USER_ACCESS_SET_PASSWORD = 0x00000080 , */
2483 /* IDL: SAMR_USER_ACCESS_GET_GROUPS = 0x00000100 , */
2484 /* IDL: SAMR_USER_ACCESS_GET_GROUP_MEMBERSHIP = 0x00000200 , */
2485 /* IDL: SAMR_USER_ACCESS_CHANGE_GROUP_MEMBERSHIP = 0x00000400 , */
2486 /* IDL: } */
2489 /* IDL: bitmap { */
2490 /* IDL: SAMR_DOMAIN_ACCESS_LOOKUP_INFO_1 = 0x00000001 , */
2491 /* IDL: SAMR_DOMAIN_ACCESS_SET_INFO_1 = 0x00000002 , */
2492 /* IDL: SAMR_DOMAIN_ACCESS_LOOKUP_INFO_2 = 0x00000004 , */
2493 /* IDL: SAMR_DOMAIN_ACCESS_SET_INFO_2 = 0x00000008 , */
2494 /* IDL: SAMR_DOMAIN_ACCESS_CREATE_USER = 0x00000010 , */
2495 /* IDL: SAMR_DOMAIN_ACCESS_CREATE_GROUP = 0x00000020 , */
2496 /* IDL: SAMR_DOMAIN_ACCESS_CREATE_ALIAS = 0x00000040 , */
2497 /* IDL: SAMR_DOMAIN_ACCESS_LOOKUP_ALIAS = 0x00000080 , */
2498 /* IDL: SAMR_DOMAIN_ACCESS_ENUM_ACCOUNTS = 0x00000100 , */
2499 /* IDL: SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT = 0x00000200 , */
2500 /* IDL: SAMR_DOMAIN_ACCESS_SET_INFO_3 = 0x00000400 , */
2501 /* IDL: } */
2504 /* IDL: bitmap { */
2505 /* IDL: SAMR_GROUP_ACCESS_LOOKUP_INFO = 0x00000001 , */
2506 /* IDL: SAMR_GROUP_ACCESS_SET_INFO = 0x00000002 , */
2507 /* IDL: SAMR_GROUP_ACCESS_ADD_MEMBER = 0x00000004 , */
2508 /* IDL: SAMR_GROUP_ACCESS_REMOVE_MEMBER = 0x00000008 , */
2509 /* IDL: SAMR_GROUP_ACCESS_GET_MEMBERS = 0x00000010 , */
2510 /* IDL: } */
2513 /* IDL: bitmap { */
2514 /* IDL: SAMR_ALIAS_ACCESS_ADD_MEMBER = 0x00000001 , */
2515 /* IDL: SAMR_ALIAS_ACCESS_REMOVE_MEMBER = 0x00000002 , */
2516 /* IDL: SAMR_ALIAS_ACCESS_GET_MEMBERS = 0x00000004 , */
2517 /* IDL: SAMR_ALIAS_ACCESS_LOOKUP_INFO = 0x00000008 , */
2518 /* IDL: SAMR_ALIAS_ACCESS_SET_INFO = 0x00000010 , */
2519 /* IDL: } */
2522 /* IDL: struct { */
2523 /* IDL: uint32 idx; */
2524 /* IDL: lsa_String name; */
2525 /* IDL: } */
2527 static int
2528 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_)
2530 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_SamEntry_idx, 0);
2532 return offset;
2535 static int
2536 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_)
2538 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_SamEntry_name);
2540 return offset;
2544 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_)
2546 proto_item *item = NULL;
2547 proto_tree *tree = NULL;
2548 int old_offset;
2550 ALIGN_TO_5_BYTES;
2552 old_offset = offset;
2554 if (parent_tree) {
2555 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2556 tree = proto_item_add_subtree(item, ett_samr_samr_SamEntry);
2559 offset = samr_dissect_element_SamEntry_idx(tvb, offset, pinfo, tree, di, drep);
2561 offset = samr_dissect_element_SamEntry_name(tvb, offset, pinfo, tree, di, drep);
2564 proto_item_set_len(item, offset-old_offset);
2567 if (di->call_data->flags & DCERPC_IS_NDR64) {
2568 ALIGN_TO_5_BYTES;
2571 return offset;
2575 /* IDL: struct { */
2576 /* IDL: uint32 count; */
2577 /* IDL: [size_is(count)] [unique(1)] samr_SamEntry *entries; */
2578 /* IDL: } */
2580 static int
2581 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_)
2583 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_SamArray_count, 0);
2585 return offset;
2588 static int
2589 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_)
2591 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);
2593 return offset;
2596 static int
2597 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_)
2599 struct ndr_generic_array nga = { .is_conformant = false, };
2601 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
2603 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, samr_dissect_element_SamArray_entries__);
2605 return offset;
2608 static int
2609 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_)
2611 offset = samr_dissect_struct_SamEntry(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_SamArray_entries,3|PIDL_SET_COL_INFO);
2613 return offset;
2617 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_)
2619 proto_item *item = NULL;
2620 proto_tree *tree = NULL;
2621 int old_offset;
2623 ALIGN_TO_5_BYTES;
2625 old_offset = offset;
2627 if (parent_tree) {
2628 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2629 tree = proto_item_add_subtree(item, ett_samr_samr_SamArray);
2632 offset = samr_dissect_element_SamArray_count(tvb, offset, pinfo, tree, di, drep);
2634 offset = samr_dissect_element_SamArray_entries(tvb, offset, pinfo, tree, di, drep);
2637 proto_item_set_len(item, offset-old_offset);
2640 if (di->call_data->flags & DCERPC_IS_NDR64) {
2641 ALIGN_TO_5_BYTES;
2644 return offset;
2648 /* IDL: enum { */
2649 /* IDL: DomainPasswordInformation=1, */
2650 /* IDL: DomainGeneralInformation=2, */
2651 /* IDL: DomainLogoffInformation=3, */
2652 /* IDL: DomainOemInformation=4, */
2653 /* IDL: DomainNameInformation=5, */
2654 /* IDL: DomainReplicationInformation=6, */
2655 /* IDL: DomainServerRoleInformation=7, */
2656 /* IDL: DomainModifiedInformation=8, */
2657 /* IDL: DomainStateInformation=9, */
2658 /* IDL: DomainUasInformation=10, */
2659 /* IDL: DomainGeneralInformation2=11, */
2660 /* IDL: DomainLockoutInformation=12, */
2661 /* IDL: DomainModifiedInformation2=13, */
2662 /* IDL: } */
2665 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_)
2667 uint32_t parameter=0;
2668 if (param) {
2669 parameter = *param;
2671 offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
2672 if (param) {
2673 *param = parameter;
2675 return offset;
2679 /* IDL: enum { */
2680 /* IDL: SAMR_ROLE_STANDALONE=0, */
2681 /* IDL: SAMR_ROLE_DOMAIN_MEMBER=1, */
2682 /* IDL: SAMR_ROLE_DOMAIN_BDC=2, */
2683 /* IDL: SAMR_ROLE_DOMAIN_PDC=3, */
2684 /* IDL: } */
2687 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_)
2689 uint32_t parameter=0;
2690 if (param) {
2691 parameter = *param;
2693 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
2694 if (param) {
2695 *param = parameter;
2697 return offset;
2701 /* IDL: bitmap { */
2702 /* IDL: DOMAIN_PASSWORD_COMPLEX = 0x00000001 , */
2703 /* IDL: DOMAIN_PASSWORD_NO_ANON_CHANGE = 0x00000002 , */
2704 /* IDL: DOMAIN_PASSWORD_NO_CLEAR_CHANGE = 0x00000004 , */
2705 /* IDL: DOMAIN_PASSWORD_LOCKOUT_ADMINS = 0x00000008 , */
2706 /* IDL: DOMAIN_PASSWORD_STORE_CLEARTEXT = 0x00000010 , */
2707 /* IDL: DOMAIN_REFUSE_PASSWORD_CHANGE = 0x00000020 , */
2708 /* IDL: } */
2711 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_)
2713 proto_item *item;
2714 static int * const samr_samr_PasswordProperties_fields[] = {
2715 &hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_COMPLEX,
2716 &hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_NO_ANON_CHANGE,
2717 &hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_NO_CLEAR_CHANGE,
2718 &hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_LOCKOUT_ADMINS,
2719 &hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_STORE_CLEARTEXT,
2720 &hf_samr_samr_PasswordProperties_DOMAIN_REFUSE_PASSWORD_CHANGE,
2721 NULL
2723 uint32_t flags;
2724 ALIGN_TO_4_BYTES;
2726 item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index,
2727 ett_samr_samr_PasswordProperties, samr_samr_PasswordProperties_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE);
2729 offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags);
2731 if (!flags)
2732 proto_item_append_text(item, ": (No values set)");
2734 if (flags & (~0x0000003f)) {
2735 flags &= (~0x0000003f);
2736 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
2739 return offset;
2743 /* IDL: enum { */
2744 /* IDL: DOMAIN_SERVER_ENABLED=1, */
2745 /* IDL: DOMAIN_SERVER_DISABLED=2, */
2746 /* IDL: } */
2749 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_)
2751 uint32_t parameter=0;
2752 if (param) {
2753 parameter = *param;
2755 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
2756 if (param) {
2757 *param = parameter;
2759 return offset;
2763 /* IDL: struct { */
2764 /* IDL: uint16 min_password_length; */
2765 /* IDL: uint16 password_history_length; */
2766 /* IDL: samr_PasswordProperties password_properties; */
2767 /* IDL: dlong max_password_age; */
2768 /* IDL: dlong min_password_age; */
2769 /* IDL: } */
2771 static int
2772 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_)
2774 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DomInfo1_min_password_length, 0);
2776 return offset;
2779 static int
2780 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_)
2782 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DomInfo1_password_history_length, 0);
2784 return offset;
2787 static int
2788 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_)
2790 offset = samr_dissect_bitmap_PasswordProperties(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DomInfo1_password_properties, 0);
2792 return offset;
2795 static int
2796 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_)
2798 offset = dissect_ndr_duint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DomInfo1_max_password_age, NULL);
2800 return offset;
2803 static int
2804 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_)
2806 offset = dissect_ndr_duint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DomInfo1_min_password_age, NULL);
2808 return offset;
2812 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_)
2814 proto_item *item = NULL;
2815 proto_tree *tree = NULL;
2816 int old_offset;
2818 ALIGN_TO_4_BYTES;
2820 old_offset = offset;
2822 if (parent_tree) {
2823 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2824 tree = proto_item_add_subtree(item, ett_samr_samr_DomInfo1);
2827 offset = samr_dissect_element_DomInfo1_min_password_length(tvb, offset, pinfo, tree, di, drep);
2829 offset = samr_dissect_element_DomInfo1_password_history_length(tvb, offset, pinfo, tree, di, drep);
2831 offset = samr_dissect_element_DomInfo1_password_properties(tvb, offset, pinfo, tree, di, drep);
2833 offset = samr_dissect_element_DomInfo1_max_password_age(tvb, offset, pinfo, tree, di, drep);
2835 offset = samr_dissect_element_DomInfo1_min_password_age(tvb, offset, pinfo, tree, di, drep);
2838 proto_item_set_len(item, offset-old_offset);
2841 if (di->call_data->flags & DCERPC_IS_NDR64) {
2842 ALIGN_TO_4_BYTES;
2845 return offset;
2849 /* IDL: struct { */
2850 /* IDL: NTTIME force_logoff_time; */
2851 /* IDL: lsa_String oem_information; */
2852 /* IDL: lsa_String domain_name; */
2853 /* IDL: lsa_String primary; */
2854 /* IDL: udlong sequence_num; */
2855 /* IDL: samr_DomainServerState domain_server_state; */
2856 /* IDL: samr_Role role; */
2857 /* IDL: uint32 unknown3; */
2858 /* IDL: uint32 num_users; */
2859 /* IDL: uint32 num_groups; */
2860 /* IDL: uint32 num_aliases; */
2861 /* IDL: } */
2863 static int
2864 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_)
2866 offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DomGeneralInformation_force_logoff_time);
2868 return offset;
2871 static int
2872 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_)
2874 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_DomGeneralInformation_oem_information);
2876 return offset;
2879 static int
2880 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_)
2882 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_DomGeneralInformation_domain_name);
2884 return offset;
2887 static int
2888 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_)
2890 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_DomGeneralInformation_primary);
2892 return offset;
2895 static int
2896 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_)
2898 offset = dissect_ndr_duint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DomGeneralInformation_sequence_num, NULL);
2900 return offset;
2903 static int
2904 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_)
2906 offset = samr_dissect_enum_DomainServerState(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DomGeneralInformation_domain_server_state, 0);
2908 return offset;
2911 static int
2912 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_)
2914 offset = samr_dissect_enum_Role(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DomGeneralInformation_role, 0);
2916 return offset;
2919 static int
2920 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_)
2922 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DomGeneralInformation_unknown3, 0);
2924 return offset;
2927 static int
2928 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_)
2930 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DomGeneralInformation_num_users, 0);
2932 return offset;
2935 static int
2936 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_)
2938 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DomGeneralInformation_num_groups, 0);
2940 return offset;
2943 static int
2944 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_)
2946 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DomGeneralInformation_num_aliases, 0);
2948 return offset;
2952 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_)
2954 proto_item *item = NULL;
2955 proto_tree *tree = NULL;
2956 int old_offset;
2958 ALIGN_TO_5_BYTES;
2960 old_offset = offset;
2962 if (parent_tree) {
2963 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2964 tree = proto_item_add_subtree(item, ett_samr_samr_DomGeneralInformation);
2967 offset = samr_dissect_element_DomGeneralInformation_force_logoff_time(tvb, offset, pinfo, tree, di, drep);
2969 offset = samr_dissect_element_DomGeneralInformation_oem_information(tvb, offset, pinfo, tree, di, drep);
2971 offset = samr_dissect_element_DomGeneralInformation_domain_name(tvb, offset, pinfo, tree, di, drep);
2973 offset = samr_dissect_element_DomGeneralInformation_primary(tvb, offset, pinfo, tree, di, drep);
2975 offset = samr_dissect_element_DomGeneralInformation_sequence_num(tvb, offset, pinfo, tree, di, drep);
2977 offset = samr_dissect_element_DomGeneralInformation_domain_server_state(tvb, offset, pinfo, tree, di, drep);
2979 offset = samr_dissect_element_DomGeneralInformation_role(tvb, offset, pinfo, tree, di, drep);
2981 offset = samr_dissect_element_DomGeneralInformation_unknown3(tvb, offset, pinfo, tree, di, drep);
2983 offset = samr_dissect_element_DomGeneralInformation_num_users(tvb, offset, pinfo, tree, di, drep);
2985 offset = samr_dissect_element_DomGeneralInformation_num_groups(tvb, offset, pinfo, tree, di, drep);
2987 offset = samr_dissect_element_DomGeneralInformation_num_aliases(tvb, offset, pinfo, tree, di, drep);
2990 proto_item_set_len(item, offset-old_offset);
2993 if (di->call_data->flags & DCERPC_IS_NDR64) {
2994 ALIGN_TO_5_BYTES;
2997 return offset;
3001 /* IDL: struct { */
3002 /* IDL: NTTIME force_logoff_time; */
3003 /* IDL: } */
3005 static int
3006 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_)
3008 offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DomInfo3_force_logoff_time);
3010 return offset;
3014 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_)
3016 proto_item *item = NULL;
3017 proto_tree *tree = NULL;
3018 int old_offset;
3020 ALIGN_TO_4_BYTES;
3022 old_offset = offset;
3024 if (parent_tree) {
3025 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3026 tree = proto_item_add_subtree(item, ett_samr_samr_DomInfo3);
3029 offset = samr_dissect_element_DomInfo3_force_logoff_time(tvb, offset, pinfo, tree, di, drep);
3032 proto_item_set_len(item, offset-old_offset);
3035 if (di->call_data->flags & DCERPC_IS_NDR64) {
3036 ALIGN_TO_4_BYTES;
3039 return offset;
3043 /* IDL: struct { */
3044 /* IDL: lsa_String oem_information; */
3045 /* IDL: } */
3047 static int
3048 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_)
3050 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_DomOEMInformation_oem_information);
3052 return offset;
3056 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_)
3058 proto_item *item = NULL;
3059 proto_tree *tree = NULL;
3060 int old_offset;
3062 ALIGN_TO_5_BYTES;
3064 old_offset = offset;
3066 if (parent_tree) {
3067 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3068 tree = proto_item_add_subtree(item, ett_samr_samr_DomOEMInformation);
3071 offset = samr_dissect_element_DomOEMInformation_oem_information(tvb, offset, pinfo, tree, di, drep);
3074 proto_item_set_len(item, offset-old_offset);
3077 if (di->call_data->flags & DCERPC_IS_NDR64) {
3078 ALIGN_TO_5_BYTES;
3081 return offset;
3085 /* IDL: struct { */
3086 /* IDL: lsa_String domain_name; */
3087 /* IDL: } */
3089 static int
3090 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_)
3092 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_DomInfo5_domain_name);
3094 return offset;
3098 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_)
3100 proto_item *item = NULL;
3101 proto_tree *tree = NULL;
3102 int old_offset;
3104 ALIGN_TO_5_BYTES;
3106 old_offset = offset;
3108 if (parent_tree) {
3109 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3110 tree = proto_item_add_subtree(item, ett_samr_samr_DomInfo5);
3113 offset = samr_dissect_element_DomInfo5_domain_name(tvb, offset, pinfo, tree, di, drep);
3116 proto_item_set_len(item, offset-old_offset);
3119 if (di->call_data->flags & DCERPC_IS_NDR64) {
3120 ALIGN_TO_5_BYTES;
3123 return offset;
3127 /* IDL: struct { */
3128 /* IDL: lsa_String primary; */
3129 /* IDL: } */
3131 static int
3132 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_)
3134 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_DomInfo6_primary);
3136 return offset;
3140 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_)
3142 proto_item *item = NULL;
3143 proto_tree *tree = NULL;
3144 int old_offset;
3146 ALIGN_TO_5_BYTES;
3148 old_offset = offset;
3150 if (parent_tree) {
3151 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3152 tree = proto_item_add_subtree(item, ett_samr_samr_DomInfo6);
3155 offset = samr_dissect_element_DomInfo6_primary(tvb, offset, pinfo, tree, di, drep);
3158 proto_item_set_len(item, offset-old_offset);
3161 if (di->call_data->flags & DCERPC_IS_NDR64) {
3162 ALIGN_TO_5_BYTES;
3165 return offset;
3169 /* IDL: struct { */
3170 /* IDL: samr_Role role; */
3171 /* IDL: } */
3173 static int
3174 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_)
3176 offset = samr_dissect_enum_Role(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DomInfo7_role, 0);
3178 return offset;
3182 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_)
3184 proto_item *item = NULL;
3185 proto_tree *tree = NULL;
3186 int old_offset;
3188 ALIGN_TO_4_BYTES;
3190 old_offset = offset;
3192 if (parent_tree) {
3193 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3194 tree = proto_item_add_subtree(item, ett_samr_samr_DomInfo7);
3197 offset = samr_dissect_element_DomInfo7_role(tvb, offset, pinfo, tree, di, drep);
3200 proto_item_set_len(item, offset-old_offset);
3203 if (di->call_data->flags & DCERPC_IS_NDR64) {
3204 ALIGN_TO_4_BYTES;
3207 return offset;
3211 /* IDL: struct { */
3212 /* IDL: hyper sequence_num; */
3213 /* IDL: NTTIME domain_create_time; */
3214 /* IDL: } */
3216 static int
3217 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_)
3219 offset=cnf_dissect_hyper(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_DomInfo8_sequence_num);
3221 return offset;
3224 static int
3225 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_)
3227 offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DomInfo8_domain_create_time);
3229 return offset;
3233 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_)
3235 proto_item *item = NULL;
3236 proto_tree *tree = NULL;
3237 int old_offset;
3239 ALIGN_TO_8_BYTES;
3241 old_offset = offset;
3243 if (parent_tree) {
3244 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3245 tree = proto_item_add_subtree(item, ett_samr_samr_DomInfo8);
3248 offset = samr_dissect_element_DomInfo8_sequence_num(tvb, offset, pinfo, tree, di, drep);
3250 offset = samr_dissect_element_DomInfo8_domain_create_time(tvb, offset, pinfo, tree, di, drep);
3253 proto_item_set_len(item, offset-old_offset);
3256 if (di->call_data->flags & DCERPC_IS_NDR64) {
3257 ALIGN_TO_8_BYTES;
3260 return offset;
3264 /* IDL: struct { */
3265 /* IDL: samr_DomainServerState domain_server_state; */
3266 /* IDL: } */
3268 static int
3269 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_)
3271 offset = samr_dissect_enum_DomainServerState(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DomInfo9_domain_server_state, 0);
3273 return offset;
3277 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_)
3279 proto_item *item = NULL;
3280 proto_tree *tree = NULL;
3281 int old_offset;
3283 ALIGN_TO_4_BYTES;
3285 old_offset = offset;
3287 if (parent_tree) {
3288 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3289 tree = proto_item_add_subtree(item, ett_samr_samr_DomInfo9);
3292 offset = samr_dissect_element_DomInfo9_domain_server_state(tvb, offset, pinfo, tree, di, drep);
3295 proto_item_set_len(item, offset-old_offset);
3298 if (di->call_data->flags & DCERPC_IS_NDR64) {
3299 ALIGN_TO_4_BYTES;
3302 return offset;
3306 /* IDL: struct { */
3307 /* IDL: samr_DomGeneralInformation general; */
3308 /* IDL: hyper lockout_duration; */
3309 /* IDL: hyper lockout_window; */
3310 /* IDL: uint16 lockout_threshold; */
3311 /* IDL: } */
3313 static int
3314 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_)
3316 offset = samr_dissect_struct_DomGeneralInformation(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_DomGeneralInformation2_general,0);
3318 return offset;
3321 static int
3322 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_)
3324 offset=cnf_dissect_hyper(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_DomGeneralInformation2_lockout_duration);
3326 return offset;
3329 static int
3330 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_)
3332 offset=cnf_dissect_hyper(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_DomGeneralInformation2_lockout_window);
3334 return offset;
3337 static int
3338 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_)
3340 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DomGeneralInformation2_lockout_threshold, 0);
3342 return offset;
3346 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_)
3348 proto_item *item = NULL;
3349 proto_tree *tree = NULL;
3350 int old_offset;
3352 ALIGN_TO_8_BYTES;
3354 old_offset = offset;
3356 if (parent_tree) {
3357 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3358 tree = proto_item_add_subtree(item, ett_samr_samr_DomGeneralInformation2);
3361 offset = samr_dissect_element_DomGeneralInformation2_general(tvb, offset, pinfo, tree, di, drep);
3363 offset = samr_dissect_element_DomGeneralInformation2_lockout_duration(tvb, offset, pinfo, tree, di, drep);
3365 offset = samr_dissect_element_DomGeneralInformation2_lockout_window(tvb, offset, pinfo, tree, di, drep);
3367 offset = samr_dissect_element_DomGeneralInformation2_lockout_threshold(tvb, offset, pinfo, tree, di, drep);
3370 proto_item_set_len(item, offset-old_offset);
3373 if (di->call_data->flags & DCERPC_IS_NDR64) {
3374 ALIGN_TO_8_BYTES;
3377 return offset;
3381 /* IDL: struct { */
3382 /* IDL: hyper lockout_duration; */
3383 /* IDL: hyper lockout_window; */
3384 /* IDL: uint16 lockout_threshold; */
3385 /* IDL: } */
3387 static int
3388 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_)
3390 offset=cnf_dissect_hyper(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_DomInfo12_lockout_duration);
3392 return offset;
3395 static int
3396 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_)
3398 offset=cnf_dissect_hyper(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_DomInfo12_lockout_window);
3400 return offset;
3403 static int
3404 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_)
3406 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DomInfo12_lockout_threshold, 0);
3408 return offset;
3412 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_)
3414 proto_item *item = NULL;
3415 proto_tree *tree = NULL;
3416 int old_offset;
3418 ALIGN_TO_8_BYTES;
3420 old_offset = offset;
3422 if (parent_tree) {
3423 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3424 tree = proto_item_add_subtree(item, ett_samr_samr_DomInfo12);
3427 offset = samr_dissect_element_DomInfo12_lockout_duration(tvb, offset, pinfo, tree, di, drep);
3429 offset = samr_dissect_element_DomInfo12_lockout_window(tvb, offset, pinfo, tree, di, drep);
3431 offset = samr_dissect_element_DomInfo12_lockout_threshold(tvb, offset, pinfo, tree, di, drep);
3434 proto_item_set_len(item, offset-old_offset);
3437 if (di->call_data->flags & DCERPC_IS_NDR64) {
3438 ALIGN_TO_8_BYTES;
3441 return offset;
3445 /* IDL: struct { */
3446 /* IDL: hyper sequence_num; */
3447 /* IDL: NTTIME domain_create_time; */
3448 /* IDL: hyper modified_count_at_last_promotion; */
3449 /* IDL: } */
3451 static int
3452 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_)
3454 offset=cnf_dissect_hyper(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_DomInfo13_sequence_num);
3456 return offset;
3459 static int
3460 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_)
3462 offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DomInfo13_domain_create_time);
3464 return offset;
3467 static int
3468 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_)
3470 offset=cnf_dissect_hyper(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_DomInfo13_modified_count_at_last_promotion);
3472 return offset;
3476 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_)
3478 proto_item *item = NULL;
3479 proto_tree *tree = NULL;
3480 int old_offset;
3482 ALIGN_TO_8_BYTES;
3484 old_offset = offset;
3486 if (parent_tree) {
3487 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3488 tree = proto_item_add_subtree(item, ett_samr_samr_DomInfo13);
3491 offset = samr_dissect_element_DomInfo13_sequence_num(tvb, offset, pinfo, tree, di, drep);
3493 offset = samr_dissect_element_DomInfo13_domain_create_time(tvb, offset, pinfo, tree, di, drep);
3495 offset = samr_dissect_element_DomInfo13_modified_count_at_last_promotion(tvb, offset, pinfo, tree, di, drep);
3498 proto_item_set_len(item, offset-old_offset);
3501 if (di->call_data->flags & DCERPC_IS_NDR64) {
3502 ALIGN_TO_8_BYTES;
3505 return offset;
3509 /* IDL: [switch_type(uint16)] union { */
3510 /* IDL: [case(1)] [case(1)] samr_DomInfo1 info1; */
3511 /* IDL: [case(2)] [case(2)] samr_DomGeneralInformation general; */
3512 /* IDL: [case(3)] [case(3)] samr_DomInfo3 info3; */
3513 /* IDL: [case(4)] [case(4)] samr_DomOEMInformation oem; */
3514 /* IDL: [case(5)] [case(5)] samr_DomInfo5 info5; */
3515 /* IDL: [case(6)] [case(6)] samr_DomInfo6 info6; */
3516 /* IDL: [case(7)] [case(7)] samr_DomInfo7 info7; */
3517 /* IDL: [case(8)] [case(8)] samr_DomInfo8 info8; */
3518 /* IDL: [case(9)] [case(9)] samr_DomInfo9 info9; */
3519 /* IDL: [case(11)] [case(11)] samr_DomGeneralInformation2 general2; */
3520 /* IDL: [case(12)] [case(12)] samr_DomInfo12 info12; */
3521 /* IDL: [case(13)] [case(13)] samr_DomInfo13 info13; */
3522 /* IDL: } */
3524 static int
3525 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_)
3527 offset = samr_dissect_struct_DomInfo1(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_DomainInfo_info1,0);
3529 return offset;
3532 static int
3533 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_)
3535 offset = samr_dissect_struct_DomGeneralInformation(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_DomainInfo_general,0);
3537 return offset;
3540 static int
3541 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_)
3543 offset = samr_dissect_struct_DomInfo3(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_DomainInfo_info3,0);
3545 return offset;
3548 static int
3549 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_)
3551 offset = samr_dissect_struct_DomOEMInformation(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_DomainInfo_oem,0);
3553 return offset;
3556 static int
3557 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_)
3559 offset = samr_dissect_struct_DomInfo5(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_DomainInfo_info5,0);
3561 return offset;
3564 static int
3565 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_)
3567 offset = samr_dissect_struct_DomInfo6(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_DomainInfo_info6,0);
3569 return offset;
3572 static int
3573 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_)
3575 offset = samr_dissect_struct_DomInfo7(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_DomainInfo_info7,0);
3577 return offset;
3580 static int
3581 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_)
3583 offset = samr_dissect_struct_DomInfo8(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_DomainInfo_info8,0);
3585 return offset;
3588 static int
3589 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_)
3591 offset = samr_dissect_struct_DomInfo9(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_DomainInfo_info9,0);
3593 return offset;
3596 static int
3597 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_)
3599 offset = samr_dissect_struct_DomGeneralInformation2(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_DomainInfo_general2,0);
3601 return offset;
3604 static int
3605 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_)
3607 offset = samr_dissect_struct_DomInfo12(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_DomainInfo_info12,0);
3609 return offset;
3612 static int
3613 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_)
3615 offset = samr_dissect_struct_DomInfo13(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_DomainInfo_info13,0);
3617 return offset;
3620 static int
3621 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_)
3623 proto_item *item = NULL;
3624 proto_tree *tree = NULL;
3625 int old_offset;
3626 uint16_t level;
3628 old_offset = offset;
3629 if (parent_tree) {
3630 tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_samr_samr_DomainInfo, &item, "samr_DomainInfo");
3633 UNION_ALIGN_TO_8_BYTES;
3634 offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
3635 UNION_ALIGN_TO_8_BYTES;
3637 switch(level) {
3638 case 1:
3639 offset = samr_dissect_element_DomainInfo_info1(tvb, offset, pinfo, tree, di, drep);
3640 break;
3642 case 2:
3643 offset = samr_dissect_element_DomainInfo_general(tvb, offset, pinfo, tree, di, drep);
3644 break;
3646 case 3:
3647 offset = samr_dissect_element_DomainInfo_info3(tvb, offset, pinfo, tree, di, drep);
3648 break;
3650 case 4:
3651 offset = samr_dissect_element_DomainInfo_oem(tvb, offset, pinfo, tree, di, drep);
3652 break;
3654 case 5:
3655 offset = samr_dissect_element_DomainInfo_info5(tvb, offset, pinfo, tree, di, drep);
3656 break;
3658 case 6:
3659 offset = samr_dissect_element_DomainInfo_info6(tvb, offset, pinfo, tree, di, drep);
3660 break;
3662 case 7:
3663 offset = samr_dissect_element_DomainInfo_info7(tvb, offset, pinfo, tree, di, drep);
3664 break;
3666 case 8:
3667 offset = samr_dissect_element_DomainInfo_info8(tvb, offset, pinfo, tree, di, drep);
3668 break;
3670 case 9:
3671 offset = samr_dissect_element_DomainInfo_info9(tvb, offset, pinfo, tree, di, drep);
3672 break;
3674 case 11:
3675 offset = samr_dissect_element_DomainInfo_general2(tvb, offset, pinfo, tree, di, drep);
3676 break;
3678 case 12:
3679 offset = samr_dissect_element_DomainInfo_info12(tvb, offset, pinfo, tree, di, drep);
3680 break;
3682 case 13:
3683 offset = samr_dissect_element_DomainInfo_info13(tvb, offset, pinfo, tree, di, drep);
3684 break;
3686 proto_item_set_len(item, offset-old_offset);
3689 return offset;
3692 /* IDL: struct { */
3693 /* IDL: [range(0,1024)] uint32 count; */
3694 /* IDL: [size_is(count)] [unique(1)] uint32 *ids; */
3695 /* IDL: } */
3697 static int
3698 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_)
3700 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_Ids_count, 0);
3702 return offset;
3705 static int
3706 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_)
3708 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);
3710 return offset;
3713 static int
3714 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_)
3716 struct ndr_generic_array nga = { .is_conformant = false, };
3718 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
3720 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, samr_dissect_element_Ids_ids__);
3722 return offset;
3725 static int
3726 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_)
3728 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_rid, 0);
3730 return offset;
3734 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_)
3736 proto_item *item = NULL;
3737 proto_tree *tree = NULL;
3738 int old_offset;
3740 ALIGN_TO_5_BYTES;
3742 old_offset = offset;
3744 if (parent_tree) {
3745 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3746 tree = proto_item_add_subtree(item, ett_samr_samr_Ids);
3749 offset = samr_dissect_element_Ids_count(tvb, offset, pinfo, tree, di, drep);
3751 offset = samr_dissect_element_Ids_ids(tvb, offset, pinfo, tree, di, drep);
3754 proto_item_set_len(item, offset-old_offset);
3757 if (di->call_data->flags & DCERPC_IS_NDR64) {
3758 ALIGN_TO_5_BYTES;
3761 return offset;
3765 /* IDL: bitmap { */
3766 /* IDL: SE_GROUP_MANDATORY = 0x00000001 , */
3767 /* IDL: SE_GROUP_ENABLED_BY_DEFAULT = 0x00000002 , */
3768 /* IDL: SE_GROUP_ENABLED = 0x00000004 , */
3769 /* IDL: SE_GROUP_OWNER = 0x00000008 , */
3770 /* IDL: SE_GROUP_USE_FOR_DENY_ONLY = 0x00000010 , */
3771 /* IDL: SE_GROUP_RESOURCE = 0x20000000 , */
3772 /* IDL: SE_GROUP_LOGON_ID = 0xC0000000 , */
3773 /* IDL: } */
3776 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_)
3778 proto_item *item;
3779 static int * const samr_samr_GroupAttrs_fields[] = {
3780 &hf_samr_samr_GroupAttrs_SE_GROUP_MANDATORY,
3781 &hf_samr_samr_GroupAttrs_SE_GROUP_ENABLED_BY_DEFAULT,
3782 &hf_samr_samr_GroupAttrs_SE_GROUP_ENABLED,
3783 &hf_samr_samr_GroupAttrs_SE_GROUP_OWNER,
3784 &hf_samr_samr_GroupAttrs_SE_GROUP_USE_FOR_DENY_ONLY,
3785 &hf_samr_samr_GroupAttrs_SE_GROUP_RESOURCE,
3786 &hf_samr_samr_GroupAttrs_SE_GROUP_LOGON_ID,
3787 NULL
3789 uint32_t flags;
3790 ALIGN_TO_4_BYTES;
3792 item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index,
3793 ett_samr_samr_GroupAttrs, samr_samr_GroupAttrs_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE);
3795 offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags);
3797 if (!flags)
3798 proto_item_append_text(item, ": (No values set)");
3800 if (flags & (~0xe000001f)) {
3801 flags &= (~0xe000001f);
3802 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
3805 return offset;
3809 /* IDL: struct { */
3810 /* IDL: lsa_String name; */
3811 /* IDL: samr_GroupAttrs attributes; */
3812 /* IDL: uint32 num_members; */
3813 /* IDL: lsa_String description; */
3814 /* IDL: } */
3816 static int
3817 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_)
3819 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_GroupInfoAll_name);
3821 return offset;
3824 static int
3825 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_)
3827 offset = samr_dissect_bitmap_GroupAttrs(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_GroupInfoAll_attributes, 0);
3829 return offset;
3832 static int
3833 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_)
3835 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_GroupInfoAll_num_members, 0);
3837 return offset;
3840 static int
3841 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_)
3843 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_GroupInfoAll_description);
3845 return offset;
3849 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_)
3851 proto_item *item = NULL;
3852 proto_tree *tree = NULL;
3853 int old_offset;
3855 ALIGN_TO_5_BYTES;
3857 old_offset = offset;
3859 if (parent_tree) {
3860 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3861 tree = proto_item_add_subtree(item, ett_samr_samr_GroupInfoAll);
3864 offset = samr_dissect_element_GroupInfoAll_name(tvb, offset, pinfo, tree, di, drep);
3866 offset = samr_dissect_element_GroupInfoAll_attributes(tvb, offset, pinfo, tree, di, drep);
3868 offset = samr_dissect_element_GroupInfoAll_num_members(tvb, offset, pinfo, tree, di, drep);
3870 offset = samr_dissect_element_GroupInfoAll_description(tvb, offset, pinfo, tree, di, drep);
3873 proto_item_set_len(item, offset-old_offset);
3876 if (di->call_data->flags & DCERPC_IS_NDR64) {
3877 ALIGN_TO_5_BYTES;
3880 return offset;
3884 /* IDL: struct { */
3885 /* IDL: samr_GroupAttrs attributes; */
3886 /* IDL: } */
3888 static int
3889 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_)
3891 offset = samr_dissect_bitmap_GroupAttrs(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_GroupInfoAttributes_attributes, 0);
3893 return offset;
3897 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_)
3899 proto_item *item = NULL;
3900 proto_tree *tree = NULL;
3901 int old_offset;
3903 ALIGN_TO_4_BYTES;
3905 old_offset = offset;
3907 if (parent_tree) {
3908 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3909 tree = proto_item_add_subtree(item, ett_samr_samr_GroupInfoAttributes);
3912 offset = samr_dissect_element_GroupInfoAttributes_attributes(tvb, offset, pinfo, tree, di, drep);
3915 proto_item_set_len(item, offset-old_offset);
3918 if (di->call_data->flags & DCERPC_IS_NDR64) {
3919 ALIGN_TO_4_BYTES;
3922 return offset;
3926 /* IDL: struct { */
3927 /* IDL: lsa_String description; */
3928 /* IDL: } */
3930 static int
3931 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_)
3933 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_GroupInfoDescription_description);
3935 return offset;
3939 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_)
3941 proto_item *item = NULL;
3942 proto_tree *tree = NULL;
3943 int old_offset;
3945 ALIGN_TO_5_BYTES;
3947 old_offset = offset;
3949 if (parent_tree) {
3950 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3951 tree = proto_item_add_subtree(item, ett_samr_samr_GroupInfoDescription);
3954 offset = samr_dissect_element_GroupInfoDescription_description(tvb, offset, pinfo, tree, di, drep);
3957 proto_item_set_len(item, offset-old_offset);
3960 if (di->call_data->flags & DCERPC_IS_NDR64) {
3961 ALIGN_TO_5_BYTES;
3964 return offset;
3968 /* IDL: enum { */
3969 /* IDL: GROUPINFOALL=1, */
3970 /* IDL: GROUPINFONAME=2, */
3971 /* IDL: GROUPINFOATTRIBUTES=3, */
3972 /* IDL: GROUPINFODESCRIPTION=4, */
3973 /* IDL: GROUPINFOALL2=5, */
3974 /* IDL: } */
3977 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_)
3979 uint32_t parameter=0;
3980 if (param) {
3981 parameter = *param;
3983 offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
3984 if (param) {
3985 *param = parameter;
3987 return offset;
3991 /* IDL: [switch_type(samr_GroupInfoEnum)] union { */
3992 /* IDL: [case(GROUPINFOALL)] [case(GROUPINFOALL)] samr_GroupInfoAll all; */
3993 /* IDL: [case(GROUPINFONAME)] [case(GROUPINFONAME)] lsa_String name; */
3994 /* IDL: [case(GROUPINFOATTRIBUTES)] [case(GROUPINFOATTRIBUTES)] samr_GroupInfoAttributes attributes; */
3995 /* IDL: [case(GROUPINFODESCRIPTION)] [case(GROUPINFODESCRIPTION)] lsa_String description; */
3996 /* IDL: [case(GROUPINFOALL2)] [case(GROUPINFOALL2)] samr_GroupInfoAll all2; */
3997 /* IDL: } */
3999 static int
4000 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_)
4002 offset = samr_dissect_struct_GroupInfoAll(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_GroupInfo_all,0);
4004 return offset;
4007 static int
4008 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_)
4010 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_GroupInfo_name);
4012 return offset;
4015 static int
4016 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_)
4018 offset = samr_dissect_struct_GroupInfoAttributes(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_GroupInfo_attributes,0);
4020 return offset;
4023 static int
4024 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_)
4026 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_GroupInfo_description);
4028 return offset;
4031 static int
4032 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_)
4034 offset = samr_dissect_struct_GroupInfoAll(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_GroupInfo_all2,0);
4036 return offset;
4039 static int
4040 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_)
4042 proto_item *item = NULL;
4043 proto_tree *tree = NULL;
4044 int old_offset;
4045 uint32_t level;
4047 old_offset = offset;
4048 if (parent_tree) {
4049 tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_samr_samr_GroupInfo, &item, "samr_GroupInfo");
4052 UNION_ALIGN_TO_5_BYTES;
4053 offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
4054 UNION_ALIGN_TO_5_BYTES;
4056 switch(level) {
4057 case GROUPINFOALL:
4058 offset = samr_dissect_element_GroupInfo_all(tvb, offset, pinfo, tree, di, drep);
4059 break;
4061 case GROUPINFONAME:
4062 offset = samr_dissect_element_GroupInfo_name(tvb, offset, pinfo, tree, di, drep);
4063 break;
4065 case GROUPINFOATTRIBUTES:
4066 offset = samr_dissect_element_GroupInfo_attributes(tvb, offset, pinfo, tree, di, drep);
4067 break;
4069 case GROUPINFODESCRIPTION:
4070 offset = samr_dissect_element_GroupInfo_description(tvb, offset, pinfo, tree, di, drep);
4071 break;
4073 case GROUPINFOALL2:
4074 offset = samr_dissect_element_GroupInfo_all2(tvb, offset, pinfo, tree, di, drep);
4075 break;
4077 proto_item_set_len(item, offset-old_offset);
4080 return offset;
4083 /* IDL: struct { */
4084 /* IDL: uint32 count; */
4085 /* IDL: [size_is(count)] [unique(1)] uint32 *rids; */
4086 /* IDL: [size_is(count)] [unique(1)] uint32 *types; */
4087 /* IDL: } */
4089 static int
4090 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_)
4092 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_RidTypeArray_count, 0);
4094 return offset;
4097 static int
4098 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_)
4100 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);
4102 return offset;
4105 static int
4106 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_)
4108 struct ndr_generic_array nga = { .is_conformant = false, };
4110 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
4112 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, samr_dissect_element_RidTypeArray_rids__);
4114 return offset;
4117 static int
4118 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_)
4120 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_rid, 0);
4122 return offset;
4125 static int
4126 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_)
4128 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);
4130 return offset;
4133 static int
4134 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_)
4136 struct ndr_generic_array nga = { .is_conformant = false, };
4138 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
4140 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, samr_dissect_element_RidTypeArray_types__);
4142 return offset;
4145 static int
4146 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_)
4148 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_RidTypeArray_types, 0);
4150 return offset;
4154 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_)
4156 proto_item *item = NULL;
4157 proto_tree *tree = NULL;
4158 int old_offset;
4160 ALIGN_TO_5_BYTES;
4162 old_offset = offset;
4164 if (parent_tree) {
4165 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4166 tree = proto_item_add_subtree(item, ett_samr_samr_RidTypeArray);
4169 offset = samr_dissect_element_RidTypeArray_count(tvb, offset, pinfo, tree, di, drep);
4171 offset = samr_dissect_element_RidTypeArray_rids(tvb, offset, pinfo, tree, di, drep);
4173 offset = samr_dissect_element_RidTypeArray_types(tvb, offset, pinfo, tree, di, drep);
4176 proto_item_set_len(item, offset-old_offset);
4179 if (di->call_data->flags & DCERPC_IS_NDR64) {
4180 ALIGN_TO_5_BYTES;
4183 return offset;
4187 /* IDL: struct { */
4188 /* IDL: lsa_String name; */
4189 /* IDL: uint32 num_members; */
4190 /* IDL: lsa_String description; */
4191 /* IDL: } */
4193 static int
4194 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_)
4196 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_AliasInfoAll_name);
4198 return offset;
4201 static int
4202 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_)
4204 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_AliasInfoAll_num_members, 0);
4206 return offset;
4209 static int
4210 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_)
4212 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_AliasInfoAll_description);
4214 return offset;
4218 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_)
4220 proto_item *item = NULL;
4221 proto_tree *tree = NULL;
4222 int old_offset;
4224 ALIGN_TO_5_BYTES;
4226 old_offset = offset;
4228 if (parent_tree) {
4229 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4230 tree = proto_item_add_subtree(item, ett_samr_samr_AliasInfoAll);
4233 offset = samr_dissect_element_AliasInfoAll_name(tvb, offset, pinfo, tree, di, drep);
4235 offset = samr_dissect_element_AliasInfoAll_num_members(tvb, offset, pinfo, tree, di, drep);
4237 offset = samr_dissect_element_AliasInfoAll_description(tvb, offset, pinfo, tree, di, drep);
4240 proto_item_set_len(item, offset-old_offset);
4243 if (di->call_data->flags & DCERPC_IS_NDR64) {
4244 ALIGN_TO_5_BYTES;
4247 return offset;
4251 /* IDL: enum { */
4252 /* IDL: ALIASINFOALL=1, */
4253 /* IDL: ALIASINFONAME=2, */
4254 /* IDL: ALIASINFODESCRIPTION=3, */
4255 /* IDL: } */
4258 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_)
4260 uint32_t parameter=0;
4261 if (param) {
4262 parameter = *param;
4264 offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
4265 if (param) {
4266 *param = parameter;
4268 return offset;
4272 /* IDL: [switch_type(samr_AliasInfoEnum)] union { */
4273 /* IDL: [case(ALIASINFOALL)] [case(ALIASINFOALL)] samr_AliasInfoAll all; */
4274 /* IDL: [case(ALIASINFONAME)] [case(ALIASINFONAME)] lsa_String name; */
4275 /* IDL: [case(ALIASINFODESCRIPTION)] [case(ALIASINFODESCRIPTION)] lsa_String description; */
4276 /* IDL: } */
4278 static int
4279 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_)
4281 offset = samr_dissect_struct_AliasInfoAll(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_AliasInfo_all,0);
4283 return offset;
4286 static int
4287 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_)
4289 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_AliasInfo_name);
4291 return offset;
4294 static int
4295 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_)
4297 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_AliasInfo_description);
4299 return offset;
4302 static int
4303 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_)
4305 proto_item *item = NULL;
4306 proto_tree *tree = NULL;
4307 int old_offset;
4308 uint32_t level;
4310 old_offset = offset;
4311 if (parent_tree) {
4312 tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_samr_samr_AliasInfo, &item, "samr_AliasInfo");
4315 UNION_ALIGN_TO_5_BYTES;
4316 offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
4317 UNION_ALIGN_TO_5_BYTES;
4319 switch(level) {
4320 case ALIASINFOALL:
4321 offset = samr_dissect_element_AliasInfo_all(tvb, offset, pinfo, tree, di, drep);
4322 break;
4324 case ALIASINFONAME:
4325 offset = samr_dissect_element_AliasInfo_name(tvb, offset, pinfo, tree, di, drep);
4326 break;
4328 case ALIASINFODESCRIPTION:
4329 offset = samr_dissect_element_AliasInfo_description(tvb, offset, pinfo, tree, di, drep);
4330 break;
4332 proto_item_set_len(item, offset-old_offset);
4335 return offset;
4338 /* IDL: enum { */
4339 /* IDL: UserGeneralInformation=1, */
4340 /* IDL: UserPreferencesInformation=2, */
4341 /* IDL: UserLogonInformation=3, */
4342 /* IDL: UserLogonHoursInformation=4, */
4343 /* IDL: UserAccountInformation=5, */
4344 /* IDL: UserNameInformation=6, */
4345 /* IDL: UserAccountNameInformation=7, */
4346 /* IDL: UserFullNameInformation=8, */
4347 /* IDL: UserPrimaryGroupInformation=9, */
4348 /* IDL: UserHomeInformation=10, */
4349 /* IDL: UserScriptInformation=11, */
4350 /* IDL: UserProfileInformation=12, */
4351 /* IDL: UserAdminCommentInformation=13, */
4352 /* IDL: UserWorkStationsInformation=14, */
4353 /* IDL: UserControlInformation=16, */
4354 /* IDL: UserExpiresInformation=17, */
4355 /* IDL: UserInternal1Information=18, */
4356 /* IDL: UserParametersInformation=20, */
4357 /* IDL: UserAllInformation=21, */
4358 /* IDL: UserInternal4Information=23, */
4359 /* IDL: UserInternal5Information=24, */
4360 /* IDL: UserInternal4InformationNew=25, */
4361 /* IDL: UserInternal5InformationNew=26, */
4362 /* IDL: UserInternal7InformationNew=31, */
4363 /* IDL: UserInternal8InformationNew=32, */
4364 /* IDL: } */
4367 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_)
4369 uint32_t parameter=0;
4370 if (param) {
4371 parameter = *param;
4373 offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
4374 if (param) {
4375 *param = parameter;
4377 return offset;
4381 /* IDL: struct { */
4382 /* IDL: lsa_String account_name; */
4383 /* IDL: lsa_String full_name; */
4384 /* IDL: uint32 primary_gid; */
4385 /* IDL: lsa_String description; */
4386 /* IDL: lsa_String comment; */
4387 /* IDL: } */
4389 static int
4390 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_)
4392 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo1_account_name);
4394 return offset;
4397 static int
4398 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_)
4400 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo1_full_name);
4402 return offset;
4405 static int
4406 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_)
4408 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo1_primary_gid, 0);
4410 return offset;
4413 static int
4414 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_)
4416 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo1_description);
4418 return offset;
4421 static int
4422 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_)
4424 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo1_comment);
4426 return offset;
4430 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_)
4432 proto_item *item = NULL;
4433 proto_tree *tree = NULL;
4434 int old_offset;
4436 ALIGN_TO_5_BYTES;
4438 old_offset = offset;
4440 if (parent_tree) {
4441 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4442 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo1);
4445 offset = samr_dissect_element_UserInfo1_account_name(tvb, offset, pinfo, tree, di, drep);
4447 offset = samr_dissect_element_UserInfo1_full_name(tvb, offset, pinfo, tree, di, drep);
4449 offset = samr_dissect_element_UserInfo1_primary_gid(tvb, offset, pinfo, tree, di, drep);
4451 offset = samr_dissect_element_UserInfo1_description(tvb, offset, pinfo, tree, di, drep);
4453 offset = samr_dissect_element_UserInfo1_comment(tvb, offset, pinfo, tree, di, drep);
4456 proto_item_set_len(item, offset-old_offset);
4459 if (di->call_data->flags & DCERPC_IS_NDR64) {
4460 ALIGN_TO_5_BYTES;
4463 return offset;
4467 /* IDL: struct { */
4468 /* IDL: lsa_String comment; */
4469 /* IDL: lsa_String reserved; */
4470 /* IDL: uint16 country_code; */
4471 /* IDL: uint16 code_page; */
4472 /* IDL: } */
4474 static int
4475 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_)
4477 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo2_comment);
4479 return offset;
4482 static int
4483 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_)
4485 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo2_reserved);
4487 return offset;
4490 static int
4491 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_)
4493 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo2_country_code, 0);
4495 return offset;
4498 static int
4499 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_)
4501 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo2_code_page, 0);
4503 return offset;
4507 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_)
4509 proto_item *item = NULL;
4510 proto_tree *tree = NULL;
4511 int old_offset;
4513 ALIGN_TO_5_BYTES;
4515 old_offset = offset;
4517 if (parent_tree) {
4518 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4519 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo2);
4522 offset = samr_dissect_element_UserInfo2_comment(tvb, offset, pinfo, tree, di, drep);
4524 offset = samr_dissect_element_UserInfo2_reserved(tvb, offset, pinfo, tree, di, drep);
4526 offset = samr_dissect_element_UserInfo2_country_code(tvb, offset, pinfo, tree, di, drep);
4528 offset = samr_dissect_element_UserInfo2_code_page(tvb, offset, pinfo, tree, di, drep);
4531 proto_item_set_len(item, offset-old_offset);
4534 if (di->call_data->flags & DCERPC_IS_NDR64) {
4535 ALIGN_TO_5_BYTES;
4538 return offset;
4542 /* IDL: struct { */
4543 /* IDL: uint16 units_per_week; */
4544 /* IDL: [length_is(units_per_week/8)] [size_is(1260)] [unique(1)] uint8 *bits; */
4545 /* IDL: } */
4547 static int
4548 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_)
4550 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_LogonHours_units_per_week, 0);
4552 return offset;
4555 static int
4556 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_)
4558 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);
4560 return offset;
4563 static int
4564 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_)
4566 struct ndr_generic_array nga = { .is_conformant = false, };
4568 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
4570 offset = dissect_ndr_varying_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
4572 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, samr_dissect_element_LogonHours_bits__);
4574 return offset;
4577 static int
4578 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_)
4580 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_LogonHours_bits, 0);
4582 return offset;
4586 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_)
4588 proto_item *item = NULL;
4589 proto_tree *tree = NULL;
4590 int old_offset;
4592 ALIGN_TO_5_BYTES;
4594 old_offset = offset;
4596 if (parent_tree) {
4597 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4598 tree = proto_item_add_subtree(item, ett_samr_samr_LogonHours);
4601 offset = samr_dissect_element_LogonHours_units_per_week(tvb, offset, pinfo, tree, di, drep);
4603 offset = samr_dissect_element_LogonHours_bits(tvb, offset, pinfo, tree, di, drep);
4606 proto_item_set_len(item, offset-old_offset);
4609 if (di->call_data->flags & DCERPC_IS_NDR64) {
4610 ALIGN_TO_5_BYTES;
4613 return offset;
4617 /* IDL: struct { */
4618 /* IDL: lsa_String account_name; */
4619 /* IDL: lsa_String full_name; */
4620 /* IDL: uint32 rid; */
4621 /* IDL: uint32 primary_gid; */
4622 /* IDL: lsa_String home_directory; */
4623 /* IDL: lsa_String home_drive; */
4624 /* IDL: lsa_String logon_script; */
4625 /* IDL: lsa_String profile_path; */
4626 /* IDL: lsa_String workstations; */
4627 /* IDL: NTTIME last_logon; */
4628 /* IDL: NTTIME last_logoff; */
4629 /* IDL: NTTIME last_password_change; */
4630 /* IDL: NTTIME allow_password_change; */
4631 /* IDL: NTTIME force_password_change; */
4632 /* IDL: samr_LogonHours logon_hours; */
4633 /* IDL: uint16 bad_password_count; */
4634 /* IDL: uint16 logon_count; */
4635 /* IDL: samr_AcctFlags acct_flags; */
4636 /* IDL: } */
4638 static int
4639 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_)
4641 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo3_account_name);
4643 return offset;
4646 static int
4647 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_)
4649 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo3_full_name);
4651 return offset;
4654 static int
4655 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_)
4657 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_rid, 0);
4659 return offset;
4662 static int
4663 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_)
4665 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo3_primary_gid, 0);
4667 return offset;
4670 static int
4671 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_)
4673 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo3_home_directory);
4675 return offset;
4678 static int
4679 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_)
4681 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo3_home_drive);
4683 return offset;
4686 static int
4687 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_)
4689 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo3_logon_script);
4691 return offset;
4694 static int
4695 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_)
4697 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo3_profile_path);
4699 return offset;
4702 static int
4703 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_)
4705 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo3_workstations);
4707 return offset;
4710 static int
4711 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_)
4713 offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo3_last_logon);
4715 return offset;
4718 static int
4719 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_)
4721 offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo3_last_logoff);
4723 return offset;
4726 static int
4727 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_)
4729 offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo3_last_password_change);
4731 return offset;
4734 static int
4735 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_)
4737 offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo3_allow_password_change);
4739 return offset;
4742 static int
4743 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_)
4745 offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo3_force_password_change);
4747 return offset;
4750 static int
4751 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_)
4753 offset = samr_dissect_struct_LogonHours(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo3_logon_hours,0);
4755 return offset;
4758 static int
4759 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_)
4761 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo3_bad_password_count, 0);
4763 return offset;
4766 static int
4767 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_)
4769 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo3_logon_count, 0);
4771 return offset;
4774 static int
4775 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_)
4777 offset = samr_dissect_bitmap_AcctFlags(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo3_acct_flags, 0);
4779 return offset;
4783 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_)
4785 proto_item *item = NULL;
4786 proto_tree *tree = NULL;
4787 int old_offset;
4789 ALIGN_TO_5_BYTES;
4791 old_offset = offset;
4793 if (parent_tree) {
4794 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4795 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo3);
4798 offset = samr_dissect_element_UserInfo3_account_name(tvb, offset, pinfo, tree, di, drep);
4800 offset = samr_dissect_element_UserInfo3_full_name(tvb, offset, pinfo, tree, di, drep);
4802 offset = samr_dissect_element_UserInfo3_rid(tvb, offset, pinfo, tree, di, drep);
4804 offset = samr_dissect_element_UserInfo3_primary_gid(tvb, offset, pinfo, tree, di, drep);
4806 offset = samr_dissect_element_UserInfo3_home_directory(tvb, offset, pinfo, tree, di, drep);
4808 offset = samr_dissect_element_UserInfo3_home_drive(tvb, offset, pinfo, tree, di, drep);
4810 offset = samr_dissect_element_UserInfo3_logon_script(tvb, offset, pinfo, tree, di, drep);
4812 offset = samr_dissect_element_UserInfo3_profile_path(tvb, offset, pinfo, tree, di, drep);
4814 offset = samr_dissect_element_UserInfo3_workstations(tvb, offset, pinfo, tree, di, drep);
4816 offset = samr_dissect_element_UserInfo3_last_logon(tvb, offset, pinfo, tree, di, drep);
4818 offset = samr_dissect_element_UserInfo3_last_logoff(tvb, offset, pinfo, tree, di, drep);
4820 offset = samr_dissect_element_UserInfo3_last_password_change(tvb, offset, pinfo, tree, di, drep);
4822 offset = samr_dissect_element_UserInfo3_allow_password_change(tvb, offset, pinfo, tree, di, drep);
4824 offset = samr_dissect_element_UserInfo3_force_password_change(tvb, offset, pinfo, tree, di, drep);
4826 offset = samr_dissect_element_UserInfo3_logon_hours(tvb, offset, pinfo, tree, di, drep);
4828 offset = samr_dissect_element_UserInfo3_bad_password_count(tvb, offset, pinfo, tree, di, drep);
4830 offset = samr_dissect_element_UserInfo3_logon_count(tvb, offset, pinfo, tree, di, drep);
4832 offset = samr_dissect_element_UserInfo3_acct_flags(tvb, offset, pinfo, tree, di, drep);
4835 proto_item_set_len(item, offset-old_offset);
4838 if (di->call_data->flags & DCERPC_IS_NDR64) {
4839 ALIGN_TO_5_BYTES;
4842 return offset;
4846 /* IDL: struct { */
4847 /* IDL: samr_LogonHours logon_hours; */
4848 /* IDL: } */
4850 static int
4851 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_)
4853 offset = samr_dissect_struct_LogonHours(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo4_logon_hours,0);
4855 return offset;
4859 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_)
4861 proto_item *item = NULL;
4862 proto_tree *tree = NULL;
4863 int old_offset;
4865 ALIGN_TO_5_BYTES;
4867 old_offset = offset;
4869 if (parent_tree) {
4870 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4871 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo4);
4874 offset = samr_dissect_element_UserInfo4_logon_hours(tvb, offset, pinfo, tree, di, drep);
4877 proto_item_set_len(item, offset-old_offset);
4880 if (di->call_data->flags & DCERPC_IS_NDR64) {
4881 ALIGN_TO_5_BYTES;
4884 return offset;
4888 /* IDL: struct { */
4889 /* IDL: lsa_String account_name; */
4890 /* IDL: lsa_String full_name; */
4891 /* IDL: uint32 rid; */
4892 /* IDL: uint32 primary_gid; */
4893 /* IDL: lsa_String home_directory; */
4894 /* IDL: lsa_String home_drive; */
4895 /* IDL: lsa_String logon_script; */
4896 /* IDL: lsa_String profile_path; */
4897 /* IDL: lsa_String description; */
4898 /* IDL: lsa_String workstations; */
4899 /* IDL: NTTIME last_logon; */
4900 /* IDL: NTTIME last_logoff; */
4901 /* IDL: samr_LogonHours logon_hours; */
4902 /* IDL: uint16 bad_password_count; */
4903 /* IDL: uint16 logon_count; */
4904 /* IDL: NTTIME last_password_change; */
4905 /* IDL: NTTIME acct_expiry; */
4906 /* IDL: samr_AcctFlags acct_flags; */
4907 /* IDL: } */
4909 static int
4910 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_)
4912 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo5_account_name);
4914 return offset;
4917 static int
4918 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_)
4920 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo5_full_name);
4922 return offset;
4925 static int
4926 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_)
4928 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_rid, 0);
4930 return offset;
4933 static int
4934 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_)
4936 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo5_primary_gid, 0);
4938 return offset;
4941 static int
4942 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_)
4944 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo5_home_directory);
4946 return offset;
4949 static int
4950 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_)
4952 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo5_home_drive);
4954 return offset;
4957 static int
4958 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_)
4960 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo5_logon_script);
4962 return offset;
4965 static int
4966 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_)
4968 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo5_profile_path);
4970 return offset;
4973 static int
4974 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_)
4976 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo5_description);
4978 return offset;
4981 static int
4982 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_)
4984 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo5_workstations);
4986 return offset;
4989 static int
4990 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_)
4992 offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo5_last_logon);
4994 return offset;
4997 static int
4998 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_)
5000 offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo5_last_logoff);
5002 return offset;
5005 static int
5006 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_)
5008 offset = samr_dissect_struct_LogonHours(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo5_logon_hours,0);
5010 return offset;
5013 static int
5014 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_)
5016 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo5_bad_password_count, 0);
5018 return offset;
5021 static int
5022 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_)
5024 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo5_logon_count, 0);
5026 return offset;
5029 static int
5030 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_)
5032 offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo5_last_password_change);
5034 return offset;
5037 static int
5038 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_)
5040 offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo5_acct_expiry);
5042 return offset;
5045 static int
5046 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_)
5048 offset = samr_dissect_bitmap_AcctFlags(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo5_acct_flags, 0);
5050 return offset;
5054 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_)
5056 proto_item *item = NULL;
5057 proto_tree *tree = NULL;
5058 int old_offset;
5060 ALIGN_TO_5_BYTES;
5062 old_offset = offset;
5064 if (parent_tree) {
5065 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5066 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo5);
5069 offset = samr_dissect_element_UserInfo5_account_name(tvb, offset, pinfo, tree, di, drep);
5071 offset = samr_dissect_element_UserInfo5_full_name(tvb, offset, pinfo, tree, di, drep);
5073 offset = samr_dissect_element_UserInfo5_rid(tvb, offset, pinfo, tree, di, drep);
5075 offset = samr_dissect_element_UserInfo5_primary_gid(tvb, offset, pinfo, tree, di, drep);
5077 offset = samr_dissect_element_UserInfo5_home_directory(tvb, offset, pinfo, tree, di, drep);
5079 offset = samr_dissect_element_UserInfo5_home_drive(tvb, offset, pinfo, tree, di, drep);
5081 offset = samr_dissect_element_UserInfo5_logon_script(tvb, offset, pinfo, tree, di, drep);
5083 offset = samr_dissect_element_UserInfo5_profile_path(tvb, offset, pinfo, tree, di, drep);
5085 offset = samr_dissect_element_UserInfo5_description(tvb, offset, pinfo, tree, di, drep);
5087 offset = samr_dissect_element_UserInfo5_workstations(tvb, offset, pinfo, tree, di, drep);
5089 offset = samr_dissect_element_UserInfo5_last_logon(tvb, offset, pinfo, tree, di, drep);
5091 offset = samr_dissect_element_UserInfo5_last_logoff(tvb, offset, pinfo, tree, di, drep);
5093 offset = samr_dissect_element_UserInfo5_logon_hours(tvb, offset, pinfo, tree, di, drep);
5095 offset = samr_dissect_element_UserInfo5_bad_password_count(tvb, offset, pinfo, tree, di, drep);
5097 offset = samr_dissect_element_UserInfo5_logon_count(tvb, offset, pinfo, tree, di, drep);
5099 offset = samr_dissect_element_UserInfo5_last_password_change(tvb, offset, pinfo, tree, di, drep);
5101 offset = samr_dissect_element_UserInfo5_acct_expiry(tvb, offset, pinfo, tree, di, drep);
5103 offset = samr_dissect_element_UserInfo5_acct_flags(tvb, offset, pinfo, tree, di, drep);
5106 proto_item_set_len(item, offset-old_offset);
5109 if (di->call_data->flags & DCERPC_IS_NDR64) {
5110 ALIGN_TO_5_BYTES;
5113 return offset;
5117 /* IDL: struct { */
5118 /* IDL: lsa_String account_name; */
5119 /* IDL: lsa_String full_name; */
5120 /* IDL: } */
5122 static int
5123 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_)
5125 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo6_account_name);
5127 return offset;
5130 static int
5131 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_)
5133 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo6_full_name);
5135 return offset;
5139 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_)
5141 proto_item *item = NULL;
5142 proto_tree *tree = NULL;
5143 int old_offset;
5145 ALIGN_TO_5_BYTES;
5147 old_offset = offset;
5149 if (parent_tree) {
5150 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5151 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo6);
5154 offset = samr_dissect_element_UserInfo6_account_name(tvb, offset, pinfo, tree, di, drep);
5156 offset = samr_dissect_element_UserInfo6_full_name(tvb, offset, pinfo, tree, di, drep);
5159 proto_item_set_len(item, offset-old_offset);
5162 if (di->call_data->flags & DCERPC_IS_NDR64) {
5163 ALIGN_TO_5_BYTES;
5166 return offset;
5170 /* IDL: struct { */
5171 /* IDL: lsa_String account_name; */
5172 /* IDL: } */
5174 static int
5175 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_)
5177 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo7_account_name);
5179 return offset;
5183 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_)
5185 proto_item *item = NULL;
5186 proto_tree *tree = NULL;
5187 int old_offset;
5189 ALIGN_TO_5_BYTES;
5191 old_offset = offset;
5193 if (parent_tree) {
5194 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5195 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo7);
5198 offset = samr_dissect_element_UserInfo7_account_name(tvb, offset, pinfo, tree, di, drep);
5201 proto_item_set_len(item, offset-old_offset);
5204 if (di->call_data->flags & DCERPC_IS_NDR64) {
5205 ALIGN_TO_5_BYTES;
5208 return offset;
5212 /* IDL: struct { */
5213 /* IDL: lsa_String full_name; */
5214 /* IDL: } */
5216 static int
5217 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_)
5219 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo8_full_name);
5221 return offset;
5225 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_)
5227 proto_item *item = NULL;
5228 proto_tree *tree = NULL;
5229 int old_offset;
5231 ALIGN_TO_5_BYTES;
5233 old_offset = offset;
5235 if (parent_tree) {
5236 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5237 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo8);
5240 offset = samr_dissect_element_UserInfo8_full_name(tvb, offset, pinfo, tree, di, drep);
5243 proto_item_set_len(item, offset-old_offset);
5246 if (di->call_data->flags & DCERPC_IS_NDR64) {
5247 ALIGN_TO_5_BYTES;
5250 return offset;
5254 /* IDL: struct { */
5255 /* IDL: uint32 primary_gid; */
5256 /* IDL: } */
5258 static int
5259 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_)
5261 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo9_primary_gid, 0);
5263 return offset;
5267 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_)
5269 proto_item *item = NULL;
5270 proto_tree *tree = NULL;
5271 int old_offset;
5273 ALIGN_TO_4_BYTES;
5275 old_offset = offset;
5277 if (parent_tree) {
5278 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5279 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo9);
5282 offset = samr_dissect_element_UserInfo9_primary_gid(tvb, offset, pinfo, tree, di, drep);
5285 proto_item_set_len(item, offset-old_offset);
5288 if (di->call_data->flags & DCERPC_IS_NDR64) {
5289 ALIGN_TO_4_BYTES;
5292 return offset;
5296 /* IDL: struct { */
5297 /* IDL: lsa_String home_directory; */
5298 /* IDL: lsa_String home_drive; */
5299 /* IDL: } */
5301 static int
5302 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_)
5304 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo10_home_directory);
5306 return offset;
5309 static int
5310 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_)
5312 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo10_home_drive);
5314 return offset;
5318 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_)
5320 proto_item *item = NULL;
5321 proto_tree *tree = NULL;
5322 int old_offset;
5324 ALIGN_TO_5_BYTES;
5326 old_offset = offset;
5328 if (parent_tree) {
5329 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5330 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo10);
5333 offset = samr_dissect_element_UserInfo10_home_directory(tvb, offset, pinfo, tree, di, drep);
5335 offset = samr_dissect_element_UserInfo10_home_drive(tvb, offset, pinfo, tree, di, drep);
5338 proto_item_set_len(item, offset-old_offset);
5341 if (di->call_data->flags & DCERPC_IS_NDR64) {
5342 ALIGN_TO_5_BYTES;
5345 return offset;
5349 /* IDL: struct { */
5350 /* IDL: lsa_String logon_script; */
5351 /* IDL: } */
5353 static int
5354 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_)
5356 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo11_logon_script);
5358 return offset;
5362 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_)
5364 proto_item *item = NULL;
5365 proto_tree *tree = NULL;
5366 int old_offset;
5368 ALIGN_TO_5_BYTES;
5370 old_offset = offset;
5372 if (parent_tree) {
5373 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5374 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo11);
5377 offset = samr_dissect_element_UserInfo11_logon_script(tvb, offset, pinfo, tree, di, drep);
5380 proto_item_set_len(item, offset-old_offset);
5383 if (di->call_data->flags & DCERPC_IS_NDR64) {
5384 ALIGN_TO_5_BYTES;
5387 return offset;
5391 /* IDL: struct { */
5392 /* IDL: lsa_String profile_path; */
5393 /* IDL: } */
5395 static int
5396 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_)
5398 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo12_profile_path);
5400 return offset;
5404 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_)
5406 proto_item *item = NULL;
5407 proto_tree *tree = NULL;
5408 int old_offset;
5410 ALIGN_TO_5_BYTES;
5412 old_offset = offset;
5414 if (parent_tree) {
5415 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5416 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo12);
5419 offset = samr_dissect_element_UserInfo12_profile_path(tvb, offset, pinfo, tree, di, drep);
5422 proto_item_set_len(item, offset-old_offset);
5425 if (di->call_data->flags & DCERPC_IS_NDR64) {
5426 ALIGN_TO_5_BYTES;
5429 return offset;
5433 /* IDL: struct { */
5434 /* IDL: lsa_String description; */
5435 /* IDL: } */
5437 static int
5438 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_)
5440 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo13_description);
5442 return offset;
5446 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_)
5448 proto_item *item = NULL;
5449 proto_tree *tree = NULL;
5450 int old_offset;
5452 ALIGN_TO_5_BYTES;
5454 old_offset = offset;
5456 if (parent_tree) {
5457 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5458 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo13);
5461 offset = samr_dissect_element_UserInfo13_description(tvb, offset, pinfo, tree, di, drep);
5464 proto_item_set_len(item, offset-old_offset);
5467 if (di->call_data->flags & DCERPC_IS_NDR64) {
5468 ALIGN_TO_5_BYTES;
5471 return offset;
5475 /* IDL: struct { */
5476 /* IDL: lsa_String workstations; */
5477 /* IDL: } */
5479 static int
5480 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_)
5482 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo14_workstations);
5484 return offset;
5488 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_)
5490 proto_item *item = NULL;
5491 proto_tree *tree = NULL;
5492 int old_offset;
5494 ALIGN_TO_5_BYTES;
5496 old_offset = offset;
5498 if (parent_tree) {
5499 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5500 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo14);
5503 offset = samr_dissect_element_UserInfo14_workstations(tvb, offset, pinfo, tree, di, drep);
5506 proto_item_set_len(item, offset-old_offset);
5509 if (di->call_data->flags & DCERPC_IS_NDR64) {
5510 ALIGN_TO_5_BYTES;
5513 return offset;
5517 /* IDL: struct { */
5518 /* IDL: samr_AcctFlags acct_flags; */
5519 /* IDL: } */
5521 static int
5522 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_)
5524 offset = samr_dissect_bitmap_AcctFlags(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo16_acct_flags, 0);
5526 return offset;
5530 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_)
5532 proto_item *item = NULL;
5533 proto_tree *tree = NULL;
5534 int old_offset;
5536 ALIGN_TO_4_BYTES;
5538 old_offset = offset;
5540 if (parent_tree) {
5541 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5542 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo16);
5545 offset = samr_dissect_element_UserInfo16_acct_flags(tvb, offset, pinfo, tree, di, drep);
5548 proto_item_set_len(item, offset-old_offset);
5551 if (di->call_data->flags & DCERPC_IS_NDR64) {
5552 ALIGN_TO_4_BYTES;
5555 return offset;
5559 /* IDL: struct { */
5560 /* IDL: NTTIME acct_expiry; */
5561 /* IDL: } */
5563 static int
5564 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_)
5566 offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo17_acct_expiry);
5568 return offset;
5572 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_)
5574 proto_item *item = NULL;
5575 proto_tree *tree = NULL;
5576 int old_offset;
5578 ALIGN_TO_4_BYTES;
5580 old_offset = offset;
5582 if (parent_tree) {
5583 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5584 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo17);
5587 offset = samr_dissect_element_UserInfo17_acct_expiry(tvb, offset, pinfo, tree, di, drep);
5590 proto_item_set_len(item, offset-old_offset);
5593 if (di->call_data->flags & DCERPC_IS_NDR64) {
5594 ALIGN_TO_4_BYTES;
5597 return offset;
5601 /* IDL: struct { */
5602 /* IDL: uint8 hash[16]; */
5603 /* IDL: } */
5605 static int
5606 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_)
5608 int i;
5609 for (i = 0; i < 16; i++)
5610 offset = samr_dissect_element_Password_hash_(tvb, offset, pinfo, tree, di, drep);
5612 return offset;
5615 static int
5616 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_)
5618 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_Password_hash, 0);
5620 return offset;
5624 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_)
5626 proto_item *item = NULL;
5627 proto_tree *tree = NULL;
5628 int old_offset;
5630 old_offset = offset;
5632 if (parent_tree) {
5633 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5634 tree = proto_item_add_subtree(item, ett_samr_samr_Password);
5637 offset = samr_dissect_element_Password_hash(tvb, offset, pinfo, tree, di, drep);
5640 proto_item_set_len(item, offset-old_offset);
5643 return offset;
5647 /* IDL: struct { */
5648 /* IDL: samr_Password nt_pwd; */
5649 /* IDL: samr_Password lm_pwd; */
5650 /* IDL: uint8 nt_pwd_active; */
5651 /* IDL: uint8 lm_pwd_active; */
5652 /* IDL: uint8 password_expired; */
5653 /* IDL: } */
5655 static int
5656 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_)
5658 offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo18_nt_pwd,0);
5660 return offset;
5663 static int
5664 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_)
5666 offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo18_lm_pwd,0);
5668 return offset;
5671 static int
5672 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_)
5674 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo18_nt_pwd_active, 0);
5676 return offset;
5679 static int
5680 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_)
5682 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo18_lm_pwd_active, 0);
5684 return offset;
5687 static int
5688 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_)
5690 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo18_password_expired, 0);
5692 return offset;
5696 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_)
5698 proto_item *item = NULL;
5699 proto_tree *tree = NULL;
5700 int old_offset;
5702 old_offset = offset;
5704 if (parent_tree) {
5705 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5706 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo18);
5709 offset = samr_dissect_element_UserInfo18_nt_pwd(tvb, offset, pinfo, tree, di, drep);
5711 offset = samr_dissect_element_UserInfo18_lm_pwd(tvb, offset, pinfo, tree, di, drep);
5713 offset = samr_dissect_element_UserInfo18_nt_pwd_active(tvb, offset, pinfo, tree, di, drep);
5715 offset = samr_dissect_element_UserInfo18_lm_pwd_active(tvb, offset, pinfo, tree, di, drep);
5717 offset = samr_dissect_element_UserInfo18_password_expired(tvb, offset, pinfo, tree, di, drep);
5720 proto_item_set_len(item, offset-old_offset);
5723 return offset;
5727 /* IDL: struct { */
5728 /* IDL: lsa_BinaryString parameters; */
5729 /* IDL: } */
5731 static int
5732 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_)
5734 offset=lsarpc_dissect_struct_lsa_BinaryString(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo20_parameters, 0);
5736 return offset;
5740 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_)
5742 proto_item *item = NULL;
5743 proto_tree *tree = NULL;
5744 int old_offset;
5746 ALIGN_TO_5_BYTES;
5748 old_offset = offset;
5750 if (parent_tree) {
5751 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5752 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo20);
5755 offset = samr_dissect_element_UserInfo20_parameters(tvb, offset, pinfo, tree, di, drep);
5758 proto_item_set_len(item, offset-old_offset);
5761 if (di->call_data->flags & DCERPC_IS_NDR64) {
5762 ALIGN_TO_5_BYTES;
5765 return offset;
5769 /* IDL: bitmap { */
5770 /* IDL: SAMR_FIELD_ACCOUNT_NAME = 0x00000001 , */
5771 /* IDL: SAMR_FIELD_FULL_NAME = 0x00000002 , */
5772 /* IDL: SAMR_FIELD_RID = 0x00000004 , */
5773 /* IDL: SAMR_FIELD_PRIMARY_GID = 0x00000008 , */
5774 /* IDL: SAMR_FIELD_DESCRIPTION = 0x00000010 , */
5775 /* IDL: SAMR_FIELD_COMMENT = 0x00000020 , */
5776 /* IDL: SAMR_FIELD_HOME_DIRECTORY = 0x00000040 , */
5777 /* IDL: SAMR_FIELD_HOME_DRIVE = 0x00000080 , */
5778 /* IDL: SAMR_FIELD_LOGON_SCRIPT = 0x00000100 , */
5779 /* IDL: SAMR_FIELD_PROFILE_PATH = 0x00000200 , */
5780 /* IDL: SAMR_FIELD_WORKSTATIONS = 0x00000400 , */
5781 /* IDL: SAMR_FIELD_LAST_LOGON = 0x00000800 , */
5782 /* IDL: SAMR_FIELD_LAST_LOGOFF = 0x00001000 , */
5783 /* IDL: SAMR_FIELD_LOGON_HOURS = 0x00002000 , */
5784 /* IDL: SAMR_FIELD_BAD_PWD_COUNT = 0x00004000 , */
5785 /* IDL: SAMR_FIELD_NUM_LOGONS = 0x00008000 , */
5786 /* IDL: SAMR_FIELD_ALLOW_PWD_CHANGE = 0x00010000 , */
5787 /* IDL: SAMR_FIELD_FORCE_PWD_CHANGE = 0x00020000 , */
5788 /* IDL: SAMR_FIELD_LAST_PWD_CHANGE = 0x00040000 , */
5789 /* IDL: SAMR_FIELD_ACCT_EXPIRY = 0x00080000 , */
5790 /* IDL: SAMR_FIELD_ACCT_FLAGS = 0x00100000 , */
5791 /* IDL: SAMR_FIELD_PARAMETERS = 0x00200000 , */
5792 /* IDL: SAMR_FIELD_COUNTRY_CODE = 0x00400000 , */
5793 /* IDL: SAMR_FIELD_CODE_PAGE = 0x00800000 , */
5794 /* IDL: SAMR_FIELD_NT_PASSWORD_PRESENT = 0x01000000 , */
5795 /* IDL: SAMR_FIELD_LM_PASSWORD_PRESENT = 0x02000000 , */
5796 /* IDL: SAMR_FIELD_PRIVATE_DATA = 0x04000000 , */
5797 /* IDL: SAMR_FIELD_EXPIRED_FLAG = 0x08000000 , */
5798 /* IDL: SAMR_FIELD_SEC_DESC = 0x10000000 , */
5799 /* IDL: SAMR_FIELD_OWF_PWD = 0x20000000 , */
5800 /* IDL: } */
5803 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_)
5805 proto_item *item;
5806 static int * const samr_samr_FieldsPresent_fields[] = {
5807 &hf_samr_samr_FieldsPresent_SAMR_FIELD_ACCOUNT_NAME,
5808 &hf_samr_samr_FieldsPresent_SAMR_FIELD_FULL_NAME,
5809 &hf_samr_samr_FieldsPresent_SAMR_FIELD_RID,
5810 &hf_samr_samr_FieldsPresent_SAMR_FIELD_PRIMARY_GID,
5811 &hf_samr_samr_FieldsPresent_SAMR_FIELD_DESCRIPTION,
5812 &hf_samr_samr_FieldsPresent_SAMR_FIELD_COMMENT,
5813 &hf_samr_samr_FieldsPresent_SAMR_FIELD_HOME_DIRECTORY,
5814 &hf_samr_samr_FieldsPresent_SAMR_FIELD_HOME_DRIVE,
5815 &hf_samr_samr_FieldsPresent_SAMR_FIELD_LOGON_SCRIPT,
5816 &hf_samr_samr_FieldsPresent_SAMR_FIELD_PROFILE_PATH,
5817 &hf_samr_samr_FieldsPresent_SAMR_FIELD_WORKSTATIONS,
5818 &hf_samr_samr_FieldsPresent_SAMR_FIELD_LAST_LOGON,
5819 &hf_samr_samr_FieldsPresent_SAMR_FIELD_LAST_LOGOFF,
5820 &hf_samr_samr_FieldsPresent_SAMR_FIELD_LOGON_HOURS,
5821 &hf_samr_samr_FieldsPresent_SAMR_FIELD_BAD_PWD_COUNT,
5822 &hf_samr_samr_FieldsPresent_SAMR_FIELD_NUM_LOGONS,
5823 &hf_samr_samr_FieldsPresent_SAMR_FIELD_ALLOW_PWD_CHANGE,
5824 &hf_samr_samr_FieldsPresent_SAMR_FIELD_FORCE_PWD_CHANGE,
5825 &hf_samr_samr_FieldsPresent_SAMR_FIELD_LAST_PWD_CHANGE,
5826 &hf_samr_samr_FieldsPresent_SAMR_FIELD_ACCT_EXPIRY,
5827 &hf_samr_samr_FieldsPresent_SAMR_FIELD_ACCT_FLAGS,
5828 &hf_samr_samr_FieldsPresent_SAMR_FIELD_PARAMETERS,
5829 &hf_samr_samr_FieldsPresent_SAMR_FIELD_COUNTRY_CODE,
5830 &hf_samr_samr_FieldsPresent_SAMR_FIELD_CODE_PAGE,
5831 &hf_samr_samr_FieldsPresent_SAMR_FIELD_NT_PASSWORD_PRESENT,
5832 &hf_samr_samr_FieldsPresent_SAMR_FIELD_LM_PASSWORD_PRESENT,
5833 &hf_samr_samr_FieldsPresent_SAMR_FIELD_PRIVATE_DATA,
5834 &hf_samr_samr_FieldsPresent_SAMR_FIELD_EXPIRED_FLAG,
5835 &hf_samr_samr_FieldsPresent_SAMR_FIELD_SEC_DESC,
5836 &hf_samr_samr_FieldsPresent_SAMR_FIELD_OWF_PWD,
5837 NULL
5839 uint32_t flags;
5840 ALIGN_TO_4_BYTES;
5842 item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index,
5843 ett_samr_samr_FieldsPresent, samr_samr_FieldsPresent_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE);
5845 offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags);
5847 if (!flags)
5848 proto_item_append_text(item, ": (No values set)");
5850 if (flags & (~0x3fffffff)) {
5851 flags &= (~0x3fffffff);
5852 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
5855 return offset;
5859 /* IDL: struct { */
5860 /* IDL: NTTIME last_logon; */
5861 /* IDL: NTTIME last_logoff; */
5862 /* IDL: NTTIME last_password_change; */
5863 /* IDL: NTTIME acct_expiry; */
5864 /* IDL: NTTIME allow_password_change; */
5865 /* IDL: NTTIME force_password_change; */
5866 /* IDL: lsa_String account_name; */
5867 /* IDL: lsa_String full_name; */
5868 /* IDL: lsa_String home_directory; */
5869 /* IDL: lsa_String home_drive; */
5870 /* IDL: lsa_String logon_script; */
5871 /* IDL: lsa_String profile_path; */
5872 /* IDL: lsa_String description; */
5873 /* IDL: lsa_String workstations; */
5874 /* IDL: lsa_String comment; */
5875 /* IDL: lsa_BinaryString parameters; */
5876 /* IDL: lsa_BinaryString lm_owf_password; */
5877 /* IDL: lsa_BinaryString nt_owf_password; */
5878 /* IDL: lsa_String private_data; */
5879 /* IDL: uint32 buf_count; */
5880 /* IDL: [size_is(buf_count)] [unique(1)] uint8 *buffer; */
5881 /* IDL: uint32 rid; */
5882 /* IDL: uint32 primary_gid; */
5883 /* IDL: samr_AcctFlags acct_flags; */
5884 /* IDL: samr_FieldsPresent fields_present; */
5885 /* IDL: samr_LogonHours logon_hours; */
5886 /* IDL: uint16 bad_password_count; */
5887 /* IDL: uint16 logon_count; */
5888 /* IDL: uint16 country_code; */
5889 /* IDL: uint16 code_page; */
5890 /* IDL: uint8 lm_password_set; */
5891 /* IDL: uint8 nt_password_set; */
5892 /* IDL: uint8 password_expired; */
5893 /* IDL: uint8 private_data_sensitive; */
5894 /* IDL: } */
5896 static int
5897 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_)
5899 offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo21_last_logon);
5901 return offset;
5904 static int
5905 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_)
5907 offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo21_last_logoff);
5909 return offset;
5912 static int
5913 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_)
5915 offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo21_last_password_change);
5917 return offset;
5920 static int
5921 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_)
5923 offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo21_acct_expiry);
5925 return offset;
5928 static int
5929 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_)
5931 offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo21_allow_password_change);
5933 return offset;
5936 static int
5937 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_)
5939 offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo21_force_password_change);
5941 return offset;
5944 static int
5945 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_)
5947 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo21_account_name);
5949 return offset;
5952 static int
5953 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_)
5955 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo21_full_name);
5957 return offset;
5960 static int
5961 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_)
5963 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo21_home_directory);
5965 return offset;
5968 static int
5969 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_)
5971 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo21_home_drive);
5973 return offset;
5976 static int
5977 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_)
5979 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo21_logon_script);
5981 return offset;
5984 static int
5985 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_)
5987 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo21_profile_path);
5989 return offset;
5992 static int
5993 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_)
5995 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo21_description);
5997 return offset;
6000 static int
6001 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_)
6003 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo21_workstations);
6005 return offset;
6008 static int
6009 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_)
6011 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo21_comment);
6013 return offset;
6016 static int
6017 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_)
6019 offset=lsarpc_dissect_struct_lsa_BinaryString(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo21_parameters, 0);
6021 return offset;
6024 static int
6025 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_)
6027 offset=lsarpc_dissect_struct_lsa_BinaryString(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo21_lm_owf_password, 0);
6029 return offset;
6032 static int
6033 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_)
6035 offset=lsarpc_dissect_struct_lsa_BinaryString(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo21_nt_owf_password, 0);
6037 return offset;
6040 static int
6041 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_)
6043 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo21_private_data);
6045 return offset;
6048 static int
6049 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_)
6051 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo21_buf_count, 0);
6053 return offset;
6056 static int
6057 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_)
6059 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);
6061 return offset;
6064 static int
6065 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_)
6067 struct ndr_generic_array nga = { .is_conformant = false, };
6069 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
6071 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, samr_dissect_element_UserInfo21_buffer__);
6073 return offset;
6076 static int
6077 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_)
6079 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo21_buffer, 0);
6081 return offset;
6084 static int
6085 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_)
6087 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_rid, 0);
6089 return offset;
6092 static int
6093 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_)
6095 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo21_primary_gid, 0);
6097 return offset;
6100 static int
6101 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_)
6103 offset = samr_dissect_bitmap_AcctFlags(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo21_acct_flags, 0);
6105 return offset;
6108 static int
6109 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_)
6111 offset = samr_dissect_bitmap_FieldsPresent(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo21_fields_present, 0);
6113 return offset;
6116 static int
6117 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_)
6119 offset = samr_dissect_struct_LogonHours(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo21_logon_hours,0);
6121 return offset;
6124 static int
6125 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_)
6127 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo21_bad_password_count, 0);
6129 return offset;
6132 static int
6133 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_)
6135 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo21_logon_count, 0);
6137 return offset;
6140 static int
6141 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_)
6143 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo21_country_code, 0);
6145 return offset;
6148 static int
6149 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_)
6151 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo21_code_page, 0);
6153 return offset;
6156 static int
6157 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_)
6159 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo21_lm_password_set, 0);
6161 return offset;
6164 static int
6165 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_)
6167 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo21_nt_password_set, 0);
6169 return offset;
6172 static int
6173 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_)
6175 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo21_password_expired, 0);
6177 return offset;
6180 static int
6181 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_)
6183 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo21_private_data_sensitive, 0);
6185 return offset;
6189 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_)
6191 proto_item *item = NULL;
6192 proto_tree *tree = NULL;
6193 int old_offset;
6195 ALIGN_TO_5_BYTES;
6197 old_offset = offset;
6199 if (parent_tree) {
6200 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
6201 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo21);
6204 offset = samr_dissect_element_UserInfo21_last_logon(tvb, offset, pinfo, tree, di, drep);
6206 offset = samr_dissect_element_UserInfo21_last_logoff(tvb, offset, pinfo, tree, di, drep);
6208 offset = samr_dissect_element_UserInfo21_last_password_change(tvb, offset, pinfo, tree, di, drep);
6210 offset = samr_dissect_element_UserInfo21_acct_expiry(tvb, offset, pinfo, tree, di, drep);
6212 offset = samr_dissect_element_UserInfo21_allow_password_change(tvb, offset, pinfo, tree, di, drep);
6214 offset = samr_dissect_element_UserInfo21_force_password_change(tvb, offset, pinfo, tree, di, drep);
6216 offset = samr_dissect_element_UserInfo21_account_name(tvb, offset, pinfo, tree, di, drep);
6218 offset = samr_dissect_element_UserInfo21_full_name(tvb, offset, pinfo, tree, di, drep);
6220 offset = samr_dissect_element_UserInfo21_home_directory(tvb, offset, pinfo, tree, di, drep);
6222 offset = samr_dissect_element_UserInfo21_home_drive(tvb, offset, pinfo, tree, di, drep);
6224 offset = samr_dissect_element_UserInfo21_logon_script(tvb, offset, pinfo, tree, di, drep);
6226 offset = samr_dissect_element_UserInfo21_profile_path(tvb, offset, pinfo, tree, di, drep);
6228 offset = samr_dissect_element_UserInfo21_description(tvb, offset, pinfo, tree, di, drep);
6230 offset = samr_dissect_element_UserInfo21_workstations(tvb, offset, pinfo, tree, di, drep);
6232 offset = samr_dissect_element_UserInfo21_comment(tvb, offset, pinfo, tree, di, drep);
6234 offset = samr_dissect_element_UserInfo21_parameters(tvb, offset, pinfo, tree, di, drep);
6236 offset = samr_dissect_element_UserInfo21_lm_owf_password(tvb, offset, pinfo, tree, di, drep);
6238 offset = samr_dissect_element_UserInfo21_nt_owf_password(tvb, offset, pinfo, tree, di, drep);
6240 offset = samr_dissect_element_UserInfo21_private_data(tvb, offset, pinfo, tree, di, drep);
6242 offset = samr_dissect_element_UserInfo21_buf_count(tvb, offset, pinfo, tree, di, drep);
6244 offset = samr_dissect_element_UserInfo21_buffer(tvb, offset, pinfo, tree, di, drep);
6246 offset = samr_dissect_element_UserInfo21_rid(tvb, offset, pinfo, tree, di, drep);
6248 offset = samr_dissect_element_UserInfo21_primary_gid(tvb, offset, pinfo, tree, di, drep);
6250 offset = samr_dissect_element_UserInfo21_acct_flags(tvb, offset, pinfo, tree, di, drep);
6252 offset = samr_dissect_element_UserInfo21_fields_present(tvb, offset, pinfo, tree, di, drep);
6254 offset = samr_dissect_element_UserInfo21_logon_hours(tvb, offset, pinfo, tree, di, drep);
6256 offset = samr_dissect_element_UserInfo21_bad_password_count(tvb, offset, pinfo, tree, di, drep);
6258 offset = samr_dissect_element_UserInfo21_logon_count(tvb, offset, pinfo, tree, di, drep);
6260 offset = samr_dissect_element_UserInfo21_country_code(tvb, offset, pinfo, tree, di, drep);
6262 offset = samr_dissect_element_UserInfo21_code_page(tvb, offset, pinfo, tree, di, drep);
6264 offset = samr_dissect_element_UserInfo21_lm_password_set(tvb, offset, pinfo, tree, di, drep);
6266 offset = samr_dissect_element_UserInfo21_nt_password_set(tvb, offset, pinfo, tree, di, drep);
6268 offset = samr_dissect_element_UserInfo21_password_expired(tvb, offset, pinfo, tree, di, drep);
6270 offset = samr_dissect_element_UserInfo21_private_data_sensitive(tvb, offset, pinfo, tree, di, drep);
6273 proto_item_set_len(item, offset-old_offset);
6276 if (di->call_data->flags & DCERPC_IS_NDR64) {
6277 ALIGN_TO_5_BYTES;
6280 return offset;
6284 /* IDL: struct { */
6285 /* IDL: uint8 data[516]; */
6286 /* IDL: } */
6288 static int
6289 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_)
6291 int i;
6292 for (i = 0; i < 516; i++)
6293 offset = samr_dissect_element_CryptPassword_data_(tvb, offset, pinfo, tree, di, drep);
6295 return offset;
6298 static int
6299 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_)
6301 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_CryptPassword_data, 0);
6303 return offset;
6307 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_)
6309 proto_item *item = NULL;
6310 proto_tree *tree = NULL;
6311 int old_offset;
6313 old_offset = offset;
6315 if (parent_tree) {
6316 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
6317 tree = proto_item_add_subtree(item, ett_samr_samr_CryptPassword);
6320 offset = samr_dissect_element_CryptPassword_data(tvb, offset, pinfo, tree, di, drep);
6323 proto_item_set_len(item, offset-old_offset);
6326 return offset;
6330 /* IDL: struct { */
6331 /* IDL: samr_UserInfo21 info; */
6332 /* IDL: samr_CryptPassword password; */
6333 /* IDL: } */
6335 static int
6336 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_)
6338 offset = samr_dissect_struct_UserInfo21(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo23_info,0);
6340 return offset;
6343 static int
6344 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_)
6346 offset = samr_dissect_struct_CryptPassword(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo23_password,0);
6348 return offset;
6352 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_)
6354 proto_item *item = NULL;
6355 proto_tree *tree = NULL;
6356 int old_offset;
6358 ALIGN_TO_5_BYTES;
6360 old_offset = offset;
6362 if (parent_tree) {
6363 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
6364 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo23);
6367 offset = samr_dissect_element_UserInfo23_info(tvb, offset, pinfo, tree, di, drep);
6369 offset = samr_dissect_element_UserInfo23_password(tvb, offset, pinfo, tree, di, drep);
6372 proto_item_set_len(item, offset-old_offset);
6375 if (di->call_data->flags & DCERPC_IS_NDR64) {
6376 ALIGN_TO_5_BYTES;
6379 return offset;
6383 /* IDL: struct { */
6384 /* IDL: samr_CryptPassword password; */
6385 /* IDL: uint8 password_expired; */
6386 /* IDL: } */
6388 static int
6389 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_)
6391 offset = samr_dissect_struct_CryptPassword(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo24_password,0);
6393 return offset;
6396 static int
6397 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_)
6399 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo24_password_expired, 0);
6401 return offset;
6405 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_)
6407 proto_item *item = NULL;
6408 proto_tree *tree = NULL;
6409 int old_offset;
6411 old_offset = offset;
6413 if (parent_tree) {
6414 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
6415 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo24);
6418 offset = samr_dissect_element_UserInfo24_password(tvb, offset, pinfo, tree, di, drep);
6420 offset = samr_dissect_element_UserInfo24_password_expired(tvb, offset, pinfo, tree, di, drep);
6423 proto_item_set_len(item, offset-old_offset);
6426 return offset;
6430 /* IDL: struct { */
6431 /* IDL: uint8 data[532]; */
6432 /* IDL: } */
6434 static int
6435 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_)
6437 int i;
6438 for (i = 0; i < 532; i++)
6439 offset = samr_dissect_element_CryptPasswordEx_data_(tvb, offset, pinfo, tree, di, drep);
6441 return offset;
6444 static int
6445 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_)
6447 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_CryptPasswordEx_data, 0);
6449 return offset;
6453 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_)
6455 proto_item *item = NULL;
6456 proto_tree *tree = NULL;
6457 int old_offset;
6459 old_offset = offset;
6461 if (parent_tree) {
6462 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
6463 tree = proto_item_add_subtree(item, ett_samr_samr_CryptPasswordEx);
6466 offset = samr_dissect_element_CryptPasswordEx_data(tvb, offset, pinfo, tree, di, drep);
6469 proto_item_set_len(item, offset-old_offset);
6472 return offset;
6476 /* IDL: struct { */
6477 /* IDL: samr_UserInfo21 info; */
6478 /* IDL: samr_CryptPasswordEx password; */
6479 /* IDL: } */
6481 static int
6482 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_)
6484 offset = samr_dissect_struct_UserInfo21(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo25_info,0);
6486 return offset;
6489 static int
6490 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_)
6492 offset = samr_dissect_struct_CryptPasswordEx(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo25_password,0);
6494 return offset;
6498 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_)
6500 proto_item *item = NULL;
6501 proto_tree *tree = NULL;
6502 int old_offset;
6504 ALIGN_TO_5_BYTES;
6506 old_offset = offset;
6508 if (parent_tree) {
6509 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
6510 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo25);
6513 offset = samr_dissect_element_UserInfo25_info(tvb, offset, pinfo, tree, di, drep);
6515 offset = samr_dissect_element_UserInfo25_password(tvb, offset, pinfo, tree, di, drep);
6518 proto_item_set_len(item, offset-old_offset);
6521 if (di->call_data->flags & DCERPC_IS_NDR64) {
6522 ALIGN_TO_5_BYTES;
6525 return offset;
6529 /* IDL: struct { */
6530 /* IDL: samr_CryptPasswordEx password; */
6531 /* IDL: uint8 password_expired; */
6532 /* IDL: } */
6534 static int
6535 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_)
6537 offset = samr_dissect_struct_CryptPasswordEx(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo26_password,0);
6539 return offset;
6542 static int
6543 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_)
6545 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo26_password_expired, 0);
6547 return offset;
6551 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_)
6553 proto_item *item = NULL;
6554 proto_tree *tree = NULL;
6555 int old_offset;
6557 old_offset = offset;
6559 if (parent_tree) {
6560 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
6561 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo26);
6564 offset = samr_dissect_element_UserInfo26_password(tvb, offset, pinfo, tree, di, drep);
6566 offset = samr_dissect_element_UserInfo26_password_expired(tvb, offset, pinfo, tree, di, drep);
6569 proto_item_set_len(item, offset-old_offset);
6572 return offset;
6576 /* IDL: struct { */
6577 /* IDL: uint8 auth_data[64]; */
6578 /* IDL: uint8 salt[16]; */
6579 /* IDL: uint32 cipher_len; */
6580 /* IDL: [size_is(cipher_len)] [unique(1)] uint8 *cipher; */
6581 /* IDL: hyper PBKDF2Iterations; */
6582 /* IDL: } */
6584 static int
6585 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_)
6587 int i;
6588 for (i = 0; i < 64; i++)
6589 offset = samr_dissect_element_EncryptedPasswordAES_auth_data_(tvb, offset, pinfo, tree, di, drep);
6591 return offset;
6594 static int
6595 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_)
6597 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_EncryptedPasswordAES_auth_data, 0);
6599 return offset;
6602 static int
6603 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_)
6605 int i;
6606 for (i = 0; i < 16; i++)
6607 offset = samr_dissect_element_EncryptedPasswordAES_salt_(tvb, offset, pinfo, tree, di, drep);
6609 return offset;
6612 static int
6613 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_)
6615 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_EncryptedPasswordAES_salt, 0);
6617 return offset;
6620 static int
6621 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_)
6623 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_EncryptedPasswordAES_cipher_len, 0);
6625 return offset;
6628 static int
6629 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_)
6631 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);
6633 return offset;
6636 static int
6637 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_)
6639 struct ndr_generic_array nga = { .is_conformant = false, };
6641 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
6643 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, samr_dissect_element_EncryptedPasswordAES_cipher__);
6645 return offset;
6648 static int
6649 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_)
6651 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_EncryptedPasswordAES_cipher, 0);
6653 return offset;
6656 static int
6657 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_)
6659 offset=cnf_dissect_hyper(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_EncryptedPasswordAES_PBKDF2Iterations);
6661 return offset;
6665 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_)
6667 proto_item *item = NULL;
6668 proto_tree *tree = NULL;
6669 int old_offset;
6671 ALIGN_TO_8_BYTES;
6673 old_offset = offset;
6675 if (parent_tree) {
6676 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
6677 tree = proto_item_add_subtree(item, ett_samr_samr_EncryptedPasswordAES);
6680 offset = samr_dissect_element_EncryptedPasswordAES_auth_data(tvb, offset, pinfo, tree, di, drep);
6682 offset = samr_dissect_element_EncryptedPasswordAES_salt(tvb, offset, pinfo, tree, di, drep);
6684 offset = samr_dissect_element_EncryptedPasswordAES_cipher_len(tvb, offset, pinfo, tree, di, drep);
6686 offset = samr_dissect_element_EncryptedPasswordAES_cipher(tvb, offset, pinfo, tree, di, drep);
6688 offset = samr_dissect_element_EncryptedPasswordAES_PBKDF2Iterations(tvb, offset, pinfo, tree, di, drep);
6691 proto_item_set_len(item, offset-old_offset);
6694 if (di->call_data->flags & DCERPC_IS_NDR64) {
6695 ALIGN_TO_8_BYTES;
6698 return offset;
6702 /* IDL: struct { */
6703 /* IDL: samr_EncryptedPasswordAES password; */
6704 /* IDL: uint8 password_expired; */
6705 /* IDL: } */
6707 static int
6708 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_)
6710 offset = samr_dissect_struct_EncryptedPasswordAES(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo31_password,0);
6712 return offset;
6715 static int
6716 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_)
6718 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo31_password_expired, 0);
6720 return offset;
6724 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_)
6726 proto_item *item = NULL;
6727 proto_tree *tree = NULL;
6728 int old_offset;
6730 ALIGN_TO_8_BYTES;
6732 old_offset = offset;
6734 if (parent_tree) {
6735 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
6736 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo31);
6739 offset = samr_dissect_element_UserInfo31_password(tvb, offset, pinfo, tree, di, drep);
6741 offset = samr_dissect_element_UserInfo31_password_expired(tvb, offset, pinfo, tree, di, drep);
6744 proto_item_set_len(item, offset-old_offset);
6747 if (di->call_data->flags & DCERPC_IS_NDR64) {
6748 ALIGN_TO_8_BYTES;
6751 return offset;
6755 /* IDL: struct { */
6756 /* IDL: samr_UserInfo21 info; */
6757 /* IDL: samr_EncryptedPasswordAES password; */
6758 /* IDL: } */
6760 static int
6761 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_)
6763 offset = samr_dissect_struct_UserInfo21(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo32_info,0);
6765 return offset;
6768 static int
6769 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_)
6771 offset = samr_dissect_struct_EncryptedPasswordAES(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo32_password,0);
6773 return offset;
6777 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_)
6779 proto_item *item = NULL;
6780 proto_tree *tree = NULL;
6781 int old_offset;
6783 ALIGN_TO_8_BYTES;
6785 old_offset = offset;
6787 if (parent_tree) {
6788 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
6789 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo32);
6792 offset = samr_dissect_element_UserInfo32_info(tvb, offset, pinfo, tree, di, drep);
6794 offset = samr_dissect_element_UserInfo32_password(tvb, offset, pinfo, tree, di, drep);
6797 proto_item_set_len(item, offset-old_offset);
6800 if (di->call_data->flags & DCERPC_IS_NDR64) {
6801 ALIGN_TO_8_BYTES;
6804 return offset;
6808 /* IDL: [switch_type(uint16)] union { */
6809 /* IDL: [case(1)] [case(1)] samr_UserInfo1 info1; */
6810 /* IDL: [case(2)] [case(2)] samr_UserInfo2 info2; */
6811 /* IDL: [case(3)] [case(3)] samr_UserInfo3 info3; */
6812 /* IDL: [case(4)] [case(4)] samr_UserInfo4 info4; */
6813 /* IDL: [case(5)] [case(5)] samr_UserInfo5 info5; */
6814 /* IDL: [case(6)] [case(6)] samr_UserInfo6 info6; */
6815 /* IDL: [case(7)] [case(7)] samr_UserInfo7 info7; */
6816 /* IDL: [case(8)] [case(8)] samr_UserInfo8 info8; */
6817 /* IDL: [case(9)] [case(9)] samr_UserInfo9 info9; */
6818 /* IDL: [case(10)] [case(10)] samr_UserInfo10 info10; */
6819 /* IDL: [case(11)] [case(11)] samr_UserInfo11 info11; */
6820 /* IDL: [case(12)] [case(12)] samr_UserInfo12 info12; */
6821 /* IDL: [case(13)] [case(13)] samr_UserInfo13 info13; */
6822 /* IDL: [case(14)] [case(14)] samr_UserInfo14 info14; */
6823 /* IDL: [case(16)] [case(16)] samr_UserInfo16 info16; */
6824 /* IDL: [case(17)] [case(17)] samr_UserInfo17 info17; */
6825 /* IDL: [case(18)] [case(18)] samr_UserInfo18 info18; */
6826 /* IDL: [case(20)] [case(20)] samr_UserInfo20 info20; */
6827 /* IDL: [case(21)] [case(21)] samr_UserInfo21 info21; */
6828 /* IDL: [case(23)] [case(23)] samr_UserInfo23 info23; */
6829 /* IDL: [case(24)] [case(24)] samr_UserInfo24 info24; */
6830 /* IDL: [case(25)] [case(25)] samr_UserInfo25 info25; */
6831 /* IDL: [case(26)] [case(26)] samr_UserInfo26 info26; */
6832 /* IDL: [case(31)] [case(31)] samr_UserInfo31 info31; */
6833 /* IDL: [case(32)] [case(32)] samr_UserInfo32 info32; */
6834 /* IDL: } */
6836 static int
6837 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_)
6839 offset = samr_dissect_struct_UserInfo1(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo_info1,0);
6841 return offset;
6844 static int
6845 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_)
6847 offset = samr_dissect_struct_UserInfo2(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo_info2,0);
6849 return offset;
6852 static int
6853 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_)
6855 offset = samr_dissect_struct_UserInfo3(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo_info3,0);
6857 return offset;
6860 static int
6861 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_)
6863 offset = samr_dissect_struct_UserInfo4(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo_info4,0);
6865 return offset;
6868 static int
6869 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_)
6871 offset = samr_dissect_struct_UserInfo5(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo_info5,0);
6873 return offset;
6876 static int
6877 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_)
6879 offset = samr_dissect_struct_UserInfo6(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo_info6,0);
6881 return offset;
6884 static int
6885 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_)
6887 offset = samr_dissect_struct_UserInfo7(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo_info7,0);
6889 return offset;
6892 static int
6893 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_)
6895 offset = samr_dissect_struct_UserInfo8(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo_info8,0);
6897 return offset;
6900 static int
6901 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_)
6903 offset = samr_dissect_struct_UserInfo9(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo_info9,0);
6905 return offset;
6908 static int
6909 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_)
6911 offset = samr_dissect_struct_UserInfo10(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo_info10,0);
6913 return offset;
6916 static int
6917 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_)
6919 offset = samr_dissect_struct_UserInfo11(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo_info11,0);
6921 return offset;
6924 static int
6925 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_)
6927 offset = samr_dissect_struct_UserInfo12(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo_info12,0);
6929 return offset;
6932 static int
6933 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_)
6935 offset = samr_dissect_struct_UserInfo13(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo_info13,0);
6937 return offset;
6940 static int
6941 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_)
6943 offset = samr_dissect_struct_UserInfo14(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo_info14,0);
6945 return offset;
6948 static int
6949 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_)
6951 offset = samr_dissect_struct_UserInfo16(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo_info16,0);
6953 return offset;
6956 static int
6957 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_)
6959 offset = samr_dissect_struct_UserInfo17(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo_info17,0);
6961 return offset;
6964 static int
6965 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_)
6967 offset = samr_dissect_struct_UserInfo18(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo_info18,0);
6969 return offset;
6972 static int
6973 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_)
6975 offset = samr_dissect_struct_UserInfo20(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo_info20,0);
6977 return offset;
6980 static int
6981 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_)
6983 offset = samr_dissect_struct_UserInfo21(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo_info21,0);
6985 return offset;
6988 static int
6989 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_)
6991 offset = samr_dissect_struct_UserInfo23(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo_info23,0);
6993 return offset;
6996 static int
6997 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_)
6999 offset = samr_dissect_struct_UserInfo24(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo_info24,0);
7001 return offset;
7004 static int
7005 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_)
7007 offset = samr_dissect_struct_UserInfo25(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo_info25,0);
7009 return offset;
7012 static int
7013 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_)
7015 offset = samr_dissect_struct_UserInfo26(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo_info26,0);
7017 return offset;
7020 static int
7021 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_)
7023 offset = samr_dissect_struct_UserInfo31(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo_info31,0);
7025 return offset;
7028 static int
7029 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_)
7031 offset = samr_dissect_struct_UserInfo32(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_UserInfo_info32,0);
7033 return offset;
7036 static int
7037 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_)
7039 proto_item *item = NULL;
7040 proto_tree *tree = NULL;
7041 int old_offset;
7042 uint16_t level;
7044 old_offset = offset;
7045 if (parent_tree) {
7046 tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_samr_samr_UserInfo, &item, "samr_UserInfo");
7049 UNION_ALIGN_TO_8_BYTES;
7050 offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
7051 UNION_ALIGN_TO_8_BYTES;
7053 switch(level) {
7054 case 1:
7055 offset = samr_dissect_element_UserInfo_info1(tvb, offset, pinfo, tree, di, drep);
7056 break;
7058 case 2:
7059 offset = samr_dissect_element_UserInfo_info2(tvb, offset, pinfo, tree, di, drep);
7060 break;
7062 case 3:
7063 offset = samr_dissect_element_UserInfo_info3(tvb, offset, pinfo, tree, di, drep);
7064 break;
7066 case 4:
7067 offset = samr_dissect_element_UserInfo_info4(tvb, offset, pinfo, tree, di, drep);
7068 break;
7070 case 5:
7071 offset = samr_dissect_element_UserInfo_info5(tvb, offset, pinfo, tree, di, drep);
7072 break;
7074 case 6:
7075 offset = samr_dissect_element_UserInfo_info6(tvb, offset, pinfo, tree, di, drep);
7076 break;
7078 case 7:
7079 offset = samr_dissect_element_UserInfo_info7(tvb, offset, pinfo, tree, di, drep);
7080 break;
7082 case 8:
7083 offset = samr_dissect_element_UserInfo_info8(tvb, offset, pinfo, tree, di, drep);
7084 break;
7086 case 9:
7087 offset = samr_dissect_element_UserInfo_info9(tvb, offset, pinfo, tree, di, drep);
7088 break;
7090 case 10:
7091 offset = samr_dissect_element_UserInfo_info10(tvb, offset, pinfo, tree, di, drep);
7092 break;
7094 case 11:
7095 offset = samr_dissect_element_UserInfo_info11(tvb, offset, pinfo, tree, di, drep);
7096 break;
7098 case 12:
7099 offset = samr_dissect_element_UserInfo_info12(tvb, offset, pinfo, tree, di, drep);
7100 break;
7102 case 13:
7103 offset = samr_dissect_element_UserInfo_info13(tvb, offset, pinfo, tree, di, drep);
7104 break;
7106 case 14:
7107 offset = samr_dissect_element_UserInfo_info14(tvb, offset, pinfo, tree, di, drep);
7108 break;
7110 case 16:
7111 offset = samr_dissect_element_UserInfo_info16(tvb, offset, pinfo, tree, di, drep);
7112 break;
7114 case 17:
7115 offset = samr_dissect_element_UserInfo_info17(tvb, offset, pinfo, tree, di, drep);
7116 break;
7118 case 18:
7119 offset = samr_dissect_element_UserInfo_info18(tvb, offset, pinfo, tree, di, drep);
7120 break;
7122 case 20:
7123 offset = samr_dissect_element_UserInfo_info20(tvb, offset, pinfo, tree, di, drep);
7124 break;
7126 case 21:
7127 offset = samr_dissect_element_UserInfo_info21(tvb, offset, pinfo, tree, di, drep);
7128 break;
7130 case 23:
7131 offset = samr_dissect_element_UserInfo_info23(tvb, offset, pinfo, tree, di, drep);
7132 break;
7134 case 24:
7135 offset = samr_dissect_element_UserInfo_info24(tvb, offset, pinfo, tree, di, drep);
7136 break;
7138 case 25:
7139 offset = samr_dissect_element_UserInfo_info25(tvb, offset, pinfo, tree, di, drep);
7140 break;
7142 case 26:
7143 offset = samr_dissect_element_UserInfo_info26(tvb, offset, pinfo, tree, di, drep);
7144 break;
7146 case 31:
7147 offset = samr_dissect_element_UserInfo_info31(tvb, offset, pinfo, tree, di, drep);
7148 break;
7150 case 32:
7151 offset = samr_dissect_element_UserInfo_info32(tvb, offset, pinfo, tree, di, drep);
7152 break;
7154 proto_item_set_len(item, offset-old_offset);
7157 return offset;
7160 /* IDL: struct { */
7161 /* IDL: uint32 rid; */
7162 /* IDL: samr_GroupAttrs attributes; */
7163 /* IDL: } */
7165 static int
7166 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_)
7168 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_rid, 0);
7170 return offset;
7173 static int
7174 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_)
7176 offset = samr_dissect_bitmap_GroupAttrs(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_RidWithAttribute_attributes, 0);
7178 return offset;
7182 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_)
7184 proto_item *item = NULL;
7185 proto_tree *tree = NULL;
7186 int old_offset;
7188 ALIGN_TO_4_BYTES;
7190 old_offset = offset;
7192 if (parent_tree) {
7193 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
7194 tree = proto_item_add_subtree(item, ett_samr_samr_RidWithAttribute);
7197 offset = samr_dissect_element_RidWithAttribute_rid(tvb, offset, pinfo, tree, di, drep);
7199 offset = samr_dissect_element_RidWithAttribute_attributes(tvb, offset, pinfo, tree, di, drep);
7202 proto_item_set_len(item, offset-old_offset);
7205 if (di->call_data->flags & DCERPC_IS_NDR64) {
7206 ALIGN_TO_4_BYTES;
7209 return offset;
7213 /* IDL: struct { */
7214 /* IDL: uint32 count; */
7215 /* IDL: [size_is(count)] [unique(1)] samr_RidWithAttribute *rids; */
7216 /* IDL: } */
7218 static int
7219 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_)
7221 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_RidWithAttributeArray_count, 0);
7223 return offset;
7226 static int
7227 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_)
7229 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);
7231 return offset;
7234 static int
7235 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_)
7237 struct ndr_generic_array nga = { .is_conformant = false, };
7239 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
7241 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, samr_dissect_element_RidWithAttributeArray_rids__);
7243 return offset;
7246 static int
7247 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_)
7249 offset = samr_dissect_struct_RidWithAttribute(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_RidWithAttributeArray_rids,0);
7251 return offset;
7255 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_)
7257 proto_item *item = NULL;
7258 proto_tree *tree = NULL;
7259 int old_offset;
7261 ALIGN_TO_5_BYTES;
7263 old_offset = offset;
7265 if (parent_tree) {
7266 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
7267 tree = proto_item_add_subtree(item, ett_samr_samr_RidWithAttributeArray);
7270 offset = samr_dissect_element_RidWithAttributeArray_count(tvb, offset, pinfo, tree, di, drep);
7272 offset = samr_dissect_element_RidWithAttributeArray_rids(tvb, offset, pinfo, tree, di, drep);
7275 proto_item_set_len(item, offset-old_offset);
7278 if (di->call_data->flags & DCERPC_IS_NDR64) {
7279 ALIGN_TO_5_BYTES;
7282 return offset;
7286 /* IDL: struct { */
7287 /* IDL: uint32 idx; */
7288 /* IDL: uint32 rid; */
7289 /* IDL: samr_AcctFlags acct_flags; */
7290 /* IDL: lsa_String account_name; */
7291 /* IDL: lsa_String description; */
7292 /* IDL: lsa_String full_name; */
7293 /* IDL: } */
7295 static int
7296 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_)
7298 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DispEntryGeneral_idx, 0);
7300 return offset;
7303 static int
7304 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_)
7306 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_rid, 0);
7308 return offset;
7311 static int
7312 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_)
7314 offset = samr_dissect_bitmap_AcctFlags(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DispEntryGeneral_acct_flags, 0);
7316 return offset;
7319 static int
7320 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_)
7322 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_DispEntryGeneral_account_name);
7324 return offset;
7327 static int
7328 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_)
7330 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_DispEntryGeneral_description);
7332 return offset;
7335 static int
7336 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_)
7338 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_DispEntryGeneral_full_name);
7340 return offset;
7344 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_)
7346 proto_item *item = NULL;
7347 proto_tree *tree = NULL;
7348 int old_offset;
7350 ALIGN_TO_5_BYTES;
7352 old_offset = offset;
7354 if (parent_tree) {
7355 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
7356 tree = proto_item_add_subtree(item, ett_samr_samr_DispEntryGeneral);
7359 offset = samr_dissect_element_DispEntryGeneral_idx(tvb, offset, pinfo, tree, di, drep);
7361 offset = samr_dissect_element_DispEntryGeneral_rid(tvb, offset, pinfo, tree, di, drep);
7363 offset = samr_dissect_element_DispEntryGeneral_acct_flags(tvb, offset, pinfo, tree, di, drep);
7365 offset = samr_dissect_element_DispEntryGeneral_account_name(tvb, offset, pinfo, tree, di, drep);
7367 offset = samr_dissect_element_DispEntryGeneral_description(tvb, offset, pinfo, tree, di, drep);
7369 offset = samr_dissect_element_DispEntryGeneral_full_name(tvb, offset, pinfo, tree, di, drep);
7372 proto_item_set_len(item, offset-old_offset);
7375 if (di->call_data->flags & DCERPC_IS_NDR64) {
7376 ALIGN_TO_5_BYTES;
7379 return offset;
7383 /* IDL: struct { */
7384 /* IDL: uint32 count; */
7385 /* IDL: [size_is(count)] [unique(1)] samr_DispEntryGeneral *entries; */
7386 /* IDL: } */
7388 static int
7389 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_)
7391 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DispInfoGeneral_count, 0);
7393 return offset;
7396 static int
7397 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_)
7399 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);
7401 return offset;
7404 static int
7405 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_)
7407 struct ndr_generic_array nga = { .is_conformant = false, };
7409 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
7411 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, samr_dissect_element_DispInfoGeneral_entries__);
7413 return offset;
7416 static int
7417 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_)
7419 offset = samr_dissect_struct_DispEntryGeneral(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_DispInfoGeneral_entries,0);
7421 return offset;
7425 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_)
7427 proto_item *item = NULL;
7428 proto_tree *tree = NULL;
7429 int old_offset;
7431 ALIGN_TO_5_BYTES;
7433 old_offset = offset;
7435 if (parent_tree) {
7436 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
7437 tree = proto_item_add_subtree(item, ett_samr_samr_DispInfoGeneral);
7440 offset = samr_dissect_element_DispInfoGeneral_count(tvb, offset, pinfo, tree, di, drep);
7442 offset = samr_dissect_element_DispInfoGeneral_entries(tvb, offset, pinfo, tree, di, drep);
7445 proto_item_set_len(item, offset-old_offset);
7448 if (di->call_data->flags & DCERPC_IS_NDR64) {
7449 ALIGN_TO_5_BYTES;
7452 return offset;
7456 /* IDL: struct { */
7457 /* IDL: uint32 idx; */
7458 /* IDL: uint32 rid; */
7459 /* IDL: samr_AcctFlags acct_flags; */
7460 /* IDL: lsa_String account_name; */
7461 /* IDL: lsa_String description; */
7462 /* IDL: } */
7464 static int
7465 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_)
7467 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DispEntryFull_idx, 0);
7469 return offset;
7472 static int
7473 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_)
7475 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_rid, 0);
7477 return offset;
7480 static int
7481 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_)
7483 offset = samr_dissect_bitmap_AcctFlags(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DispEntryFull_acct_flags, 0);
7485 return offset;
7488 static int
7489 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_)
7491 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_DispEntryFull_account_name);
7493 return offset;
7496 static int
7497 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_)
7499 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_DispEntryFull_description);
7501 return offset;
7505 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_)
7507 proto_item *item = NULL;
7508 proto_tree *tree = NULL;
7509 int old_offset;
7511 ALIGN_TO_5_BYTES;
7513 old_offset = offset;
7515 if (parent_tree) {
7516 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
7517 tree = proto_item_add_subtree(item, ett_samr_samr_DispEntryFull);
7520 offset = samr_dissect_element_DispEntryFull_idx(tvb, offset, pinfo, tree, di, drep);
7522 offset = samr_dissect_element_DispEntryFull_rid(tvb, offset, pinfo, tree, di, drep);
7524 offset = samr_dissect_element_DispEntryFull_acct_flags(tvb, offset, pinfo, tree, di, drep);
7526 offset = samr_dissect_element_DispEntryFull_account_name(tvb, offset, pinfo, tree, di, drep);
7528 offset = samr_dissect_element_DispEntryFull_description(tvb, offset, pinfo, tree, di, drep);
7531 proto_item_set_len(item, offset-old_offset);
7534 if (di->call_data->flags & DCERPC_IS_NDR64) {
7535 ALIGN_TO_5_BYTES;
7538 return offset;
7542 /* IDL: struct { */
7543 /* IDL: uint32 count; */
7544 /* IDL: [size_is(count)] [unique(1)] samr_DispEntryFull *entries; */
7545 /* IDL: } */
7547 static int
7548 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_)
7550 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DispInfoFull_count, 0);
7552 return offset;
7555 static int
7556 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_)
7558 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);
7560 return offset;
7563 static int
7564 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_)
7566 struct ndr_generic_array nga = { .is_conformant = false, };
7568 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
7570 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, samr_dissect_element_DispInfoFull_entries__);
7572 return offset;
7575 static int
7576 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_)
7578 offset = samr_dissect_struct_DispEntryFull(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_DispInfoFull_entries,0);
7580 return offset;
7584 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_)
7586 proto_item *item = NULL;
7587 proto_tree *tree = NULL;
7588 int old_offset;
7590 ALIGN_TO_5_BYTES;
7592 old_offset = offset;
7594 if (parent_tree) {
7595 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
7596 tree = proto_item_add_subtree(item, ett_samr_samr_DispInfoFull);
7599 offset = samr_dissect_element_DispInfoFull_count(tvb, offset, pinfo, tree, di, drep);
7601 offset = samr_dissect_element_DispInfoFull_entries(tvb, offset, pinfo, tree, di, drep);
7604 proto_item_set_len(item, offset-old_offset);
7607 if (di->call_data->flags & DCERPC_IS_NDR64) {
7608 ALIGN_TO_5_BYTES;
7611 return offset;
7615 /* IDL: struct { */
7616 /* IDL: uint32 idx; */
7617 /* IDL: uint32 rid; */
7618 /* IDL: samr_GroupAttrs acct_flags; */
7619 /* IDL: lsa_String account_name; */
7620 /* IDL: lsa_String description; */
7621 /* IDL: } */
7623 static int
7624 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_)
7626 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DispEntryFullGroup_idx, 0);
7628 return offset;
7631 static int
7632 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_)
7634 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_rid, 0);
7636 return offset;
7639 static int
7640 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_)
7642 offset = samr_dissect_bitmap_GroupAttrs(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DispEntryFullGroup_acct_flags, 0);
7644 return offset;
7647 static int
7648 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_)
7650 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_DispEntryFullGroup_account_name);
7652 return offset;
7655 static int
7656 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_)
7658 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_DispEntryFullGroup_description);
7660 return offset;
7664 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_)
7666 proto_item *item = NULL;
7667 proto_tree *tree = NULL;
7668 int old_offset;
7670 ALIGN_TO_5_BYTES;
7672 old_offset = offset;
7674 if (parent_tree) {
7675 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
7676 tree = proto_item_add_subtree(item, ett_samr_samr_DispEntryFullGroup);
7679 offset = samr_dissect_element_DispEntryFullGroup_idx(tvb, offset, pinfo, tree, di, drep);
7681 offset = samr_dissect_element_DispEntryFullGroup_rid(tvb, offset, pinfo, tree, di, drep);
7683 offset = samr_dissect_element_DispEntryFullGroup_acct_flags(tvb, offset, pinfo, tree, di, drep);
7685 offset = samr_dissect_element_DispEntryFullGroup_account_name(tvb, offset, pinfo, tree, di, drep);
7687 offset = samr_dissect_element_DispEntryFullGroup_description(tvb, offset, pinfo, tree, di, drep);
7690 proto_item_set_len(item, offset-old_offset);
7693 if (di->call_data->flags & DCERPC_IS_NDR64) {
7694 ALIGN_TO_5_BYTES;
7697 return offset;
7701 /* IDL: struct { */
7702 /* IDL: uint32 count; */
7703 /* IDL: [size_is(count)] [unique(1)] samr_DispEntryFullGroup *entries; */
7704 /* IDL: } */
7706 static int
7707 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_)
7709 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DispInfoFullGroups_count, 0);
7711 return offset;
7714 static int
7715 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_)
7717 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);
7719 return offset;
7722 static int
7723 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_)
7725 struct ndr_generic_array nga = { .is_conformant = false, };
7727 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
7729 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, samr_dissect_element_DispInfoFullGroups_entries__);
7731 return offset;
7734 static int
7735 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_)
7737 offset = samr_dissect_struct_DispEntryFullGroup(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_DispInfoFullGroups_entries,0);
7739 return offset;
7743 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_)
7745 proto_item *item = NULL;
7746 proto_tree *tree = NULL;
7747 int old_offset;
7749 ALIGN_TO_5_BYTES;
7751 old_offset = offset;
7753 if (parent_tree) {
7754 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
7755 tree = proto_item_add_subtree(item, ett_samr_samr_DispInfoFullGroups);
7758 offset = samr_dissect_element_DispInfoFullGroups_count(tvb, offset, pinfo, tree, di, drep);
7760 offset = samr_dissect_element_DispInfoFullGroups_entries(tvb, offset, pinfo, tree, di, drep);
7763 proto_item_set_len(item, offset-old_offset);
7766 if (di->call_data->flags & DCERPC_IS_NDR64) {
7767 ALIGN_TO_5_BYTES;
7770 return offset;
7774 /* IDL: struct { */
7775 /* IDL: uint32 idx; */
7776 /* IDL: lsa_AsciiStringLarge account_name; */
7777 /* IDL: } */
7779 static int
7780 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_)
7782 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DispEntryAscii_idx, 0);
7784 return offset;
7787 static int
7788 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_)
7790 offset=cnf_dissect_lsa_AsciiString(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_DispEntryAscii_account_name);
7792 return offset;
7796 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_)
7798 proto_item *item = NULL;
7799 proto_tree *tree = NULL;
7800 int old_offset;
7802 ALIGN_TO_5_BYTES;
7804 old_offset = offset;
7806 if (parent_tree) {
7807 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
7808 tree = proto_item_add_subtree(item, ett_samr_samr_DispEntryAscii);
7811 offset = samr_dissect_element_DispEntryAscii_idx(tvb, offset, pinfo, tree, di, drep);
7813 offset = samr_dissect_element_DispEntryAscii_account_name(tvb, offset, pinfo, tree, di, drep);
7816 proto_item_set_len(item, offset-old_offset);
7819 if (di->call_data->flags & DCERPC_IS_NDR64) {
7820 ALIGN_TO_5_BYTES;
7823 return offset;
7827 /* IDL: struct { */
7828 /* IDL: uint32 count; */
7829 /* IDL: [size_is(count)] [unique(1)] samr_DispEntryAscii *entries; */
7830 /* IDL: } */
7832 static int
7833 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_)
7835 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_DispInfoAscii_count, 0);
7837 return offset;
7840 static int
7841 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_)
7843 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);
7845 return offset;
7848 static int
7849 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_)
7851 struct ndr_generic_array nga = { .is_conformant = false, };
7853 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
7855 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, samr_dissect_element_DispInfoAscii_entries__);
7857 return offset;
7860 static int
7861 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_)
7863 offset = samr_dissect_struct_DispEntryAscii(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_DispInfoAscii_entries,0);
7865 return offset;
7869 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_)
7871 proto_item *item = NULL;
7872 proto_tree *tree = NULL;
7873 int old_offset;
7875 ALIGN_TO_5_BYTES;
7877 old_offset = offset;
7879 if (parent_tree) {
7880 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
7881 tree = proto_item_add_subtree(item, ett_samr_samr_DispInfoAscii);
7884 offset = samr_dissect_element_DispInfoAscii_count(tvb, offset, pinfo, tree, di, drep);
7886 offset = samr_dissect_element_DispInfoAscii_entries(tvb, offset, pinfo, tree, di, drep);
7889 proto_item_set_len(item, offset-old_offset);
7892 if (di->call_data->flags & DCERPC_IS_NDR64) {
7893 ALIGN_TO_5_BYTES;
7896 return offset;
7900 /* IDL: enum { */
7901 /* IDL: SAMR_DOMAIN_DISPLAY_USER=1, */
7902 /* IDL: SAMR_DOMAIN_DISPLAY_MACHINE=2, */
7903 /* IDL: SAMR_DOMAIN_DISPLAY_GROUP=3, */
7904 /* IDL: SAMR_DOMAIN_DISPLAY_OEM_USER=4, */
7905 /* IDL: SAMR_DOMAIN_DISPLAY_OEM_GROUP=5, */
7906 /* IDL: } */
7909 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_)
7911 uint32_t parameter=0;
7912 if (param) {
7913 parameter = *param;
7915 offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
7916 if (param) {
7917 *param = parameter;
7919 return offset;
7923 /* IDL: [switch_type(uint16)] union { */
7924 /* IDL: [case(SAMR_DOMAIN_DISPLAY_USER)] [case(SAMR_DOMAIN_DISPLAY_USER)] samr_DispInfoGeneral info1; */
7925 /* IDL: [case(SAMR_DOMAIN_DISPLAY_MACHINE)] [case(SAMR_DOMAIN_DISPLAY_MACHINE)] samr_DispInfoFull info2; */
7926 /* IDL: [case(SAMR_DOMAIN_DISPLAY_GROUP)] [case(SAMR_DOMAIN_DISPLAY_GROUP)] samr_DispInfoFullGroups info3; */
7927 /* IDL: [case(SAMR_DOMAIN_DISPLAY_OEM_USER)] [case(SAMR_DOMAIN_DISPLAY_OEM_USER)] samr_DispInfoAscii info4; */
7928 /* IDL: [case(SAMR_DOMAIN_DISPLAY_OEM_GROUP)] [case(SAMR_DOMAIN_DISPLAY_OEM_GROUP)] samr_DispInfoAscii info5; */
7929 /* IDL: } */
7931 static int
7932 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_)
7934 offset = samr_dissect_struct_DispInfoGeneral(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_DispInfo_info1,0);
7936 return offset;
7939 static int
7940 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_)
7942 offset = samr_dissect_struct_DispInfoFull(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_DispInfo_info2,0);
7944 return offset;
7947 static int
7948 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_)
7950 offset = samr_dissect_struct_DispInfoFullGroups(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_DispInfo_info3,0);
7952 return offset;
7955 static int
7956 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_)
7958 offset = samr_dissect_struct_DispInfoAscii(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_DispInfo_info4,0);
7960 return offset;
7963 static int
7964 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_)
7966 offset = samr_dissect_struct_DispInfoAscii(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_DispInfo_info5,0);
7968 return offset;
7971 static int
7972 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_)
7974 proto_item *item = NULL;
7975 proto_tree *tree = NULL;
7976 int old_offset;
7977 uint16_t level;
7979 old_offset = offset;
7980 if (parent_tree) {
7981 tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_samr_samr_DispInfo, &item, "samr_DispInfo");
7984 UNION_ALIGN_TO_5_BYTES;
7985 offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
7986 UNION_ALIGN_TO_5_BYTES;
7988 switch(level) {
7989 case SAMR_DOMAIN_DISPLAY_USER:
7990 offset = samr_dissect_element_DispInfo_info1(tvb, offset, pinfo, tree, di, drep);
7991 break;
7993 case SAMR_DOMAIN_DISPLAY_MACHINE:
7994 offset = samr_dissect_element_DispInfo_info2(tvb, offset, pinfo, tree, di, drep);
7995 break;
7997 case SAMR_DOMAIN_DISPLAY_GROUP:
7998 offset = samr_dissect_element_DispInfo_info3(tvb, offset, pinfo, tree, di, drep);
7999 break;
8001 case SAMR_DOMAIN_DISPLAY_OEM_USER:
8002 offset = samr_dissect_element_DispInfo_info4(tvb, offset, pinfo, tree, di, drep);
8003 break;
8005 case SAMR_DOMAIN_DISPLAY_OEM_GROUP:
8006 offset = samr_dissect_element_DispInfo_info5(tvb, offset, pinfo, tree, di, drep);
8007 break;
8009 proto_item_set_len(item, offset-old_offset);
8012 return offset;
8015 /* IDL: struct { */
8016 /* IDL: uint16 min_password_length; */
8017 /* IDL: samr_PasswordProperties password_properties; */
8018 /* IDL: } */
8020 static int
8021 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_)
8023 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_PwInfo_min_password_length, 0);
8025 return offset;
8028 static int
8029 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_)
8031 offset = samr_dissect_bitmap_PasswordProperties(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_PwInfo_password_properties, 0);
8033 return offset;
8037 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_)
8039 proto_item *item = NULL;
8040 proto_tree *tree = NULL;
8041 int old_offset;
8043 ALIGN_TO_4_BYTES;
8045 old_offset = offset;
8047 if (parent_tree) {
8048 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
8049 tree = proto_item_add_subtree(item, ett_samr_samr_PwInfo);
8052 offset = samr_dissect_element_PwInfo_min_password_length(tvb, offset, pinfo, tree, di, drep);
8054 offset = samr_dissect_element_PwInfo_password_properties(tvb, offset, pinfo, tree, di, drep);
8057 proto_item_set_len(item, offset-old_offset);
8060 if (di->call_data->flags & DCERPC_IS_NDR64) {
8061 ALIGN_TO_4_BYTES;
8064 return offset;
8068 /* IDL: enum { */
8069 /* IDL: SAMR_CONNECT_PRE_W2K=1, */
8070 /* IDL: SAMR_CONNECT_W2K=2, */
8071 /* IDL: SAMR_CONNECT_AFTER_W2K=3, */
8072 /* IDL: } */
8075 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_)
8077 uint32_t parameter=0;
8078 if (param) {
8079 parameter = *param;
8081 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
8082 if (param) {
8083 *param = parameter;
8085 return offset;
8089 /* IDL: enum { */
8090 /* IDL: SAM_PWD_CHANGE_NO_ERROR=0, */
8091 /* IDL: SAM_PWD_CHANGE_PASSWORD_TOO_SHORT=1, */
8092 /* IDL: SAM_PWD_CHANGE_PWD_IN_HISTORY=2, */
8093 /* IDL: SAM_PWD_CHANGE_USERNAME_IN_PASSWORD=3, */
8094 /* IDL: SAM_PWD_CHANGE_FULLNAME_IN_PASSWORD=4, */
8095 /* IDL: SAM_PWD_CHANGE_NOT_COMPLEX=5, */
8096 /* IDL: SAM_PWD_CHANGE_MACHINE_NOT_DEFAULT=6, */
8097 /* IDL: SAM_PWD_CHANGE_FAILED_BY_FILTER=7, */
8098 /* IDL: SAM_PWD_CHANGE_PASSWORD_TOO_LONG=8, */
8099 /* IDL: } */
8102 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_)
8104 uint32_t parameter=0;
8105 if (param) {
8106 parameter = *param;
8108 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
8109 if (param) {
8110 *param = parameter;
8112 return offset;
8116 /* IDL: struct { */
8117 /* IDL: samPwdChangeReason extendedFailureReason; */
8118 /* IDL: lsa_String filterModuleName; */
8119 /* IDL: } */
8121 static int
8122 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_)
8124 offset = samr_dissect_enum_samPwdChangeReason(tvb, offset, pinfo, tree, di, drep, hf_samr_userPwdChangeFailureInformation_extendedFailureReason, 0);
8126 return offset;
8129 static int
8130 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_)
8132 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_userPwdChangeFailureInformation_filterModuleName);
8134 return offset;
8138 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_)
8140 proto_item *item = NULL;
8141 proto_tree *tree = NULL;
8142 int old_offset;
8144 ALIGN_TO_5_BYTES;
8146 old_offset = offset;
8148 if (parent_tree) {
8149 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
8150 tree = proto_item_add_subtree(item, ett_samr_userPwdChangeFailureInformation);
8153 offset = samr_dissect_element_userPwdChangeFailureInformation_extendedFailureReason(tvb, offset, pinfo, tree, di, drep);
8155 offset = samr_dissect_element_userPwdChangeFailureInformation_filterModuleName(tvb, offset, pinfo, tree, di, drep);
8158 proto_item_set_len(item, offset-old_offset);
8161 if (di->call_data->flags & DCERPC_IS_NDR64) {
8162 ALIGN_TO_5_BYTES;
8165 return offset;
8169 /* IDL: enum { */
8170 /* IDL: SAMR_CONNECT_FEATURE_RID_ONLY=0x00000001, */
8171 /* IDL: SAMR_CONNECT_FEATURE_RESRVED1=0x00000002, */
8172 /* IDL: SAMR_CONNECT_FEATURE_RESRVED2=0x00000004, */
8173 /* IDL: SAMR_CONNECT_FEATURE_USE_AES=0x00000010, */
8174 /* IDL: } */
8177 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_)
8179 uint32_t parameter=0;
8180 if (param) {
8181 parameter = *param;
8183 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
8184 if (param) {
8185 *param = parameter;
8187 return offset;
8191 /* IDL: struct { */
8192 /* IDL: samr_ConnectVersion client_version; */
8193 /* IDL: samr_SupportedFeatures supported_features; */
8194 /* IDL: } */
8196 static int
8197 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_)
8199 offset = samr_dissect_enum_ConnectVersion(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_ConnectInfo1_client_version, 0);
8201 return offset;
8204 static int
8205 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_)
8207 offset = samr_dissect_enum_SupportedFeatures(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_ConnectInfo1_supported_features, 0);
8209 return offset;
8213 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_)
8215 proto_item *item = NULL;
8216 proto_tree *tree = NULL;
8217 int old_offset;
8219 ALIGN_TO_4_BYTES;
8221 old_offset = offset;
8223 if (parent_tree) {
8224 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
8225 tree = proto_item_add_subtree(item, ett_samr_samr_ConnectInfo1);
8228 offset = samr_dissect_element_ConnectInfo1_client_version(tvb, offset, pinfo, tree, di, drep);
8230 offset = samr_dissect_element_ConnectInfo1_supported_features(tvb, offset, pinfo, tree, di, drep);
8233 proto_item_set_len(item, offset-old_offset);
8236 if (di->call_data->flags & DCERPC_IS_NDR64) {
8237 ALIGN_TO_4_BYTES;
8240 return offset;
8244 /* IDL: union { */
8245 /* IDL: [case(1)] [case(1)] samr_ConnectInfo1 info1; */
8246 /* IDL: } */
8248 static int
8249 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_)
8251 offset = samr_dissect_struct_ConnectInfo1(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ConnectInfo_info1,0);
8253 return offset;
8256 static int
8257 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_)
8259 proto_item *item = NULL;
8260 proto_tree *tree = NULL;
8261 int old_offset;
8262 uint32_t level;
8264 old_offset = offset;
8265 if (parent_tree) {
8266 tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_samr_samr_ConnectInfo, &item, "samr_ConnectInfo");
8269 UNION_ALIGN_TO_4_BYTES;
8270 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
8271 UNION_ALIGN_TO_4_BYTES;
8273 switch(level) {
8274 case 1:
8275 offset = samr_dissect_element_ConnectInfo_info1(tvb, offset, pinfo, tree, di, drep);
8276 break;
8278 proto_item_set_len(item, offset-old_offset);
8281 return offset;
8284 /* IDL: bitmap { */
8285 /* IDL: SAMR_VALIDATE_FIELD_PASSWORD_LAST_SET = 0x00000001 , */
8286 /* IDL: SAMR_VALIDATE_FIELD_BAD_PASSWORD_TIME = 0x00000002 , */
8287 /* IDL: SAMR_VALIDATE_FIELD_LOCKOUT_TIME = 0x00000004 , */
8288 /* IDL: SAMR_VALIDATE_FIELD_BAD_PASSWORD_COUNT = 0x00000008 , */
8289 /* IDL: SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_LENGTH = 0x00000010 , */
8290 /* IDL: SAMR_VALIDATE_FIELD_PASSWORD_HISTORY = 0x00000020 , */
8291 /* IDL: } */
8294 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_)
8296 proto_item *item;
8297 static int * const samr_samr_ValidateFieldsPresent_fields[] = {
8298 &hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_LAST_SET,
8299 &hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_BAD_PASSWORD_TIME,
8300 &hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_LOCKOUT_TIME,
8301 &hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_BAD_PASSWORD_COUNT,
8302 &hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_LENGTH,
8303 &hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_HISTORY,
8304 NULL
8306 uint32_t flags;
8307 ALIGN_TO_4_BYTES;
8309 item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index,
8310 ett_samr_samr_ValidateFieldsPresent, samr_samr_ValidateFieldsPresent_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE);
8312 offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags);
8314 if (!flags)
8315 proto_item_append_text(item, ": (No values set)");
8317 if (flags & (~0x0000003f)) {
8318 flags &= (~0x0000003f);
8319 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
8322 return offset;
8326 /* IDL: enum { */
8327 /* IDL: NetValidateAuthentication=1, */
8328 /* IDL: NetValidatePasswordChange=2, */
8329 /* IDL: NetValidatePasswordReset=3, */
8330 /* IDL: } */
8333 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_)
8335 uint32_t parameter=0;
8336 if (param) {
8337 parameter = *param;
8339 offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
8340 if (param) {
8341 *param = parameter;
8343 return offset;
8347 /* IDL: enum { */
8348 /* IDL: SAMR_VALIDATION_STATUS_SUCCESS=0, */
8349 /* IDL: SAMR_VALIDATION_STATUS_PASSWORD_MUST_CHANGE=1, */
8350 /* IDL: SAMR_VALIDATION_STATUS_ACCOUNT_LOCKED_OUT=2, */
8351 /* IDL: SAMR_VALIDATION_STATUS_PASSWORD_EXPIRED=3, */
8352 /* IDL: SAMR_VALIDATION_STATUS_BAD_PASSWORD=4, */
8353 /* IDL: SAMR_VALIDATION_STATUS_PWD_HISTORY_CONFLICT=5, */
8354 /* IDL: SAMR_VALIDATION_STATUS_PWD_TOO_SHORT=6, */
8355 /* IDL: SAMR_VALIDATION_STATUS_PWD_TOO_LONG=7, */
8356 /* IDL: SAMR_VALIDATION_STATUS_NOT_COMPLEX_ENOUGH=8, */
8357 /* IDL: SAMR_VALIDATION_STATUS_PASSWORD_TOO_RECENT=9, */
8358 /* IDL: SAMR_VALIDATION_STATUS_PASSWORD_FILTER_ERROR=10, */
8359 /* IDL: } */
8362 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_)
8364 uint32_t parameter=0;
8365 if (param) {
8366 parameter = *param;
8368 offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
8369 if (param) {
8370 *param = parameter;
8372 return offset;
8376 /* IDL: struct { */
8377 /* IDL: uint32 length; */
8378 /* IDL: [size_is(length)] [unique(1)] uint8 *data; */
8379 /* IDL: } */
8381 static int
8382 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_)
8384 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_ValidationBlob_length, 0);
8386 return offset;
8389 static int
8390 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_)
8392 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);
8394 return offset;
8397 static int
8398 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_)
8400 struct ndr_generic_array nga = { .is_conformant = false, };
8402 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
8404 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, samr_dissect_element_ValidationBlob_data__);
8406 return offset;
8409 static int
8410 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_)
8412 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_ValidationBlob_data, 0);
8414 return offset;
8418 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_)
8420 proto_item *item = NULL;
8421 proto_tree *tree = NULL;
8422 int old_offset;
8424 ALIGN_TO_5_BYTES;
8426 old_offset = offset;
8428 if (parent_tree) {
8429 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
8430 tree = proto_item_add_subtree(item, ett_samr_samr_ValidationBlob);
8433 offset = samr_dissect_element_ValidationBlob_length(tvb, offset, pinfo, tree, di, drep);
8435 offset = samr_dissect_element_ValidationBlob_data(tvb, offset, pinfo, tree, di, drep);
8438 proto_item_set_len(item, offset-old_offset);
8441 if (di->call_data->flags & DCERPC_IS_NDR64) {
8442 ALIGN_TO_5_BYTES;
8445 return offset;
8449 /* IDL: struct { */
8450 /* IDL: samr_ValidateFieldsPresent fields_present; */
8451 /* IDL: NTTIME_hyper last_password_change; */
8452 /* IDL: NTTIME_hyper bad_password_time; */
8453 /* IDL: NTTIME_hyper lockout_time; */
8454 /* IDL: uint32 bad_pwd_count; */
8455 /* IDL: uint32 pwd_history_len; */
8456 /* IDL: [size_is(pwd_history_len)] [unique(1)] samr_ValidationBlob *pwd_history; */
8457 /* IDL: } */
8459 static int
8460 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_)
8462 offset = samr_dissect_bitmap_ValidateFieldsPresent(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_ValidatePasswordInfo_fields_present, 0);
8464 return offset;
8467 static int
8468 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_)
8470 offset = dissect_ndr_nt_NTTIME_hyper(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_ValidatePasswordInfo_last_password_change);
8472 return offset;
8475 static int
8476 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_)
8478 offset = dissect_ndr_nt_NTTIME_hyper(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_ValidatePasswordInfo_bad_password_time);
8480 return offset;
8483 static int
8484 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_)
8486 offset = dissect_ndr_nt_NTTIME_hyper(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_ValidatePasswordInfo_lockout_time);
8488 return offset;
8491 static int
8492 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_)
8494 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_ValidatePasswordInfo_bad_pwd_count, 0);
8496 return offset;
8499 static int
8500 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_)
8502 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_ValidatePasswordInfo_pwd_history_len, 0);
8504 return offset;
8507 static int
8508 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_)
8510 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);
8512 return offset;
8515 static int
8516 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_)
8518 struct ndr_generic_array nga = { .is_conformant = false, };
8520 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
8522 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, samr_dissect_element_ValidatePasswordInfo_pwd_history__);
8524 return offset;
8527 static int
8528 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_)
8530 offset = samr_dissect_struct_ValidationBlob(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ValidatePasswordInfo_pwd_history,0);
8532 return offset;
8536 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_)
8538 proto_item *item = NULL;
8539 proto_tree *tree = NULL;
8540 int old_offset;
8542 ALIGN_TO_8_BYTES;
8544 old_offset = offset;
8546 if (parent_tree) {
8547 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
8548 tree = proto_item_add_subtree(item, ett_samr_samr_ValidatePasswordInfo);
8551 offset = samr_dissect_element_ValidatePasswordInfo_fields_present(tvb, offset, pinfo, tree, di, drep);
8553 offset = samr_dissect_element_ValidatePasswordInfo_last_password_change(tvb, offset, pinfo, tree, di, drep);
8555 offset = samr_dissect_element_ValidatePasswordInfo_bad_password_time(tvb, offset, pinfo, tree, di, drep);
8557 offset = samr_dissect_element_ValidatePasswordInfo_lockout_time(tvb, offset, pinfo, tree, di, drep);
8559 offset = samr_dissect_element_ValidatePasswordInfo_bad_pwd_count(tvb, offset, pinfo, tree, di, drep);
8561 offset = samr_dissect_element_ValidatePasswordInfo_pwd_history_len(tvb, offset, pinfo, tree, di, drep);
8563 offset = samr_dissect_element_ValidatePasswordInfo_pwd_history(tvb, offset, pinfo, tree, di, drep);
8566 proto_item_set_len(item, offset-old_offset);
8569 if (di->call_data->flags & DCERPC_IS_NDR64) {
8570 ALIGN_TO_8_BYTES;
8573 return offset;
8577 /* IDL: struct { */
8578 /* IDL: samr_ValidatePasswordInfo info; */
8579 /* IDL: samr_ValidationStatus status; */
8580 /* IDL: } */
8582 static int
8583 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_)
8585 offset = samr_dissect_struct_ValidatePasswordInfo(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ValidatePasswordRepCtr_info,0);
8587 return offset;
8590 static int
8591 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_)
8593 offset = samr_dissect_enum_ValidationStatus(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_ValidatePasswordRepCtr_status, 0);
8595 return offset;
8599 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_)
8601 proto_item *item = NULL;
8602 proto_tree *tree = NULL;
8603 int old_offset;
8605 ALIGN_TO_8_BYTES;
8607 old_offset = offset;
8609 if (parent_tree) {
8610 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
8611 tree = proto_item_add_subtree(item, ett_samr_samr_ValidatePasswordRepCtr);
8614 offset = samr_dissect_element_ValidatePasswordRepCtr_info(tvb, offset, pinfo, tree, di, drep);
8616 offset = samr_dissect_element_ValidatePasswordRepCtr_status(tvb, offset, pinfo, tree, di, drep);
8619 proto_item_set_len(item, offset-old_offset);
8622 if (di->call_data->flags & DCERPC_IS_NDR64) {
8623 ALIGN_TO_8_BYTES;
8626 return offset;
8630 /* IDL: [switch_type(uint16)] union { */
8631 /* IDL: [case(1)] [case(1)] samr_ValidatePasswordRepCtr ctr1; */
8632 /* IDL: [case(2)] [case(2)] samr_ValidatePasswordRepCtr ctr2; */
8633 /* IDL: [case(3)] [case(3)] samr_ValidatePasswordRepCtr ctr3; */
8634 /* IDL: } */
8636 static int
8637 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_)
8639 offset = samr_dissect_struct_ValidatePasswordRepCtr(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ValidatePasswordRep_ctr1,0);
8641 return offset;
8644 static int
8645 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_)
8647 offset = samr_dissect_struct_ValidatePasswordRepCtr(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ValidatePasswordRep_ctr2,0);
8649 return offset;
8652 static int
8653 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_)
8655 offset = samr_dissect_struct_ValidatePasswordRepCtr(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ValidatePasswordRep_ctr3,0);
8657 return offset;
8660 static int
8661 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_)
8663 proto_item *item = NULL;
8664 proto_tree *tree = NULL;
8665 int old_offset;
8666 uint16_t level;
8668 old_offset = offset;
8669 if (parent_tree) {
8670 tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_samr_samr_ValidatePasswordRep, &item, "samr_ValidatePasswordRep");
8673 UNION_ALIGN_TO_8_BYTES;
8674 offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
8675 UNION_ALIGN_TO_8_BYTES;
8677 switch(level) {
8678 case 1:
8679 offset = samr_dissect_element_ValidatePasswordRep_ctr1(tvb, offset, pinfo, tree, di, drep);
8680 break;
8682 case 2:
8683 offset = samr_dissect_element_ValidatePasswordRep_ctr2(tvb, offset, pinfo, tree, di, drep);
8684 break;
8686 case 3:
8687 offset = samr_dissect_element_ValidatePasswordRep_ctr3(tvb, offset, pinfo, tree, di, drep);
8688 break;
8690 proto_item_set_len(item, offset-old_offset);
8693 return offset;
8696 /* IDL: struct { */
8697 /* IDL: samr_ValidatePasswordInfo info; */
8698 /* IDL: lsa_StringLarge password; */
8699 /* IDL: lsa_StringLarge account; */
8700 /* IDL: samr_ValidationBlob hash; */
8701 /* IDL: uint8 pwd_must_change_at_next_logon; */
8702 /* IDL: uint8 clear_lockout; */
8703 /* IDL: } */
8705 static int
8706 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_)
8708 offset = samr_dissect_struct_ValidatePasswordInfo(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ValidatePasswordReq3_info,0);
8710 return offset;
8713 static int
8714 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_)
8716 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_ValidatePasswordReq3_password);
8718 return offset;
8721 static int
8722 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_)
8724 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_ValidatePasswordReq3_account);
8726 return offset;
8729 static int
8730 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_)
8732 offset = samr_dissect_struct_ValidationBlob(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ValidatePasswordReq3_hash,0);
8734 return offset;
8737 static int
8738 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_)
8740 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_ValidatePasswordReq3_pwd_must_change_at_next_logon, 0);
8742 return offset;
8745 static int
8746 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_)
8748 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_ValidatePasswordReq3_clear_lockout, 0);
8750 return offset;
8754 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_)
8756 proto_item *item = NULL;
8757 proto_tree *tree = NULL;
8758 int old_offset;
8760 ALIGN_TO_8_BYTES;
8762 old_offset = offset;
8764 if (parent_tree) {
8765 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
8766 tree = proto_item_add_subtree(item, ett_samr_samr_ValidatePasswordReq3);
8769 offset = samr_dissect_element_ValidatePasswordReq3_info(tvb, offset, pinfo, tree, di, drep);
8771 offset = samr_dissect_element_ValidatePasswordReq3_password(tvb, offset, pinfo, tree, di, drep);
8773 offset = samr_dissect_element_ValidatePasswordReq3_account(tvb, offset, pinfo, tree, di, drep);
8775 offset = samr_dissect_element_ValidatePasswordReq3_hash(tvb, offset, pinfo, tree, di, drep);
8777 offset = samr_dissect_element_ValidatePasswordReq3_pwd_must_change_at_next_logon(tvb, offset, pinfo, tree, di, drep);
8779 offset = samr_dissect_element_ValidatePasswordReq3_clear_lockout(tvb, offset, pinfo, tree, di, drep);
8782 proto_item_set_len(item, offset-old_offset);
8785 if (di->call_data->flags & DCERPC_IS_NDR64) {
8786 ALIGN_TO_8_BYTES;
8789 return offset;
8793 /* IDL: struct { */
8794 /* IDL: samr_ValidatePasswordInfo info; */
8795 /* IDL: lsa_StringLarge password; */
8796 /* IDL: lsa_StringLarge account; */
8797 /* IDL: samr_ValidationBlob hash; */
8798 /* IDL: uint8 password_matched; */
8799 /* IDL: } */
8801 static int
8802 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_)
8804 offset = samr_dissect_struct_ValidatePasswordInfo(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ValidatePasswordReq2_info,0);
8806 return offset;
8809 static int
8810 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_)
8812 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_ValidatePasswordReq2_password);
8814 return offset;
8817 static int
8818 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_)
8820 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_ValidatePasswordReq2_account);
8822 return offset;
8825 static int
8826 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_)
8828 offset = samr_dissect_struct_ValidationBlob(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ValidatePasswordReq2_hash,0);
8830 return offset;
8833 static int
8834 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_)
8836 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_ValidatePasswordReq2_password_matched, 0);
8838 return offset;
8842 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_)
8844 proto_item *item = NULL;
8845 proto_tree *tree = NULL;
8846 int old_offset;
8848 ALIGN_TO_8_BYTES;
8850 old_offset = offset;
8852 if (parent_tree) {
8853 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
8854 tree = proto_item_add_subtree(item, ett_samr_samr_ValidatePasswordReq2);
8857 offset = samr_dissect_element_ValidatePasswordReq2_info(tvb, offset, pinfo, tree, di, drep);
8859 offset = samr_dissect_element_ValidatePasswordReq2_password(tvb, offset, pinfo, tree, di, drep);
8861 offset = samr_dissect_element_ValidatePasswordReq2_account(tvb, offset, pinfo, tree, di, drep);
8863 offset = samr_dissect_element_ValidatePasswordReq2_hash(tvb, offset, pinfo, tree, di, drep);
8865 offset = samr_dissect_element_ValidatePasswordReq2_password_matched(tvb, offset, pinfo, tree, di, drep);
8868 proto_item_set_len(item, offset-old_offset);
8871 if (di->call_data->flags & DCERPC_IS_NDR64) {
8872 ALIGN_TO_8_BYTES;
8875 return offset;
8879 /* IDL: struct { */
8880 /* IDL: samr_ValidatePasswordInfo info; */
8881 /* IDL: uint8 password_matched; */
8882 /* IDL: } */
8884 static int
8885 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_)
8887 offset = samr_dissect_struct_ValidatePasswordInfo(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ValidatePasswordReq1_info,0);
8889 return offset;
8892 static int
8893 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_)
8895 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_ValidatePasswordReq1_password_matched, 0);
8897 return offset;
8901 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_)
8903 proto_item *item = NULL;
8904 proto_tree *tree = NULL;
8905 int old_offset;
8907 ALIGN_TO_8_BYTES;
8909 old_offset = offset;
8911 if (parent_tree) {
8912 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
8913 tree = proto_item_add_subtree(item, ett_samr_samr_ValidatePasswordReq1);
8916 offset = samr_dissect_element_ValidatePasswordReq1_info(tvb, offset, pinfo, tree, di, drep);
8918 offset = samr_dissect_element_ValidatePasswordReq1_password_matched(tvb, offset, pinfo, tree, di, drep);
8921 proto_item_set_len(item, offset-old_offset);
8924 if (di->call_data->flags & DCERPC_IS_NDR64) {
8925 ALIGN_TO_8_BYTES;
8928 return offset;
8932 /* IDL: [switch_type(uint16)] union { */
8933 /* IDL: [case(1)] [case(1)] samr_ValidatePasswordReq1 req1; */
8934 /* IDL: [case(2)] [case(2)] samr_ValidatePasswordReq2 req2; */
8935 /* IDL: [case(3)] [case(3)] samr_ValidatePasswordReq3 req3; */
8936 /* IDL: } */
8938 static int
8939 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_)
8941 offset = samr_dissect_struct_ValidatePasswordReq1(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ValidatePasswordReq_req1,0);
8943 return offset;
8946 static int
8947 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_)
8949 offset = samr_dissect_struct_ValidatePasswordReq2(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ValidatePasswordReq_req2,0);
8951 return offset;
8954 static int
8955 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_)
8957 offset = samr_dissect_struct_ValidatePasswordReq3(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ValidatePasswordReq_req3,0);
8959 return offset;
8962 static int
8963 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_)
8965 proto_item *item = NULL;
8966 proto_tree *tree = NULL;
8967 int old_offset;
8968 uint16_t level;
8970 old_offset = offset;
8971 if (parent_tree) {
8972 tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_samr_samr_ValidatePasswordReq, &item, "samr_ValidatePasswordReq");
8975 UNION_ALIGN_TO_8_BYTES;
8976 offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
8977 UNION_ALIGN_TO_8_BYTES;
8979 switch(level) {
8980 case 1:
8981 offset = samr_dissect_element_ValidatePasswordReq_req1(tvb, offset, pinfo, tree, di, drep);
8982 break;
8984 case 2:
8985 offset = samr_dissect_element_ValidatePasswordReq_req2(tvb, offset, pinfo, tree, di, drep);
8986 break;
8988 case 3:
8989 offset = samr_dissect_element_ValidatePasswordReq_req3(tvb, offset, pinfo, tree, di, drep);
8990 break;
8992 proto_item_set_len(item, offset-old_offset);
8995 return offset;
8997 static int
8998 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_)
9000 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);
9002 return offset;
9005 static int
9006 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_)
9008 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_Connect_system_name, 0);
9010 return offset;
9013 static int
9014 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_)
9016 offset = samr_dissect_bitmap_ConnectAccessMask(tvb, offset, pinfo, tree, di, drep, hf_samr_connect_access_mask, 0);
9018 return offset;
9021 static int
9022 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_)
9024 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);
9026 return offset;
9029 static int
9030 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_)
9032 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_connect_handle, PIDL_POLHND_OPEN|PIDL_POLHND_TYPE_SAMR_CONNECT);
9034 return offset;
9037 /* IDL: NTSTATUS samr_Connect( */
9038 /* IDL: [in] [unique(1)] uint16 *system_name, */
9039 /* IDL: [in] samr_ConnectAccessMask access_mask, */
9040 /* IDL: [out] [ref] policy_handle *connect_handle */
9041 /* IDL: ); */
9043 static int
9044 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_)
9046 uint32_t status;
9048 di->dcerpc_procedure_name="Connect";
9049 offset = samr_dissect_element_Connect_connect_handle(tvb, offset, pinfo, tree, di, drep);
9050 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9052 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
9054 if (status != 0)
9055 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
9057 return offset;
9060 static int
9061 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_)
9063 di->dcerpc_procedure_name="Connect";
9064 offset = samr_dissect_element_Connect_system_name(tvb, offset, pinfo, tree, di, drep);
9065 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9066 offset = samr_dissect_element_Connect_access_mask(tvb, offset, pinfo, tree, di, drep);
9067 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9068 return offset;
9071 static int
9072 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_)
9074 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);
9076 return offset;
9079 static int
9080 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_)
9082 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_handle, PIDL_POLHND_CLOSE);
9084 return offset;
9087 /* IDL: NTSTATUS samr_Close( */
9088 /* IDL: [in] [out] [ref] policy_handle *handle */
9089 /* IDL: ); */
9091 static int
9092 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_)
9094 uint32_t status;
9096 di->dcerpc_procedure_name="Close";
9097 offset = samr_dissect_element_Close_handle(tvb, offset, pinfo, tree, di, drep);
9098 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9100 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
9102 if (status != 0)
9103 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
9105 return offset;
9108 static int
9109 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_)
9111 di->dcerpc_procedure_name="Close";
9112 offset = samr_dissect_element_Close_handle(tvb, offset, pinfo, tree, di, drep);
9113 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9114 return offset;
9117 static int
9118 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_)
9120 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);
9122 return offset;
9125 static int
9126 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_)
9128 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_handle, 0);
9130 return offset;
9133 static int
9134 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_)
9136 offset=cnf_dissect_samr_security_secinfo(tvb, offset, pinfo, tree, drep);
9138 return offset;
9141 static int
9142 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_)
9144 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);
9146 return offset;
9149 static int
9150 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_)
9152 offset=cnf_dissect_sec_desc_buf(tvb, offset, pinfo, tree, di, drep);
9154 return offset;
9157 /* IDL: NTSTATUS samr_SetSecurity( */
9158 /* IDL: [in] [ref] policy_handle *handle, */
9159 /* IDL: [in] security_secinfo sec_info, */
9160 /* IDL: [in] [ref] sec_desc_buf *sdbuf */
9161 /* IDL: ); */
9163 static int
9164 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_)
9166 uint32_t status;
9168 di->dcerpc_procedure_name="SetSecurity";
9169 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
9171 if (status != 0)
9172 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
9174 return offset;
9177 static int
9178 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_)
9180 di->dcerpc_procedure_name="SetSecurity";
9181 offset = samr_dissect_element_SetSecurity_handle(tvb, offset, pinfo, tree, di, drep);
9182 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9183 offset = samr_dissect_element_SetSecurity_sec_info(tvb, offset, pinfo, tree, di, drep);
9184 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9185 offset = samr_dissect_element_SetSecurity_sdbuf(tvb, offset, pinfo, tree, di, drep);
9186 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9187 return offset;
9190 static int
9191 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_)
9193 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);
9195 return offset;
9198 static int
9199 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_)
9201 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_handle, 0);
9203 return offset;
9206 static int
9207 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_)
9209 offset=cnf_dissect_samr_security_secinfo(tvb, offset, pinfo, tree, drep);
9211 return offset;
9214 static int
9215 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_)
9217 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);
9219 return offset;
9222 static int
9223 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_)
9225 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);
9227 return offset;
9230 static int
9231 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_)
9233 offset=cnf_dissect_sec_desc_buf(tvb, offset, pinfo, tree, di, drep);
9235 return offset;
9238 /* IDL: NTSTATUS samr_QuerySecurity( */
9239 /* IDL: [in] [ref] policy_handle *handle, */
9240 /* IDL: [in] security_secinfo sec_info, */
9241 /* IDL: [out] [ref] sec_desc_buf **sdbuf */
9242 /* IDL: ); */
9244 static int
9245 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_)
9247 uint32_t status;
9249 di->dcerpc_procedure_name="QuerySecurity";
9250 offset = samr_dissect_element_QuerySecurity_sdbuf(tvb, offset, pinfo, tree, di, drep);
9251 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9253 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
9255 if (status != 0)
9256 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
9258 return offset;
9261 static int
9262 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_)
9264 di->dcerpc_procedure_name="QuerySecurity";
9265 offset = samr_dissect_element_QuerySecurity_handle(tvb, offset, pinfo, tree, di, drep);
9266 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9267 offset = samr_dissect_element_QuerySecurity_sec_info(tvb, offset, pinfo, tree, di, drep);
9268 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9269 return offset;
9272 static int
9273 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_)
9275 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);
9277 return offset;
9280 static int
9281 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_)
9283 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_Shutdown_connect_handle, PIDL_POLHND_CLOSE);
9285 return offset;
9288 /* IDL: NTSTATUS samr_Shutdown( */
9289 /* IDL: [in] [ref] policy_handle *connect_handle */
9290 /* IDL: ); */
9292 static int
9293 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_)
9295 uint32_t status;
9297 di->dcerpc_procedure_name="Shutdown";
9298 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
9300 if (status != 0)
9301 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
9303 return offset;
9306 static int
9307 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_)
9309 di->dcerpc_procedure_name="Shutdown";
9310 offset = samr_dissect_element_Shutdown_connect_handle(tvb, offset, pinfo, tree, di, drep);
9311 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9312 return offset;
9315 static int
9316 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_)
9318 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);
9320 return offset;
9323 static int
9324 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_)
9326 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_connect_handle, 0);
9328 return offset;
9331 static int
9332 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_)
9334 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);
9336 return offset;
9339 static int
9340 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_)
9342 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 3|PIDL_SET_COL_INFO, hf_samr_samr_LookupDomain_domain_name);
9344 return offset;
9347 static int
9348 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_)
9350 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);
9352 return offset;
9355 static int
9356 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_)
9358 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);
9360 return offset;
9363 static int
9364 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_)
9366 offset=cnf_dissect_dom_sid2(tvb, offset, pinfo, tree, di, drep);
9368 return offset;
9371 /* IDL: NTSTATUS samr_LookupDomain( */
9372 /* IDL: [in] [ref] policy_handle *connect_handle, */
9373 /* IDL: [in] [ref] lsa_String *domain_name, */
9374 /* IDL: [out] [ref] dom_sid2 **sid */
9375 /* IDL: ); */
9377 static int
9378 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_)
9380 uint32_t status;
9382 di->dcerpc_procedure_name="LookupDomain";
9383 offset = samr_dissect_element_LookupDomain_sid(tvb, offset, pinfo, tree, di, drep);
9384 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9386 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
9388 if (status != 0)
9389 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
9391 return offset;
9394 static int
9395 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_)
9397 di->dcerpc_procedure_name="LookupDomain";
9398 offset = samr_dissect_element_LookupDomain_connect_handle(tvb, offset, pinfo, tree, di, drep);
9399 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9400 offset = samr_dissect_element_LookupDomain_domain_name(tvb, offset, pinfo, tree, di, drep);
9401 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9402 return offset;
9405 static int
9406 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_)
9408 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);
9410 return offset;
9413 static int
9414 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_)
9416 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_EnumDomains_connect_handle, 0);
9418 return offset;
9421 static int
9422 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_)
9424 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);
9426 return offset;
9429 static int
9430 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_)
9432 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_EnumDomains_resume_handle, 0);
9434 return offset;
9437 static int
9438 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_)
9440 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);
9442 return offset;
9445 static int
9446 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_)
9448 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);
9450 return offset;
9453 static int
9454 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_)
9456 offset = samr_dissect_struct_SamArray(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_EnumDomains_sam,0);
9458 return offset;
9461 static int
9462 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_)
9464 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_EnumDomains_buf_size, 0);
9466 return offset;
9469 static int
9470 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_)
9472 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);
9474 return offset;
9477 static int
9478 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_)
9480 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_EnumDomains_num_entries, 0);
9482 return offset;
9485 /* IDL: NTSTATUS samr_EnumDomains( */
9486 /* IDL: [in] [ref] policy_handle *connect_handle, */
9487 /* IDL: [in] [out] [ref] uint32 *resume_handle, */
9488 /* IDL: [out] [ref] samr_SamArray **sam, */
9489 /* IDL: [in] uint32 buf_size, */
9490 /* IDL: [out] [ref] uint32 *num_entries */
9491 /* IDL: ); */
9493 static int
9494 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_)
9496 uint32_t status;
9498 di->dcerpc_procedure_name="EnumDomains";
9499 offset = samr_dissect_element_EnumDomains_resume_handle(tvb, offset, pinfo, tree, di, drep);
9500 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9502 offset = samr_dissect_element_EnumDomains_sam(tvb, offset, pinfo, tree, di, drep);
9503 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9505 offset = samr_dissect_element_EnumDomains_num_entries(tvb, offset, pinfo, tree, di, drep);
9506 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9508 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
9510 if (status != 0)
9511 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
9513 return offset;
9516 static int
9517 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_)
9519 di->dcerpc_procedure_name="EnumDomains";
9520 offset = samr_dissect_element_EnumDomains_connect_handle(tvb, offset, pinfo, tree, di, drep);
9521 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9522 offset = samr_dissect_element_EnumDomains_resume_handle(tvb, offset, pinfo, tree, di, drep);
9523 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9524 offset = samr_dissect_element_EnumDomains_buf_size(tvb, offset, pinfo, tree, di, drep);
9525 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9526 return offset;
9529 static int
9530 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_)
9532 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);
9534 return offset;
9537 static int
9538 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_)
9540 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_connect_handle, 0);
9542 return offset;
9545 static int
9546 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_)
9548 offset = samr_dissect_bitmap_DomainAccessMask(tvb, offset, pinfo, tree, di, drep, hf_samr_domain_access_mask, 0);
9550 return offset;
9553 static int
9554 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_)
9556 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);
9558 return offset;
9561 static int
9562 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_)
9564 offset=cnf_dissect_dom_sid2(tvb, offset, pinfo, tree, di, drep);
9566 return offset;
9569 static int
9570 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_)
9572 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);
9574 return offset;
9577 static int
9578 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_)
9580 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_domain_handle, PIDL_POLHND_OPEN|PIDL_POLHND_TYPE_SAMR_DOMAIN);
9582 return offset;
9585 /* IDL: NTSTATUS samr_OpenDomain( */
9586 /* IDL: [in] [ref] policy_handle *connect_handle, */
9587 /* IDL: [in] samr_DomainAccessMask access_mask, */
9588 /* IDL: [in] [ref] dom_sid2 *sid, */
9589 /* IDL: [out] [ref] policy_handle *domain_handle */
9590 /* IDL: ); */
9592 static int
9593 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_)
9595 uint32_t status;
9597 di->dcerpc_procedure_name="OpenDomain";
9598 offset = samr_dissect_element_OpenDomain_domain_handle(tvb, offset, pinfo, tree, di, drep);
9599 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9601 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
9603 if (status != 0)
9604 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
9606 return offset;
9609 static int
9610 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_)
9612 di->dcerpc_procedure_name="OpenDomain";
9613 offset = samr_dissect_element_OpenDomain_connect_handle(tvb, offset, pinfo, tree, di, drep);
9614 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9615 offset = samr_dissect_element_OpenDomain_access_mask(tvb, offset, pinfo, tree, di, drep);
9616 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9617 offset = samr_dissect_element_OpenDomain_sid(tvb, offset, pinfo, tree, di, drep);
9618 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9619 return offset;
9622 static int
9623 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_)
9625 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);
9627 return offset;
9630 static int
9631 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_)
9633 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_domain_handle, 0);
9635 return offset;
9638 static int
9639 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_)
9641 offset = samr_dissect_enum_DomainInfoClass(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryDomainInfo_level, 0);
9643 return offset;
9646 static int
9647 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_)
9649 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);
9651 return offset;
9654 static int
9655 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_)
9657 uint64_t saved_switch_level = di->switch_level;
9659 di->switch_level = 0;
9661 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);
9663 di->switch_level = saved_switch_level;
9665 return offset;
9668 static int
9669 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_)
9671 offset = samr_dissect_DomainInfo(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryDomainInfo_info, 0);
9673 return offset;
9676 /* IDL: NTSTATUS samr_QueryDomainInfo( */
9677 /* IDL: [in] [ref] policy_handle *domain_handle, */
9678 /* IDL: [in] samr_DomainInfoClass level, */
9679 /* IDL: [out] [ref] [switch_is(level)] samr_DomainInfo **info */
9680 /* IDL: ); */
9682 static int
9683 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_)
9685 uint32_t status;
9687 di->dcerpc_procedure_name="QueryDomainInfo";
9688 offset = samr_dissect_element_QueryDomainInfo_info(tvb, offset, pinfo, tree, di, drep);
9689 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9691 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
9693 if (status != 0)
9694 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
9696 return offset;
9699 static int
9700 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_)
9702 di->dcerpc_procedure_name="QueryDomainInfo";
9703 offset = samr_dissect_element_QueryDomainInfo_domain_handle(tvb, offset, pinfo, tree, di, drep);
9704 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9705 offset = samr_dissect_element_QueryDomainInfo_level(tvb, offset, pinfo, tree, di, drep);
9706 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9707 return offset;
9710 static int
9711 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_)
9713 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);
9715 return offset;
9718 static int
9719 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_)
9721 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_domain_handle, 0);
9723 return offset;
9726 static int
9727 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_)
9729 offset = samr_dissect_enum_DomainInfoClass(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_SetDomainInfo_level, 0);
9731 return offset;
9734 static int
9735 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_)
9737 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);
9739 return offset;
9742 static int
9743 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_)
9745 offset = samr_dissect_DomainInfo(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_SetDomainInfo_info, 0);
9747 return offset;
9750 /* IDL: NTSTATUS samr_SetDomainInfo( */
9751 /* IDL: [in] [ref] policy_handle *domain_handle, */
9752 /* IDL: [in] samr_DomainInfoClass level, */
9753 /* IDL: [in] [ref] [switch_is(level)] samr_DomainInfo *info */
9754 /* IDL: ); */
9756 static int
9757 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_)
9759 uint32_t status;
9761 di->dcerpc_procedure_name="SetDomainInfo";
9762 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
9764 if (status != 0)
9765 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
9767 return offset;
9770 static int
9771 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_)
9773 di->dcerpc_procedure_name="SetDomainInfo";
9774 offset = samr_dissect_element_SetDomainInfo_domain_handle(tvb, offset, pinfo, tree, di, drep);
9775 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9776 offset = samr_dissect_element_SetDomainInfo_level(tvb, offset, pinfo, tree, di, drep);
9777 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9778 offset = samr_dissect_element_SetDomainInfo_info(tvb, offset, pinfo, tree, di, drep);
9779 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9780 return offset;
9783 static int
9784 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_)
9786 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);
9788 return offset;
9791 static int
9792 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_)
9794 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_domain_handle, 0);
9796 return offset;
9799 static int
9800 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_)
9802 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);
9804 return offset;
9807 static int
9808 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_)
9810 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_CreateDomainGroup_name);
9812 return offset;
9815 static int
9816 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_)
9818 offset = samr_dissect_bitmap_GroupAccessMask(tvb, offset, pinfo, tree, di, drep, hf_samr_group_access_mask, 0);
9820 return offset;
9823 static int
9824 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_)
9826 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);
9828 return offset;
9831 static int
9832 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_)
9834 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_group_handle, PIDL_POLHND_OPEN|PIDL_POLHND_TYPE_SAMR_GROUP);
9836 return offset;
9839 static int
9840 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_)
9842 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);
9844 return offset;
9847 static int
9848 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_)
9850 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_rid, 0);
9852 return offset;
9855 /* IDL: NTSTATUS samr_CreateDomainGroup( */
9856 /* IDL: [in] [ref] policy_handle *domain_handle, */
9857 /* IDL: [in] [ref] lsa_String *name, */
9858 /* IDL: [in] samr_GroupAccessMask access_mask, */
9859 /* IDL: [out] [ref] policy_handle *group_handle, */
9860 /* IDL: [out] [ref] uint32 *rid */
9861 /* IDL: ); */
9863 static int
9864 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_)
9866 uint32_t status;
9868 di->dcerpc_procedure_name="CreateDomainGroup";
9869 offset = samr_dissect_element_CreateDomainGroup_group_handle(tvb, offset, pinfo, tree, di, drep);
9870 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9872 offset = samr_dissect_element_CreateDomainGroup_rid(tvb, offset, pinfo, tree, di, drep);
9873 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9875 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
9877 if (status != 0)
9878 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
9880 return offset;
9883 static int
9884 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_)
9886 di->dcerpc_procedure_name="CreateDomainGroup";
9887 offset = samr_dissect_element_CreateDomainGroup_domain_handle(tvb, offset, pinfo, tree, di, drep);
9888 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9889 offset = samr_dissect_element_CreateDomainGroup_name(tvb, offset, pinfo, tree, di, drep);
9890 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9891 offset = samr_dissect_element_CreateDomainGroup_access_mask(tvb, offset, pinfo, tree, di, drep);
9892 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9893 return offset;
9896 static int
9897 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_)
9899 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);
9901 return offset;
9904 static int
9905 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_)
9907 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_domain_handle, 0);
9909 return offset;
9912 static int
9913 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_)
9915 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);
9917 return offset;
9920 static int
9921 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_)
9923 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_EnumDomainGroups_resume_handle, 0);
9925 return offset;
9928 static int
9929 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_)
9931 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);
9933 return offset;
9936 static int
9937 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_)
9939 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);
9941 return offset;
9944 static int
9945 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_)
9947 offset = samr_dissect_struct_SamArray(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_EnumDomainGroups_sam,0);
9949 return offset;
9952 static int
9953 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_)
9955 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_EnumDomainGroups_max_size, 0);
9957 return offset;
9960 static int
9961 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_)
9963 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);
9965 return offset;
9968 static int
9969 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_)
9971 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_EnumDomainGroups_num_entries, 0);
9973 return offset;
9976 /* IDL: NTSTATUS samr_EnumDomainGroups( */
9977 /* IDL: [in] [ref] policy_handle *domain_handle, */
9978 /* IDL: [in] [out] [ref] uint32 *resume_handle, */
9979 /* IDL: [out] [ref] samr_SamArray **sam, */
9980 /* IDL: [in] uint32 max_size, */
9981 /* IDL: [out] [ref] uint32 *num_entries */
9982 /* IDL: ); */
9984 static int
9985 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_)
9987 uint32_t status;
9989 di->dcerpc_procedure_name="EnumDomainGroups";
9990 offset = samr_dissect_element_EnumDomainGroups_resume_handle(tvb, offset, pinfo, tree, di, drep);
9991 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9993 offset = samr_dissect_element_EnumDomainGroups_sam(tvb, offset, pinfo, tree, di, drep);
9994 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9996 offset = samr_dissect_element_EnumDomainGroups_num_entries(tvb, offset, pinfo, tree, di, drep);
9997 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
9999 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
10001 if (status != 0)
10002 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
10004 return offset;
10007 static int
10008 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_)
10010 di->dcerpc_procedure_name="EnumDomainGroups";
10011 offset = samr_dissect_element_EnumDomainGroups_domain_handle(tvb, offset, pinfo, tree, di, drep);
10012 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10013 offset = samr_dissect_element_EnumDomainGroups_resume_handle(tvb, offset, pinfo, tree, di, drep);
10014 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10015 offset = samr_dissect_element_EnumDomainGroups_max_size(tvb, offset, pinfo, tree, di, drep);
10016 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10017 return offset;
10020 static int
10021 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_)
10023 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);
10025 return offset;
10028 static int
10029 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_)
10031 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_domain_handle, 0);
10033 return offset;
10036 static int
10037 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_)
10039 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);
10041 return offset;
10044 static int
10045 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_)
10047 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);
10049 return offset;
10052 static int
10053 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_)
10055 offset = samr_dissect_bitmap_UserAccessMask(tvb, offset, pinfo, tree, di, drep, hf_samr_user_access_mask, 0);
10057 return offset;
10060 static int
10061 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_)
10063 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);
10065 return offset;
10068 static int
10069 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_)
10071 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_user_handle, PIDL_POLHND_OPEN|PIDL_POLHND_TYPE_SAMR_USER);
10073 return offset;
10076 static int
10077 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_)
10079 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);
10081 return offset;
10084 static int
10085 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_)
10087 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_rid, 0);
10089 return offset;
10092 /* IDL: NTSTATUS samr_CreateUser( */
10093 /* IDL: [in] [ref] policy_handle *domain_handle, */
10094 /* IDL: [in] [ref] lsa_String *account_name, */
10095 /* IDL: [in] samr_UserAccessMask access_mask, */
10096 /* IDL: [out] [ref] policy_handle *user_handle, */
10097 /* IDL: [out] [ref] uint32 *rid */
10098 /* IDL: ); */
10100 static int
10101 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_)
10103 uint32_t status;
10105 di->dcerpc_procedure_name="CreateUser";
10106 offset = samr_dissect_element_CreateUser_user_handle(tvb, offset, pinfo, tree, di, drep);
10107 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10109 offset = samr_dissect_element_CreateUser_rid(tvb, offset, pinfo, tree, di, drep);
10110 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10112 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
10114 if (status != 0)
10115 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
10117 return offset;
10120 static int
10121 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_)
10123 di->dcerpc_procedure_name="CreateUser";
10124 offset = samr_dissect_element_CreateUser_domain_handle(tvb, offset, pinfo, tree, di, drep);
10125 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10126 offset = samr_dissect_element_CreateUser_account_name(tvb, offset, pinfo, tree, di, drep);
10127 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10128 offset = samr_dissect_element_CreateUser_access_mask(tvb, offset, pinfo, tree, di, drep);
10129 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10130 return offset;
10133 static int
10134 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_)
10136 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);
10138 return offset;
10141 static int
10142 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_)
10144 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_domain_handle, 0);
10146 return offset;
10149 static int
10150 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_)
10152 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);
10154 return offset;
10157 static int
10158 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_)
10160 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_EnumDomainUsers_resume_handle, 0);
10162 return offset;
10165 static int
10166 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_)
10168 offset = samr_dissect_bitmap_AcctFlags(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_EnumDomainUsers_acct_flags, 0);
10170 return offset;
10173 static int
10174 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_)
10176 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);
10178 return offset;
10181 static int
10182 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_)
10184 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);
10186 return offset;
10189 static int
10190 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_)
10192 offset = samr_dissect_struct_SamArray(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_EnumDomainUsers_sam,0);
10194 return offset;
10197 static int
10198 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_)
10200 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_EnumDomainUsers_max_size, 0);
10202 return offset;
10205 static int
10206 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_)
10208 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);
10210 return offset;
10213 static int
10214 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_)
10216 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_EnumDomainUsers_num_entries, 0);
10218 return offset;
10221 /* IDL: NTSTATUS samr_EnumDomainUsers( */
10222 /* IDL: [in] [ref] policy_handle *domain_handle, */
10223 /* IDL: [in] [out] [ref] uint32 *resume_handle, */
10224 /* IDL: [in] samr_AcctFlags acct_flags, */
10225 /* IDL: [out] [ref] samr_SamArray **sam, */
10226 /* IDL: [in] uint32 max_size, */
10227 /* IDL: [out] [ref] uint32 *num_entries */
10228 /* IDL: ); */
10230 static int
10231 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_)
10233 uint32_t status;
10235 di->dcerpc_procedure_name="EnumDomainUsers";
10236 offset = samr_dissect_element_EnumDomainUsers_resume_handle(tvb, offset, pinfo, tree, di, drep);
10237 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10239 offset = samr_dissect_element_EnumDomainUsers_sam(tvb, offset, pinfo, tree, di, drep);
10240 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10242 offset = samr_dissect_element_EnumDomainUsers_num_entries(tvb, offset, pinfo, tree, di, drep);
10243 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10245 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
10247 if (status != 0)
10248 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
10250 return offset;
10253 static int
10254 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_)
10256 di->dcerpc_procedure_name="EnumDomainUsers";
10257 offset = samr_dissect_element_EnumDomainUsers_domain_handle(tvb, offset, pinfo, tree, di, drep);
10258 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10259 offset = samr_dissect_element_EnumDomainUsers_resume_handle(tvb, offset, pinfo, tree, di, drep);
10260 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10261 offset = samr_dissect_element_EnumDomainUsers_acct_flags(tvb, offset, pinfo, tree, di, drep);
10262 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10263 offset = samr_dissect_element_EnumDomainUsers_max_size(tvb, offset, pinfo, tree, di, drep);
10264 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10265 return offset;
10268 static int
10269 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_)
10271 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);
10273 return offset;
10276 static int
10277 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_)
10279 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_domain_handle, 0);
10281 return offset;
10284 static int
10285 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_)
10287 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);
10289 return offset;
10292 static int
10293 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_)
10295 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_CreateDomAlias_alias_name);
10297 return offset;
10300 static int
10301 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_)
10303 offset = samr_dissect_bitmap_AliasAccessMask(tvb, offset, pinfo, tree, di, drep, hf_samr_alias_access_mask, 0);
10305 return offset;
10308 static int
10309 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_)
10311 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);
10313 return offset;
10316 static int
10317 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_)
10319 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_alias_handle, PIDL_POLHND_OPEN|PIDL_POLHND_TYPE_SAMR_ALIAS);
10321 return offset;
10324 static int
10325 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_)
10327 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);
10329 return offset;
10332 static int
10333 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_)
10335 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_rid, 0);
10337 return offset;
10340 /* IDL: NTSTATUS samr_CreateDomAlias( */
10341 /* IDL: [in] [ref] policy_handle *domain_handle, */
10342 /* IDL: [in] [ref] lsa_String *alias_name, */
10343 /* IDL: [in] samr_AliasAccessMask access_mask, */
10344 /* IDL: [out] [ref] policy_handle *alias_handle, */
10345 /* IDL: [out] [ref] uint32 *rid */
10346 /* IDL: ); */
10348 static int
10349 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_)
10351 uint32_t status;
10353 di->dcerpc_procedure_name="CreateDomAlias";
10354 offset = samr_dissect_element_CreateDomAlias_alias_handle(tvb, offset, pinfo, tree, di, drep);
10355 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10357 offset = samr_dissect_element_CreateDomAlias_rid(tvb, offset, pinfo, tree, di, drep);
10358 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10360 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
10362 if (status != 0)
10363 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
10365 return offset;
10368 static int
10369 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_)
10371 di->dcerpc_procedure_name="CreateDomAlias";
10372 offset = samr_dissect_element_CreateDomAlias_domain_handle(tvb, offset, pinfo, tree, di, drep);
10373 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10374 offset = samr_dissect_element_CreateDomAlias_alias_name(tvb, offset, pinfo, tree, di, drep);
10375 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10376 offset = samr_dissect_element_CreateDomAlias_access_mask(tvb, offset, pinfo, tree, di, drep);
10377 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10378 return offset;
10381 static int
10382 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_)
10384 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);
10386 return offset;
10389 static int
10390 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_)
10392 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_domain_handle, 0);
10394 return offset;
10397 static int
10398 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_)
10400 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);
10402 return offset;
10405 static int
10406 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_)
10408 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_EnumDomainAliases_resume_handle, 0);
10410 return offset;
10413 static int
10414 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_)
10416 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);
10418 return offset;
10421 static int
10422 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_)
10424 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);
10426 return offset;
10429 static int
10430 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_)
10432 offset = samr_dissect_struct_SamArray(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_EnumDomainAliases_sam,0);
10434 return offset;
10437 static int
10438 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_)
10440 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_EnumDomainAliases_max_size, 0);
10442 return offset;
10445 static int
10446 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_)
10448 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);
10450 return offset;
10453 static int
10454 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_)
10456 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_EnumDomainAliases_num_entries, 0);
10458 return offset;
10461 /* IDL: NTSTATUS samr_EnumDomainAliases( */
10462 /* IDL: [in] [ref] policy_handle *domain_handle, */
10463 /* IDL: [in] [out] [ref] uint32 *resume_handle, */
10464 /* IDL: [out] [ref] samr_SamArray **sam, */
10465 /* IDL: [in] uint32 max_size, */
10466 /* IDL: [out] [ref] uint32 *num_entries */
10467 /* IDL: ); */
10469 static int
10470 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_)
10472 uint32_t status;
10474 di->dcerpc_procedure_name="EnumDomainAliases";
10475 offset = samr_dissect_element_EnumDomainAliases_resume_handle(tvb, offset, pinfo, tree, di, drep);
10476 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10478 offset = samr_dissect_element_EnumDomainAliases_sam(tvb, offset, pinfo, tree, di, drep);
10479 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10481 offset = samr_dissect_element_EnumDomainAliases_num_entries(tvb, offset, pinfo, tree, di, drep);
10482 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10484 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
10486 if (status != 0)
10487 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
10489 return offset;
10492 static int
10493 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_)
10495 di->dcerpc_procedure_name="EnumDomainAliases";
10496 offset = samr_dissect_element_EnumDomainAliases_domain_handle(tvb, offset, pinfo, tree, di, drep);
10497 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10498 offset = samr_dissect_element_EnumDomainAliases_resume_handle(tvb, offset, pinfo, tree, di, drep);
10499 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10500 offset = samr_dissect_element_EnumDomainAliases_max_size(tvb, offset, pinfo, tree, di, drep);
10501 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10502 return offset;
10505 static int
10506 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_)
10508 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);
10510 return offset;
10513 static int
10514 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_)
10516 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_domain_handle, 0);
10518 return offset;
10521 static int
10522 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_)
10524 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);
10526 return offset;
10529 static int
10530 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_)
10532 offset=cnf_dissect_lsa_SidArray(tvb, offset, pinfo, tree, di, drep);
10534 return offset;
10537 static int
10538 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_)
10540 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);
10542 return offset;
10545 static int
10546 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_)
10548 offset = samr_dissect_struct_Ids(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_GetAliasMembership_rids,0);
10550 return offset;
10553 /* IDL: NTSTATUS samr_GetAliasMembership( */
10554 /* IDL: [in] [ref] policy_handle *domain_handle, */
10555 /* IDL: [in] [ref] lsa_SidArray *sids, */
10556 /* IDL: [out] [ref] samr_Ids *rids */
10557 /* IDL: ); */
10559 static int
10560 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_)
10562 uint32_t status;
10564 di->dcerpc_procedure_name="GetAliasMembership";
10565 offset = samr_dissect_element_GetAliasMembership_rids(tvb, offset, pinfo, tree, di, drep);
10566 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10568 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
10570 if (status != 0)
10571 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
10573 return offset;
10576 static int
10577 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_)
10579 di->dcerpc_procedure_name="GetAliasMembership";
10580 offset = samr_dissect_element_GetAliasMembership_domain_handle(tvb, offset, pinfo, tree, di, drep);
10581 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10582 offset = samr_dissect_element_GetAliasMembership_sids(tvb, offset, pinfo, tree, di, drep);
10583 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10584 return offset;
10587 static int
10588 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_)
10590 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);
10592 return offset;
10595 static int
10596 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_)
10598 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_domain_handle, 0);
10600 return offset;
10603 static int
10604 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_)
10606 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_LookupNames_num_names, 0);
10608 return offset;
10611 static int
10612 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_)
10614 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, samr_dissect_element_LookupNames_names_, NDR_POINTER_REF, "Pointer to Names (lsa_String)",hf_samr_samr_LookupNames_names);
10616 return offset;
10619 static int
10620 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_)
10622 struct ndr_generic_array nga = { .is_conformant = false, };
10624 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
10626 offset = dissect_ndr_varying_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
10628 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, samr_dissect_element_LookupNames_names__);
10630 return offset;
10633 static int
10634 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_)
10636 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_LookupNames_names);
10638 return offset;
10641 static int
10642 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_)
10644 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);
10646 return offset;
10649 static int
10650 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_)
10652 offset = samr_dissect_struct_Ids(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_LookupNames_rids,0);
10654 return offset;
10657 static int
10658 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_)
10660 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);
10662 return offset;
10665 static int
10666 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_)
10668 offset = samr_dissect_struct_Ids(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_LookupNames_types,0);
10670 return offset;
10673 /* IDL: NTSTATUS samr_LookupNames( */
10674 /* IDL: [in] [ref] policy_handle *domain_handle, */
10675 /* IDL: [in] [range(0,1000)] uint32 num_names, */
10676 /* IDL: [in] [length_is(num_names)] [ref] [size_is(1000)] lsa_String *names, */
10677 /* IDL: [out] [ref] samr_Ids *rids, */
10678 /* IDL: [out] [ref] samr_Ids *types */
10679 /* IDL: ); */
10681 static int
10682 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_)
10684 uint32_t status;
10686 di->dcerpc_procedure_name="LookupNames";
10687 offset = samr_dissect_element_LookupNames_rids(tvb, offset, pinfo, tree, di, drep);
10688 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10690 offset = samr_dissect_element_LookupNames_types(tvb, offset, pinfo, tree, di, drep);
10691 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10693 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
10695 if (status != 0)
10696 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
10698 return offset;
10701 static int
10702 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_)
10704 di->dcerpc_procedure_name="LookupNames";
10705 offset = samr_dissect_element_LookupNames_domain_handle(tvb, offset, pinfo, tree, di, drep);
10706 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10707 offset = samr_dissect_element_LookupNames_num_names(tvb, offset, pinfo, tree, di, drep);
10708 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10709 offset = samr_dissect_element_LookupNames_names(tvb, offset, pinfo, tree, di, drep);
10710 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10711 return offset;
10714 static int
10715 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_)
10717 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);
10719 return offset;
10722 static int
10723 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_)
10725 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_domain_handle, 0);
10727 return offset;
10730 static int
10731 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_)
10733 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_LookupRids_num_rids, 0);
10735 return offset;
10738 static int
10739 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_)
10741 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);
10743 return offset;
10746 static int
10747 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_)
10749 struct ndr_generic_array nga = { .is_conformant = false, };
10751 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
10753 offset = dissect_ndr_varying_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
10755 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, samr_dissect_element_LookupRids_rids__);
10757 return offset;
10760 static int
10761 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_)
10763 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_rid, 0);
10765 return offset;
10768 static int
10769 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_)
10771 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);
10773 return offset;
10776 static int
10777 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_)
10779 offset = samr_dissect_struct_lsa_Strings(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_LookupRids_names,0);
10781 return offset;
10784 static int
10785 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_)
10787 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);
10789 return offset;
10792 static int
10793 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_)
10795 offset = samr_dissect_struct_Ids(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_LookupRids_types,0);
10797 return offset;
10800 /* IDL: NTSTATUS samr_LookupRids( */
10801 /* IDL: [in] [ref] policy_handle *domain_handle, */
10802 /* IDL: [in] [range(0,1000)] uint32 num_rids, */
10803 /* IDL: [in] [length_is(num_rids)] [ref] [size_is(1000)] uint32 *rids, */
10804 /* IDL: [out] [ref] lsa_Strings *names, */
10805 /* IDL: [out] [ref] samr_Ids *types */
10806 /* IDL: ); */
10808 static int
10809 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_)
10811 uint32_t status;
10813 di->dcerpc_procedure_name="LookupRids";
10814 offset = samr_dissect_element_LookupRids_names(tvb, offset, pinfo, tree, di, drep);
10815 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10817 offset = samr_dissect_element_LookupRids_types(tvb, offset, pinfo, tree, di, drep);
10818 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10820 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
10822 if (status != 0)
10823 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
10825 return offset;
10828 static int
10829 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_)
10831 di->dcerpc_procedure_name="LookupRids";
10832 offset = samr_dissect_element_LookupRids_domain_handle(tvb, offset, pinfo, tree, di, drep);
10833 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10834 offset = samr_dissect_element_LookupRids_num_rids(tvb, offset, pinfo, tree, di, drep);
10835 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10836 offset = samr_dissect_element_LookupRids_rids(tvb, offset, pinfo, tree, di, drep);
10837 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10838 return offset;
10841 static int
10842 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_)
10844 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);
10846 return offset;
10849 static int
10850 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_)
10852 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_domain_handle, 0);
10854 return offset;
10857 static int
10858 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_)
10860 offset = samr_dissect_bitmap_GroupAccessMask(tvb, offset, pinfo, tree, di, drep, hf_samr_group_access_mask, 0);
10862 return offset;
10865 static int
10866 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_)
10868 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_rid, 0);
10870 return offset;
10873 static int
10874 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_)
10876 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);
10878 return offset;
10881 static int
10882 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_)
10884 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_group_handle, PIDL_POLHND_OPEN|PIDL_POLHND_TYPE_SAMR_GROUP);
10886 return offset;
10889 /* IDL: NTSTATUS samr_OpenGroup( */
10890 /* IDL: [in] [ref] policy_handle *domain_handle, */
10891 /* IDL: [in] samr_GroupAccessMask access_mask, */
10892 /* IDL: [in] uint32 rid, */
10893 /* IDL: [out] [ref] policy_handle *group_handle */
10894 /* IDL: ); */
10896 static int
10897 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_)
10899 uint32_t status;
10901 di->dcerpc_procedure_name="OpenGroup";
10902 offset = samr_dissect_element_OpenGroup_group_handle(tvb, offset, pinfo, tree, di, drep);
10903 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10905 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
10907 if (status != 0)
10908 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
10910 return offset;
10913 static int
10914 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_)
10916 di->dcerpc_procedure_name="OpenGroup";
10917 offset = samr_dissect_element_OpenGroup_domain_handle(tvb, offset, pinfo, tree, di, drep);
10918 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10919 offset = samr_dissect_element_OpenGroup_access_mask(tvb, offset, pinfo, tree, di, drep);
10920 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10921 offset = samr_dissect_element_OpenGroup_rid(tvb, offset, pinfo, tree, di, drep);
10922 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10923 return offset;
10926 static int
10927 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_)
10929 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);
10931 return offset;
10934 static int
10935 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_)
10937 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_group_handle, 0);
10939 return offset;
10942 static int
10943 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_)
10945 offset = samr_dissect_enum_GroupInfoEnum(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryGroupInfo_level, 0);
10947 return offset;
10950 static int
10951 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_)
10953 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);
10955 return offset;
10958 static int
10959 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_)
10961 uint64_t saved_switch_level = di->switch_level;
10963 di->switch_level = 0;
10965 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);
10967 di->switch_level = saved_switch_level;
10969 return offset;
10972 static int
10973 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_)
10975 offset = samr_dissect_GroupInfo(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryGroupInfo_info, 0);
10977 return offset;
10980 /* IDL: NTSTATUS samr_QueryGroupInfo( */
10981 /* IDL: [in] [ref] policy_handle *group_handle, */
10982 /* IDL: [in] samr_GroupInfoEnum level, */
10983 /* IDL: [out] [ref] [switch_is(level)] samr_GroupInfo **info */
10984 /* IDL: ); */
10986 static int
10987 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_)
10989 uint32_t status;
10991 di->dcerpc_procedure_name="QueryGroupInfo";
10992 offset = samr_dissect_element_QueryGroupInfo_info(tvb, offset, pinfo, tree, di, drep);
10993 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
10995 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
10997 if (status != 0)
10998 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
11000 return offset;
11003 static int
11004 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_)
11006 di->dcerpc_procedure_name="QueryGroupInfo";
11007 offset = samr_dissect_element_QueryGroupInfo_group_handle(tvb, offset, pinfo, tree, di, drep);
11008 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11009 offset = samr_dissect_element_QueryGroupInfo_level(tvb, offset, pinfo, tree, di, drep);
11010 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11011 return offset;
11014 static int
11015 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_)
11017 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);
11019 return offset;
11022 static int
11023 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_)
11025 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_group_handle, 0);
11027 return offset;
11030 static int
11031 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_)
11033 offset = samr_dissect_enum_GroupInfoEnum(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_SetGroupInfo_level, 0);
11035 return offset;
11038 static int
11039 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_)
11041 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);
11043 return offset;
11046 static int
11047 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_)
11049 offset = samr_dissect_GroupInfo(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_SetGroupInfo_info, 0);
11051 return offset;
11054 /* IDL: NTSTATUS samr_SetGroupInfo( */
11055 /* IDL: [in] [ref] policy_handle *group_handle, */
11056 /* IDL: [in] samr_GroupInfoEnum level, */
11057 /* IDL: [in] [ref] [switch_is(level)] samr_GroupInfo *info */
11058 /* IDL: ); */
11060 static int
11061 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_)
11063 uint32_t status;
11065 di->dcerpc_procedure_name="SetGroupInfo";
11066 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
11068 if (status != 0)
11069 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
11071 return offset;
11074 static int
11075 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_)
11077 di->dcerpc_procedure_name="SetGroupInfo";
11078 offset = samr_dissect_element_SetGroupInfo_group_handle(tvb, offset, pinfo, tree, di, drep);
11079 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11080 offset = samr_dissect_element_SetGroupInfo_level(tvb, offset, pinfo, tree, di, drep);
11081 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11082 offset = samr_dissect_element_SetGroupInfo_info(tvb, offset, pinfo, tree, di, drep);
11083 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11084 return offset;
11087 static int
11088 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_)
11090 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);
11092 return offset;
11095 static int
11096 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_)
11098 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_group_handle, 0);
11100 return offset;
11103 static int
11104 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_)
11106 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_rid, 0);
11108 return offset;
11111 static int
11112 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_)
11114 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_AddGroupMember_flags, 0);
11116 return offset;
11119 /* IDL: NTSTATUS samr_AddGroupMember( */
11120 /* IDL: [in] [ref] policy_handle *group_handle, */
11121 /* IDL: [in] uint32 rid, */
11122 /* IDL: [in] uint32 flags */
11123 /* IDL: ); */
11125 static int
11126 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_)
11128 uint32_t status;
11130 di->dcerpc_procedure_name="AddGroupMember";
11131 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
11133 if (status != 0)
11134 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
11136 return offset;
11139 static int
11140 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_)
11142 di->dcerpc_procedure_name="AddGroupMember";
11143 offset = samr_dissect_element_AddGroupMember_group_handle(tvb, offset, pinfo, tree, di, drep);
11144 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11145 offset = samr_dissect_element_AddGroupMember_rid(tvb, offset, pinfo, tree, di, drep);
11146 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11147 offset = samr_dissect_element_AddGroupMember_flags(tvb, offset, pinfo, tree, di, drep);
11148 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11149 return offset;
11152 static int
11153 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_)
11155 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);
11157 return offset;
11160 static int
11161 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_)
11163 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_group_handle, PIDL_POLHND_CLOSE);
11165 return offset;
11168 /* IDL: NTSTATUS samr_DeleteDomainGroup( */
11169 /* IDL: [in] [out] [ref] policy_handle *group_handle */
11170 /* IDL: ); */
11172 static int
11173 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_)
11175 uint32_t status;
11177 di->dcerpc_procedure_name="DeleteDomainGroup";
11178 offset = samr_dissect_element_DeleteDomainGroup_group_handle(tvb, offset, pinfo, tree, di, drep);
11179 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11181 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
11183 if (status != 0)
11184 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
11186 return offset;
11189 static int
11190 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_)
11192 di->dcerpc_procedure_name="DeleteDomainGroup";
11193 offset = samr_dissect_element_DeleteDomainGroup_group_handle(tvb, offset, pinfo, tree, di, drep);
11194 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11195 return offset;
11198 static int
11199 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_)
11201 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);
11203 return offset;
11206 static int
11207 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_)
11209 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_group_handle, 0);
11211 return offset;
11214 static int
11215 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_)
11217 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_rid, 0);
11219 return offset;
11222 /* IDL: NTSTATUS samr_DeleteGroupMember( */
11223 /* IDL: [in] [ref] policy_handle *group_handle, */
11224 /* IDL: [in] uint32 rid */
11225 /* IDL: ); */
11227 static int
11228 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_)
11230 uint32_t status;
11232 di->dcerpc_procedure_name="DeleteGroupMember";
11233 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
11235 if (status != 0)
11236 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
11238 return offset;
11241 static int
11242 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_)
11244 di->dcerpc_procedure_name="DeleteGroupMember";
11245 offset = samr_dissect_element_DeleteGroupMember_group_handle(tvb, offset, pinfo, tree, di, drep);
11246 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11247 offset = samr_dissect_element_DeleteGroupMember_rid(tvb, offset, pinfo, tree, di, drep);
11248 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11249 return offset;
11252 static int
11253 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_)
11255 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);
11257 return offset;
11260 static int
11261 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_)
11263 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_group_handle, 0);
11265 return offset;
11268 static int
11269 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_)
11271 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);
11273 return offset;
11276 static int
11277 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_)
11279 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);
11281 return offset;
11284 static int
11285 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_)
11287 offset = samr_dissect_struct_RidTypeArray(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_QueryGroupMember_rids,0);
11289 return offset;
11292 /* IDL: NTSTATUS samr_QueryGroupMember( */
11293 /* IDL: [in] [ref] policy_handle *group_handle, */
11294 /* IDL: [out] [ref] samr_RidTypeArray **rids */
11295 /* IDL: ); */
11297 static int
11298 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_)
11300 uint32_t status;
11302 di->dcerpc_procedure_name="QueryGroupMember";
11303 offset = samr_dissect_element_QueryGroupMember_rids(tvb, offset, pinfo, tree, di, drep);
11304 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11306 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
11308 if (status != 0)
11309 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
11311 return offset;
11314 static int
11315 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_)
11317 di->dcerpc_procedure_name="QueryGroupMember";
11318 offset = samr_dissect_element_QueryGroupMember_group_handle(tvb, offset, pinfo, tree, di, drep);
11319 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11320 return offset;
11323 static int
11324 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_)
11326 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);
11328 return offset;
11331 static int
11332 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_)
11334 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_group_handle, 0);
11336 return offset;
11339 static int
11340 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_)
11342 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_SetMemberAttributesOfGroup_unknown1, 0);
11344 return offset;
11347 static int
11348 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_)
11350 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_SetMemberAttributesOfGroup_unknown2, 0);
11352 return offset;
11355 /* IDL: NTSTATUS samr_SetMemberAttributesOfGroup( */
11356 /* IDL: [in] [ref] policy_handle *group_handle, */
11357 /* IDL: [in] uint32 unknown1, */
11358 /* IDL: [in] uint32 unknown2 */
11359 /* IDL: ); */
11361 static int
11362 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_)
11364 uint32_t status;
11366 di->dcerpc_procedure_name="SetMemberAttributesOfGroup";
11367 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
11369 if (status != 0)
11370 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
11372 return offset;
11375 static int
11376 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_)
11378 di->dcerpc_procedure_name="SetMemberAttributesOfGroup";
11379 offset = samr_dissect_element_SetMemberAttributesOfGroup_group_handle(tvb, offset, pinfo, tree, di, drep);
11380 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11381 offset = samr_dissect_element_SetMemberAttributesOfGroup_unknown1(tvb, offset, pinfo, tree, di, drep);
11382 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11383 offset = samr_dissect_element_SetMemberAttributesOfGroup_unknown2(tvb, offset, pinfo, tree, di, drep);
11384 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11385 return offset;
11388 static int
11389 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_)
11391 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);
11393 return offset;
11396 static int
11397 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_)
11399 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_domain_handle, 0);
11401 return offset;
11404 static int
11405 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_)
11407 offset = samr_dissect_bitmap_AliasAccessMask(tvb, offset, pinfo, tree, di, drep, hf_samr_alias_access_mask, 0);
11409 return offset;
11412 static int
11413 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_)
11415 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_rid, 0);
11417 return offset;
11420 static int
11421 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_)
11423 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);
11425 return offset;
11428 static int
11429 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_)
11431 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_alias_handle, PIDL_POLHND_OPEN|PIDL_POLHND_TYPE_SAMR_ALIAS);
11433 return offset;
11436 /* IDL: NTSTATUS samr_OpenAlias( */
11437 /* IDL: [in] [ref] policy_handle *domain_handle, */
11438 /* IDL: [in] samr_AliasAccessMask access_mask, */
11439 /* IDL: [in] uint32 rid, */
11440 /* IDL: [out] [ref] policy_handle *alias_handle */
11441 /* IDL: ); */
11443 static int
11444 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_)
11446 uint32_t status;
11448 di->dcerpc_procedure_name="OpenAlias";
11449 offset = samr_dissect_element_OpenAlias_alias_handle(tvb, offset, pinfo, tree, di, drep);
11450 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11452 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
11454 if (status != 0)
11455 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
11457 return offset;
11460 static int
11461 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_)
11463 di->dcerpc_procedure_name="OpenAlias";
11464 offset = samr_dissect_element_OpenAlias_domain_handle(tvb, offset, pinfo, tree, di, drep);
11465 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11466 offset = samr_dissect_element_OpenAlias_access_mask(tvb, offset, pinfo, tree, di, drep);
11467 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11468 offset = samr_dissect_element_OpenAlias_rid(tvb, offset, pinfo, tree, di, drep);
11469 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11470 return offset;
11473 static int
11474 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_)
11476 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);
11478 return offset;
11481 static int
11482 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_)
11484 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_alias_handle, 0);
11486 return offset;
11489 static int
11490 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_)
11492 offset = samr_dissect_enum_AliasInfoEnum(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryAliasInfo_level, 0);
11494 return offset;
11497 static int
11498 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_)
11500 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);
11502 return offset;
11505 static int
11506 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_)
11508 uint64_t saved_switch_level = di->switch_level;
11510 di->switch_level = 0;
11512 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);
11514 di->switch_level = saved_switch_level;
11516 return offset;
11519 static int
11520 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_)
11522 offset = samr_dissect_AliasInfo(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryAliasInfo_info, 0);
11524 return offset;
11527 /* IDL: NTSTATUS samr_QueryAliasInfo( */
11528 /* IDL: [in] [ref] policy_handle *alias_handle, */
11529 /* IDL: [in] samr_AliasInfoEnum level, */
11530 /* IDL: [out] [ref] [switch_is(level)] samr_AliasInfo **info */
11531 /* IDL: ); */
11533 static int
11534 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_)
11536 uint32_t status;
11538 di->dcerpc_procedure_name="QueryAliasInfo";
11539 offset = samr_dissect_element_QueryAliasInfo_info(tvb, offset, pinfo, tree, di, drep);
11540 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11542 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
11544 if (status != 0)
11545 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
11547 return offset;
11550 static int
11551 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_)
11553 di->dcerpc_procedure_name="QueryAliasInfo";
11554 offset = samr_dissect_element_QueryAliasInfo_alias_handle(tvb, offset, pinfo, tree, di, drep);
11555 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11556 offset = samr_dissect_element_QueryAliasInfo_level(tvb, offset, pinfo, tree, di, drep);
11557 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11558 return offset;
11561 static int
11562 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_)
11564 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);
11566 return offset;
11569 static int
11570 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_)
11572 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_alias_handle, 0);
11574 return offset;
11577 static int
11578 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_)
11580 offset = samr_dissect_enum_AliasInfoEnum(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_SetAliasInfo_level, 0);
11582 return offset;
11585 static int
11586 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_)
11588 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);
11590 return offset;
11593 static int
11594 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_)
11596 offset = samr_dissect_AliasInfo(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_SetAliasInfo_info, 0);
11598 return offset;
11601 /* IDL: NTSTATUS samr_SetAliasInfo( */
11602 /* IDL: [in] [ref] policy_handle *alias_handle, */
11603 /* IDL: [in] samr_AliasInfoEnum level, */
11604 /* IDL: [in] [ref] [switch_is(level)] samr_AliasInfo *info */
11605 /* IDL: ); */
11607 static int
11608 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_)
11610 uint32_t status;
11612 di->dcerpc_procedure_name="SetAliasInfo";
11613 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
11615 if (status != 0)
11616 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
11618 return offset;
11621 static int
11622 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_)
11624 di->dcerpc_procedure_name="SetAliasInfo";
11625 offset = samr_dissect_element_SetAliasInfo_alias_handle(tvb, offset, pinfo, tree, di, drep);
11626 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11627 offset = samr_dissect_element_SetAliasInfo_level(tvb, offset, pinfo, tree, di, drep);
11628 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11629 offset = samr_dissect_element_SetAliasInfo_info(tvb, offset, pinfo, tree, di, drep);
11630 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11631 return offset;
11634 static int
11635 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_)
11637 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);
11639 return offset;
11642 static int
11643 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_)
11645 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_alias_handle, PIDL_POLHND_CLOSE);
11647 return offset;
11650 /* IDL: NTSTATUS samr_DeleteDomAlias( */
11651 /* IDL: [in] [out] [ref] policy_handle *alias_handle */
11652 /* IDL: ); */
11654 static int
11655 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_)
11657 uint32_t status;
11659 di->dcerpc_procedure_name="DeleteDomAlias";
11660 offset = samr_dissect_element_DeleteDomAlias_alias_handle(tvb, offset, pinfo, tree, di, drep);
11661 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11663 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
11665 if (status != 0)
11666 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
11668 return offset;
11671 static int
11672 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_)
11674 di->dcerpc_procedure_name="DeleteDomAlias";
11675 offset = samr_dissect_element_DeleteDomAlias_alias_handle(tvb, offset, pinfo, tree, di, drep);
11676 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11677 return offset;
11680 static int
11681 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_)
11683 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);
11685 return offset;
11688 static int
11689 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_)
11691 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_alias_handle, 0);
11693 return offset;
11696 static int
11697 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_)
11699 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);
11701 return offset;
11704 static int
11705 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_)
11707 offset=cnf_dissect_dom_sid2(tvb, offset, pinfo, tree, di, drep);
11709 return offset;
11712 /* IDL: NTSTATUS samr_AddAliasMember( */
11713 /* IDL: [in] [ref] policy_handle *alias_handle, */
11714 /* IDL: [in] [ref] dom_sid2 *sid */
11715 /* IDL: ); */
11717 static int
11718 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_)
11720 uint32_t status;
11722 di->dcerpc_procedure_name="AddAliasMember";
11723 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
11725 if (status != 0)
11726 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
11728 return offset;
11731 static int
11732 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_)
11734 di->dcerpc_procedure_name="AddAliasMember";
11735 offset = samr_dissect_element_AddAliasMember_alias_handle(tvb, offset, pinfo, tree, di, drep);
11736 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11737 offset = samr_dissect_element_AddAliasMember_sid(tvb, offset, pinfo, tree, di, drep);
11738 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11739 return offset;
11742 static int
11743 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_)
11745 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);
11747 return offset;
11750 static int
11751 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_)
11753 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_alias_handle, 0);
11755 return offset;
11758 static int
11759 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_)
11761 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);
11763 return offset;
11766 static int
11767 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_)
11769 offset=cnf_dissect_dom_sid2(tvb, offset, pinfo, tree, di, drep);
11771 return offset;
11774 /* IDL: NTSTATUS samr_DeleteAliasMember( */
11775 /* IDL: [in] [ref] policy_handle *alias_handle, */
11776 /* IDL: [in] [ref] dom_sid2 *sid */
11777 /* IDL: ); */
11779 static int
11780 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_)
11782 uint32_t status;
11784 di->dcerpc_procedure_name="DeleteAliasMember";
11785 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
11787 if (status != 0)
11788 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
11790 return offset;
11793 static int
11794 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_)
11796 di->dcerpc_procedure_name="DeleteAliasMember";
11797 offset = samr_dissect_element_DeleteAliasMember_alias_handle(tvb, offset, pinfo, tree, di, drep);
11798 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11799 offset = samr_dissect_element_DeleteAliasMember_sid(tvb, offset, pinfo, tree, di, drep);
11800 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11801 return offset;
11804 static int
11805 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_)
11807 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);
11809 return offset;
11812 static int
11813 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_)
11815 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_alias_handle, 0);
11817 return offset;
11820 static int
11821 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_)
11823 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);
11825 return offset;
11828 static int
11829 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_)
11831 offset=cnf_dissect_lsa_SidArray(tvb, offset, pinfo, tree, di, drep);
11833 return offset;
11836 /* IDL: NTSTATUS samr_GetMembersInAlias( */
11837 /* IDL: [in] [ref] policy_handle *alias_handle, */
11838 /* IDL: [out] [ref] lsa_SidArray *sids */
11839 /* IDL: ); */
11841 static int
11842 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_)
11844 uint32_t status;
11846 di->dcerpc_procedure_name="GetMembersInAlias";
11847 offset = samr_dissect_element_GetMembersInAlias_sids(tvb, offset, pinfo, tree, di, drep);
11848 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11850 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
11852 if (status != 0)
11853 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
11855 return offset;
11858 static int
11859 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_)
11861 di->dcerpc_procedure_name="GetMembersInAlias";
11862 offset = samr_dissect_element_GetMembersInAlias_alias_handle(tvb, offset, pinfo, tree, di, drep);
11863 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11864 return offset;
11867 static int
11868 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_)
11870 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);
11872 return offset;
11875 static int
11876 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_)
11878 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_domain_handle, 0);
11880 return offset;
11883 static int
11884 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_)
11886 offset = samr_dissect_bitmap_UserAccessMask(tvb, offset, pinfo, tree, di, drep, hf_samr_user_access_mask, 0);
11888 return offset;
11891 static int
11892 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_)
11894 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_rid, 0);
11896 return offset;
11899 static int
11900 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_)
11902 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);
11904 return offset;
11907 static int
11908 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_)
11910 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_user_handle, PIDL_POLHND_OPEN|PIDL_POLHND_TYPE_SAMR_USER);
11912 return offset;
11915 /* IDL: NTSTATUS samr_OpenUser( */
11916 /* IDL: [in] [ref] policy_handle *domain_handle, */
11917 /* IDL: [in] samr_UserAccessMask access_mask, */
11918 /* IDL: [in] uint32 rid, */
11919 /* IDL: [out] [ref] policy_handle *user_handle */
11920 /* IDL: ); */
11922 static int
11923 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_)
11925 uint32_t status;
11927 di->dcerpc_procedure_name="OpenUser";
11928 offset = samr_dissect_element_OpenUser_user_handle(tvb, offset, pinfo, tree, di, drep);
11929 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11931 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
11933 if (status != 0)
11934 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
11936 return offset;
11939 static int
11940 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_)
11942 di->dcerpc_procedure_name="OpenUser";
11943 offset = samr_dissect_element_OpenUser_domain_handle(tvb, offset, pinfo, tree, di, drep);
11944 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11945 offset = samr_dissect_element_OpenUser_access_mask(tvb, offset, pinfo, tree, di, drep);
11946 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11947 offset = samr_dissect_element_OpenUser_rid(tvb, offset, pinfo, tree, di, drep);
11948 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11949 return offset;
11952 static int
11953 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_)
11955 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);
11957 return offset;
11960 static int
11961 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_)
11963 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_user_handle, PIDL_POLHND_CLOSE);
11965 return offset;
11968 /* IDL: NTSTATUS samr_DeleteUser( */
11969 /* IDL: [in] [out] [ref] policy_handle *user_handle */
11970 /* IDL: ); */
11972 static int
11973 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_)
11975 uint32_t status;
11977 di->dcerpc_procedure_name="DeleteUser";
11978 offset = samr_dissect_element_DeleteUser_user_handle(tvb, offset, pinfo, tree, di, drep);
11979 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11981 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
11983 if (status != 0)
11984 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
11986 return offset;
11989 static int
11990 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_)
11992 di->dcerpc_procedure_name="DeleteUser";
11993 offset = samr_dissect_element_DeleteUser_user_handle(tvb, offset, pinfo, tree, di, drep);
11994 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
11995 return offset;
11998 static int
11999 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_)
12001 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);
12003 return offset;
12006 static int
12007 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_)
12009 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_user_handle, 0);
12011 return offset;
12014 static int
12015 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_)
12017 offset = samr_dissect_enum_UserInfoLevel(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryUserInfo_level, 0);
12019 return offset;
12022 static int
12023 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_)
12025 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);
12027 return offset;
12030 static int
12031 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_)
12033 uint64_t saved_switch_level = di->switch_level;
12035 di->switch_level = 0;
12037 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);
12039 di->switch_level = saved_switch_level;
12041 return offset;
12044 static int
12045 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_)
12047 offset = samr_dissect_UserInfo(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryUserInfo_info, 0);
12049 return offset;
12052 /* IDL: NTSTATUS samr_QueryUserInfo( */
12053 /* IDL: [in] [ref] policy_handle *user_handle, */
12054 /* IDL: [in] samr_UserInfoLevel level, */
12055 /* IDL: [out] [ref] [switch_is(level)] samr_UserInfo **info */
12056 /* IDL: ); */
12058 static int
12059 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_)
12061 uint32_t status;
12063 di->dcerpc_procedure_name="QueryUserInfo";
12064 offset = samr_dissect_element_QueryUserInfo_info(tvb, offset, pinfo, tree, di, drep);
12065 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12067 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
12069 if (status != 0)
12070 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
12072 return offset;
12075 static int
12076 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_)
12078 di->dcerpc_procedure_name="QueryUserInfo";
12079 offset = samr_dissect_element_QueryUserInfo_user_handle(tvb, offset, pinfo, tree, di, drep);
12080 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12081 offset = samr_dissect_element_QueryUserInfo_level(tvb, offset, pinfo, tree, di, drep);
12082 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12083 return offset;
12086 static int
12087 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_)
12089 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);
12091 return offset;
12094 static int
12095 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_)
12097 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_user_handle, 0);
12099 return offset;
12102 static int
12103 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_)
12105 offset = samr_dissect_enum_UserInfoLevel(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_SetUserInfo_level, 0);
12107 return offset;
12110 static int
12111 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_)
12113 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);
12115 return offset;
12118 static int
12119 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_)
12121 offset = samr_dissect_UserInfo(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_SetUserInfo_info, 0);
12123 return offset;
12126 /* IDL: NTSTATUS samr_SetUserInfo( */
12127 /* IDL: [in] [ref] policy_handle *user_handle, */
12128 /* IDL: [in] samr_UserInfoLevel level, */
12129 /* IDL: [in] [ref] [switch_is(level)] samr_UserInfo *info */
12130 /* IDL: ); */
12132 static int
12133 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_)
12135 uint32_t status;
12137 di->dcerpc_procedure_name="SetUserInfo";
12138 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
12140 if (status != 0)
12141 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
12143 return offset;
12146 static int
12147 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_)
12149 di->dcerpc_procedure_name="SetUserInfo";
12150 offset = samr_dissect_element_SetUserInfo_user_handle(tvb, offset, pinfo, tree, di, drep);
12151 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12152 offset = samr_dissect_element_SetUserInfo_level(tvb, offset, pinfo, tree, di, drep);
12153 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12154 offset = samr_dissect_element_SetUserInfo_info(tvb, offset, pinfo, tree, di, drep);
12155 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12156 return offset;
12159 static int
12160 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_)
12162 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);
12164 return offset;
12167 static int
12168 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_)
12170 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_user_handle, 0);
12172 return offset;
12175 static int
12176 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_)
12178 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_ChangePasswordUser_lm_present, 0);
12180 return offset;
12183 static int
12184 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_)
12186 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);
12188 return offset;
12191 static int
12192 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_)
12194 offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ChangePasswordUser_old_lm_crypted,0);
12196 return offset;
12199 static int
12200 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_)
12202 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);
12204 return offset;
12207 static int
12208 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_)
12210 offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ChangePasswordUser_new_lm_crypted,0);
12212 return offset;
12215 static int
12216 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_)
12218 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_ChangePasswordUser_nt_present, 0);
12220 return offset;
12223 static int
12224 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_)
12226 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);
12228 return offset;
12231 static int
12232 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_)
12234 offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ChangePasswordUser_old_nt_crypted,0);
12236 return offset;
12239 static int
12240 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_)
12242 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);
12244 return offset;
12247 static int
12248 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_)
12250 offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ChangePasswordUser_new_nt_crypted,0);
12252 return offset;
12255 static int
12256 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_)
12258 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_ChangePasswordUser_cross1_present, 0);
12260 return offset;
12263 static int
12264 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_)
12266 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);
12268 return offset;
12271 static int
12272 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_)
12274 offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ChangePasswordUser_nt_cross,0);
12276 return offset;
12279 static int
12280 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_)
12282 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_ChangePasswordUser_cross2_present, 0);
12284 return offset;
12287 static int
12288 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_)
12290 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);
12292 return offset;
12295 static int
12296 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_)
12298 offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ChangePasswordUser_lm_cross,0);
12300 return offset;
12303 /* IDL: NTSTATUS samr_ChangePasswordUser( */
12304 /* IDL: [in] [ref] policy_handle *user_handle, */
12305 /* IDL: [in] uint8 lm_present, */
12306 /* IDL: [in] [unique(1)] samr_Password *old_lm_crypted, */
12307 /* IDL: [in] [unique(1)] samr_Password *new_lm_crypted, */
12308 /* IDL: [in] uint8 nt_present, */
12309 /* IDL: [in] [unique(1)] samr_Password *old_nt_crypted, */
12310 /* IDL: [in] [unique(1)] samr_Password *new_nt_crypted, */
12311 /* IDL: [in] uint8 cross1_present, */
12312 /* IDL: [in] [unique(1)] samr_Password *nt_cross, */
12313 /* IDL: [in] uint8 cross2_present, */
12314 /* IDL: [in] [unique(1)] samr_Password *lm_cross */
12315 /* IDL: ); */
12317 static int
12318 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_)
12320 uint32_t status;
12322 di->dcerpc_procedure_name="ChangePasswordUser";
12323 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
12325 if (status != 0)
12326 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
12328 return offset;
12331 static int
12332 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_)
12334 di->dcerpc_procedure_name="ChangePasswordUser";
12335 offset = samr_dissect_element_ChangePasswordUser_user_handle(tvb, offset, pinfo, tree, di, drep);
12336 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12337 offset = samr_dissect_element_ChangePasswordUser_lm_present(tvb, offset, pinfo, tree, di, drep);
12338 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12339 offset = samr_dissect_element_ChangePasswordUser_old_lm_crypted(tvb, offset, pinfo, tree, di, drep);
12340 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12341 offset = samr_dissect_element_ChangePasswordUser_new_lm_crypted(tvb, offset, pinfo, tree, di, drep);
12342 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12343 offset = samr_dissect_element_ChangePasswordUser_nt_present(tvb, offset, pinfo, tree, di, drep);
12344 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12345 offset = samr_dissect_element_ChangePasswordUser_old_nt_crypted(tvb, offset, pinfo, tree, di, drep);
12346 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12347 offset = samr_dissect_element_ChangePasswordUser_new_nt_crypted(tvb, offset, pinfo, tree, di, drep);
12348 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12349 offset = samr_dissect_element_ChangePasswordUser_cross1_present(tvb, offset, pinfo, tree, di, drep);
12350 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12351 offset = samr_dissect_element_ChangePasswordUser_nt_cross(tvb, offset, pinfo, tree, di, drep);
12352 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12353 offset = samr_dissect_element_ChangePasswordUser_cross2_present(tvb, offset, pinfo, tree, di, drep);
12354 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12355 offset = samr_dissect_element_ChangePasswordUser_lm_cross(tvb, offset, pinfo, tree, di, drep);
12356 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12357 return offset;
12360 static int
12361 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_)
12363 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);
12365 return offset;
12368 static int
12369 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_)
12371 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_user_handle, 0);
12373 return offset;
12376 static int
12377 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_)
12379 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);
12381 return offset;
12384 static int
12385 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_)
12387 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);
12389 return offset;
12392 static int
12393 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_)
12395 offset = samr_dissect_struct_RidWithAttributeArray(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_GetGroupsForUser_rids,0);
12397 return offset;
12400 /* IDL: NTSTATUS samr_GetGroupsForUser( */
12401 /* IDL: [in] [ref] policy_handle *user_handle, */
12402 /* IDL: [out] [ref] samr_RidWithAttributeArray **rids */
12403 /* IDL: ); */
12405 static int
12406 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_)
12408 uint32_t status;
12410 di->dcerpc_procedure_name="GetGroupsForUser";
12411 offset = samr_dissect_element_GetGroupsForUser_rids(tvb, offset, pinfo, tree, di, drep);
12412 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12414 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
12416 if (status != 0)
12417 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
12419 return offset;
12422 static int
12423 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_)
12425 di->dcerpc_procedure_name="GetGroupsForUser";
12426 offset = samr_dissect_element_GetGroupsForUser_user_handle(tvb, offset, pinfo, tree, di, drep);
12427 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12428 return offset;
12431 static int
12432 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_)
12434 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);
12436 return offset;
12439 static int
12440 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_)
12442 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_domain_handle, 0);
12444 return offset;
12447 static int
12448 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_)
12450 offset = samr_dissect_enum_DomainDisplayInformation(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryDisplayInfo_level, 0);
12452 return offset;
12455 static int
12456 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_)
12458 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryDisplayInfo_start_idx, 0);
12460 return offset;
12463 static int
12464 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_)
12466 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryDisplayInfo_max_entries, 0);
12468 return offset;
12471 static int
12472 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_)
12474 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryDisplayInfo_buf_size, 0);
12476 return offset;
12479 static int
12480 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_)
12482 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);
12484 return offset;
12487 static int
12488 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_)
12490 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryDisplayInfo_total_size, 0);
12492 return offset;
12495 static int
12496 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_)
12498 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);
12500 return offset;
12503 static int
12504 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_)
12506 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryDisplayInfo_returned_size, 0);
12508 return offset;
12511 static int
12512 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_)
12514 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);
12516 return offset;
12519 static int
12520 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_)
12522 offset = samr_dissect_DispInfo(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryDisplayInfo_info, 0);
12524 return offset;
12527 /* IDL: NTSTATUS samr_QueryDisplayInfo( */
12528 /* IDL: [in] [ref] policy_handle *domain_handle, */
12529 /* IDL: [in] samr_DomainDisplayInformation level, */
12530 /* IDL: [in] uint32 start_idx, */
12531 /* IDL: [in] uint32 max_entries, */
12532 /* IDL: [in] uint32 buf_size, */
12533 /* IDL: [out] [ref] uint32 *total_size, */
12534 /* IDL: [out] [ref] uint32 *returned_size, */
12535 /* IDL: [out] [ref] [switch_is(level)] samr_DispInfo *info */
12536 /* IDL: ); */
12538 static int
12539 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_)
12541 uint32_t status;
12543 di->dcerpc_procedure_name="QueryDisplayInfo";
12544 offset = samr_dissect_element_QueryDisplayInfo_total_size(tvb, offset, pinfo, tree, di, drep);
12545 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12547 offset = samr_dissect_element_QueryDisplayInfo_returned_size(tvb, offset, pinfo, tree, di, drep);
12548 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12550 offset = samr_dissect_element_QueryDisplayInfo_info(tvb, offset, pinfo, tree, di, drep);
12551 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12553 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
12555 if (status != 0)
12556 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
12558 return offset;
12561 static int
12562 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_)
12564 di->dcerpc_procedure_name="QueryDisplayInfo";
12565 offset = samr_dissect_element_QueryDisplayInfo_domain_handle(tvb, offset, pinfo, tree, di, drep);
12566 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12567 offset = samr_dissect_element_QueryDisplayInfo_level(tvb, offset, pinfo, tree, di, drep);
12568 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12569 offset = samr_dissect_element_QueryDisplayInfo_start_idx(tvb, offset, pinfo, tree, di, drep);
12570 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12571 offset = samr_dissect_element_QueryDisplayInfo_max_entries(tvb, offset, pinfo, tree, di, drep);
12572 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12573 offset = samr_dissect_element_QueryDisplayInfo_buf_size(tvb, offset, pinfo, tree, di, drep);
12574 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12575 return offset;
12578 static int
12579 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_)
12581 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);
12583 return offset;
12586 static int
12587 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_)
12589 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_domain_handle, 0);
12591 return offset;
12594 static int
12595 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_)
12597 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_GetDisplayEnumerationIndex_level, 0);
12599 return offset;
12602 static int
12603 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_)
12605 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);
12607 return offset;
12610 static int
12611 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_)
12613 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_GetDisplayEnumerationIndex_name);
12615 return offset;
12618 static int
12619 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_)
12621 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);
12623 return offset;
12626 static int
12627 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_)
12629 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_GetDisplayEnumerationIndex_idx, 0);
12631 return offset;
12634 /* IDL: NTSTATUS samr_GetDisplayEnumerationIndex( */
12635 /* IDL: [in] [ref] policy_handle *domain_handle, */
12636 /* IDL: [in] uint16 level, */
12637 /* IDL: [in] [ref] lsa_String *name, */
12638 /* IDL: [out] [ref] uint32 *idx */
12639 /* IDL: ); */
12641 static int
12642 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_)
12644 uint32_t status;
12646 di->dcerpc_procedure_name="GetDisplayEnumerationIndex";
12647 offset = samr_dissect_element_GetDisplayEnumerationIndex_idx(tvb, offset, pinfo, tree, di, drep);
12648 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12650 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
12652 if (status != 0)
12653 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
12655 return offset;
12658 static int
12659 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_)
12661 di->dcerpc_procedure_name="GetDisplayEnumerationIndex";
12662 offset = samr_dissect_element_GetDisplayEnumerationIndex_domain_handle(tvb, offset, pinfo, tree, di, drep);
12663 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12664 offset = samr_dissect_element_GetDisplayEnumerationIndex_level(tvb, offset, pinfo, tree, di, drep);
12665 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12666 offset = samr_dissect_element_GetDisplayEnumerationIndex_name(tvb, offset, pinfo, tree, di, drep);
12667 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12668 return offset;
12671 static int
12672 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_)
12674 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);
12676 return offset;
12679 static int
12680 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_)
12682 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_domain_handle, 0);
12684 return offset;
12687 /* IDL: NTSTATUS samr_TestPrivateFunctionsDomain( */
12688 /* IDL: [in] [ref] policy_handle *domain_handle */
12689 /* IDL: ); */
12691 static int
12692 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_)
12694 uint32_t status;
12696 di->dcerpc_procedure_name="TestPrivateFunctionsDomain";
12697 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
12699 if (status != 0)
12700 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
12702 return offset;
12705 static int
12706 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_)
12708 di->dcerpc_procedure_name="TestPrivateFunctionsDomain";
12709 offset = samr_dissect_element_TestPrivateFunctionsDomain_domain_handle(tvb, offset, pinfo, tree, di, drep);
12710 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12711 return offset;
12714 static int
12715 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_)
12717 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);
12719 return offset;
12722 static int
12723 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_)
12725 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_user_handle, 0);
12727 return offset;
12730 /* IDL: NTSTATUS samr_TestPrivateFunctionsUser( */
12731 /* IDL: [in] [ref] policy_handle *user_handle */
12732 /* IDL: ); */
12734 static int
12735 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_)
12737 uint32_t status;
12739 di->dcerpc_procedure_name="TestPrivateFunctionsUser";
12740 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
12742 if (status != 0)
12743 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
12745 return offset;
12748 static int
12749 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_)
12751 di->dcerpc_procedure_name="TestPrivateFunctionsUser";
12752 offset = samr_dissect_element_TestPrivateFunctionsUser_user_handle(tvb, offset, pinfo, tree, di, drep);
12753 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12754 return offset;
12757 static int
12758 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_)
12760 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);
12762 return offset;
12765 static int
12766 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_)
12768 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_user_handle, 0);
12770 return offset;
12773 static int
12774 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_)
12776 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);
12778 return offset;
12781 static int
12782 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_)
12784 offset = samr_dissect_struct_PwInfo(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_GetUserPwInfo_info,0);
12786 return offset;
12789 /* IDL: NTSTATUS samr_GetUserPwInfo( */
12790 /* IDL: [in] [ref] policy_handle *user_handle, */
12791 /* IDL: [out] [ref] samr_PwInfo *info */
12792 /* IDL: ); */
12794 static int
12795 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_)
12797 uint32_t status;
12799 di->dcerpc_procedure_name="GetUserPwInfo";
12800 offset = samr_dissect_element_GetUserPwInfo_info(tvb, offset, pinfo, tree, di, drep);
12801 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12803 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
12805 if (status != 0)
12806 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
12808 return offset;
12811 static int
12812 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_)
12814 di->dcerpc_procedure_name="GetUserPwInfo";
12815 offset = samr_dissect_element_GetUserPwInfo_user_handle(tvb, offset, pinfo, tree, di, drep);
12816 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12817 return offset;
12820 static int
12821 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_)
12823 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);
12825 return offset;
12828 static int
12829 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_)
12831 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_domain_handle, 0);
12833 return offset;
12836 static int
12837 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_)
12839 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);
12841 return offset;
12844 static int
12845 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_)
12847 offset=cnf_dissect_dom_sid2(tvb, offset, pinfo, tree, di, drep);
12849 return offset;
12852 /* IDL: NTSTATUS samr_RemoveMemberFromForeignDomain( */
12853 /* IDL: [in] [ref] policy_handle *domain_handle, */
12854 /* IDL: [in] [ref] dom_sid2 *sid */
12855 /* IDL: ); */
12857 static int
12858 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_)
12860 uint32_t status;
12862 di->dcerpc_procedure_name="RemoveMemberFromForeignDomain";
12863 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
12865 if (status != 0)
12866 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
12868 return offset;
12871 static int
12872 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_)
12874 di->dcerpc_procedure_name="RemoveMemberFromForeignDomain";
12875 offset = samr_dissect_element_RemoveMemberFromForeignDomain_domain_handle(tvb, offset, pinfo, tree, di, drep);
12876 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12877 offset = samr_dissect_element_RemoveMemberFromForeignDomain_sid(tvb, offset, pinfo, tree, di, drep);
12878 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12879 return offset;
12882 static int
12883 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_)
12885 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);
12887 return offset;
12890 static int
12891 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_)
12893 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_domain_handle, 0);
12895 return offset;
12898 static int
12899 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_)
12901 offset = samr_dissect_enum_DomainInfoClass(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryDomainInfo2_level, 0);
12903 return offset;
12906 static int
12907 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_)
12909 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);
12911 return offset;
12914 static int
12915 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_)
12917 uint64_t saved_switch_level = di->switch_level;
12919 di->switch_level = 0;
12921 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);
12923 di->switch_level = saved_switch_level;
12925 return offset;
12928 static int
12929 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_)
12931 offset = samr_dissect_DomainInfo(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryDomainInfo2_info, 0);
12933 return offset;
12936 /* IDL: NTSTATUS samr_QueryDomainInfo2( */
12937 /* IDL: [in] [ref] policy_handle *domain_handle, */
12938 /* IDL: [in] samr_DomainInfoClass level, */
12939 /* IDL: [out] [ref] [switch_is(level)] samr_DomainInfo **info */
12940 /* IDL: ); */
12942 static int
12943 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_)
12945 uint32_t status;
12947 di->dcerpc_procedure_name="QueryDomainInfo2";
12948 offset = samr_dissect_element_QueryDomainInfo2_info(tvb, offset, pinfo, tree, di, drep);
12949 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12951 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
12953 if (status != 0)
12954 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
12956 return offset;
12959 static int
12960 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_)
12962 di->dcerpc_procedure_name="QueryDomainInfo2";
12963 offset = samr_dissect_element_QueryDomainInfo2_domain_handle(tvb, offset, pinfo, tree, di, drep);
12964 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12965 offset = samr_dissect_element_QueryDomainInfo2_level(tvb, offset, pinfo, tree, di, drep);
12966 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
12967 return offset;
12970 static int
12971 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_)
12973 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);
12975 return offset;
12978 static int
12979 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_)
12981 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_user_handle, 0);
12983 return offset;
12986 static int
12987 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_)
12989 offset = samr_dissect_enum_UserInfoLevel(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryUserInfo2_level, 0);
12991 return offset;
12994 static int
12995 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_)
12997 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);
12999 return offset;
13002 static int
13003 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_)
13005 uint64_t saved_switch_level = di->switch_level;
13007 di->switch_level = 0;
13009 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);
13011 di->switch_level = saved_switch_level;
13013 return offset;
13016 static int
13017 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_)
13019 offset = samr_dissect_UserInfo(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryUserInfo2_info, 0);
13021 return offset;
13024 /* IDL: NTSTATUS samr_QueryUserInfo2( */
13025 /* IDL: [in] [ref] policy_handle *user_handle, */
13026 /* IDL: [in] samr_UserInfoLevel level, */
13027 /* IDL: [out] [ref] [switch_is(level)] samr_UserInfo **info */
13028 /* IDL: ); */
13030 static int
13031 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_)
13033 uint32_t status;
13035 di->dcerpc_procedure_name="QueryUserInfo2";
13036 offset = samr_dissect_element_QueryUserInfo2_info(tvb, offset, pinfo, tree, di, drep);
13037 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13039 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
13041 if (status != 0)
13042 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
13044 return offset;
13047 static int
13048 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_)
13050 di->dcerpc_procedure_name="QueryUserInfo2";
13051 offset = samr_dissect_element_QueryUserInfo2_user_handle(tvb, offset, pinfo, tree, di, drep);
13052 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13053 offset = samr_dissect_element_QueryUserInfo2_level(tvb, offset, pinfo, tree, di, drep);
13054 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13055 return offset;
13058 static int
13059 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_)
13061 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);
13063 return offset;
13066 static int
13067 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_)
13069 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_domain_handle, 0);
13071 return offset;
13074 static int
13075 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_)
13077 offset = samr_dissect_enum_DomainDisplayInformation(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryDisplayInfo2_level, 0);
13079 return offset;
13082 static int
13083 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_)
13085 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryDisplayInfo2_start_idx, 0);
13087 return offset;
13090 static int
13091 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_)
13093 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryDisplayInfo2_max_entries, 0);
13095 return offset;
13098 static int
13099 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_)
13101 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryDisplayInfo2_buf_size, 0);
13103 return offset;
13106 static int
13107 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_)
13109 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);
13111 return offset;
13114 static int
13115 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_)
13117 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryDisplayInfo2_total_size, 0);
13119 return offset;
13122 static int
13123 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_)
13125 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);
13127 return offset;
13130 static int
13131 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_)
13133 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryDisplayInfo2_returned_size, 0);
13135 return offset;
13138 static int
13139 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_)
13141 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);
13143 return offset;
13146 static int
13147 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_)
13149 offset = samr_dissect_DispInfo(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryDisplayInfo2_info, 0);
13151 return offset;
13154 /* IDL: NTSTATUS samr_QueryDisplayInfo2( */
13155 /* IDL: [in] [ref] policy_handle *domain_handle, */
13156 /* IDL: [in] samr_DomainDisplayInformation level, */
13157 /* IDL: [in] uint32 start_idx, */
13158 /* IDL: [in] uint32 max_entries, */
13159 /* IDL: [in] uint32 buf_size, */
13160 /* IDL: [out] [ref] uint32 *total_size, */
13161 /* IDL: [out] [ref] uint32 *returned_size, */
13162 /* IDL: [out] [ref] [switch_is(level)] samr_DispInfo *info */
13163 /* IDL: ); */
13165 static int
13166 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_)
13168 uint32_t status;
13170 di->dcerpc_procedure_name="QueryDisplayInfo2";
13171 offset = samr_dissect_element_QueryDisplayInfo2_total_size(tvb, offset, pinfo, tree, di, drep);
13172 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13174 offset = samr_dissect_element_QueryDisplayInfo2_returned_size(tvb, offset, pinfo, tree, di, drep);
13175 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13177 offset = samr_dissect_element_QueryDisplayInfo2_info(tvb, offset, pinfo, tree, di, drep);
13178 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13180 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
13182 if (status != 0)
13183 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
13185 return offset;
13188 static int
13189 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_)
13191 di->dcerpc_procedure_name="QueryDisplayInfo2";
13192 offset = samr_dissect_element_QueryDisplayInfo2_domain_handle(tvb, offset, pinfo, tree, di, drep);
13193 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13194 offset = samr_dissect_element_QueryDisplayInfo2_level(tvb, offset, pinfo, tree, di, drep);
13195 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13196 offset = samr_dissect_element_QueryDisplayInfo2_start_idx(tvb, offset, pinfo, tree, di, drep);
13197 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13198 offset = samr_dissect_element_QueryDisplayInfo2_max_entries(tvb, offset, pinfo, tree, di, drep);
13199 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13200 offset = samr_dissect_element_QueryDisplayInfo2_buf_size(tvb, offset, pinfo, tree, di, drep);
13201 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13202 return offset;
13205 static int
13206 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_)
13208 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);
13210 return offset;
13213 static int
13214 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_)
13216 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_domain_handle, 0);
13218 return offset;
13221 static int
13222 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_)
13224 offset = samr_dissect_enum_DomainDisplayInformation(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_GetDisplayEnumerationIndex2_level, 0);
13226 return offset;
13229 static int
13230 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_)
13232 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);
13234 return offset;
13237 static int
13238 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_)
13240 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_GetDisplayEnumerationIndex2_name);
13242 return offset;
13245 static int
13246 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_)
13248 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);
13250 return offset;
13253 static int
13254 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_)
13256 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_GetDisplayEnumerationIndex2_idx, 0);
13258 return offset;
13261 /* IDL: NTSTATUS samr_GetDisplayEnumerationIndex2( */
13262 /* IDL: [in] [ref] policy_handle *domain_handle, */
13263 /* IDL: [in] samr_DomainDisplayInformation level, */
13264 /* IDL: [in] [ref] lsa_String *name, */
13265 /* IDL: [out] [ref] uint32 *idx */
13266 /* IDL: ); */
13268 static int
13269 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_)
13271 uint32_t status;
13273 di->dcerpc_procedure_name="GetDisplayEnumerationIndex2";
13274 offset = samr_dissect_element_GetDisplayEnumerationIndex2_idx(tvb, offset, pinfo, tree, di, drep);
13275 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13277 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
13279 if (status != 0)
13280 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
13282 return offset;
13285 static int
13286 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_)
13288 di->dcerpc_procedure_name="GetDisplayEnumerationIndex2";
13289 offset = samr_dissect_element_GetDisplayEnumerationIndex2_domain_handle(tvb, offset, pinfo, tree, di, drep);
13290 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13291 offset = samr_dissect_element_GetDisplayEnumerationIndex2_level(tvb, offset, pinfo, tree, di, drep);
13292 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13293 offset = samr_dissect_element_GetDisplayEnumerationIndex2_name(tvb, offset, pinfo, tree, di, drep);
13294 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13295 return offset;
13298 static int
13299 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_)
13301 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);
13303 return offset;
13306 static int
13307 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_)
13309 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_domain_handle, 0);
13311 return offset;
13314 static int
13315 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_)
13317 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);
13319 return offset;
13322 static int
13323 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_)
13325 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);
13327 return offset;
13330 static int
13331 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_)
13333 offset = samr_dissect_bitmap_AcctFlags(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_CreateUser2_acct_flags, 0);
13335 return offset;
13338 static int
13339 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_)
13341 offset = samr_dissect_bitmap_UserAccessMask(tvb, offset, pinfo, tree, di, drep, hf_samr_user_access_mask, 0);
13343 return offset;
13346 static int
13347 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_)
13349 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);
13351 return offset;
13354 static int
13355 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_)
13357 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_user_handle, PIDL_POLHND_OPEN|PIDL_POLHND_TYPE_SAMR_USER);
13359 return offset;
13362 static int
13363 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_)
13365 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);
13367 return offset;
13370 static int
13371 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_)
13373 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_CreateUser2_access_granted, 0);
13375 return offset;
13378 static int
13379 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_)
13381 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);
13383 return offset;
13386 static int
13387 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_)
13389 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_rid, 0);
13391 return offset;
13394 /* IDL: NTSTATUS samr_CreateUser2( */
13395 /* IDL: [in] [ref] policy_handle *domain_handle, */
13396 /* IDL: [in] [ref] lsa_String *account_name, */
13397 /* IDL: [in] samr_AcctFlags acct_flags, */
13398 /* IDL: [in] samr_UserAccessMask access_mask, */
13399 /* IDL: [out] [ref] policy_handle *user_handle, */
13400 /* IDL: [out] [ref] uint32 *access_granted, */
13401 /* IDL: [out] [ref] uint32 *rid */
13402 /* IDL: ); */
13404 static int
13405 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_)
13407 uint32_t status;
13409 di->dcerpc_procedure_name="CreateUser2";
13410 offset = samr_dissect_element_CreateUser2_user_handle(tvb, offset, pinfo, tree, di, drep);
13411 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13413 offset = samr_dissect_element_CreateUser2_access_granted(tvb, offset, pinfo, tree, di, drep);
13414 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13416 offset = samr_dissect_element_CreateUser2_rid(tvb, offset, pinfo, tree, di, drep);
13417 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13419 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
13421 if (status != 0)
13422 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
13424 return offset;
13427 static int
13428 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_)
13430 di->dcerpc_procedure_name="CreateUser2";
13431 offset = samr_dissect_element_CreateUser2_domain_handle(tvb, offset, pinfo, tree, di, drep);
13432 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13433 offset = samr_dissect_element_CreateUser2_account_name(tvb, offset, pinfo, tree, di, drep);
13434 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13435 offset = samr_dissect_element_CreateUser2_acct_flags(tvb, offset, pinfo, tree, di, drep);
13436 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13437 offset = samr_dissect_element_CreateUser2_access_mask(tvb, offset, pinfo, tree, di, drep);
13438 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13439 return offset;
13442 static int
13443 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_)
13445 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);
13447 return offset;
13450 static int
13451 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_)
13453 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_domain_handle, 0);
13455 return offset;
13458 static int
13459 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_)
13461 offset = samr_dissect_enum_DomainDisplayInformation(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryDisplayInfo3_level, 0);
13463 return offset;
13466 static int
13467 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_)
13469 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryDisplayInfo3_start_idx, 0);
13471 return offset;
13474 static int
13475 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_)
13477 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryDisplayInfo3_max_entries, 0);
13479 return offset;
13482 static int
13483 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_)
13485 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryDisplayInfo3_buf_size, 0);
13487 return offset;
13490 static int
13491 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_)
13493 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);
13495 return offset;
13498 static int
13499 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_)
13501 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryDisplayInfo3_total_size, 0);
13503 return offset;
13506 static int
13507 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_)
13509 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);
13511 return offset;
13514 static int
13515 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_)
13517 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryDisplayInfo3_returned_size, 0);
13519 return offset;
13522 static int
13523 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_)
13525 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);
13527 return offset;
13530 static int
13531 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_)
13533 offset = samr_dissect_DispInfo(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_QueryDisplayInfo3_info, 0);
13535 return offset;
13538 /* IDL: NTSTATUS samr_QueryDisplayInfo3( */
13539 /* IDL: [in] [ref] policy_handle *domain_handle, */
13540 /* IDL: [in] samr_DomainDisplayInformation level, */
13541 /* IDL: [in] uint32 start_idx, */
13542 /* IDL: [in] uint32 max_entries, */
13543 /* IDL: [in] uint32 buf_size, */
13544 /* IDL: [out] [ref] uint32 *total_size, */
13545 /* IDL: [out] [ref] uint32 *returned_size, */
13546 /* IDL: [out] [ref] [switch_is(level)] samr_DispInfo *info */
13547 /* IDL: ); */
13549 static int
13550 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_)
13552 uint32_t status;
13554 di->dcerpc_procedure_name="QueryDisplayInfo3";
13555 offset = samr_dissect_element_QueryDisplayInfo3_total_size(tvb, offset, pinfo, tree, di, drep);
13556 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13558 offset = samr_dissect_element_QueryDisplayInfo3_returned_size(tvb, offset, pinfo, tree, di, drep);
13559 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13561 offset = samr_dissect_element_QueryDisplayInfo3_info(tvb, offset, pinfo, tree, di, drep);
13562 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13564 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
13566 if (status != 0)
13567 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
13569 return offset;
13572 static int
13573 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_)
13575 di->dcerpc_procedure_name="QueryDisplayInfo3";
13576 offset = samr_dissect_element_QueryDisplayInfo3_domain_handle(tvb, offset, pinfo, tree, di, drep);
13577 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13578 offset = samr_dissect_element_QueryDisplayInfo3_level(tvb, offset, pinfo, tree, di, drep);
13579 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13580 offset = samr_dissect_element_QueryDisplayInfo3_start_idx(tvb, offset, pinfo, tree, di, drep);
13581 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13582 offset = samr_dissect_element_QueryDisplayInfo3_max_entries(tvb, offset, pinfo, tree, di, drep);
13583 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13584 offset = samr_dissect_element_QueryDisplayInfo3_buf_size(tvb, offset, pinfo, tree, di, drep);
13585 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13586 return offset;
13589 static int
13590 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_)
13592 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);
13594 return offset;
13597 static int
13598 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_)
13600 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_alias_handle, 0);
13602 return offset;
13605 static int
13606 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_)
13608 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);
13610 return offset;
13613 static int
13614 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_)
13616 offset=cnf_dissect_lsa_SidArray(tvb, offset, pinfo, tree, di, drep);
13618 return offset;
13621 /* IDL: NTSTATUS samr_AddMultipleMembersToAlias( */
13622 /* IDL: [in] [ref] policy_handle *alias_handle, */
13623 /* IDL: [in] [ref] lsa_SidArray *sids */
13624 /* IDL: ); */
13626 static int
13627 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_)
13629 uint32_t status;
13631 di->dcerpc_procedure_name="AddMultipleMembersToAlias";
13632 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
13634 if (status != 0)
13635 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
13637 return offset;
13640 static int
13641 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_)
13643 di->dcerpc_procedure_name="AddMultipleMembersToAlias";
13644 offset = samr_dissect_element_AddMultipleMembersToAlias_alias_handle(tvb, offset, pinfo, tree, di, drep);
13645 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13646 offset = samr_dissect_element_AddMultipleMembersToAlias_sids(tvb, offset, pinfo, tree, di, drep);
13647 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13648 return offset;
13651 static int
13652 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_)
13654 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);
13656 return offset;
13659 static int
13660 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_)
13662 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_alias_handle, 0);
13664 return offset;
13667 static int
13668 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_)
13670 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);
13672 return offset;
13675 static int
13676 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_)
13678 offset=cnf_dissect_lsa_SidArray(tvb, offset, pinfo, tree, di, drep);
13680 return offset;
13683 /* IDL: NTSTATUS samr_RemoveMultipleMembersFromAlias( */
13684 /* IDL: [in] [ref] policy_handle *alias_handle, */
13685 /* IDL: [in] [ref] lsa_SidArray *sids */
13686 /* IDL: ); */
13688 static int
13689 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_)
13691 uint32_t status;
13693 di->dcerpc_procedure_name="RemoveMultipleMembersFromAlias";
13694 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
13696 if (status != 0)
13697 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
13699 return offset;
13702 static int
13703 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_)
13705 di->dcerpc_procedure_name="RemoveMultipleMembersFromAlias";
13706 offset = samr_dissect_element_RemoveMultipleMembersFromAlias_alias_handle(tvb, offset, pinfo, tree, di, drep);
13707 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13708 offset = samr_dissect_element_RemoveMultipleMembersFromAlias_sids(tvb, offset, pinfo, tree, di, drep);
13709 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13710 return offset;
13713 static int
13714 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_)
13716 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);
13718 return offset;
13721 static int
13722 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_)
13724 offset=cnf_dissect_lsa_AsciiString(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_OemChangePasswordUser2_server);
13726 return offset;
13729 static int
13730 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_)
13732 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);
13734 return offset;
13737 static int
13738 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_)
13740 offset=cnf_dissect_lsa_AsciiString(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_OemChangePasswordUser2_account);
13742 return offset;
13745 static int
13746 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_)
13748 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);
13750 return offset;
13753 static int
13754 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_)
13756 offset = samr_dissect_struct_CryptPassword(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_OemChangePasswordUser2_password,0);
13758 return offset;
13761 static int
13762 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_)
13764 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);
13766 return offset;
13769 static int
13770 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_)
13772 offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_OemChangePasswordUser2_hash,0);
13774 return offset;
13777 /* IDL: NTSTATUS samr_OemChangePasswordUser2( */
13778 /* IDL: [in] [unique(1)] lsa_AsciiString *server, */
13779 /* IDL: [in] [ref] lsa_AsciiString *account, */
13780 /* IDL: [in] [unique(1)] samr_CryptPassword *password, */
13781 /* IDL: [in] [unique(1)] samr_Password *hash */
13782 /* IDL: ); */
13784 static int
13785 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_)
13787 uint32_t status;
13789 di->dcerpc_procedure_name="OemChangePasswordUser2";
13790 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
13792 if (status != 0)
13793 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
13795 return offset;
13798 static int
13799 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_)
13801 di->dcerpc_procedure_name="OemChangePasswordUser2";
13802 offset = samr_dissect_element_OemChangePasswordUser2_server(tvb, offset, pinfo, tree, di, drep);
13803 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13804 offset = samr_dissect_element_OemChangePasswordUser2_account(tvb, offset, pinfo, tree, di, drep);
13805 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13806 offset = samr_dissect_element_OemChangePasswordUser2_password(tvb, offset, pinfo, tree, di, drep);
13807 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13808 offset = samr_dissect_element_OemChangePasswordUser2_hash(tvb, offset, pinfo, tree, di, drep);
13809 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13810 return offset;
13813 static int
13814 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_)
13816 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);
13818 return offset;
13821 static int
13822 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_)
13824 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_ChangePasswordUser2_server);
13826 return offset;
13829 static int
13830 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_)
13832 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);
13834 return offset;
13837 static int
13838 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_)
13840 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_ChangePasswordUser2_account);
13842 return offset;
13845 static int
13846 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_)
13848 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);
13850 return offset;
13853 static int
13854 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_)
13856 offset = samr_dissect_struct_CryptPassword(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ChangePasswordUser2_nt_password,0);
13858 return offset;
13861 static int
13862 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_)
13864 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);
13866 return offset;
13869 static int
13870 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_)
13872 offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ChangePasswordUser2_nt_verifier,0);
13874 return offset;
13877 static int
13878 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_)
13880 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_ChangePasswordUser2_lm_change, 0);
13882 return offset;
13885 static int
13886 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_)
13888 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);
13890 return offset;
13893 static int
13894 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_)
13896 offset = samr_dissect_struct_CryptPassword(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ChangePasswordUser2_lm_password,0);
13898 return offset;
13901 static int
13902 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_)
13904 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);
13906 return offset;
13909 static int
13910 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_)
13912 offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ChangePasswordUser2_lm_verifier,0);
13914 return offset;
13917 /* IDL: NTSTATUS samr_ChangePasswordUser2( */
13918 /* IDL: [in] [unique(1)] lsa_String *server, */
13919 /* IDL: [in] [ref] lsa_String *account, */
13920 /* IDL: [in] [unique(1)] samr_CryptPassword *nt_password, */
13921 /* IDL: [in] [unique(1)] samr_Password *nt_verifier, */
13922 /* IDL: [in] uint8 lm_change, */
13923 /* IDL: [in] [unique(1)] samr_CryptPassword *lm_password, */
13924 /* IDL: [in] [unique(1)] samr_Password *lm_verifier */
13925 /* IDL: ); */
13927 static int
13928 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_)
13930 uint32_t status;
13932 di->dcerpc_procedure_name="ChangePasswordUser2";
13933 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
13935 if (status != 0)
13936 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
13938 return offset;
13941 static int
13942 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_)
13944 di->dcerpc_procedure_name="ChangePasswordUser2";
13945 offset = samr_dissect_element_ChangePasswordUser2_server(tvb, offset, pinfo, tree, di, drep);
13946 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13947 offset = samr_dissect_element_ChangePasswordUser2_account(tvb, offset, pinfo, tree, di, drep);
13948 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13949 offset = samr_dissect_element_ChangePasswordUser2_nt_password(tvb, offset, pinfo, tree, di, drep);
13950 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13951 offset = samr_dissect_element_ChangePasswordUser2_nt_verifier(tvb, offset, pinfo, tree, di, drep);
13952 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13953 offset = samr_dissect_element_ChangePasswordUser2_lm_change(tvb, offset, pinfo, tree, di, drep);
13954 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13955 offset = samr_dissect_element_ChangePasswordUser2_lm_password(tvb, offset, pinfo, tree, di, drep);
13956 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13957 offset = samr_dissect_element_ChangePasswordUser2_lm_verifier(tvb, offset, pinfo, tree, di, drep);
13958 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
13959 return offset;
13962 static int
13963 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_)
13965 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);
13967 return offset;
13970 static int
13971 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_)
13973 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 3|PIDL_SET_COL_INFO, hf_samr_samr_GetDomPwInfo_domain_name);
13975 return offset;
13978 static int
13979 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_)
13981 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);
13983 return offset;
13986 static int
13987 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_)
13989 offset = samr_dissect_struct_PwInfo(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_GetDomPwInfo_info,0);
13991 return offset;
13994 /* IDL: NTSTATUS samr_GetDomPwInfo( */
13995 /* IDL: [in] [unique(1)] lsa_String *domain_name, */
13996 /* IDL: [out] [ref] samr_PwInfo *info */
13997 /* IDL: ); */
13999 static int
14000 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_)
14002 uint32_t status;
14004 di->dcerpc_procedure_name="GetDomPwInfo";
14005 offset = samr_dissect_element_GetDomPwInfo_info(tvb, offset, pinfo, tree, di, drep);
14006 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14008 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
14010 if (status != 0)
14011 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
14013 return offset;
14016 static int
14017 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_)
14019 di->dcerpc_procedure_name="GetDomPwInfo";
14020 offset = samr_dissect_element_GetDomPwInfo_domain_name(tvb, offset, pinfo, tree, di, drep);
14021 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14022 return offset;
14025 static int
14026 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_)
14028 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);
14030 return offset;
14033 static int
14034 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_)
14036 char *data = NULL;
14037 struct ndr_generic_array nga = { .is_conformant = false, };
14039 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
14041 offset = dissect_ndr_varying_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
14042 offset = dissect_ndr_generic_array_string(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_samr_samr_Connect2_system_name, false, &nga, &data);
14043 proto_item_append_text(tree, ": %s", data);
14045 return offset;
14048 static int
14049 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_)
14051 offset = samr_dissect_bitmap_ConnectAccessMask(tvb, offset, pinfo, tree, di, drep, hf_samr_connect_access_mask, 0);
14053 return offset;
14056 static int
14057 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_)
14059 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);
14061 return offset;
14064 static int
14065 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_)
14067 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_connect_handle, PIDL_POLHND_OPEN|PIDL_POLHND_TYPE_SAMR_CONNECT);
14069 return offset;
14072 /* IDL: NTSTATUS samr_Connect2( */
14073 /* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *system_name, */
14074 /* IDL: [in] samr_ConnectAccessMask access_mask, */
14075 /* IDL: [out] [ref] policy_handle *connect_handle */
14076 /* IDL: ); */
14078 static int
14079 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_)
14081 uint32_t status;
14083 di->dcerpc_procedure_name="Connect2";
14084 offset = samr_dissect_element_Connect2_connect_handle(tvb, offset, pinfo, tree, di, drep);
14085 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14087 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
14089 if (status != 0)
14090 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
14092 return offset;
14095 static int
14096 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_)
14098 di->dcerpc_procedure_name="Connect2";
14099 offset = samr_dissect_element_Connect2_system_name(tvb, offset, pinfo, tree, di, drep);
14100 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14101 offset = samr_dissect_element_Connect2_access_mask(tvb, offset, pinfo, tree, di, drep);
14102 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14103 return offset;
14106 static int
14107 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_)
14109 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);
14111 return offset;
14114 static int
14115 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_)
14117 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_user_handle, 0);
14119 return offset;
14122 static int
14123 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_)
14125 offset = samr_dissect_enum_UserInfoLevel(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_SetUserInfo2_level, 0);
14127 return offset;
14130 static int
14131 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_)
14133 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);
14135 return offset;
14138 static int
14139 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_)
14141 offset = samr_dissect_UserInfo(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_SetUserInfo2_info, 0);
14143 return offset;
14146 /* IDL: NTSTATUS samr_SetUserInfo2( */
14147 /* IDL: [in] [ref] policy_handle *user_handle, */
14148 /* IDL: [in] samr_UserInfoLevel level, */
14149 /* IDL: [in] [ref] [switch_is(level)] samr_UserInfo *info */
14150 /* IDL: ); */
14152 static int
14153 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_)
14155 uint32_t status;
14157 di->dcerpc_procedure_name="SetUserInfo2";
14158 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
14160 if (status != 0)
14161 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
14163 return offset;
14166 static int
14167 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_)
14169 di->dcerpc_procedure_name="SetUserInfo2";
14170 offset = samr_dissect_element_SetUserInfo2_user_handle(tvb, offset, pinfo, tree, di, drep);
14171 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14172 offset = samr_dissect_element_SetUserInfo2_level(tvb, offset, pinfo, tree, di, drep);
14173 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14174 offset = samr_dissect_element_SetUserInfo2_info(tvb, offset, pinfo, tree, di, drep);
14175 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14176 return offset;
14179 static int
14180 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_)
14182 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);
14184 return offset;
14187 static int
14188 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_)
14190 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_connect_handle, 0);
14192 return offset;
14195 static int
14196 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_)
14198 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_SetBootKeyInformation_unknown1, 0);
14200 return offset;
14203 static int
14204 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_)
14206 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_SetBootKeyInformation_unknown2, 0);
14208 return offset;
14211 static int
14212 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_)
14214 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_SetBootKeyInformation_unknown3, 0);
14216 return offset;
14219 /* IDL: NTSTATUS samr_SetBootKeyInformation( */
14220 /* IDL: [in] [ref] policy_handle *connect_handle, */
14221 /* IDL: [in] uint32 unknown1, */
14222 /* IDL: [in] uint32 unknown2, */
14223 /* IDL: [in] uint32 unknown3 */
14224 /* IDL: ); */
14226 static int
14227 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_)
14229 uint32_t status;
14231 di->dcerpc_procedure_name="SetBootKeyInformation";
14232 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
14234 if (status != 0)
14235 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
14237 return offset;
14240 static int
14241 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_)
14243 di->dcerpc_procedure_name="SetBootKeyInformation";
14244 offset = samr_dissect_element_SetBootKeyInformation_connect_handle(tvb, offset, pinfo, tree, di, drep);
14245 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14246 offset = samr_dissect_element_SetBootKeyInformation_unknown1(tvb, offset, pinfo, tree, di, drep);
14247 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14248 offset = samr_dissect_element_SetBootKeyInformation_unknown2(tvb, offset, pinfo, tree, di, drep);
14249 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14250 offset = samr_dissect_element_SetBootKeyInformation_unknown3(tvb, offset, pinfo, tree, di, drep);
14251 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14252 return offset;
14255 static int
14256 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_)
14258 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);
14260 return offset;
14263 static int
14264 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_)
14266 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_GetBootKeyInformation_domain_handle, 0);
14268 return offset;
14271 static int
14272 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_)
14274 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);
14276 return offset;
14279 static int
14280 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_)
14282 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_GetBootKeyInformation_unknown, 0);
14284 return offset;
14287 /* IDL: NTSTATUS samr_GetBootKeyInformation( */
14288 /* IDL: [in] [ref] policy_handle *domain_handle, */
14289 /* IDL: [out] [ref] uint32 *unknown */
14290 /* IDL: ); */
14292 static int
14293 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_)
14295 uint32_t status;
14297 di->dcerpc_procedure_name="GetBootKeyInformation";
14298 offset = samr_dissect_element_GetBootKeyInformation_unknown(tvb, offset, pinfo, tree, di, drep);
14299 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14301 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
14303 if (status != 0)
14304 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
14306 return offset;
14309 static int
14310 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_)
14312 di->dcerpc_procedure_name="GetBootKeyInformation";
14313 offset = samr_dissect_element_GetBootKeyInformation_domain_handle(tvb, offset, pinfo, tree, di, drep);
14314 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14315 return offset;
14318 static int
14319 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_)
14321 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);
14323 return offset;
14326 static int
14327 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_)
14329 char *data = NULL;
14330 struct ndr_generic_array nga = { .is_conformant = false, };
14332 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
14334 offset = dissect_ndr_varying_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
14335 offset = dissect_ndr_generic_array_string(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_samr_samr_Connect3_system_name, false, &nga, &data);
14336 proto_item_append_text(tree, ": %s", data);
14338 return offset;
14341 static int
14342 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_)
14344 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_Connect3_unknown, 0);
14346 return offset;
14349 static int
14350 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_)
14352 offset = samr_dissect_bitmap_ConnectAccessMask(tvb, offset, pinfo, tree, di, drep, hf_samr_connect_access_mask, 0);
14354 return offset;
14357 static int
14358 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_)
14360 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);
14362 return offset;
14365 static int
14366 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_)
14368 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_connect_handle, PIDL_POLHND_OPEN|PIDL_POLHND_TYPE_SAMR_CONNECT);
14370 return offset;
14373 /* IDL: NTSTATUS samr_Connect3( */
14374 /* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *system_name, */
14375 /* IDL: [in] uint32 unknown, */
14376 /* IDL: [in] samr_ConnectAccessMask access_mask, */
14377 /* IDL: [out] [ref] policy_handle *connect_handle */
14378 /* IDL: ); */
14380 static int
14381 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_)
14383 uint32_t status;
14385 di->dcerpc_procedure_name="Connect3";
14386 offset = samr_dissect_element_Connect3_connect_handle(tvb, offset, pinfo, tree, di, drep);
14387 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14389 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
14391 if (status != 0)
14392 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
14394 return offset;
14397 static int
14398 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_)
14400 di->dcerpc_procedure_name="Connect3";
14401 offset = samr_dissect_element_Connect3_system_name(tvb, offset, pinfo, tree, di, drep);
14402 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14403 offset = samr_dissect_element_Connect3_unknown(tvb, offset, pinfo, tree, di, drep);
14404 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14405 offset = samr_dissect_element_Connect3_access_mask(tvb, offset, pinfo, tree, di, drep);
14406 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14407 return offset;
14410 static int
14411 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_)
14413 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);
14415 return offset;
14418 static int
14419 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_)
14421 char *data = NULL;
14422 struct ndr_generic_array nga = { .is_conformant = false, };
14424 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
14426 offset = dissect_ndr_varying_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
14427 offset = dissect_ndr_generic_array_string(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_samr_samr_Connect4_system_name, false, &nga, &data);
14428 proto_item_append_text(tree, ": %s", data);
14430 return offset;
14433 static int
14434 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_)
14436 offset = samr_dissect_enum_ConnectVersion(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_Connect4_client_version, 0);
14438 return offset;
14441 static int
14442 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_)
14444 offset = samr_dissect_bitmap_ConnectAccessMask(tvb, offset, pinfo, tree, di, drep, hf_samr_connect_access_mask, 0);
14446 return offset;
14449 static int
14450 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_)
14452 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);
14454 return offset;
14457 static int
14458 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_)
14460 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_connect_handle, PIDL_POLHND_OPEN|PIDL_POLHND_TYPE_SAMR_CONNECT);
14462 return offset;
14465 /* IDL: NTSTATUS samr_Connect4( */
14466 /* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *system_name, */
14467 /* IDL: [in] samr_ConnectVersion client_version, */
14468 /* IDL: [in] samr_ConnectAccessMask access_mask, */
14469 /* IDL: [out] [ref] policy_handle *connect_handle */
14470 /* IDL: ); */
14472 static int
14473 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_)
14475 uint32_t status;
14477 di->dcerpc_procedure_name="Connect4";
14478 offset = samr_dissect_element_Connect4_connect_handle(tvb, offset, pinfo, tree, di, drep);
14479 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14481 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
14483 if (status != 0)
14484 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
14486 return offset;
14489 static int
14490 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_)
14492 di->dcerpc_procedure_name="Connect4";
14493 offset = samr_dissect_element_Connect4_system_name(tvb, offset, pinfo, tree, di, drep);
14494 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14495 offset = samr_dissect_element_Connect4_client_version(tvb, offset, pinfo, tree, di, drep);
14496 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14497 offset = samr_dissect_element_Connect4_access_mask(tvb, offset, pinfo, tree, di, drep);
14498 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14499 return offset;
14502 static int
14503 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_)
14505 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);
14507 return offset;
14510 static int
14511 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_)
14513 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_ChangePasswordUser3_server);
14515 return offset;
14518 static int
14519 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_)
14521 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);
14523 return offset;
14526 static int
14527 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_)
14529 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_ChangePasswordUser3_account);
14531 return offset;
14534 static int
14535 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_)
14537 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);
14539 return offset;
14542 static int
14543 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_)
14545 offset = samr_dissect_struct_CryptPassword(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ChangePasswordUser3_nt_password,0);
14547 return offset;
14550 static int
14551 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_)
14553 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);
14555 return offset;
14558 static int
14559 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_)
14561 offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ChangePasswordUser3_nt_verifier,0);
14563 return offset;
14566 static int
14567 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_)
14569 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_ChangePasswordUser3_lm_change, 0);
14571 return offset;
14574 static int
14575 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_)
14577 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);
14579 return offset;
14582 static int
14583 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_)
14585 offset = samr_dissect_struct_CryptPassword(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ChangePasswordUser3_lm_password,0);
14587 return offset;
14590 static int
14591 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_)
14593 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);
14595 return offset;
14598 static int
14599 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_)
14601 offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ChangePasswordUser3_lm_verifier,0);
14603 return offset;
14606 static int
14607 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_)
14609 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);
14611 return offset;
14614 static int
14615 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_)
14617 offset = samr_dissect_struct_CryptPassword(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ChangePasswordUser3_password3,0);
14619 return offset;
14622 static int
14623 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_)
14625 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);
14627 return offset;
14630 static int
14631 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_)
14633 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);
14635 return offset;
14638 static int
14639 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_)
14641 offset = samr_dissect_struct_DomInfo1(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ChangePasswordUser3_dominfo,0);
14643 return offset;
14646 static int
14647 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_)
14649 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);
14651 return offset;
14654 static int
14655 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_)
14657 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);
14659 return offset;
14662 static int
14663 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_)
14665 offset = samr_dissect_struct_userPwdChangeFailureInformation(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ChangePasswordUser3_reject,0);
14667 return offset;
14670 /* IDL: NTSTATUS samr_ChangePasswordUser3( */
14671 /* IDL: [in] [unique(1)] lsa_String *server, */
14672 /* IDL: [in] [ref] lsa_String *account, */
14673 /* IDL: [in] [unique(1)] samr_CryptPassword *nt_password, */
14674 /* IDL: [in] [unique(1)] samr_Password *nt_verifier, */
14675 /* IDL: [in] uint8 lm_change, */
14676 /* IDL: [in] [unique(1)] samr_CryptPassword *lm_password, */
14677 /* IDL: [in] [unique(1)] samr_Password *lm_verifier, */
14678 /* IDL: [in] [unique(1)] samr_CryptPassword *password3, */
14679 /* IDL: [out] [ref] samr_DomInfo1 **dominfo, */
14680 /* IDL: [out] [ref] userPwdChangeFailureInformation **reject */
14681 /* IDL: ); */
14683 static int
14684 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_)
14686 uint32_t status;
14688 di->dcerpc_procedure_name="ChangePasswordUser3";
14689 offset = samr_dissect_element_ChangePasswordUser3_dominfo(tvb, offset, pinfo, tree, di, drep);
14690 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14692 offset = samr_dissect_element_ChangePasswordUser3_reject(tvb, offset, pinfo, tree, di, drep);
14693 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14695 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
14697 if (status != 0)
14698 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
14700 return offset;
14703 static int
14704 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_)
14706 di->dcerpc_procedure_name="ChangePasswordUser3";
14707 offset = samr_dissect_element_ChangePasswordUser3_server(tvb, offset, pinfo, tree, di, drep);
14708 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14709 offset = samr_dissect_element_ChangePasswordUser3_account(tvb, offset, pinfo, tree, di, drep);
14710 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14711 offset = samr_dissect_element_ChangePasswordUser3_nt_password(tvb, offset, pinfo, tree, di, drep);
14712 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14713 offset = samr_dissect_element_ChangePasswordUser3_nt_verifier(tvb, offset, pinfo, tree, di, drep);
14714 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14715 offset = samr_dissect_element_ChangePasswordUser3_lm_change(tvb, offset, pinfo, tree, di, drep);
14716 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14717 offset = samr_dissect_element_ChangePasswordUser3_lm_password(tvb, offset, pinfo, tree, di, drep);
14718 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14719 offset = samr_dissect_element_ChangePasswordUser3_lm_verifier(tvb, offset, pinfo, tree, di, drep);
14720 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14721 offset = samr_dissect_element_ChangePasswordUser3_password3(tvb, offset, pinfo, tree, di, drep);
14722 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14723 return offset;
14726 static int
14727 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_)
14729 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);
14731 return offset;
14734 static int
14735 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_)
14737 char *data = NULL;
14738 struct ndr_generic_array nga = { .is_conformant = false, };
14740 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
14742 offset = dissect_ndr_varying_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
14743 offset = dissect_ndr_generic_array_string(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_samr_samr_Connect5_system_name, false, &nga, &data);
14744 proto_item_append_text(tree, ": %s", data);
14746 return offset;
14749 static int
14750 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_)
14752 offset = samr_dissect_bitmap_ConnectAccessMask(tvb, offset, pinfo, tree, di, drep, hf_samr_connect_access_mask, 0);
14754 return offset;
14757 static int
14758 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_)
14760 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_Connect5_level_in, 0);
14762 return offset;
14765 static int
14766 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_)
14768 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);
14770 return offset;
14773 static int
14774 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_)
14776 offset = samr_dissect_ConnectInfo(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_Connect5_info_in, 0);
14778 return offset;
14781 static int
14782 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_)
14784 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);
14786 return offset;
14789 static int
14790 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_)
14792 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_Connect5_level_out, 0);
14794 return offset;
14797 static int
14798 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_)
14800 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);
14802 return offset;
14805 static int
14806 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_)
14808 offset = samr_dissect_ConnectInfo(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_Connect5_info_out, 0);
14810 return offset;
14813 static int
14814 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_)
14816 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);
14818 return offset;
14821 static int
14822 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_)
14824 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_connect_handle, PIDL_POLHND_OPEN|PIDL_POLHND_TYPE_SAMR_CONNECT);
14826 return offset;
14829 /* IDL: NTSTATUS samr_Connect5( */
14830 /* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *system_name, */
14831 /* IDL: [in] samr_ConnectAccessMask access_mask, */
14832 /* IDL: [in] uint32 level_in, */
14833 /* IDL: [in] [ref] [switch_is(level_in)] samr_ConnectInfo *info_in, */
14834 /* IDL: [out] [ref] uint32 *level_out, */
14835 /* IDL: [out] [ref] [switch_is(*level_out)] samr_ConnectInfo *info_out, */
14836 /* IDL: [out] [ref] policy_handle *connect_handle */
14837 /* IDL: ); */
14839 static int
14840 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_)
14842 uint32_t status;
14844 di->dcerpc_procedure_name="Connect5";
14845 offset = samr_dissect_element_Connect5_level_out(tvb, offset, pinfo, tree, di, drep);
14846 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14848 offset = samr_dissect_element_Connect5_info_out(tvb, offset, pinfo, tree, di, drep);
14849 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14851 offset = samr_dissect_element_Connect5_connect_handle(tvb, offset, pinfo, tree, di, drep);
14852 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14854 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
14856 if (status != 0)
14857 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
14859 return offset;
14862 static int
14863 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_)
14865 di->dcerpc_procedure_name="Connect5";
14866 offset = samr_dissect_element_Connect5_system_name(tvb, offset, pinfo, tree, di, drep);
14867 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14868 offset = samr_dissect_element_Connect5_access_mask(tvb, offset, pinfo, tree, di, drep);
14869 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14870 offset = samr_dissect_element_Connect5_level_in(tvb, offset, pinfo, tree, di, drep);
14871 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14872 offset = samr_dissect_element_Connect5_info_in(tvb, offset, pinfo, tree, di, drep);
14873 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14874 return offset;
14877 static int
14878 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_)
14880 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);
14882 return offset;
14885 static int
14886 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_)
14888 offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_samr_domain_handle, 0);
14890 return offset;
14893 static int
14894 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_)
14896 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_rid, 0);
14898 return offset;
14901 static int
14902 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_)
14904 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);
14906 return offset;
14909 static int
14910 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_)
14912 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);
14914 return offset;
14917 static int
14918 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_)
14920 offset=cnf_dissect_dom_sid2(tvb, offset, pinfo, tree, di, drep);
14922 return offset;
14925 /* IDL: NTSTATUS samr_RidToSid( */
14926 /* IDL: [in] [ref] policy_handle *domain_handle, */
14927 /* IDL: [in] uint32 rid, */
14928 /* IDL: [out] [ref] dom_sid2 **sid */
14929 /* IDL: ); */
14931 static int
14932 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_)
14934 uint32_t status;
14936 di->dcerpc_procedure_name="RidToSid";
14937 offset = samr_dissect_element_RidToSid_sid(tvb, offset, pinfo, tree, di, drep);
14938 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14940 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
14942 if (status != 0)
14943 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
14945 return offset;
14948 static int
14949 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_)
14951 di->dcerpc_procedure_name="RidToSid";
14952 offset = samr_dissect_element_RidToSid_domain_handle(tvb, offset, pinfo, tree, di, drep);
14953 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14954 offset = samr_dissect_element_RidToSid_rid(tvb, offset, pinfo, tree, di, drep);
14955 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
14956 return offset;
14959 static int
14960 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_)
14962 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);
14964 return offset;
14967 static int
14968 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_)
14970 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_SetDsrmPassword_name);
14972 return offset;
14975 static int
14976 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_)
14978 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_SetDsrmPassword_unknown, 0);
14980 return offset;
14983 static int
14984 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_)
14986 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);
14988 return offset;
14991 static int
14992 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_)
14994 offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_SetDsrmPassword_hash,0);
14996 return offset;
14999 /* IDL: NTSTATUS samr_SetDsrmPassword( */
15000 /* IDL: [in] [unique(1)] lsa_String *name, */
15001 /* IDL: [in] uint32 unknown, */
15002 /* IDL: [in] [unique(1)] samr_Password *hash */
15003 /* IDL: ); */
15005 static int
15006 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_)
15008 uint32_t status;
15010 di->dcerpc_procedure_name="SetDsrmPassword";
15011 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
15013 if (status != 0)
15014 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
15016 return offset;
15019 static int
15020 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_)
15022 di->dcerpc_procedure_name="SetDsrmPassword";
15023 offset = samr_dissect_element_SetDsrmPassword_name(tvb, offset, pinfo, tree, di, drep);
15024 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
15025 offset = samr_dissect_element_SetDsrmPassword_unknown(tvb, offset, pinfo, tree, di, drep);
15026 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
15027 offset = samr_dissect_element_SetDsrmPassword_hash(tvb, offset, pinfo, tree, di, drep);
15028 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
15029 return offset;
15032 static int
15033 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_)
15035 offset = samr_dissect_enum_ValidatePasswordLevel(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_ValidatePassword_level, 0);
15037 return offset;
15040 static int
15041 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_)
15043 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);
15045 return offset;
15048 static int
15049 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_)
15051 offset = samr_dissect_ValidatePasswordReq(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_ValidatePassword_req, 0);
15053 return offset;
15056 static int
15057 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_)
15059 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);
15061 return offset;
15064 static int
15065 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_)
15067 uint64_t saved_switch_level = di->switch_level;
15069 di->switch_level = 0;
15071 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);
15073 di->switch_level = saved_switch_level;
15075 return offset;
15078 static int
15079 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_)
15081 offset = samr_dissect_ValidatePasswordRep(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_ValidatePassword_rep, 0);
15083 return offset;
15086 /* IDL: NTSTATUS samr_ValidatePassword( */
15087 /* IDL: [in] samr_ValidatePasswordLevel level, */
15088 /* IDL: [in] [ref] [switch_is(level)] samr_ValidatePasswordReq *req, */
15089 /* IDL: [out] [ref] [switch_is(level)] samr_ValidatePasswordRep **rep */
15090 /* IDL: ); */
15092 static int
15093 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_)
15095 uint32_t status;
15097 di->dcerpc_procedure_name="ValidatePassword";
15098 offset = samr_dissect_element_ValidatePassword_rep(tvb, offset, pinfo, tree, di, drep);
15099 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
15101 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
15103 if (status != 0)
15104 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
15106 return offset;
15109 static int
15110 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_)
15112 di->dcerpc_procedure_name="ValidatePassword";
15113 offset = samr_dissect_element_ValidatePassword_level(tvb, offset, pinfo, tree, di, drep);
15114 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
15115 offset = samr_dissect_element_ValidatePassword_req(tvb, offset, pinfo, tree, di, drep);
15116 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
15117 return offset;
15120 /* IDL: void samr_Opnum68NotUsedOnWire( */
15121 /* IDL: */
15122 /* IDL: ); */
15124 static int
15125 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_)
15127 di->dcerpc_procedure_name="Opnum68NotUsedOnWire";
15128 return offset;
15131 static int
15132 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_)
15134 di->dcerpc_procedure_name="Opnum68NotUsedOnWire";
15135 return offset;
15138 /* IDL: void samr_Opnum69NotUsedOnWire( */
15139 /* IDL: */
15140 /* IDL: ); */
15142 static int
15143 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_)
15145 di->dcerpc_procedure_name="Opnum69NotUsedOnWire";
15146 return offset;
15149 static int
15150 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_)
15152 di->dcerpc_procedure_name="Opnum69NotUsedOnWire";
15153 return offset;
15156 /* IDL: void samr_Opnum70NotUsedOnWire( */
15157 /* IDL: */
15158 /* IDL: ); */
15160 static int
15161 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_)
15163 di->dcerpc_procedure_name="Opnum70NotUsedOnWire";
15164 return offset;
15167 static int
15168 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_)
15170 di->dcerpc_procedure_name="Opnum70NotUsedOnWire";
15171 return offset;
15174 /* IDL: void samr_Opnum71NotUsedOnWire( */
15175 /* IDL: */
15176 /* IDL: ); */
15178 static int
15179 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_)
15181 di->dcerpc_procedure_name="Opnum71NotUsedOnWire";
15182 return offset;
15185 static int
15186 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_)
15188 di->dcerpc_procedure_name="Opnum71NotUsedOnWire";
15189 return offset;
15192 /* IDL: void samr_Opnum72NotUsedOnWire( */
15193 /* IDL: */
15194 /* IDL: ); */
15196 static int
15197 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_)
15199 di->dcerpc_procedure_name="Opnum72NotUsedOnWire";
15200 return offset;
15203 static int
15204 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_)
15206 di->dcerpc_procedure_name="Opnum72NotUsedOnWire";
15207 return offset;
15210 static int
15211 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_)
15213 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);
15215 return offset;
15218 static int
15219 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_)
15221 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_ChangePasswordUser4_server);
15223 return offset;
15226 static int
15227 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_)
15229 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);
15231 return offset;
15234 static int
15235 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_)
15237 offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_ChangePasswordUser4_account);
15239 return offset;
15242 static int
15243 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_)
15245 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);
15247 return offset;
15250 static int
15251 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_)
15253 offset = samr_dissect_struct_EncryptedPasswordAES(tvb,offset,pinfo,tree,di,drep,hf_samr_samr_ChangePasswordUser4_password,0);
15255 return offset;
15258 /* IDL: NTSTATUS samr_ChangePasswordUser4( */
15259 /* IDL: [in] [unique(1)] lsa_String *server, */
15260 /* IDL: [in] [ref] lsa_String *account, */
15261 /* IDL: [in] [ref] samr_EncryptedPasswordAES *password */
15262 /* IDL: ); */
15264 static int
15265 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_)
15267 uint32_t status;
15269 di->dcerpc_procedure_name="ChangePasswordUser4";
15270 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_samr_status, &status);
15272 if (status != 0)
15273 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
15275 return offset;
15278 static int
15279 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_)
15281 di->dcerpc_procedure_name="ChangePasswordUser4";
15282 offset = samr_dissect_element_ChangePasswordUser4_server(tvb, offset, pinfo, tree, di, drep);
15283 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
15284 offset = samr_dissect_element_ChangePasswordUser4_account(tvb, offset, pinfo, tree, di, drep);
15285 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
15286 offset = samr_dissect_element_ChangePasswordUser4_password(tvb, offset, pinfo, tree, di, drep);
15287 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
15288 return offset;
15292 static const dcerpc_sub_dissector samr_dissectors[] = {
15293 { 0, "Connect",
15294 samr_dissect_Connect_request, samr_dissect_Connect_response},
15295 { 1, "Close",
15296 samr_dissect_Close_request, samr_dissect_Close_response},
15297 { 2, "SetSecurity",
15298 samr_dissect_SetSecurity_request, samr_dissect_SetSecurity_response},
15299 { 3, "QuerySecurity",
15300 samr_dissect_QuerySecurity_request, samr_dissect_QuerySecurity_response},
15301 { 4, "Shutdown",
15302 samr_dissect_Shutdown_request, samr_dissect_Shutdown_response},
15303 { 5, "LookupDomain",
15304 samr_dissect_LookupDomain_request, samr_dissect_LookupDomain_response},
15305 { 6, "EnumDomains",
15306 samr_dissect_EnumDomains_request, samr_dissect_EnumDomains_response},
15307 { 7, "OpenDomain",
15308 samr_dissect_OpenDomain_request, samr_dissect_OpenDomain_response},
15309 { 8, "QueryDomainInfo",
15310 samr_dissect_QueryDomainInfo_request, samr_dissect_QueryDomainInfo_response},
15311 { 9, "SetDomainInfo",
15312 samr_dissect_SetDomainInfo_request, samr_dissect_SetDomainInfo_response},
15313 { 10, "CreateDomainGroup",
15314 samr_dissect_CreateDomainGroup_request, samr_dissect_CreateDomainGroup_response},
15315 { 11, "EnumDomainGroups",
15316 samr_dissect_EnumDomainGroups_request, samr_dissect_EnumDomainGroups_response},
15317 { 12, "CreateUser",
15318 samr_dissect_CreateUser_request, samr_dissect_CreateUser_response},
15319 { 13, "EnumDomainUsers",
15320 samr_dissect_EnumDomainUsers_request, samr_dissect_EnumDomainUsers_response},
15321 { 14, "CreateDomAlias",
15322 samr_dissect_CreateDomAlias_request, samr_dissect_CreateDomAlias_response},
15323 { 15, "EnumDomainAliases",
15324 samr_dissect_EnumDomainAliases_request, samr_dissect_EnumDomainAliases_response},
15325 { 16, "GetAliasMembership",
15326 samr_dissect_GetAliasMembership_request, samr_dissect_GetAliasMembership_response},
15327 { 17, "LookupNames",
15328 samr_dissect_LookupNames_request, samr_dissect_LookupNames_response},
15329 { 18, "LookupRids",
15330 samr_dissect_LookupRids_request, samr_dissect_LookupRids_response},
15331 { 19, "OpenGroup",
15332 samr_dissect_OpenGroup_request, samr_dissect_OpenGroup_response},
15333 { 20, "QueryGroupInfo",
15334 samr_dissect_QueryGroupInfo_request, samr_dissect_QueryGroupInfo_response},
15335 { 21, "SetGroupInfo",
15336 samr_dissect_SetGroupInfo_request, samr_dissect_SetGroupInfo_response},
15337 { 22, "AddGroupMember",
15338 samr_dissect_AddGroupMember_request, samr_dissect_AddGroupMember_response},
15339 { 23, "DeleteDomainGroup",
15340 samr_dissect_DeleteDomainGroup_request, samr_dissect_DeleteDomainGroup_response},
15341 { 24, "DeleteGroupMember",
15342 samr_dissect_DeleteGroupMember_request, samr_dissect_DeleteGroupMember_response},
15343 { 25, "QueryGroupMember",
15344 samr_dissect_QueryGroupMember_request, samr_dissect_QueryGroupMember_response},
15345 { 26, "SetMemberAttributesOfGroup",
15346 samr_dissect_SetMemberAttributesOfGroup_request, samr_dissect_SetMemberAttributesOfGroup_response},
15347 { 27, "OpenAlias",
15348 samr_dissect_OpenAlias_request, samr_dissect_OpenAlias_response},
15349 { 28, "QueryAliasInfo",
15350 samr_dissect_QueryAliasInfo_request, samr_dissect_QueryAliasInfo_response},
15351 { 29, "SetAliasInfo",
15352 samr_dissect_SetAliasInfo_request, samr_dissect_SetAliasInfo_response},
15353 { 30, "DeleteDomAlias",
15354 samr_dissect_DeleteDomAlias_request, samr_dissect_DeleteDomAlias_response},
15355 { 31, "AddAliasMember",
15356 samr_dissect_AddAliasMember_request, samr_dissect_AddAliasMember_response},
15357 { 32, "DeleteAliasMember",
15358 samr_dissect_DeleteAliasMember_request, samr_dissect_DeleteAliasMember_response},
15359 { 33, "GetMembersInAlias",
15360 samr_dissect_GetMembersInAlias_request, samr_dissect_GetMembersInAlias_response},
15361 { 34, "OpenUser",
15362 samr_dissect_OpenUser_request, samr_dissect_OpenUser_response},
15363 { 35, "DeleteUser",
15364 samr_dissect_DeleteUser_request, samr_dissect_DeleteUser_response},
15365 { 36, "QueryUserInfo",
15366 samr_dissect_QueryUserInfo_request, samr_dissect_QueryUserInfo_response},
15367 { 37, "SetUserInfo",
15368 samr_dissect_SetUserInfo_request, samr_dissect_SetUserInfo_response},
15369 { 38, "ChangePasswordUser",
15370 samr_dissect_ChangePasswordUser_request, samr_dissect_ChangePasswordUser_response},
15371 { 39, "GetGroupsForUser",
15372 samr_dissect_GetGroupsForUser_request, samr_dissect_GetGroupsForUser_response},
15373 { 40, "QueryDisplayInfo",
15374 samr_dissect_QueryDisplayInfo_request, samr_dissect_QueryDisplayInfo_response},
15375 { 41, "GetDisplayEnumerationIndex",
15376 samr_dissect_GetDisplayEnumerationIndex_request, samr_dissect_GetDisplayEnumerationIndex_response},
15377 { 42, "TestPrivateFunctionsDomain",
15378 samr_dissect_TestPrivateFunctionsDomain_request, samr_dissect_TestPrivateFunctionsDomain_response},
15379 { 43, "TestPrivateFunctionsUser",
15380 samr_dissect_TestPrivateFunctionsUser_request, samr_dissect_TestPrivateFunctionsUser_response},
15381 { 44, "GetUserPwInfo",
15382 samr_dissect_GetUserPwInfo_request, samr_dissect_GetUserPwInfo_response},
15383 { 45, "RemoveMemberFromForeignDomain",
15384 samr_dissect_RemoveMemberFromForeignDomain_request, samr_dissect_RemoveMemberFromForeignDomain_response},
15385 { 46, "QueryDomainInfo2",
15386 samr_dissect_QueryDomainInfo2_request, samr_dissect_QueryDomainInfo2_response},
15387 { 47, "QueryUserInfo2",
15388 samr_dissect_QueryUserInfo2_request, samr_dissect_QueryUserInfo2_response},
15389 { 48, "QueryDisplayInfo2",
15390 samr_dissect_QueryDisplayInfo2_request, samr_dissect_QueryDisplayInfo2_response},
15391 { 49, "GetDisplayEnumerationIndex2",
15392 samr_dissect_GetDisplayEnumerationIndex2_request, samr_dissect_GetDisplayEnumerationIndex2_response},
15393 { 50, "CreateUser2",
15394 samr_dissect_CreateUser2_request, samr_dissect_CreateUser2_response},
15395 { 51, "QueryDisplayInfo3",
15396 samr_dissect_QueryDisplayInfo3_request, samr_dissect_QueryDisplayInfo3_response},
15397 { 52, "AddMultipleMembersToAlias",
15398 samr_dissect_AddMultipleMembersToAlias_request, samr_dissect_AddMultipleMembersToAlias_response},
15399 { 53, "RemoveMultipleMembersFromAlias",
15400 samr_dissect_RemoveMultipleMembersFromAlias_request, samr_dissect_RemoveMultipleMembersFromAlias_response},
15401 { 54, "OemChangePasswordUser2",
15402 samr_dissect_OemChangePasswordUser2_request, samr_dissect_OemChangePasswordUser2_response},
15403 { 55, "ChangePasswordUser2",
15404 samr_dissect_ChangePasswordUser2_request, samr_dissect_ChangePasswordUser2_response},
15405 { 56, "GetDomPwInfo",
15406 samr_dissect_GetDomPwInfo_request, samr_dissect_GetDomPwInfo_response},
15407 { 57, "Connect2",
15408 samr_dissect_Connect2_request, samr_dissect_Connect2_response},
15409 { 58, "SetUserInfo2",
15410 samr_dissect_SetUserInfo2_request, samr_dissect_SetUserInfo2_response},
15411 { 59, "SetBootKeyInformation",
15412 samr_dissect_SetBootKeyInformation_request, samr_dissect_SetBootKeyInformation_response},
15413 { 60, "GetBootKeyInformation",
15414 samr_dissect_GetBootKeyInformation_request, samr_dissect_GetBootKeyInformation_response},
15415 { 61, "Connect3",
15416 samr_dissect_Connect3_request, samr_dissect_Connect3_response},
15417 { 62, "Connect4",
15418 samr_dissect_Connect4_request, samr_dissect_Connect4_response},
15419 { 63, "ChangePasswordUser3",
15420 samr_dissect_ChangePasswordUser3_request, samr_dissect_ChangePasswordUser3_response},
15421 { 64, "Connect5",
15422 samr_dissect_Connect5_request, samr_dissect_Connect5_response},
15423 { 65, "RidToSid",
15424 samr_dissect_RidToSid_request, samr_dissect_RidToSid_response},
15425 { 66, "SetDsrmPassword",
15426 samr_dissect_SetDsrmPassword_request, samr_dissect_SetDsrmPassword_response},
15427 { 67, "ValidatePassword",
15428 samr_dissect_ValidatePassword_request, samr_dissect_ValidatePassword_response},
15429 { 68, "Opnum68NotUsedOnWire",
15430 samr_dissect_Opnum68NotUsedOnWire_request, samr_dissect_Opnum68NotUsedOnWire_response},
15431 { 69, "Opnum69NotUsedOnWire",
15432 samr_dissect_Opnum69NotUsedOnWire_request, samr_dissect_Opnum69NotUsedOnWire_response},
15433 { 70, "Opnum70NotUsedOnWire",
15434 samr_dissect_Opnum70NotUsedOnWire_request, samr_dissect_Opnum70NotUsedOnWire_response},
15435 { 71, "Opnum71NotUsedOnWire",
15436 samr_dissect_Opnum71NotUsedOnWire_request, samr_dissect_Opnum71NotUsedOnWire_response},
15437 { 72, "Opnum72NotUsedOnWire",
15438 samr_dissect_Opnum72NotUsedOnWire_request, samr_dissect_Opnum72NotUsedOnWire_response},
15439 { 73, "ChangePasswordUser4",
15440 samr_dissect_ChangePasswordUser4_request, samr_dissect_ChangePasswordUser4_response},
15441 { 0, NULL, NULL, NULL }
15444 void proto_register_dcerpc_samr(void)
15446 static hf_register_info hf[] = {
15447 { &hf_samr_alias_access_mask,
15448 { "Access Mask", "samr.alias.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
15449 { &hf_samr_alias_handle,
15450 { "Alias Handle", "samr.alias_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15451 { &hf_samr_connect_access_mask,
15452 { "Access Mask", "samr.connect.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
15453 { &hf_samr_connect_handle,
15454 { "Connect Handle", "samr.connect_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15455 { &hf_samr_domain_access_mask,
15456 { "Access Mask", "samr.domain.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
15457 { &hf_samr_domain_handle,
15458 { "Domain Handle", "samr.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15459 { &hf_samr_group_access_mask,
15460 { "Access Mask", "samr.group.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
15461 { &hf_samr_group_handle,
15462 { "Group Handle", "samr.group_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15463 { &hf_samr_handle,
15464 { "Handle", "samr.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15465 { &hf_samr_lsa_Strings_count,
15466 { "Count", "samr.lsa_Strings.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15467 { &hf_samr_lsa_Strings_names,
15468 { "Names", "samr.lsa_Strings.names", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15469 { &hf_samr_opnum,
15470 { "Operation", "samr.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
15471 { &hf_samr_rid,
15472 { "RID", "samr.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15473 { &hf_samr_samr_AcctFlags_ACB_AUTOLOCK,
15474 { "ACB AUTOLOCK", "samr.samr_AcctFlags.ACB_AUTOLOCK", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_AUTOLOCK_tfs), ( 0x00000400 ), NULL, HFILL }},
15475 { &hf_samr_samr_AcctFlags_ACB_DISABLED,
15476 { "ACB DISABLED", "samr.samr_AcctFlags.ACB_DISABLED", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_DISABLED_tfs), ( 0x00000001 ), NULL, HFILL }},
15477 { &hf_samr_samr_AcctFlags_ACB_DOMTRUST,
15478 { "ACB DOMTRUST", "samr.samr_AcctFlags.ACB_DOMTRUST", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_DOMTRUST_tfs), ( 0x00000040 ), NULL, HFILL }},
15479 { &hf_samr_samr_AcctFlags_ACB_DONT_REQUIRE_PREAUTH,
15480 { "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 }},
15481 { &hf_samr_samr_AcctFlags_ACB_ENC_TXT_PWD_ALLOWED,
15482 { "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 }},
15483 { &hf_samr_samr_AcctFlags_ACB_HOMDIRREQ,
15484 { "ACB HOMDIRREQ", "samr.samr_AcctFlags.ACB_HOMDIRREQ", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_HOMDIRREQ_tfs), ( 0x00000002 ), NULL, HFILL }},
15485 { &hf_samr_samr_AcctFlags_ACB_MNS,
15486 { "ACB MNS", "samr.samr_AcctFlags.ACB_MNS", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_MNS_tfs), ( 0x00000020 ), NULL, HFILL }},
15487 { &hf_samr_samr_AcctFlags_ACB_NORMAL,
15488 { "ACB NORMAL", "samr.samr_AcctFlags.ACB_NORMAL", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_NORMAL_tfs), ( 0x00000010 ), NULL, HFILL }},
15489 { &hf_samr_samr_AcctFlags_ACB_NOT_DELEGATED,
15490 { "ACB NOT DELEGATED", "samr.samr_AcctFlags.ACB_NOT_DELEGATED", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_NOT_DELEGATED_tfs), ( 0x00004000 ), NULL, HFILL }},
15491 { &hf_samr_samr_AcctFlags_ACB_NO_AUTH_DATA_REQD,
15492 { "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 }},
15493 { &hf_samr_samr_AcctFlags_ACB_PARTIAL_SECRETS_ACCOUNT,
15494 { "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 }},
15495 { &hf_samr_samr_AcctFlags_ACB_PWNOEXP,
15496 { "ACB PWNOEXP", "samr.samr_AcctFlags.ACB_PWNOEXP", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_PWNOEXP_tfs), ( 0x00000200 ), NULL, HFILL }},
15497 { &hf_samr_samr_AcctFlags_ACB_PWNOTREQ,
15498 { "ACB PWNOTREQ", "samr.samr_AcctFlags.ACB_PWNOTREQ", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_PWNOTREQ_tfs), ( 0x00000004 ), NULL, HFILL }},
15499 { &hf_samr_samr_AcctFlags_ACB_PW_EXPIRED,
15500 { "ACB PW EXPIRED", "samr.samr_AcctFlags.ACB_PW_EXPIRED", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_PW_EXPIRED_tfs), ( 0x00020000 ), NULL, HFILL }},
15501 { &hf_samr_samr_AcctFlags_ACB_SMARTCARD_REQUIRED,
15502 { "ACB SMARTCARD REQUIRED", "samr.samr_AcctFlags.ACB_SMARTCARD_REQUIRED", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_SMARTCARD_REQUIRED_tfs), ( 0x00001000 ), NULL, HFILL }},
15503 { &hf_samr_samr_AcctFlags_ACB_SVRTRUST,
15504 { "ACB SVRTRUST", "samr.samr_AcctFlags.ACB_SVRTRUST", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_SVRTRUST_tfs), ( 0x00000100 ), NULL, HFILL }},
15505 { &hf_samr_samr_AcctFlags_ACB_TEMPDUP,
15506 { "ACB TEMPDUP", "samr.samr_AcctFlags.ACB_TEMPDUP", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_TEMPDUP_tfs), ( 0x00000008 ), NULL, HFILL }},
15507 { &hf_samr_samr_AcctFlags_ACB_TRUSTED_FOR_DELEGATION,
15508 { "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 }},
15509 { &hf_samr_samr_AcctFlags_ACB_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION,
15510 { "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 }},
15511 { &hf_samr_samr_AcctFlags_ACB_USE_AES_KEYS,
15512 { "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 }},
15513 { &hf_samr_samr_AcctFlags_ACB_USE_DES_KEY_ONLY,
15514 { "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 }},
15515 { &hf_samr_samr_AcctFlags_ACB_WSTRUST,
15516 { "ACB WSTRUST", "samr.samr_AcctFlags.ACB_WSTRUST", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_WSTRUST_tfs), ( 0x00000080 ), NULL, HFILL }},
15517 { &hf_samr_samr_AddAliasMember_sid,
15518 { "Sid", "samr.samr_AddAliasMember.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15519 { &hf_samr_samr_AddGroupMember_flags,
15520 { "Flags", "samr.samr_AddGroupMember.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15521 { &hf_samr_samr_AddMultipleMembersToAlias_sids,
15522 { "Sids", "samr.samr_AddMultipleMembersToAlias.sids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15523 { &hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_ADD_MEMBER,
15524 { "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 }},
15525 { &hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_GET_MEMBERS,
15526 { "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 }},
15527 { &hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_LOOKUP_INFO,
15528 { "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 }},
15529 { &hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_REMOVE_MEMBER,
15530 { "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 }},
15531 { &hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_SET_INFO,
15532 { "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 }},
15533 { &hf_samr_samr_AliasInfoAll_description,
15534 { "Description", "samr.samr_AliasInfoAll.description", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15535 { &hf_samr_samr_AliasInfoAll_name,
15536 { "Name", "samr.samr_AliasInfoAll.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15537 { &hf_samr_samr_AliasInfoAll_num_members,
15538 { "Num Members", "samr.samr_AliasInfoAll.num_members", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15539 { &hf_samr_samr_AliasInfo_all,
15540 { "All", "samr.samr_AliasInfo.all", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15541 { &hf_samr_samr_AliasInfo_description,
15542 { "Description", "samr.samr_AliasInfo.description", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15543 { &hf_samr_samr_AliasInfo_name,
15544 { "Name", "samr.samr_AliasInfo.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15545 { &hf_samr_samr_ChangePasswordUser2_account,
15546 { "Account", "samr.samr_ChangePasswordUser2.account", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15547 { &hf_samr_samr_ChangePasswordUser2_lm_change,
15548 { "Lm Change", "samr.samr_ChangePasswordUser2.lm_change", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
15549 { &hf_samr_samr_ChangePasswordUser2_lm_password,
15550 { "Lm Password", "samr.samr_ChangePasswordUser2.lm_password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15551 { &hf_samr_samr_ChangePasswordUser2_lm_verifier,
15552 { "Lm Verifier", "samr.samr_ChangePasswordUser2.lm_verifier", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15553 { &hf_samr_samr_ChangePasswordUser2_nt_password,
15554 { "Nt Password", "samr.samr_ChangePasswordUser2.nt_password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15555 { &hf_samr_samr_ChangePasswordUser2_nt_verifier,
15556 { "Nt Verifier", "samr.samr_ChangePasswordUser2.nt_verifier", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15557 { &hf_samr_samr_ChangePasswordUser2_server,
15558 { "Server", "samr.samr_ChangePasswordUser2.server", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15559 { &hf_samr_samr_ChangePasswordUser3_account,
15560 { "Account", "samr.samr_ChangePasswordUser3.account", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15561 { &hf_samr_samr_ChangePasswordUser3_dominfo,
15562 { "Dominfo", "samr.samr_ChangePasswordUser3.dominfo", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15563 { &hf_samr_samr_ChangePasswordUser3_lm_change,
15564 { "Lm Change", "samr.samr_ChangePasswordUser3.lm_change", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
15565 { &hf_samr_samr_ChangePasswordUser3_lm_password,
15566 { "Lm Password", "samr.samr_ChangePasswordUser3.lm_password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15567 { &hf_samr_samr_ChangePasswordUser3_lm_verifier,
15568 { "Lm Verifier", "samr.samr_ChangePasswordUser3.lm_verifier", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15569 { &hf_samr_samr_ChangePasswordUser3_nt_password,
15570 { "Nt Password", "samr.samr_ChangePasswordUser3.nt_password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15571 { &hf_samr_samr_ChangePasswordUser3_nt_verifier,
15572 { "Nt Verifier", "samr.samr_ChangePasswordUser3.nt_verifier", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15573 { &hf_samr_samr_ChangePasswordUser3_password3,
15574 { "Password3", "samr.samr_ChangePasswordUser3.password3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15575 { &hf_samr_samr_ChangePasswordUser3_reject,
15576 { "Reject", "samr.samr_ChangePasswordUser3.reject", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15577 { &hf_samr_samr_ChangePasswordUser3_server,
15578 { "Server", "samr.samr_ChangePasswordUser3.server", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15579 { &hf_samr_samr_ChangePasswordUser4_account,
15580 { "Account", "samr.samr_ChangePasswordUser4.account", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15581 { &hf_samr_samr_ChangePasswordUser4_password,
15582 { "Password", "samr.samr_ChangePasswordUser4.password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15583 { &hf_samr_samr_ChangePasswordUser4_server,
15584 { "Server", "samr.samr_ChangePasswordUser4.server", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15585 { &hf_samr_samr_ChangePasswordUser_cross1_present,
15586 { "Cross1 Present", "samr.samr_ChangePasswordUser.cross1_present", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
15587 { &hf_samr_samr_ChangePasswordUser_cross2_present,
15588 { "Cross2 Present", "samr.samr_ChangePasswordUser.cross2_present", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
15589 { &hf_samr_samr_ChangePasswordUser_lm_cross,
15590 { "Lm Cross", "samr.samr_ChangePasswordUser.lm_cross", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15591 { &hf_samr_samr_ChangePasswordUser_lm_present,
15592 { "Lm Present", "samr.samr_ChangePasswordUser.lm_present", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
15593 { &hf_samr_samr_ChangePasswordUser_new_lm_crypted,
15594 { "New Lm Crypted", "samr.samr_ChangePasswordUser.new_lm_crypted", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15595 { &hf_samr_samr_ChangePasswordUser_new_nt_crypted,
15596 { "New Nt Crypted", "samr.samr_ChangePasswordUser.new_nt_crypted", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15597 { &hf_samr_samr_ChangePasswordUser_nt_cross,
15598 { "Nt Cross", "samr.samr_ChangePasswordUser.nt_cross", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15599 { &hf_samr_samr_ChangePasswordUser_nt_present,
15600 { "Nt Present", "samr.samr_ChangePasswordUser.nt_present", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
15601 { &hf_samr_samr_ChangePasswordUser_old_lm_crypted,
15602 { "Old Lm Crypted", "samr.samr_ChangePasswordUser.old_lm_crypted", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15603 { &hf_samr_samr_ChangePasswordUser_old_nt_crypted,
15604 { "Old Nt Crypted", "samr.samr_ChangePasswordUser.old_nt_crypted", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15605 { &hf_samr_samr_Connect2_system_name,
15606 { "System Name", "samr.samr_Connect2.system_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15607 { &hf_samr_samr_Connect3_system_name,
15608 { "System Name", "samr.samr_Connect3.system_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15609 { &hf_samr_samr_Connect3_unknown,
15610 { "Unknown", "samr.samr_Connect3.unknown", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15611 { &hf_samr_samr_Connect4_client_version,
15612 { "Client Version", "samr.samr_Connect4.client_version", FT_UINT32, BASE_DEC, VALS(samr_samr_ConnectVersion_vals), 0, NULL, HFILL }},
15613 { &hf_samr_samr_Connect4_system_name,
15614 { "System Name", "samr.samr_Connect4.system_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15615 { &hf_samr_samr_Connect5_info_in,
15616 { "Info In", "samr.samr_Connect5.info_in", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15617 { &hf_samr_samr_Connect5_info_out,
15618 { "Info Out", "samr.samr_Connect5.info_out", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15619 { &hf_samr_samr_Connect5_level_in,
15620 { "Level In", "samr.samr_Connect5.level_in", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15621 { &hf_samr_samr_Connect5_level_out,
15622 { "Level Out", "samr.samr_Connect5.level_out", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15623 { &hf_samr_samr_Connect5_system_name,
15624 { "System Name", "samr.samr_Connect5.system_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15625 { &hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_CONNECT_TO_SERVER,
15626 { "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 }},
15627 { &hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_CREATE_DOMAIN,
15628 { "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 }},
15629 { &hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_ENUM_DOMAINS,
15630 { "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 }},
15631 { &hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_INITIALIZE_SERVER,
15632 { "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 }},
15633 { &hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_LOOKUP_DOMAIN,
15634 { "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 }},
15635 { &hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_SHUTDOWN_SERVER,
15636 { "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 }},
15637 { &hf_samr_samr_ConnectInfo1_client_version,
15638 { "Client Version", "samr.samr_ConnectInfo1.client_version", FT_UINT32, BASE_DEC, VALS(samr_samr_ConnectVersion_vals), 0, NULL, HFILL }},
15639 { &hf_samr_samr_ConnectInfo1_supported_features,
15640 { "Supported Features", "samr.samr_ConnectInfo1.supported_features", FT_UINT32, BASE_DEC, VALS(samr_samr_SupportedFeatures_vals), 0, NULL, HFILL }},
15641 { &hf_samr_samr_ConnectInfo_info1,
15642 { "Info1", "samr.samr_ConnectInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15643 { &hf_samr_samr_Connect_system_name,
15644 { "System Name", "samr.samr_Connect.system_name", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
15645 { &hf_samr_samr_CreateDomAlias_alias_name,
15646 { "Alias Name", "samr.samr_CreateDomAlias.alias_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15647 { &hf_samr_samr_CreateDomainGroup_name,
15648 { "Name", "samr.samr_CreateDomainGroup.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15649 { &hf_samr_samr_CreateUser2_access_granted,
15650 { "Access Granted", "samr.samr_CreateUser2.access_granted", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15651 { &hf_samr_samr_CreateUser2_account_name,
15652 { "Account Name", "samr.samr_CreateUser2.account_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15653 { &hf_samr_samr_CreateUser2_acct_flags,
15654 { "Acct Flags", "samr.samr_CreateUser2.acct_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
15655 { &hf_samr_samr_CreateUser_account_name,
15656 { "Account Name", "samr.samr_CreateUser.account_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15657 { &hf_samr_samr_CryptPasswordEx_data,
15658 { "Data", "samr.samr_CryptPasswordEx.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
15659 { &hf_samr_samr_CryptPassword_data,
15660 { "Data", "samr.samr_CryptPassword.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
15661 { &hf_samr_samr_DeleteAliasMember_sid,
15662 { "Sid", "samr.samr_DeleteAliasMember.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15663 { &hf_samr_samr_DispEntryAscii_account_name,
15664 { "Account Name", "samr.samr_DispEntryAscii.account_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15665 { &hf_samr_samr_DispEntryAscii_idx,
15666 { "Idx", "samr.samr_DispEntryAscii.idx", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15667 { &hf_samr_samr_DispEntryFullGroup_account_name,
15668 { "Account Name", "samr.samr_DispEntryFullGroup.account_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15669 { &hf_samr_samr_DispEntryFullGroup_acct_flags,
15670 { "Acct Flags", "samr.samr_DispEntryFullGroup.acct_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
15671 { &hf_samr_samr_DispEntryFullGroup_description,
15672 { "Description", "samr.samr_DispEntryFullGroup.description", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15673 { &hf_samr_samr_DispEntryFullGroup_idx,
15674 { "Idx", "samr.samr_DispEntryFullGroup.idx", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15675 { &hf_samr_samr_DispEntryFull_account_name,
15676 { "Account Name", "samr.samr_DispEntryFull.account_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15677 { &hf_samr_samr_DispEntryFull_acct_flags,
15678 { "Acct Flags", "samr.samr_DispEntryFull.acct_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
15679 { &hf_samr_samr_DispEntryFull_description,
15680 { "Description", "samr.samr_DispEntryFull.description", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15681 { &hf_samr_samr_DispEntryFull_idx,
15682 { "Idx", "samr.samr_DispEntryFull.idx", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15683 { &hf_samr_samr_DispEntryGeneral_account_name,
15684 { "Account Name", "samr.samr_DispEntryGeneral.account_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15685 { &hf_samr_samr_DispEntryGeneral_acct_flags,
15686 { "Acct Flags", "samr.samr_DispEntryGeneral.acct_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
15687 { &hf_samr_samr_DispEntryGeneral_description,
15688 { "Description", "samr.samr_DispEntryGeneral.description", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15689 { &hf_samr_samr_DispEntryGeneral_full_name,
15690 { "Full Name", "samr.samr_DispEntryGeneral.full_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15691 { &hf_samr_samr_DispEntryGeneral_idx,
15692 { "Idx", "samr.samr_DispEntryGeneral.idx", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15693 { &hf_samr_samr_DispInfoAscii_count,
15694 { "Count", "samr.samr_DispInfoAscii.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15695 { &hf_samr_samr_DispInfoAscii_entries,
15696 { "Entries", "samr.samr_DispInfoAscii.entries", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15697 { &hf_samr_samr_DispInfoFullGroups_count,
15698 { "Count", "samr.samr_DispInfoFullGroups.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15699 { &hf_samr_samr_DispInfoFullGroups_entries,
15700 { "Entries", "samr.samr_DispInfoFullGroups.entries", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15701 { &hf_samr_samr_DispInfoFull_count,
15702 { "Count", "samr.samr_DispInfoFull.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15703 { &hf_samr_samr_DispInfoFull_entries,
15704 { "Entries", "samr.samr_DispInfoFull.entries", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15705 { &hf_samr_samr_DispInfoGeneral_count,
15706 { "Count", "samr.samr_DispInfoGeneral.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15707 { &hf_samr_samr_DispInfoGeneral_entries,
15708 { "Entries", "samr.samr_DispInfoGeneral.entries", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15709 { &hf_samr_samr_DispInfo_info1,
15710 { "Info1", "samr.samr_DispInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15711 { &hf_samr_samr_DispInfo_info2,
15712 { "Info2", "samr.samr_DispInfo.info2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15713 { &hf_samr_samr_DispInfo_info3,
15714 { "Info3", "samr.samr_DispInfo.info3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15715 { &hf_samr_samr_DispInfo_info4,
15716 { "Info4", "samr.samr_DispInfo.info4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15717 { &hf_samr_samr_DispInfo_info5,
15718 { "Info5", "samr.samr_DispInfo.info5", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15719 { &hf_samr_samr_DomGeneralInformation2_general,
15720 { "General", "samr.samr_DomGeneralInformation2.general", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15721 { &hf_samr_samr_DomGeneralInformation2_lockout_duration,
15722 { "Lockout Duration", "samr.samr_DomGeneralInformation2.lockout_duration", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
15723 { &hf_samr_samr_DomGeneralInformation2_lockout_threshold,
15724 { "Lockout Threshold", "samr.samr_DomGeneralInformation2.lockout_threshold", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
15725 { &hf_samr_samr_DomGeneralInformation2_lockout_window,
15726 { "Lockout Window", "samr.samr_DomGeneralInformation2.lockout_window", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
15727 { &hf_samr_samr_DomGeneralInformation_domain_name,
15728 { "Domain Name", "samr.samr_DomGeneralInformation.domain_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15729 { &hf_samr_samr_DomGeneralInformation_domain_server_state,
15730 { "Domain Server State", "samr.samr_DomGeneralInformation.domain_server_state", FT_UINT32, BASE_DEC, VALS(samr_samr_DomainServerState_vals), 0, NULL, HFILL }},
15731 { &hf_samr_samr_DomGeneralInformation_force_logoff_time,
15732 { "Force Logoff Time", "samr.samr_DomGeneralInformation.force_logoff_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
15733 { &hf_samr_samr_DomGeneralInformation_num_aliases,
15734 { "Num Aliases", "samr.samr_DomGeneralInformation.num_aliases", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15735 { &hf_samr_samr_DomGeneralInformation_num_groups,
15736 { "Num Groups", "samr.samr_DomGeneralInformation.num_groups", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15737 { &hf_samr_samr_DomGeneralInformation_num_users,
15738 { "Num Users", "samr.samr_DomGeneralInformation.num_users", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15739 { &hf_samr_samr_DomGeneralInformation_oem_information,
15740 { "Oem Information", "samr.samr_DomGeneralInformation.oem_information", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15741 { &hf_samr_samr_DomGeneralInformation_primary,
15742 { "Primary", "samr.samr_DomGeneralInformation.primary", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15743 { &hf_samr_samr_DomGeneralInformation_role,
15744 { "Role", "samr.samr_DomGeneralInformation.role", FT_UINT32, BASE_DEC, VALS(samr_samr_Role_vals), 0, NULL, HFILL }},
15745 { &hf_samr_samr_DomGeneralInformation_sequence_num,
15746 { "Sequence Num", "samr.samr_DomGeneralInformation.sequence_num", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
15747 { &hf_samr_samr_DomGeneralInformation_unknown3,
15748 { "Unknown3", "samr.samr_DomGeneralInformation.unknown3", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15749 { &hf_samr_samr_DomInfo12_lockout_duration,
15750 { "Lockout Duration", "samr.samr_DomInfo12.lockout_duration", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
15751 { &hf_samr_samr_DomInfo12_lockout_threshold,
15752 { "Lockout Threshold", "samr.samr_DomInfo12.lockout_threshold", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
15753 { &hf_samr_samr_DomInfo12_lockout_window,
15754 { "Lockout Window", "samr.samr_DomInfo12.lockout_window", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
15755 { &hf_samr_samr_DomInfo13_domain_create_time,
15756 { "Domain Create Time", "samr.samr_DomInfo13.domain_create_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
15757 { &hf_samr_samr_DomInfo13_modified_count_at_last_promotion,
15758 { "Modified Count At Last Promotion", "samr.samr_DomInfo13.modified_count_at_last_promotion", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
15759 { &hf_samr_samr_DomInfo13_sequence_num,
15760 { "Sequence Num", "samr.samr_DomInfo13.sequence_num", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
15761 { &hf_samr_samr_DomInfo1_max_password_age,
15762 { "Max Password Age", "samr.samr_DomInfo1.max_password_age", FT_INT64, BASE_DEC, NULL, 0, NULL, HFILL }},
15763 { &hf_samr_samr_DomInfo1_min_password_age,
15764 { "Min Password Age", "samr.samr_DomInfo1.min_password_age", FT_INT64, BASE_DEC, NULL, 0, NULL, HFILL }},
15765 { &hf_samr_samr_DomInfo1_min_password_length,
15766 { "Min Password Length", "samr.samr_DomInfo1.min_password_length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
15767 { &hf_samr_samr_DomInfo1_password_history_length,
15768 { "Password History Length", "samr.samr_DomInfo1.password_history_length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
15769 { &hf_samr_samr_DomInfo1_password_properties,
15770 { "Password Properties", "samr.samr_DomInfo1.password_properties", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
15771 { &hf_samr_samr_DomInfo3_force_logoff_time,
15772 { "Force Logoff Time", "samr.samr_DomInfo3.force_logoff_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
15773 { &hf_samr_samr_DomInfo5_domain_name,
15774 { "Domain Name", "samr.samr_DomInfo5.domain_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15775 { &hf_samr_samr_DomInfo6_primary,
15776 { "Primary", "samr.samr_DomInfo6.primary", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15777 { &hf_samr_samr_DomInfo7_role,
15778 { "Role", "samr.samr_DomInfo7.role", FT_UINT32, BASE_DEC, VALS(samr_samr_Role_vals), 0, NULL, HFILL }},
15779 { &hf_samr_samr_DomInfo8_domain_create_time,
15780 { "Domain Create Time", "samr.samr_DomInfo8.domain_create_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
15781 { &hf_samr_samr_DomInfo8_sequence_num,
15782 { "Sequence Num", "samr.samr_DomInfo8.sequence_num", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
15783 { &hf_samr_samr_DomInfo9_domain_server_state,
15784 { "Domain Server State", "samr.samr_DomInfo9.domain_server_state", FT_UINT32, BASE_DEC, VALS(samr_samr_DomainServerState_vals), 0, NULL, HFILL }},
15785 { &hf_samr_samr_DomOEMInformation_oem_information,
15786 { "Oem Information", "samr.samr_DomOEMInformation.oem_information", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15787 { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_ALIAS,
15788 { "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 }},
15789 { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_GROUP,
15790 { "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 }},
15791 { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_USER,
15792 { "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 }},
15793 { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_ENUM_ACCOUNTS,
15794 { "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 }},
15795 { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_ALIAS,
15796 { "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 }},
15797 { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_INFO_1,
15798 { "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 }},
15799 { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_INFO_2,
15800 { "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 }},
15801 { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT,
15802 { "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 }},
15803 { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_1,
15804 { "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 }},
15805 { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_2,
15806 { "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 }},
15807 { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_3,
15808 { "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 }},
15809 { &hf_samr_samr_DomainInfo_general,
15810 { "General", "samr.samr_DomainInfo.general", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15811 { &hf_samr_samr_DomainInfo_general2,
15812 { "General2", "samr.samr_DomainInfo.general2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15813 { &hf_samr_samr_DomainInfo_info1,
15814 { "Info1", "samr.samr_DomainInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15815 { &hf_samr_samr_DomainInfo_info12,
15816 { "Info12", "samr.samr_DomainInfo.info12", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15817 { &hf_samr_samr_DomainInfo_info13,
15818 { "Info13", "samr.samr_DomainInfo.info13", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15819 { &hf_samr_samr_DomainInfo_info3,
15820 { "Info3", "samr.samr_DomainInfo.info3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15821 { &hf_samr_samr_DomainInfo_info5,
15822 { "Info5", "samr.samr_DomainInfo.info5", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15823 { &hf_samr_samr_DomainInfo_info6,
15824 { "Info6", "samr.samr_DomainInfo.info6", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15825 { &hf_samr_samr_DomainInfo_info7,
15826 { "Info7", "samr.samr_DomainInfo.info7", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15827 { &hf_samr_samr_DomainInfo_info8,
15828 { "Info8", "samr.samr_DomainInfo.info8", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15829 { &hf_samr_samr_DomainInfo_info9,
15830 { "Info9", "samr.samr_DomainInfo.info9", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15831 { &hf_samr_samr_DomainInfo_oem,
15832 { "Oem", "samr.samr_DomainInfo.oem", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15833 { &hf_samr_samr_EncryptedPasswordAES_PBKDF2Iterations,
15834 { "PBKDF2Iterations", "samr.samr_EncryptedPasswordAES.PBKDF2Iterations", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
15835 { &hf_samr_samr_EncryptedPasswordAES_auth_data,
15836 { "Auth Data", "samr.samr_EncryptedPasswordAES.auth_data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
15837 { &hf_samr_samr_EncryptedPasswordAES_cipher,
15838 { "Cipher", "samr.samr_EncryptedPasswordAES.cipher", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
15839 { &hf_samr_samr_EncryptedPasswordAES_cipher_len,
15840 { "Cipher Len", "samr.samr_EncryptedPasswordAES.cipher_len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15841 { &hf_samr_samr_EncryptedPasswordAES_salt,
15842 { "Salt", "samr.samr_EncryptedPasswordAES.salt", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
15843 { &hf_samr_samr_EnumDomainAliases_max_size,
15844 { "Max Size", "samr.samr_EnumDomainAliases.max_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15845 { &hf_samr_samr_EnumDomainAliases_num_entries,
15846 { "Num Entries", "samr.samr_EnumDomainAliases.num_entries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15847 { &hf_samr_samr_EnumDomainAliases_resume_handle,
15848 { "Resume Handle", "samr.samr_EnumDomainAliases.resume_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15849 { &hf_samr_samr_EnumDomainAliases_sam,
15850 { "Sam", "samr.samr_EnumDomainAliases.sam", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15851 { &hf_samr_samr_EnumDomainGroups_max_size,
15852 { "Max Size", "samr.samr_EnumDomainGroups.max_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15853 { &hf_samr_samr_EnumDomainGroups_num_entries,
15854 { "Num Entries", "samr.samr_EnumDomainGroups.num_entries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15855 { &hf_samr_samr_EnumDomainGroups_resume_handle,
15856 { "Resume Handle", "samr.samr_EnumDomainGroups.resume_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15857 { &hf_samr_samr_EnumDomainGroups_sam,
15858 { "Sam", "samr.samr_EnumDomainGroups.sam", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15859 { &hf_samr_samr_EnumDomainUsers_acct_flags,
15860 { "Acct Flags", "samr.samr_EnumDomainUsers.acct_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
15861 { &hf_samr_samr_EnumDomainUsers_max_size,
15862 { "Max Size", "samr.samr_EnumDomainUsers.max_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15863 { &hf_samr_samr_EnumDomainUsers_num_entries,
15864 { "Num Entries", "samr.samr_EnumDomainUsers.num_entries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15865 { &hf_samr_samr_EnumDomainUsers_resume_handle,
15866 { "Resume Handle", "samr.samr_EnumDomainUsers.resume_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15867 { &hf_samr_samr_EnumDomainUsers_sam,
15868 { "Sam", "samr.samr_EnumDomainUsers.sam", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15869 { &hf_samr_samr_EnumDomains_buf_size,
15870 { "Buf Size", "samr.samr_EnumDomains.buf_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15871 { &hf_samr_samr_EnumDomains_connect_handle,
15872 { "Connect Handle", "samr.samr_EnumDomains.connect_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15873 { &hf_samr_samr_EnumDomains_num_entries,
15874 { "Num Entries", "samr.samr_EnumDomains.num_entries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15875 { &hf_samr_samr_EnumDomains_resume_handle,
15876 { "Resume Handle", "samr.samr_EnumDomains.resume_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15877 { &hf_samr_samr_EnumDomains_sam,
15878 { "Sam", "samr.samr_EnumDomains.sam", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15879 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_ACCOUNT_NAME,
15880 { "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 }},
15881 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_ACCT_EXPIRY,
15882 { "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 }},
15883 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_ACCT_FLAGS,
15884 { "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 }},
15885 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_ALLOW_PWD_CHANGE,
15886 { "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 }},
15887 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_BAD_PWD_COUNT,
15888 { "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 }},
15889 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_CODE_PAGE,
15890 { "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 }},
15891 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_COMMENT,
15892 { "SAMR FIELD COMMENT", "samr.samr_FieldsPresent.SAMR_FIELD_COMMENT", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_COMMENT_tfs), ( 0x00000020 ), NULL, HFILL }},
15893 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_COUNTRY_CODE,
15894 { "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 }},
15895 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_DESCRIPTION,
15896 { "SAMR FIELD DESCRIPTION", "samr.samr_FieldsPresent.SAMR_FIELD_DESCRIPTION", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_DESCRIPTION_tfs), ( 0x00000010 ), NULL, HFILL }},
15897 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_EXPIRED_FLAG,
15898 { "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 }},
15899 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_FORCE_PWD_CHANGE,
15900 { "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 }},
15901 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_FULL_NAME,
15902 { "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 }},
15903 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_HOME_DIRECTORY,
15904 { "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 }},
15905 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_HOME_DRIVE,
15906 { "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 }},
15907 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_LAST_LOGOFF,
15908 { "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 }},
15909 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_LAST_LOGON,
15910 { "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 }},
15911 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_LAST_PWD_CHANGE,
15912 { "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 }},
15913 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_LM_PASSWORD_PRESENT,
15914 { "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 }},
15915 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_LOGON_HOURS,
15916 { "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 }},
15917 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_LOGON_SCRIPT,
15918 { "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 }},
15919 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_NT_PASSWORD_PRESENT,
15920 { "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 }},
15921 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_NUM_LOGONS,
15922 { "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 }},
15923 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_OWF_PWD,
15924 { "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 }},
15925 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_PARAMETERS,
15926 { "SAMR FIELD PARAMETERS", "samr.samr_FieldsPresent.SAMR_FIELD_PARAMETERS", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_PARAMETERS_tfs), ( 0x00200000 ), NULL, HFILL }},
15927 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_PRIMARY_GID,
15928 { "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 }},
15929 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_PRIVATE_DATA,
15930 { "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 }},
15931 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_PROFILE_PATH,
15932 { "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 }},
15933 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_RID,
15934 { "SAMR FIELD RID", "samr.samr_FieldsPresent.SAMR_FIELD_RID", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_RID_tfs), ( 0x00000004 ), NULL, HFILL }},
15935 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_SEC_DESC,
15936 { "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 }},
15937 { &hf_samr_samr_FieldsPresent_SAMR_FIELD_WORKSTATIONS,
15938 { "SAMR FIELD WORKSTATIONS", "samr.samr_FieldsPresent.SAMR_FIELD_WORKSTATIONS", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_WORKSTATIONS_tfs), ( 0x00000400 ), NULL, HFILL }},
15939 { &hf_samr_samr_GetAliasMembership_rids,
15940 { "Rids", "samr.samr_GetAliasMembership.rids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15941 { &hf_samr_samr_GetAliasMembership_sids,
15942 { "Sids", "samr.samr_GetAliasMembership.sids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15943 { &hf_samr_samr_GetBootKeyInformation_domain_handle,
15944 { "Domain Handle", "samr.samr_GetBootKeyInformation.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15945 { &hf_samr_samr_GetBootKeyInformation_unknown,
15946 { "Unknown", "samr.samr_GetBootKeyInformation.unknown", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15947 { &hf_samr_samr_GetDisplayEnumerationIndex2_idx,
15948 { "Idx", "samr.samr_GetDisplayEnumerationIndex2.idx", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15949 { &hf_samr_samr_GetDisplayEnumerationIndex2_level,
15950 { "Level", "samr.samr_GetDisplayEnumerationIndex2.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_DomainDisplayInformation_vals), 0, NULL, HFILL }},
15951 { &hf_samr_samr_GetDisplayEnumerationIndex2_name,
15952 { "Name", "samr.samr_GetDisplayEnumerationIndex2.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15953 { &hf_samr_samr_GetDisplayEnumerationIndex_idx,
15954 { "Idx", "samr.samr_GetDisplayEnumerationIndex.idx", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15955 { &hf_samr_samr_GetDisplayEnumerationIndex_level,
15956 { "Level", "samr.samr_GetDisplayEnumerationIndex.level", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
15957 { &hf_samr_samr_GetDisplayEnumerationIndex_name,
15958 { "Name", "samr.samr_GetDisplayEnumerationIndex.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15959 { &hf_samr_samr_GetDomPwInfo_domain_name,
15960 { "Domain Name", "samr.samr_GetDomPwInfo.domain_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15961 { &hf_samr_samr_GetDomPwInfo_info,
15962 { "Info", "samr.samr_GetDomPwInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15963 { &hf_samr_samr_GetGroupsForUser_rids,
15964 { "Rids", "samr.samr_GetGroupsForUser.rids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15965 { &hf_samr_samr_GetMembersInAlias_sids,
15966 { "Sids", "samr.samr_GetMembersInAlias.sids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15967 { &hf_samr_samr_GetUserPwInfo_info,
15968 { "Info", "samr.samr_GetUserPwInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15969 { &hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_ADD_MEMBER,
15970 { "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 }},
15971 { &hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_GET_MEMBERS,
15972 { "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 }},
15973 { &hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_LOOKUP_INFO,
15974 { "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 }},
15975 { &hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_REMOVE_MEMBER,
15976 { "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 }},
15977 { &hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_SET_INFO,
15978 { "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 }},
15979 { &hf_samr_samr_GroupAttrs_SE_GROUP_ENABLED,
15980 { "SE GROUP ENABLED", "samr.samr_GroupAttrs.SE_GROUP_ENABLED", FT_BOOLEAN, 32, TFS(&samr_GroupAttrs_SE_GROUP_ENABLED_tfs), ( 0x00000004 ), NULL, HFILL }},
15981 { &hf_samr_samr_GroupAttrs_SE_GROUP_ENABLED_BY_DEFAULT,
15982 { "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 }},
15983 { &hf_samr_samr_GroupAttrs_SE_GROUP_LOGON_ID,
15984 { "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 }},
15985 { &hf_samr_samr_GroupAttrs_SE_GROUP_MANDATORY,
15986 { "SE GROUP MANDATORY", "samr.samr_GroupAttrs.SE_GROUP_MANDATORY", FT_BOOLEAN, 32, TFS(&samr_GroupAttrs_SE_GROUP_MANDATORY_tfs), ( 0x00000001 ), NULL, HFILL }},
15987 { &hf_samr_samr_GroupAttrs_SE_GROUP_OWNER,
15988 { "SE GROUP OWNER", "samr.samr_GroupAttrs.SE_GROUP_OWNER", FT_BOOLEAN, 32, TFS(&samr_GroupAttrs_SE_GROUP_OWNER_tfs), ( 0x00000008 ), NULL, HFILL }},
15989 { &hf_samr_samr_GroupAttrs_SE_GROUP_RESOURCE,
15990 { "SE GROUP RESOURCE", "samr.samr_GroupAttrs.SE_GROUP_RESOURCE", FT_BOOLEAN, 32, TFS(&samr_GroupAttrs_SE_GROUP_RESOURCE_tfs), ( 0x20000000 ), NULL, HFILL }},
15991 { &hf_samr_samr_GroupAttrs_SE_GROUP_USE_FOR_DENY_ONLY,
15992 { "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 }},
15993 { &hf_samr_samr_GroupInfoAll_attributes,
15994 { "Attributes", "samr.samr_GroupInfoAll.attributes", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
15995 { &hf_samr_samr_GroupInfoAll_description,
15996 { "Description", "samr.samr_GroupInfoAll.description", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15997 { &hf_samr_samr_GroupInfoAll_name,
15998 { "Name", "samr.samr_GroupInfoAll.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15999 { &hf_samr_samr_GroupInfoAll_num_members,
16000 { "Num Members", "samr.samr_GroupInfoAll.num_members", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16001 { &hf_samr_samr_GroupInfoAttributes_attributes,
16002 { "Attributes", "samr.samr_GroupInfoAttributes.attributes", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16003 { &hf_samr_samr_GroupInfoDescription_description,
16004 { "Description", "samr.samr_GroupInfoDescription.description", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16005 { &hf_samr_samr_GroupInfo_all,
16006 { "All", "samr.samr_GroupInfo.all", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16007 { &hf_samr_samr_GroupInfo_all2,
16008 { "All2", "samr.samr_GroupInfo.all2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16009 { &hf_samr_samr_GroupInfo_attributes,
16010 { "Attributes", "samr.samr_GroupInfo.attributes", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16011 { &hf_samr_samr_GroupInfo_description,
16012 { "Description", "samr.samr_GroupInfo.description", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16013 { &hf_samr_samr_GroupInfo_name,
16014 { "Name", "samr.samr_GroupInfo.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16015 { &hf_samr_samr_Ids_count,
16016 { "Count", "samr.samr_Ids.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16017 { &hf_samr_samr_LogonHours_bits,
16018 { "Bits", "samr.samr_LogonHours.bits", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16019 { &hf_samr_samr_LogonHours_units_per_week,
16020 { "Units Per Week", "samr.samr_LogonHours.units_per_week", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16021 { &hf_samr_samr_LookupDomain_domain_name,
16022 { "Domain Name", "samr.samr_LookupDomain.domain_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16023 { &hf_samr_samr_LookupDomain_sid,
16024 { "Sid", "samr.samr_LookupDomain.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16025 { &hf_samr_samr_LookupNames_names,
16026 { "Names", "samr.samr_LookupNames.names", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16027 { &hf_samr_samr_LookupNames_num_names,
16028 { "Num Names", "samr.samr_LookupNames.num_names", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16029 { &hf_samr_samr_LookupNames_rids,
16030 { "Rids", "samr.samr_LookupNames.rids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16031 { &hf_samr_samr_LookupNames_types,
16032 { "Types", "samr.samr_LookupNames.types", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16033 { &hf_samr_samr_LookupRids_names,
16034 { "Names", "samr.samr_LookupRids.names", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16035 { &hf_samr_samr_LookupRids_num_rids,
16036 { "Num Rids", "samr.samr_LookupRids.num_rids", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16037 { &hf_samr_samr_LookupRids_types,
16038 { "Types", "samr.samr_LookupRids.types", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16039 { &hf_samr_samr_OemChangePasswordUser2_account,
16040 { "Account", "samr.samr_OemChangePasswordUser2.account", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16041 { &hf_samr_samr_OemChangePasswordUser2_hash,
16042 { "Hash", "samr.samr_OemChangePasswordUser2.hash", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16043 { &hf_samr_samr_OemChangePasswordUser2_password,
16044 { "Password", "samr.samr_OemChangePasswordUser2.password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16045 { &hf_samr_samr_OemChangePasswordUser2_server,
16046 { "Server", "samr.samr_OemChangePasswordUser2.server", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16047 { &hf_samr_samr_OpenDomain_sid,
16048 { "Sid", "samr.samr_OpenDomain.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16049 { &hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_COMPLEX,
16050 { "DOMAIN PASSWORD COMPLEX", "samr.samr_PasswordProperties.DOMAIN_PASSWORD_COMPLEX", FT_BOOLEAN, 32, TFS(&samr_PasswordProperties_DOMAIN_PASSWORD_COMPLEX_tfs), ( 0x00000001 ), NULL, HFILL }},
16051 { &hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_LOCKOUT_ADMINS,
16052 { "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 }},
16053 { &hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_NO_ANON_CHANGE,
16054 { "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 }},
16055 { &hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_NO_CLEAR_CHANGE,
16056 { "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 }},
16057 { &hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_STORE_CLEARTEXT,
16058 { "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 }},
16059 { &hf_samr_samr_PasswordProperties_DOMAIN_REFUSE_PASSWORD_CHANGE,
16060 { "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 }},
16061 { &hf_samr_samr_Password_hash,
16062 { "Hash", "samr.samr_Password.hash", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16063 { &hf_samr_samr_PwInfo_min_password_length,
16064 { "Min Password Length", "samr.samr_PwInfo.min_password_length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16065 { &hf_samr_samr_PwInfo_password_properties,
16066 { "Password Properties", "samr.samr_PwInfo.password_properties", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16067 { &hf_samr_samr_QueryAliasInfo_info,
16068 { "Info", "samr.samr_QueryAliasInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16069 { &hf_samr_samr_QueryAliasInfo_level,
16070 { "Level", "samr.samr_QueryAliasInfo.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_AliasInfoEnum_vals), 0, NULL, HFILL }},
16071 { &hf_samr_samr_QueryDisplayInfo2_buf_size,
16072 { "Buf Size", "samr.samr_QueryDisplayInfo2.buf_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16073 { &hf_samr_samr_QueryDisplayInfo2_info,
16074 { "Info", "samr.samr_QueryDisplayInfo2.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16075 { &hf_samr_samr_QueryDisplayInfo2_level,
16076 { "Level", "samr.samr_QueryDisplayInfo2.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_DomainDisplayInformation_vals), 0, NULL, HFILL }},
16077 { &hf_samr_samr_QueryDisplayInfo2_max_entries,
16078 { "Max Entries", "samr.samr_QueryDisplayInfo2.max_entries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16079 { &hf_samr_samr_QueryDisplayInfo2_returned_size,
16080 { "Returned Size", "samr.samr_QueryDisplayInfo2.returned_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16081 { &hf_samr_samr_QueryDisplayInfo2_start_idx,
16082 { "Start Idx", "samr.samr_QueryDisplayInfo2.start_idx", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16083 { &hf_samr_samr_QueryDisplayInfo2_total_size,
16084 { "Total Size", "samr.samr_QueryDisplayInfo2.total_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16085 { &hf_samr_samr_QueryDisplayInfo3_buf_size,
16086 { "Buf Size", "samr.samr_QueryDisplayInfo3.buf_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16087 { &hf_samr_samr_QueryDisplayInfo3_info,
16088 { "Info", "samr.samr_QueryDisplayInfo3.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16089 { &hf_samr_samr_QueryDisplayInfo3_level,
16090 { "Level", "samr.samr_QueryDisplayInfo3.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_DomainDisplayInformation_vals), 0, NULL, HFILL }},
16091 { &hf_samr_samr_QueryDisplayInfo3_max_entries,
16092 { "Max Entries", "samr.samr_QueryDisplayInfo3.max_entries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16093 { &hf_samr_samr_QueryDisplayInfo3_returned_size,
16094 { "Returned Size", "samr.samr_QueryDisplayInfo3.returned_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16095 { &hf_samr_samr_QueryDisplayInfo3_start_idx,
16096 { "Start Idx", "samr.samr_QueryDisplayInfo3.start_idx", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16097 { &hf_samr_samr_QueryDisplayInfo3_total_size,
16098 { "Total Size", "samr.samr_QueryDisplayInfo3.total_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16099 { &hf_samr_samr_QueryDisplayInfo_buf_size,
16100 { "Buf Size", "samr.samr_QueryDisplayInfo.buf_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16101 { &hf_samr_samr_QueryDisplayInfo_info,
16102 { "Info", "samr.samr_QueryDisplayInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16103 { &hf_samr_samr_QueryDisplayInfo_level,
16104 { "Level", "samr.samr_QueryDisplayInfo.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_DomainDisplayInformation_vals), 0, NULL, HFILL }},
16105 { &hf_samr_samr_QueryDisplayInfo_max_entries,
16106 { "Max Entries", "samr.samr_QueryDisplayInfo.max_entries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16107 { &hf_samr_samr_QueryDisplayInfo_returned_size,
16108 { "Returned Size", "samr.samr_QueryDisplayInfo.returned_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16109 { &hf_samr_samr_QueryDisplayInfo_start_idx,
16110 { "Start Idx", "samr.samr_QueryDisplayInfo.start_idx", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16111 { &hf_samr_samr_QueryDisplayInfo_total_size,
16112 { "Total Size", "samr.samr_QueryDisplayInfo.total_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16113 { &hf_samr_samr_QueryDomainInfo2_info,
16114 { "Info", "samr.samr_QueryDomainInfo2.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16115 { &hf_samr_samr_QueryDomainInfo2_level,
16116 { "Level", "samr.samr_QueryDomainInfo2.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_DomainInfoClass_vals), 0, NULL, HFILL }},
16117 { &hf_samr_samr_QueryDomainInfo_info,
16118 { "Info", "samr.samr_QueryDomainInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16119 { &hf_samr_samr_QueryDomainInfo_level,
16120 { "Level", "samr.samr_QueryDomainInfo.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_DomainInfoClass_vals), 0, NULL, HFILL }},
16121 { &hf_samr_samr_QueryGroupInfo_info,
16122 { "Info", "samr.samr_QueryGroupInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16123 { &hf_samr_samr_QueryGroupInfo_level,
16124 { "Level", "samr.samr_QueryGroupInfo.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_GroupInfoEnum_vals), 0, NULL, HFILL }},
16125 { &hf_samr_samr_QueryGroupMember_rids,
16126 { "Rids", "samr.samr_QueryGroupMember.rids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16127 { &hf_samr_samr_QuerySecurity_sdbuf,
16128 { "Sdbuf", "samr.samr_QuerySecurity.sdbuf", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16129 { &hf_samr_samr_QuerySecurity_sec_info,
16130 { "Sec Info", "samr.samr_QuerySecurity.sec_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16131 { &hf_samr_samr_QueryUserInfo2_info,
16132 { "Info", "samr.samr_QueryUserInfo2.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16133 { &hf_samr_samr_QueryUserInfo2_level,
16134 { "Level", "samr.samr_QueryUserInfo2.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_UserInfoLevel_vals), 0, NULL, HFILL }},
16135 { &hf_samr_samr_QueryUserInfo_info,
16136 { "Info", "samr.samr_QueryUserInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16137 { &hf_samr_samr_QueryUserInfo_level,
16138 { "Level", "samr.samr_QueryUserInfo.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_UserInfoLevel_vals), 0, NULL, HFILL }},
16139 { &hf_samr_samr_RemoveMemberFromForeignDomain_sid,
16140 { "Sid", "samr.samr_RemoveMemberFromForeignDomain.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16141 { &hf_samr_samr_RemoveMultipleMembersFromAlias_sids,
16142 { "Sids", "samr.samr_RemoveMultipleMembersFromAlias.sids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16143 { &hf_samr_samr_RidToSid_sid,
16144 { "Sid", "samr.samr_RidToSid.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16145 { &hf_samr_samr_RidTypeArray_count,
16146 { "Count", "samr.samr_RidTypeArray.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16147 { &hf_samr_samr_RidTypeArray_types,
16148 { "Types", "samr.samr_RidTypeArray.types", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16149 { &hf_samr_samr_RidWithAttributeArray_count,
16150 { "Count", "samr.samr_RidWithAttributeArray.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16151 { &hf_samr_samr_RidWithAttributeArray_rids,
16152 { "Rids", "samr.samr_RidWithAttributeArray.rids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16153 { &hf_samr_samr_RidWithAttribute_attributes,
16154 { "Attributes", "samr.samr_RidWithAttribute.attributes", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16155 { &hf_samr_samr_SamArray_count,
16156 { "Count", "samr.samr_SamArray.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16157 { &hf_samr_samr_SamArray_entries,
16158 { "Entries", "samr.samr_SamArray.entries", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16159 { &hf_samr_samr_SamEntry_idx,
16160 { "Idx", "samr.samr_SamEntry.idx", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16161 { &hf_samr_samr_SamEntry_name,
16162 { "Name", "samr.samr_SamEntry.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16163 { &hf_samr_samr_SetAliasInfo_info,
16164 { "Info", "samr.samr_SetAliasInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16165 { &hf_samr_samr_SetAliasInfo_level,
16166 { "Level", "samr.samr_SetAliasInfo.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_AliasInfoEnum_vals), 0, NULL, HFILL }},
16167 { &hf_samr_samr_SetBootKeyInformation_unknown1,
16168 { "Unknown1", "samr.samr_SetBootKeyInformation.unknown1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16169 { &hf_samr_samr_SetBootKeyInformation_unknown2,
16170 { "Unknown2", "samr.samr_SetBootKeyInformation.unknown2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16171 { &hf_samr_samr_SetBootKeyInformation_unknown3,
16172 { "Unknown3", "samr.samr_SetBootKeyInformation.unknown3", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16173 { &hf_samr_samr_SetDomainInfo_info,
16174 { "Info", "samr.samr_SetDomainInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16175 { &hf_samr_samr_SetDomainInfo_level,
16176 { "Level", "samr.samr_SetDomainInfo.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_DomainInfoClass_vals), 0, NULL, HFILL }},
16177 { &hf_samr_samr_SetDsrmPassword_hash,
16178 { "Hash", "samr.samr_SetDsrmPassword.hash", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16179 { &hf_samr_samr_SetDsrmPassword_name,
16180 { "Name", "samr.samr_SetDsrmPassword.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16181 { &hf_samr_samr_SetDsrmPassword_unknown,
16182 { "Unknown", "samr.samr_SetDsrmPassword.unknown", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16183 { &hf_samr_samr_SetGroupInfo_info,
16184 { "Info", "samr.samr_SetGroupInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16185 { &hf_samr_samr_SetGroupInfo_level,
16186 { "Level", "samr.samr_SetGroupInfo.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_GroupInfoEnum_vals), 0, NULL, HFILL }},
16187 { &hf_samr_samr_SetMemberAttributesOfGroup_unknown1,
16188 { "Unknown1", "samr.samr_SetMemberAttributesOfGroup.unknown1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16189 { &hf_samr_samr_SetMemberAttributesOfGroup_unknown2,
16190 { "Unknown2", "samr.samr_SetMemberAttributesOfGroup.unknown2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16191 { &hf_samr_samr_SetSecurity_sdbuf,
16192 { "Sdbuf", "samr.samr_SetSecurity.sdbuf", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16193 { &hf_samr_samr_SetSecurity_sec_info,
16194 { "Sec Info", "samr.samr_SetSecurity.sec_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16195 { &hf_samr_samr_SetUserInfo2_info,
16196 { "Info", "samr.samr_SetUserInfo2.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16197 { &hf_samr_samr_SetUserInfo2_level,
16198 { "Level", "samr.samr_SetUserInfo2.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_UserInfoLevel_vals), 0, NULL, HFILL }},
16199 { &hf_samr_samr_SetUserInfo_info,
16200 { "Info", "samr.samr_SetUserInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16201 { &hf_samr_samr_SetUserInfo_level,
16202 { "Level", "samr.samr_SetUserInfo.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_UserInfoLevel_vals), 0, NULL, HFILL }},
16203 { &hf_samr_samr_Shutdown_connect_handle,
16204 { "Connect Handle", "samr.samr_Shutdown.connect_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16205 { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_CHANGE_GROUP_MEMBERSHIP,
16206 { "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 }},
16207 { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_CHANGE_PASSWORD,
16208 { "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 }},
16209 { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_ATTRIBUTES,
16210 { "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 }},
16211 { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_GROUPS,
16212 { "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 }},
16213 { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_GROUP_MEMBERSHIP,
16214 { "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 }},
16215 { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_LOCALE,
16216 { "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 }},
16217 { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_LOGONINFO,
16218 { "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 }},
16219 { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_NAME_ETC,
16220 { "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 }},
16221 { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_SET_ATTRIBUTES,
16222 { "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 }},
16223 { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_SET_LOC_COM,
16224 { "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 }},
16225 { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_SET_PASSWORD,
16226 { "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 }},
16227 { &hf_samr_samr_UserInfo10_home_directory,
16228 { "Home Directory", "samr.samr_UserInfo10.home_directory", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16229 { &hf_samr_samr_UserInfo10_home_drive,
16230 { "Home Drive", "samr.samr_UserInfo10.home_drive", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16231 { &hf_samr_samr_UserInfo11_logon_script,
16232 { "Logon Script", "samr.samr_UserInfo11.logon_script", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16233 { &hf_samr_samr_UserInfo12_profile_path,
16234 { "Profile Path", "samr.samr_UserInfo12.profile_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16235 { &hf_samr_samr_UserInfo13_description,
16236 { "Description", "samr.samr_UserInfo13.description", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16237 { &hf_samr_samr_UserInfo14_workstations,
16238 { "Workstations", "samr.samr_UserInfo14.workstations", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16239 { &hf_samr_samr_UserInfo16_acct_flags,
16240 { "Acct Flags", "samr.samr_UserInfo16.acct_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16241 { &hf_samr_samr_UserInfo17_acct_expiry,
16242 { "Acct Expiry", "samr.samr_UserInfo17.acct_expiry", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16243 { &hf_samr_samr_UserInfo18_lm_pwd,
16244 { "Lm Pwd", "samr.samr_UserInfo18.lm_pwd", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16245 { &hf_samr_samr_UserInfo18_lm_pwd_active,
16246 { "Lm Pwd Active", "samr.samr_UserInfo18.lm_pwd_active", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16247 { &hf_samr_samr_UserInfo18_nt_pwd,
16248 { "Nt Pwd", "samr.samr_UserInfo18.nt_pwd", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16249 { &hf_samr_samr_UserInfo18_nt_pwd_active,
16250 { "Nt Pwd Active", "samr.samr_UserInfo18.nt_pwd_active", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16251 { &hf_samr_samr_UserInfo18_password_expired,
16252 { "Password Expired", "samr.samr_UserInfo18.password_expired", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16253 { &hf_samr_samr_UserInfo1_account_name,
16254 { "Account Name", "samr.samr_UserInfo1.account_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16255 { &hf_samr_samr_UserInfo1_comment,
16256 { "Comment", "samr.samr_UserInfo1.comment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16257 { &hf_samr_samr_UserInfo1_description,
16258 { "Description", "samr.samr_UserInfo1.description", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16259 { &hf_samr_samr_UserInfo1_full_name,
16260 { "Full Name", "samr.samr_UserInfo1.full_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16261 { &hf_samr_samr_UserInfo1_primary_gid,
16262 { "Primary Gid", "samr.samr_UserInfo1.primary_gid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16263 { &hf_samr_samr_UserInfo20_parameters,
16264 { "Parameters", "samr.samr_UserInfo20.parameters", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16265 { &hf_samr_samr_UserInfo21_account_name,
16266 { "Account Name", "samr.samr_UserInfo21.account_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16267 { &hf_samr_samr_UserInfo21_acct_expiry,
16268 { "Acct Expiry", "samr.samr_UserInfo21.acct_expiry", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16269 { &hf_samr_samr_UserInfo21_acct_flags,
16270 { "Acct Flags", "samr.samr_UserInfo21.acct_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16271 { &hf_samr_samr_UserInfo21_allow_password_change,
16272 { "Allow Password Change", "samr.samr_UserInfo21.allow_password_change", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16273 { &hf_samr_samr_UserInfo21_bad_password_count,
16274 { "Bad Password Count", "samr.samr_UserInfo21.bad_password_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16275 { &hf_samr_samr_UserInfo21_buf_count,
16276 { "Buf Count", "samr.samr_UserInfo21.buf_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16277 { &hf_samr_samr_UserInfo21_buffer,
16278 { "Buffer", "samr.samr_UserInfo21.buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16279 { &hf_samr_samr_UserInfo21_code_page,
16280 { "Code Page", "samr.samr_UserInfo21.code_page", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16281 { &hf_samr_samr_UserInfo21_comment,
16282 { "Comment", "samr.samr_UserInfo21.comment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16283 { &hf_samr_samr_UserInfo21_country_code,
16284 { "Country Code", "samr.samr_UserInfo21.country_code", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16285 { &hf_samr_samr_UserInfo21_description,
16286 { "Description", "samr.samr_UserInfo21.description", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16287 { &hf_samr_samr_UserInfo21_fields_present,
16288 { "Fields Present", "samr.samr_UserInfo21.fields_present", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16289 { &hf_samr_samr_UserInfo21_force_password_change,
16290 { "Force Password Change", "samr.samr_UserInfo21.force_password_change", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16291 { &hf_samr_samr_UserInfo21_full_name,
16292 { "Full Name", "samr.samr_UserInfo21.full_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16293 { &hf_samr_samr_UserInfo21_home_directory,
16294 { "Home Directory", "samr.samr_UserInfo21.home_directory", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16295 { &hf_samr_samr_UserInfo21_home_drive,
16296 { "Home Drive", "samr.samr_UserInfo21.home_drive", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16297 { &hf_samr_samr_UserInfo21_last_logoff,
16298 { "Last Logoff", "samr.samr_UserInfo21.last_logoff", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16299 { &hf_samr_samr_UserInfo21_last_logon,
16300 { "Last Logon", "samr.samr_UserInfo21.last_logon", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16301 { &hf_samr_samr_UserInfo21_last_password_change,
16302 { "Last Password Change", "samr.samr_UserInfo21.last_password_change", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16303 { &hf_samr_samr_UserInfo21_lm_owf_password,
16304 { "Lm Owf Password", "samr.samr_UserInfo21.lm_owf_password", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16305 { &hf_samr_samr_UserInfo21_lm_password_set,
16306 { "Lm Password Set", "samr.samr_UserInfo21.lm_password_set", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16307 { &hf_samr_samr_UserInfo21_logon_count,
16308 { "Logon Count", "samr.samr_UserInfo21.logon_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16309 { &hf_samr_samr_UserInfo21_logon_hours,
16310 { "Logon Hours", "samr.samr_UserInfo21.logon_hours", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16311 { &hf_samr_samr_UserInfo21_logon_script,
16312 { "Logon Script", "samr.samr_UserInfo21.logon_script", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16313 { &hf_samr_samr_UserInfo21_nt_owf_password,
16314 { "Nt Owf Password", "samr.samr_UserInfo21.nt_owf_password", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16315 { &hf_samr_samr_UserInfo21_nt_password_set,
16316 { "Nt Password Set", "samr.samr_UserInfo21.nt_password_set", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16317 { &hf_samr_samr_UserInfo21_parameters,
16318 { "Parameters", "samr.samr_UserInfo21.parameters", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16319 { &hf_samr_samr_UserInfo21_password_expired,
16320 { "Password Expired", "samr.samr_UserInfo21.password_expired", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16321 { &hf_samr_samr_UserInfo21_primary_gid,
16322 { "Primary Gid", "samr.samr_UserInfo21.primary_gid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16323 { &hf_samr_samr_UserInfo21_private_data,
16324 { "Private Data", "samr.samr_UserInfo21.private_data", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16325 { &hf_samr_samr_UserInfo21_private_data_sensitive,
16326 { "Private Data Sensitive", "samr.samr_UserInfo21.private_data_sensitive", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16327 { &hf_samr_samr_UserInfo21_profile_path,
16328 { "Profile Path", "samr.samr_UserInfo21.profile_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16329 { &hf_samr_samr_UserInfo21_workstations,
16330 { "Workstations", "samr.samr_UserInfo21.workstations", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16331 { &hf_samr_samr_UserInfo23_info,
16332 { "Info", "samr.samr_UserInfo23.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16333 { &hf_samr_samr_UserInfo23_password,
16334 { "Password", "samr.samr_UserInfo23.password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16335 { &hf_samr_samr_UserInfo24_password,
16336 { "Password", "samr.samr_UserInfo24.password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16337 { &hf_samr_samr_UserInfo24_password_expired,
16338 { "Password Expired", "samr.samr_UserInfo24.password_expired", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16339 { &hf_samr_samr_UserInfo25_info,
16340 { "Info", "samr.samr_UserInfo25.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16341 { &hf_samr_samr_UserInfo25_password,
16342 { "Password", "samr.samr_UserInfo25.password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16343 { &hf_samr_samr_UserInfo26_password,
16344 { "Password", "samr.samr_UserInfo26.password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16345 { &hf_samr_samr_UserInfo26_password_expired,
16346 { "Password Expired", "samr.samr_UserInfo26.password_expired", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16347 { &hf_samr_samr_UserInfo2_code_page,
16348 { "Code Page", "samr.samr_UserInfo2.code_page", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16349 { &hf_samr_samr_UserInfo2_comment,
16350 { "Comment", "samr.samr_UserInfo2.comment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16351 { &hf_samr_samr_UserInfo2_country_code,
16352 { "Country Code", "samr.samr_UserInfo2.country_code", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16353 { &hf_samr_samr_UserInfo2_reserved,
16354 { "Reserved", "samr.samr_UserInfo2.reserved", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16355 { &hf_samr_samr_UserInfo31_password,
16356 { "Password", "samr.samr_UserInfo31.password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16357 { &hf_samr_samr_UserInfo31_password_expired,
16358 { "Password Expired", "samr.samr_UserInfo31.password_expired", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16359 { &hf_samr_samr_UserInfo32_info,
16360 { "Info", "samr.samr_UserInfo32.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16361 { &hf_samr_samr_UserInfo32_password,
16362 { "Password", "samr.samr_UserInfo32.password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16363 { &hf_samr_samr_UserInfo3_account_name,
16364 { "Account Name", "samr.samr_UserInfo3.account_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16365 { &hf_samr_samr_UserInfo3_acct_flags,
16366 { "Acct Flags", "samr.samr_UserInfo3.acct_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16367 { &hf_samr_samr_UserInfo3_allow_password_change,
16368 { "Allow Password Change", "samr.samr_UserInfo3.allow_password_change", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16369 { &hf_samr_samr_UserInfo3_bad_password_count,
16370 { "Bad Password Count", "samr.samr_UserInfo3.bad_password_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16371 { &hf_samr_samr_UserInfo3_force_password_change,
16372 { "Force Password Change", "samr.samr_UserInfo3.force_password_change", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16373 { &hf_samr_samr_UserInfo3_full_name,
16374 { "Full Name", "samr.samr_UserInfo3.full_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16375 { &hf_samr_samr_UserInfo3_home_directory,
16376 { "Home Directory", "samr.samr_UserInfo3.home_directory", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16377 { &hf_samr_samr_UserInfo3_home_drive,
16378 { "Home Drive", "samr.samr_UserInfo3.home_drive", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16379 { &hf_samr_samr_UserInfo3_last_logoff,
16380 { "Last Logoff", "samr.samr_UserInfo3.last_logoff", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16381 { &hf_samr_samr_UserInfo3_last_logon,
16382 { "Last Logon", "samr.samr_UserInfo3.last_logon", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16383 { &hf_samr_samr_UserInfo3_last_password_change,
16384 { "Last Password Change", "samr.samr_UserInfo3.last_password_change", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16385 { &hf_samr_samr_UserInfo3_logon_count,
16386 { "Logon Count", "samr.samr_UserInfo3.logon_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16387 { &hf_samr_samr_UserInfo3_logon_hours,
16388 { "Logon Hours", "samr.samr_UserInfo3.logon_hours", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16389 { &hf_samr_samr_UserInfo3_logon_script,
16390 { "Logon Script", "samr.samr_UserInfo3.logon_script", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16391 { &hf_samr_samr_UserInfo3_primary_gid,
16392 { "Primary Gid", "samr.samr_UserInfo3.primary_gid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16393 { &hf_samr_samr_UserInfo3_profile_path,
16394 { "Profile Path", "samr.samr_UserInfo3.profile_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16395 { &hf_samr_samr_UserInfo3_workstations,
16396 { "Workstations", "samr.samr_UserInfo3.workstations", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16397 { &hf_samr_samr_UserInfo4_logon_hours,
16398 { "Logon Hours", "samr.samr_UserInfo4.logon_hours", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16399 { &hf_samr_samr_UserInfo5_account_name,
16400 { "Account Name", "samr.samr_UserInfo5.account_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16401 { &hf_samr_samr_UserInfo5_acct_expiry,
16402 { "Acct Expiry", "samr.samr_UserInfo5.acct_expiry", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16403 { &hf_samr_samr_UserInfo5_acct_flags,
16404 { "Acct Flags", "samr.samr_UserInfo5.acct_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16405 { &hf_samr_samr_UserInfo5_bad_password_count,
16406 { "Bad Password Count", "samr.samr_UserInfo5.bad_password_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16407 { &hf_samr_samr_UserInfo5_description,
16408 { "Description", "samr.samr_UserInfo5.description", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16409 { &hf_samr_samr_UserInfo5_full_name,
16410 { "Full Name", "samr.samr_UserInfo5.full_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16411 { &hf_samr_samr_UserInfo5_home_directory,
16412 { "Home Directory", "samr.samr_UserInfo5.home_directory", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16413 { &hf_samr_samr_UserInfo5_home_drive,
16414 { "Home Drive", "samr.samr_UserInfo5.home_drive", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16415 { &hf_samr_samr_UserInfo5_last_logoff,
16416 { "Last Logoff", "samr.samr_UserInfo5.last_logoff", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16417 { &hf_samr_samr_UserInfo5_last_logon,
16418 { "Last Logon", "samr.samr_UserInfo5.last_logon", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16419 { &hf_samr_samr_UserInfo5_last_password_change,
16420 { "Last Password Change", "samr.samr_UserInfo5.last_password_change", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16421 { &hf_samr_samr_UserInfo5_logon_count,
16422 { "Logon Count", "samr.samr_UserInfo5.logon_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16423 { &hf_samr_samr_UserInfo5_logon_hours,
16424 { "Logon Hours", "samr.samr_UserInfo5.logon_hours", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16425 { &hf_samr_samr_UserInfo5_logon_script,
16426 { "Logon Script", "samr.samr_UserInfo5.logon_script", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16427 { &hf_samr_samr_UserInfo5_primary_gid,
16428 { "Primary Gid", "samr.samr_UserInfo5.primary_gid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16429 { &hf_samr_samr_UserInfo5_profile_path,
16430 { "Profile Path", "samr.samr_UserInfo5.profile_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16431 { &hf_samr_samr_UserInfo5_workstations,
16432 { "Workstations", "samr.samr_UserInfo5.workstations", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16433 { &hf_samr_samr_UserInfo6_account_name,
16434 { "Account Name", "samr.samr_UserInfo6.account_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16435 { &hf_samr_samr_UserInfo6_full_name,
16436 { "Full Name", "samr.samr_UserInfo6.full_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16437 { &hf_samr_samr_UserInfo7_account_name,
16438 { "Account Name", "samr.samr_UserInfo7.account_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16439 { &hf_samr_samr_UserInfo8_full_name,
16440 { "Full Name", "samr.samr_UserInfo8.full_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16441 { &hf_samr_samr_UserInfo9_primary_gid,
16442 { "Primary Gid", "samr.samr_UserInfo9.primary_gid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16443 { &hf_samr_samr_UserInfo_info1,
16444 { "Info1", "samr.samr_UserInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16445 { &hf_samr_samr_UserInfo_info10,
16446 { "Info10", "samr.samr_UserInfo.info10", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16447 { &hf_samr_samr_UserInfo_info11,
16448 { "Info11", "samr.samr_UserInfo.info11", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16449 { &hf_samr_samr_UserInfo_info12,
16450 { "Info12", "samr.samr_UserInfo.info12", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16451 { &hf_samr_samr_UserInfo_info13,
16452 { "Info13", "samr.samr_UserInfo.info13", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16453 { &hf_samr_samr_UserInfo_info14,
16454 { "Info14", "samr.samr_UserInfo.info14", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16455 { &hf_samr_samr_UserInfo_info16,
16456 { "Info16", "samr.samr_UserInfo.info16", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16457 { &hf_samr_samr_UserInfo_info17,
16458 { "Info17", "samr.samr_UserInfo.info17", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16459 { &hf_samr_samr_UserInfo_info18,
16460 { "Info18", "samr.samr_UserInfo.info18", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16461 { &hf_samr_samr_UserInfo_info2,
16462 { "Info2", "samr.samr_UserInfo.info2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16463 { &hf_samr_samr_UserInfo_info20,
16464 { "Info20", "samr.samr_UserInfo.info20", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16465 { &hf_samr_samr_UserInfo_info21,
16466 { "Info21", "samr.samr_UserInfo.info21", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16467 { &hf_samr_samr_UserInfo_info23,
16468 { "Info23", "samr.samr_UserInfo.info23", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16469 { &hf_samr_samr_UserInfo_info24,
16470 { "Info24", "samr.samr_UserInfo.info24", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16471 { &hf_samr_samr_UserInfo_info25,
16472 { "Info25", "samr.samr_UserInfo.info25", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16473 { &hf_samr_samr_UserInfo_info26,
16474 { "Info26", "samr.samr_UserInfo.info26", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16475 { &hf_samr_samr_UserInfo_info3,
16476 { "Info3", "samr.samr_UserInfo.info3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16477 { &hf_samr_samr_UserInfo_info31,
16478 { "Info31", "samr.samr_UserInfo.info31", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16479 { &hf_samr_samr_UserInfo_info32,
16480 { "Info32", "samr.samr_UserInfo.info32", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16481 { &hf_samr_samr_UserInfo_info4,
16482 { "Info4", "samr.samr_UserInfo.info4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16483 { &hf_samr_samr_UserInfo_info5,
16484 { "Info5", "samr.samr_UserInfo.info5", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16485 { &hf_samr_samr_UserInfo_info6,
16486 { "Info6", "samr.samr_UserInfo.info6", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16487 { &hf_samr_samr_UserInfo_info7,
16488 { "Info7", "samr.samr_UserInfo.info7", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16489 { &hf_samr_samr_UserInfo_info8,
16490 { "Info8", "samr.samr_UserInfo.info8", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16491 { &hf_samr_samr_UserInfo_info9,
16492 { "Info9", "samr.samr_UserInfo.info9", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16493 { &hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_BAD_PASSWORD_COUNT,
16494 { "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 }},
16495 { &hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_BAD_PASSWORD_TIME,
16496 { "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 }},
16497 { &hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_LOCKOUT_TIME,
16498 { "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 }},
16499 { &hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_HISTORY,
16500 { "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 }},
16501 { &hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_LENGTH,
16502 { "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 }},
16503 { &hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_LAST_SET,
16504 { "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 }},
16505 { &hf_samr_samr_ValidatePasswordInfo_bad_password_time,
16506 { "Bad Password Time", "samr.samr_ValidatePasswordInfo.bad_password_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16507 { &hf_samr_samr_ValidatePasswordInfo_bad_pwd_count,
16508 { "Bad Pwd Count", "samr.samr_ValidatePasswordInfo.bad_pwd_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16509 { &hf_samr_samr_ValidatePasswordInfo_fields_present,
16510 { "Fields Present", "samr.samr_ValidatePasswordInfo.fields_present", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16511 { &hf_samr_samr_ValidatePasswordInfo_last_password_change,
16512 { "Last Password Change", "samr.samr_ValidatePasswordInfo.last_password_change", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16513 { &hf_samr_samr_ValidatePasswordInfo_lockout_time,
16514 { "Lockout Time", "samr.samr_ValidatePasswordInfo.lockout_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16515 { &hf_samr_samr_ValidatePasswordInfo_pwd_history,
16516 { "Pwd History", "samr.samr_ValidatePasswordInfo.pwd_history", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16517 { &hf_samr_samr_ValidatePasswordInfo_pwd_history_len,
16518 { "Pwd History Len", "samr.samr_ValidatePasswordInfo.pwd_history_len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16519 { &hf_samr_samr_ValidatePasswordRepCtr_info,
16520 { "Info", "samr.samr_ValidatePasswordRepCtr.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16521 { &hf_samr_samr_ValidatePasswordRepCtr_status,
16522 { "Status", "samr.samr_ValidatePasswordRepCtr.status", FT_UINT1632, BASE_DEC, VALS(samr_samr_ValidationStatus_vals), 0, NULL, HFILL }},
16523 { &hf_samr_samr_ValidatePasswordRep_ctr1,
16524 { "Ctr1", "samr.samr_ValidatePasswordRep.ctr1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16525 { &hf_samr_samr_ValidatePasswordRep_ctr2,
16526 { "Ctr2", "samr.samr_ValidatePasswordRep.ctr2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16527 { &hf_samr_samr_ValidatePasswordRep_ctr3,
16528 { "Ctr3", "samr.samr_ValidatePasswordRep.ctr3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16529 { &hf_samr_samr_ValidatePasswordReq1_info,
16530 { "Info", "samr.samr_ValidatePasswordReq1.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16531 { &hf_samr_samr_ValidatePasswordReq1_password_matched,
16532 { "Password Matched", "samr.samr_ValidatePasswordReq1.password_matched", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16533 { &hf_samr_samr_ValidatePasswordReq2_account,
16534 { "Account", "samr.samr_ValidatePasswordReq2.account", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16535 { &hf_samr_samr_ValidatePasswordReq2_hash,
16536 { "Hash", "samr.samr_ValidatePasswordReq2.hash", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16537 { &hf_samr_samr_ValidatePasswordReq2_info,
16538 { "Info", "samr.samr_ValidatePasswordReq2.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16539 { &hf_samr_samr_ValidatePasswordReq2_password,
16540 { "Password", "samr.samr_ValidatePasswordReq2.password", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16541 { &hf_samr_samr_ValidatePasswordReq2_password_matched,
16542 { "Password Matched", "samr.samr_ValidatePasswordReq2.password_matched", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16543 { &hf_samr_samr_ValidatePasswordReq3_account,
16544 { "Account", "samr.samr_ValidatePasswordReq3.account", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16545 { &hf_samr_samr_ValidatePasswordReq3_clear_lockout,
16546 { "Clear Lockout", "samr.samr_ValidatePasswordReq3.clear_lockout", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16547 { &hf_samr_samr_ValidatePasswordReq3_hash,
16548 { "Hash", "samr.samr_ValidatePasswordReq3.hash", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16549 { &hf_samr_samr_ValidatePasswordReq3_info,
16550 { "Info", "samr.samr_ValidatePasswordReq3.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16551 { &hf_samr_samr_ValidatePasswordReq3_password,
16552 { "Password", "samr.samr_ValidatePasswordReq3.password", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16553 { &hf_samr_samr_ValidatePasswordReq3_pwd_must_change_at_next_logon,
16554 { "Pwd Must Change At Next Logon", "samr.samr_ValidatePasswordReq3.pwd_must_change_at_next_logon", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16555 { &hf_samr_samr_ValidatePasswordReq_req1,
16556 { "Req1", "samr.samr_ValidatePasswordReq.req1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16557 { &hf_samr_samr_ValidatePasswordReq_req2,
16558 { "Req2", "samr.samr_ValidatePasswordReq.req2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16559 { &hf_samr_samr_ValidatePasswordReq_req3,
16560 { "Req3", "samr.samr_ValidatePasswordReq.req3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16561 { &hf_samr_samr_ValidatePassword_level,
16562 { "Level", "samr.samr_ValidatePassword.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_ValidatePasswordLevel_vals), 0, NULL, HFILL }},
16563 { &hf_samr_samr_ValidatePassword_rep,
16564 { "Rep", "samr.samr_ValidatePassword.rep", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16565 { &hf_samr_samr_ValidatePassword_req,
16566 { "Req", "samr.samr_ValidatePassword.req", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16567 { &hf_samr_samr_ValidationBlob_data,
16568 { "Data", "samr.samr_ValidationBlob.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16569 { &hf_samr_samr_ValidationBlob_length,
16570 { "Length", "samr.samr_ValidationBlob.length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16571 { &hf_samr_sec_desc_buf_len,
16572 { "Sec Desc Buf Len", "samr.sec_desc_buf_len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16573 { &hf_samr_status,
16574 { "NT Error", "samr.status", FT_UINT32, BASE_HEX|BASE_EXT_STRING, &NT_errors_ext, 0, NULL, HFILL }},
16575 { &hf_samr_userPwdChangeFailureInformation_extendedFailureReason,
16576 { "ExtendedFailureReason", "samr.userPwdChangeFailureInformation.extendedFailureReason", FT_UINT32, BASE_DEC, VALS(samr_samPwdChangeReason_vals), 0, NULL, HFILL }},
16577 { &hf_samr_userPwdChangeFailureInformation_filterModuleName,
16578 { "FilterModuleName", "samr.userPwdChangeFailureInformation.filterModuleName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16579 { &hf_samr_user_access_mask,
16580 { "Access Mask", "samr.user.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16581 { &hf_samr_user_handle,
16582 { "User Handle", "samr.user_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16586 static int *ett[] = {
16587 &ett_dcerpc_samr,
16588 &ett_samr_lsa_Strings,
16589 &ett_samr_samr_AcctFlags,
16590 &ett_samr_samr_ConnectAccessMask,
16591 &ett_samr_samr_UserAccessMask,
16592 &ett_samr_samr_DomainAccessMask,
16593 &ett_samr_samr_GroupAccessMask,
16594 &ett_samr_samr_AliasAccessMask,
16595 &ett_samr_samr_SamEntry,
16596 &ett_samr_samr_SamArray,
16597 &ett_samr_samr_PasswordProperties,
16598 &ett_samr_samr_DomInfo1,
16599 &ett_samr_samr_DomGeneralInformation,
16600 &ett_samr_samr_DomInfo3,
16601 &ett_samr_samr_DomOEMInformation,
16602 &ett_samr_samr_DomInfo5,
16603 &ett_samr_samr_DomInfo6,
16604 &ett_samr_samr_DomInfo7,
16605 &ett_samr_samr_DomInfo8,
16606 &ett_samr_samr_DomInfo9,
16607 &ett_samr_samr_DomGeneralInformation2,
16608 &ett_samr_samr_DomInfo12,
16609 &ett_samr_samr_DomInfo13,
16610 &ett_samr_samr_DomainInfo,
16611 &ett_samr_samr_Ids,
16612 &ett_samr_samr_GroupAttrs,
16613 &ett_samr_samr_GroupInfoAll,
16614 &ett_samr_samr_GroupInfoAttributes,
16615 &ett_samr_samr_GroupInfoDescription,
16616 &ett_samr_samr_GroupInfo,
16617 &ett_samr_samr_RidTypeArray,
16618 &ett_samr_samr_AliasInfoAll,
16619 &ett_samr_samr_AliasInfo,
16620 &ett_samr_samr_UserInfo1,
16621 &ett_samr_samr_UserInfo2,
16622 &ett_samr_samr_LogonHours,
16623 &ett_samr_samr_UserInfo3,
16624 &ett_samr_samr_UserInfo4,
16625 &ett_samr_samr_UserInfo5,
16626 &ett_samr_samr_UserInfo6,
16627 &ett_samr_samr_UserInfo7,
16628 &ett_samr_samr_UserInfo8,
16629 &ett_samr_samr_UserInfo9,
16630 &ett_samr_samr_UserInfo10,
16631 &ett_samr_samr_UserInfo11,
16632 &ett_samr_samr_UserInfo12,
16633 &ett_samr_samr_UserInfo13,
16634 &ett_samr_samr_UserInfo14,
16635 &ett_samr_samr_UserInfo16,
16636 &ett_samr_samr_UserInfo17,
16637 &ett_samr_samr_Password,
16638 &ett_samr_samr_UserInfo18,
16639 &ett_samr_samr_UserInfo20,
16640 &ett_samr_samr_FieldsPresent,
16641 &ett_samr_samr_UserInfo21,
16642 &ett_samr_samr_CryptPassword,
16643 &ett_samr_samr_UserInfo23,
16644 &ett_samr_samr_UserInfo24,
16645 &ett_samr_samr_CryptPasswordEx,
16646 &ett_samr_samr_UserInfo25,
16647 &ett_samr_samr_UserInfo26,
16648 &ett_samr_samr_EncryptedPasswordAES,
16649 &ett_samr_samr_UserInfo31,
16650 &ett_samr_samr_UserInfo32,
16651 &ett_samr_samr_UserInfo,
16652 &ett_samr_samr_RidWithAttribute,
16653 &ett_samr_samr_RidWithAttributeArray,
16654 &ett_samr_samr_DispEntryGeneral,
16655 &ett_samr_samr_DispInfoGeneral,
16656 &ett_samr_samr_DispEntryFull,
16657 &ett_samr_samr_DispInfoFull,
16658 &ett_samr_samr_DispEntryFullGroup,
16659 &ett_samr_samr_DispInfoFullGroups,
16660 &ett_samr_samr_DispEntryAscii,
16661 &ett_samr_samr_DispInfoAscii,
16662 &ett_samr_samr_DispInfo,
16663 &ett_samr_samr_PwInfo,
16664 &ett_samr_userPwdChangeFailureInformation,
16665 &ett_samr_samr_ConnectInfo1,
16666 &ett_samr_samr_ConnectInfo,
16667 &ett_samr_samr_ValidateFieldsPresent,
16668 &ett_samr_samr_ValidationBlob,
16669 &ett_samr_samr_ValidatePasswordInfo,
16670 &ett_samr_samr_ValidatePasswordRepCtr,
16671 &ett_samr_samr_ValidatePasswordRep,
16672 &ett_samr_samr_ValidatePasswordReq3,
16673 &ett_samr_samr_ValidatePasswordReq2,
16674 &ett_samr_samr_ValidatePasswordReq1,
16675 &ett_samr_samr_ValidatePasswordReq,
16678 proto_dcerpc_samr = proto_register_protocol("SAMR (pidl)", "SAMR", "samr");
16679 proto_register_field_array(proto_dcerpc_samr, hf, array_length (hf));
16680 proto_register_subtree_array(ett, array_length(ett));
16683 void proto_reg_handoff_dcerpc_samr(void)
16685 dcerpc_init_uuid(proto_dcerpc_samr, ett_dcerpc_samr,
16686 &uuid_dcerpc_samr, ver_dcerpc_samr,
16687 samr_dissectors, hf_samr_opnum);