7c4bf01571116318eb69f6b89abbbcc3ea418329
[metze/samba/wip.git] / bin / default / librpc / gen_ndr / packet-dcerpc-samr.c
1 /* DO NOT EDIT
2         This filter was automatically generated
3         from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/samr.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/samr.cnf.
4         
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 http://wiki.wireshark.org/Pidl
9
10         $Id$
11 */
12
13
14 #include "config.h"
15 #ifdef _MSC_VER
16 #pragma warning(disable:4005)
17 #pragma warning(disable:4013)
18 #pragma warning(disable:4018)
19 #pragma warning(disable:4101)
20 #endif
21
22 #include <glib.h>
23 #include <string.h>
24 #include <epan/packet.h>
25
26 #include "packet-dcerpc.h"
27 #include "packet-dcerpc-nt.h"
28 #include "packet-windows-common.h"
29 #include "packet-dcerpc-samr.h"
30
31 /* Ett declarations */
32 static gint ett_dcerpc_samr = -1;
33 static gint ett_samr_security_secinfo = -1;
34 static gint ett_samr_samr_AcctFlags = -1;
35 static gint ett_samr_samr_ConnectAccessMask = -1;
36 static gint ett_samr_samr_UserAccessMask = -1;
37 static gint ett_samr_samr_DomainAccessMask = -1;
38 static gint ett_samr_samr_GroupAccessMask = -1;
39 static gint ett_samr_samr_AliasAccessMask = -1;
40 static gint ett_samr_samr_SamEntry = -1;
41 static gint ett_samr_samr_SamArray = -1;
42 static gint ett_samr_samr_PasswordProperties = -1;
43 static gint ett_samr_samr_DomInfo1 = -1;
44 static gint ett_samr_samr_DomGeneralInformation = -1;
45 static gint ett_samr_samr_DomInfo3 = -1;
46 static gint ett_samr_samr_DomOEMInformation = -1;
47 static gint ett_samr_samr_DomInfo5 = -1;
48 static gint ett_samr_samr_DomInfo6 = -1;
49 static gint ett_samr_samr_DomInfo7 = -1;
50 static gint ett_samr_samr_DomInfo8 = -1;
51 static gint ett_samr_samr_DomInfo9 = -1;
52 static gint ett_samr_samr_DomGeneralInformation2 = -1;
53 static gint ett_samr_samr_DomInfo12 = -1;
54 static gint ett_samr_samr_DomInfo13 = -1;
55 static gint ett_samr_samr_DomainInfo = -1;
56 static gint ett_samr_samr_Ids = -1;
57 static gint ett_samr_samr_GroupAttrs = -1;
58 static gint ett_samr_samr_GroupInfoAll = -1;
59 static gint ett_samr_samr_GroupInfoAttributes = -1;
60 static gint ett_samr_samr_GroupInfoDescription = -1;
61 static gint ett_samr_samr_GroupInfo = -1;
62 static gint ett_samr_samr_RidAttrArray = -1;
63 static gint ett_samr_samr_AliasInfoAll = -1;
64 static gint ett_samr_samr_AliasInfo = -1;
65 static gint ett_samr_samr_UserInfo1 = -1;
66 static gint ett_samr_samr_UserInfo2 = -1;
67 static gint ett_samr_samr_LogonHours = -1;
68 static gint ett_samr_samr_UserInfo3 = -1;
69 static gint ett_samr_samr_UserInfo4 = -1;
70 static gint ett_samr_samr_UserInfo5 = -1;
71 static gint ett_samr_samr_UserInfo6 = -1;
72 static gint ett_samr_samr_UserInfo7 = -1;
73 static gint ett_samr_samr_UserInfo8 = -1;
74 static gint ett_samr_samr_UserInfo9 = -1;
75 static gint ett_samr_samr_UserInfo10 = -1;
76 static gint ett_samr_samr_UserInfo11 = -1;
77 static gint ett_samr_samr_UserInfo12 = -1;
78 static gint ett_samr_samr_UserInfo13 = -1;
79 static gint ett_samr_samr_UserInfo14 = -1;
80 static gint ett_samr_samr_UserInfo16 = -1;
81 static gint ett_samr_samr_UserInfo17 = -1;
82 static gint ett_samr_samr_Password = -1;
83 static gint ett_samr_samr_UserInfo18 = -1;
84 static gint ett_samr_samr_UserInfo20 = -1;
85 static gint ett_samr_samr_FieldsPresent = -1;
86 static gint ett_samr_samr_UserInfo21 = -1;
87 static gint ett_samr_samr_CryptPassword = -1;
88 static gint ett_samr_samr_UserInfo23 = -1;
89 static gint ett_samr_samr_UserInfo24 = -1;
90 static gint ett_samr_samr_CryptPasswordEx = -1;
91 static gint ett_samr_samr_UserInfo25 = -1;
92 static gint ett_samr_samr_UserInfo26 = -1;
93 static gint ett_samr_samr_UserInfo = -1;
94 static gint ett_samr_samr_RidWithAttribute = -1;
95 static gint ett_samr_samr_RidWithAttributeArray = -1;
96 static gint ett_samr_samr_DispEntryGeneral = -1;
97 static gint ett_samr_samr_DispInfoGeneral = -1;
98 static gint ett_samr_samr_DispEntryFull = -1;
99 static gint ett_samr_samr_DispInfoFull = -1;
100 static gint ett_samr_samr_DispEntryFullGroup = -1;
101 static gint ett_samr_samr_DispInfoFullGroups = -1;
102 static gint ett_samr_samr_DispEntryAscii = -1;
103 static gint ett_samr_samr_DispInfoAscii = -1;
104 static gint ett_samr_samr_DispInfo = -1;
105 static gint ett_samr_samr_PwInfo = -1;
106 static gint ett_samr_userPwdChangeFailureInformation = -1;
107 static gint ett_samr_samr_ConnectInfo1 = -1;
108 static gint ett_samr_samr_ConnectInfo = -1;
109 static gint ett_samr_samr_ValidateFieldsPresent = -1;
110 static gint ett_samr_samr_ValidationBlob = -1;
111 static gint ett_samr_samr_ValidatePasswordInfo = -1;
112 static gint ett_samr_samr_ValidatePasswordRepCtr = -1;
113 static gint ett_samr_samr_ValidatePasswordRep = -1;
114 static gint ett_samr_samr_ValidatePasswordReq3 = -1;
115 static gint ett_samr_samr_ValidatePasswordReq2 = -1;
116 static gint ett_samr_samr_ValidatePasswordReq1 = -1;
117 static gint ett_samr_samr_ValidatePasswordReq = -1;
118
119
120 /* Header field declarations */
121 static gint hf_samr_samr_QueryDisplayInfo2_level = -1;
122 static gint hf_samr_samr_Connect5_connect_handle = -1;
123 static gint hf_samr_samr_Connect2_system_name = -1;
124 static gint hf_samr_samr_AcctFlags_ACB_DONT_REQUIRE_PREAUTH = -1;
125 static gint hf_samr_samr_DomainInfo_oem = -1;
126 static gint hf_samr_samr_DispInfoAscii_entries = -1;
127 static gint hf_samr_samr_QueryAliasInfo_level = -1;
128 static gint hf_samr_samr_DispEntryFullGroup_idx = -1;
129 static gint hf_samr_samr_QueryGroupInfo_info = -1;
130 static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_LOGON_SCRIPT = -1;
131 static gint hf_samr_samr_UserInfo21_primary_gid = -1;
132 static gint hf_samr_samr_DomGeneralInformation2_lockout_duration = -1;
133 static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_ACCT_EXPIRY = -1;
134 static gint hf_samr_samr_DispInfoGeneral_count = -1;
135 static gint hf_samr_samr_CreateUser_rid = -1;
136 static gint hf_samr_samr_QueryDisplayInfo3_total_size = -1;
137 static gint hf_samr_samr_GetDomPwInfo_info = -1;
138 static gint hf_samr_samr_QuerySecurity_sdbuf = -1;
139 static gint hf_samr_samr_UserInfo3_workstations = -1;
140 static gint hf_samr_samr_QueryUserInfo2_info = -1;
141 static gint hf_samr_samr_QueryDisplayInfo3_start_idx = -1;
142 static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_PARAMETERS = -1;
143 static gint hf_samr_samr_DomGeneralInformation_num_users = -1;
144 static gint hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_ALIAS = -1;
145 static gint hf_samr_samr_UserInfo21_acct_flags = -1;
146 static gint hf_samr_samr_CreateDomainGroup_access_mask = -1;
147 static gint hf_samr_samr_UserInfo5_profile_path = -1;
148 static gint hf_samr_samr_AcctFlags_ACB_PW_EXPIRED = -1;
149 static gint hf_samr_samr_OpenUser_rid = -1;
150 static gint hf_samr_samr_ValidatePasswordReq3_hash = -1;
151 static gint hf_samr_samr_Connect2_access_mask = -1;
152 static gint hf_samr_samr_SetUserInfo_user_handle = -1;
153 static gint hf_samr_samr_QueryDomainInfo_info = -1;
154 static gint hf_samr_samr_UserInfo_info16 = -1;
155 static gint hf_samr_samr_SetBootKeyInformation_unknown1 = -1;
156 static gint hf_samr_samr_GroupInfo_attributes = -1;
157 static gint hf_samr_samr_DomInfo3_force_logoff_time = -1;
158 static gint hf_samr_samr_ChangePasswordUser_new_nt_crypted = -1;
159 static gint hf_samr_samr_ChangePasswordUser3_reject = -1;
160 static gint hf_samr_samr_QueryDomainInfo2_info = -1;
161 static gint hf_samr_samr_UserInfo1_description = -1;
162 static gint hf_samr_samr_SetAliasInfo_info = -1;
163 static gint hf_samr_samr_ChangePasswordUser_cross1_present = -1;
164 static gint hf_samr_samr_UserInfo5_primary_gid = -1;
165 static gint hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_NO_CLEAR_CHANGE = -1;
166 static gint hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT = -1;
167 static gint hf_samr_samr_Connect4_system_name = -1;
168 static gint hf_samr_samr_QueryDisplayInfo3_buf_size = -1;
169 static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_NUM_LOGONS = -1;
170 static gint hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_BAD_PASSWORD_COUNT = -1;
171 static gint hf_samr_samr_Connect5_access_mask = -1;
172 static gint hf_samr_samr_Ids_ids = -1;
173 static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_LAST_PWD_CHANGE = -1;
174 static gint hf_samr_samr_UserInfo20_parameters = -1;
175 static gint hf_samr_samr_UserInfo18_lm_pwd = -1;
176 static gint hf_samr_samr_UserInfo1_account_name = -1;
177 static gint hf_samr_samr_ChangePasswordUser2_lm_change = -1;
178 static gint hf_samr_samr_UserInfo21_description = -1;
179 static gint hf_samr_samr_UserInfo21_profile_path = -1;
180 static gint hf_samr_samr_ValidatePassword_req = -1;
181 static gint hf_samr_samr_AcctFlags_ACB_DISABLED = -1;
182 static gint hf_samr_samr_UserInfo21_private_data_sensitive = -1;
183 static gint hf_samr_samr_ChangePasswordUser_nt_cross = -1;
184 static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_ACCOUNT_NAME = -1;
185 static gint hf_samr_samr_UserInfo21_rid = -1;
186 static gint hf_samr_samr_OpenGroup_access_mask = -1;
187 static gint hf_samr_samr_ValidatePasswordReq3_password = -1;
188 static gint hf_samr_samr_UserInfo5_logon_script = -1;
189 static gint hf_samr_samr_RidWithAttributeArray_count = -1;
190 static gint hf_samr_samr_AddGroupMember_group_handle = -1;
191 static gint hf_samr_samr_ValidatePasswordInfo_pwd_history_len = -1;
192 static gint hf_samr_samr_DispInfoFullGroups_entries = -1;
193 static gint hf_samr_samr_UserInfo5_bad_password_count = -1;
194 static gint hf_samr_samr_DomainInfo_info5 = -1;
195 static gint hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_ADD_MEMBER = -1;
196 static gint hf_samr_samr_UserInfo_info6 = -1;
197 static gint hf_samr_samr_Connect5_info_out = -1;
198 static gint hf_samr_samr_Connect_connect_handle = -1;
199 static gint hf_samr_samr_UserInfo3_logon_script = -1;
200 static gint hf_samr_samr_SetUserInfo_level = -1;
201 static gint hf_samr_samr_UserInfo21_last_logon = -1;
202 static gint hf_samr_samr_GetBootKeyInformation_domain_handle = -1;
203 static gint hf_samr_samr_QueryDisplayInfo3_returned_size = -1;
204 static gint hf_samr_samr_ValidatePasswordReq3_account = -1;
205 static gint hf_samr_samr_UserInfo7_account_name = -1;
206 static gint hf_samr_samr_UserInfo23_info = -1;
207 static gint hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_1 = -1;
208 static gint hf_samr_samr_UserInfo3_last_logon = -1;
209 static gint hf_samr_samr_UserInfo_info10 = -1;
210 static gint hf_samr_samr_EnumDomainGroups_max_size = -1;
211 static gint hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_NO_ANON_CHANGE = -1;
212 static gint hf_samr_samr_UserInfo3_full_name = -1;
213 static gint hf_samr_samr_SetUserInfo2_user_handle = -1;
214 static gint hf_samr_samr_DispEntryAscii_account_name = -1;
215 static gint hf_samr_samr_UserInfo11_logon_script = -1;
216 static gint hf_samr_samr_ChangePasswordUser_lm_present = -1;
217 static gint hf_samr_samr_AddMultipleMembersToAlias_sids = -1;
218 static gint hf_samr_samr_OpenDomain_domain_handle = -1;
219 static gint hf_samr_samr_DomInfo13_sequence_num = -1;
220 static gint hf_samr_samr_UserInfo_info21 = -1;
221 static gint hf_samr_samr_ValidatePasswordReq_req1 = -1;
222 static gint hf_samr_samr_GetAliasMembership_domain_handle = -1;
223 static gint hf_samr_samr_AcctFlags_ACB_MNS = -1;
224 static gint hf_samr_samr_DispEntryFullGroup_description = -1;
225 static gint hf_samr_samr_SetSecurity_sdbuf = -1;
226 static gint hf_samr_samr_ValidatePasswordReq2_account = -1;
227 static gint hf_samr_samr_LookupNames_names = -1;
228 static gint hf_samr_samr_PasswordProperties_DOMAIN_REFUSE_PASSWORD_CHANGE = -1;
229 static gint hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_CHANGE_GROUP_MEMBERSHIP = -1;
230 static gint hf_samr_samr_PwInfo_password_properties = -1;
231 static gint hf_samr_samr_ValidatePasswordReq_req2 = -1;
232 static gint hf_samr_samr_DomGeneralInformation2_lockout_window = -1;
233 static gint hf_samr_samr_QueryDisplayInfo2_returned_size = -1;
234 static gint hf_samr_samr_SetBootKeyInformation_unknown2 = -1;
235 static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_LAST_LOGON = -1;
236 static gint hf_samr_samr_RidToSid_rid = -1;
237 static gint hf_samr_samr_Ids_count = -1;
238 static gint hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_SET_LOC_COM = -1;
239 static gint hf_samr_samr_AcctFlags_ACB_SMARTCARD_REQUIRED = -1;
240 static gint hf_samr_samr_ChangePasswordUser3_nt_verifier = -1;
241 static gint hf_samr_samr_UserInfo_info17 = -1;
242 static gint hf_samr_samr_LookupRids_types = -1;
243 static gint hf_samr_samr_DeleteGroupMember_rid = -1;
244 static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_PROFILE_PATH = -1;
245 static gint hf_samr_samr_ChangePasswordUser3_lm_change = -1;
246 static gint hf_samr_samr_CreateUser2_rid = -1;
247 static gint hf_samr_samr_LookupRids_rids = -1;
248 static gint hf_samr_samr_UserInfo1_primary_gid = -1;
249 static gint hf_samr_samr_GetMembersInAlias_alias_handle = -1;
250 static gint hf_samr_samr_ValidatePasswordReq1_info = -1;
251 static gint hf_samr_samr_UserInfo21_home_drive = -1;
252 static gint hf_samr_samr_AcctFlags_ACB_PWNOEXP = -1;
253 static gint hf_samr_samr_DomOEMInformation_oem_information = -1;
254 static gint hf_samr_samr_SetBootKeyInformation_connect_handle = -1;
255 static gint hf_samr_samr_EnumDomainAliases_num_entries = -1;
256 static gint hf_samr_samr_AcctFlags_ACB_SVRTRUST = -1;
257 static gint hf_samr_samr_OpenAlias_domain_handle = -1;
258 static gint hf_samr_samr_DomGeneralInformation_oem_information = -1;
259 static gint hf_samr_samr_UserInfo_info8 = -1;
260 static gint hf_samr_samr_UserInfo25_info = -1;
261 static gint hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_GROUP_MEMBERSHIP = -1;
262 static gint hf_samr_samr_CreateDomainGroup_name = -1;
263 static gint hf_samr_samr_DomGeneralInformation_num_groups = -1;
264 static gint hf_samr_samr_SetGroupInfo_info = -1;
265 static gint hf_samr_samr_EnumDomainAliases_resume_handle = -1;
266 static gint hf_samr_samr_DomGeneralInformation_num_aliases = -1;
267 static gint hf_samr_samr_EnumDomainAliases_max_size = -1;
268 static gint hf_samr_samr_UserInfo21_full_name = -1;
269 static gint hf_samr_samr_GetDomPwInfo_domain_name = -1;
270 static gint hf_samr_samr_UserInfo3_primary_gid = -1;
271 static gint hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_LOOKUP_INFO = -1;
272 static gint hf_samr_samr_UserInfo_info5 = -1;
273 static gint hf_samr_samr_RidWithAttribute_rid = -1;
274 static gint hf_samr_samr_UserInfo3_home_directory = -1;
275 static gint hf_samr_samr_ChangePasswordUser_cross2_present = -1;
276 static gint hf_samr_samr_DeleteAliasMember_sid = -1;
277 static gint hf_samr_samr_ValidatePassword_rep = -1;
278 static gint hf_samr_samr_ValidatePasswordInfo_fields_present = -1;
279 static gint hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_REMOVE_MEMBER = -1;
280 static gint hf_samr_samr_SetMemberAttributesOfGroup_unknown1 = -1;
281 static gint hf_samr_samr_GetDisplayEnumerationIndex2_level = -1;
282 static gint hf_samr_samr_AcctFlags_ACB_ENC_TXT_PWD_ALLOWED = -1;
283 static gint hf_samr_samr_AliasInfo_description = -1;
284 static gint hf_samr_samr_QueryDisplayInfo_info = -1;
285 static gint hf_samr_samr_GroupInfoAll_num_members = -1;
286 static gint hf_samr_samr_SetGroupInfo_group_handle = -1;
287 static gint hf_samr_status = -1;
288 static gint hf_samr_samr_UserInfo5_rid = -1;
289 static gint hf_samr_samr_UserInfo12_profile_path = -1;
290 static gint hf_samr_samr_LookupDomain_connect_handle = -1;
291 static gint hf_samr_samr_UserInfo21_comment = -1;
292 static gint hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_2 = -1;
293 static gint hf_samr_samr_UserInfo_info14 = -1;
294 static gint hf_samr_samr_CreateUser2_access_granted = -1;
295 static gint hf_samr_samr_ConnectInfo1_client_version = -1;
296 static gint hf_samr_samr_UserInfo5_acct_flags = -1;
297 static gint hf_samr_samr_UserInfo24_password_expired = -1;
298 static gint hf_samr_samr_AcctFlags_ACB_NOT_DELEGATED = -1;
299 static gint hf_samr_samr_SetDsrmPassword_name = -1;
300 static gint hf_samr_samr_Connect_system_name = -1;
301 static gint hf_samr_samr_DomInfo1_min_password_age = -1;
302 static gint hf_samr_samr_LookupNames_domain_handle = -1;
303 static gint hf_samr_samr_LookupRids_num_rids = -1;
304 static gint hf_samr_samr_GroupInfoDescription_description = -1;
305 static gint hf_samr_samr_RidAttrArray_count = -1;
306 static gint hf_samr_samr_QueryUserInfo_level = -1;
307 static gint hf_samr_samr_GroupAttrs_SE_GROUP_LOGON_ID = -1;
308 static gint hf_samr_samr_DispEntryGeneral_account_name = -1;
309 static gint hf_samr_samr_QueryAliasInfo_alias_handle = -1;
310 static gint hf_samr_samr_AcctFlags_ACB_HOMDIRREQ = -1;
311 static gint hf_samr_samr_CryptPasswordEx_data = -1;
312 static gint hf_samr_samr_SetAliasInfo_alias_handle = -1;
313 static gint hf_samr_samr_ValidatePasswordInfo_bad_password_time = -1;
314 static gint hf_samr_samr_AcctFlags_ACB_USE_DES_KEY_ONLY = -1;
315 static gint hf_samr_samr_DispInfo_info1 = -1;
316 static gint hf_samr_samr_SetDomainInfo_level = -1;
317 static gint hf_samr_samr_DispInfo_info4 = -1;
318 static gint hf_samr_samr_DomInfo8_domain_create_time = -1;
319 static gint hf_samr_samr_ChangePasswordUser_old_nt_crypted = -1;
320 static gint hf_samr_samr_DomGeneralInformation_force_logoff_time = -1;
321 static gint hf_samr_samr_DomInfo12_lockout_threshold = -1;
322 static gint hf_samr_samr_GroupInfoAttributes_attributes = -1;
323 static gint hf_samr_samr_CreateDomainGroup_domain_handle = -1;
324 static gint hf_samr_samr_SamArray_entries = -1;
325 static gint hf_samr_samr_UserInfo_info9 = -1;
326 static gint hf_samr_samr_Connect3_access_mask = -1;
327 static gint hf_samr_samr_ChangePasswordUser2_lm_password = -1;
328 static gint hf_samr_samr_DispEntryGeneral_full_name = -1;
329 static gint hf_samr_samr_DomGeneralInformation2_general = -1;
330 static gint hf_samr_samr_AliasInfoAll_num_members = -1;
331 static gint hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_SET_INFO = -1;
332 static gint hf_samr_samr_DispEntryFull_description = -1;
333 static gint hf_samr_samr_LookupDomain_domain_name = -1;
334 static gint hf_samr_samr_ValidatePasswordRep_ctr3 = -1;
335 static gint hf_samr_samr_QueryDisplayInfo3_max_entries = -1;
336 static gint hf_samr_samr_DomInfo6_primary = -1;
337 static gint hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_COMPLEX = -1;
338 static gint hf_samr_samr_DeleteGroupMember_group_handle = -1;
339 static gint hf_samr_samr_Connect5_system_name = -1;
340 static gint hf_samr_samr_UserInfo21_bad_password_count = -1;
341 static gint hf_samr_samr_UserInfo21_acct_expiry = -1;
342 static gint hf_samr_samr_EnumDomainUsers_max_size = -1;
343 static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_ALLOW_PWD_CHANGE = -1;
344 static gint hf_samr_samr_LookupNames_rids = -1;
345 static gint hf_samr_samr_DomInfo1_min_password_length = -1;
346 static gint hf_samr_samr_ValidatePasswordReq3_pwd_must_change_at_next_logon = -1;
347 static gint hf_samr_samr_QuerySecurity_handle = -1;
348 static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_WORKSTATIONS = -1;
349 static gint hf_samr_samr_GetDisplayEnumerationIndex_idx = -1;
350 static gint hf_samr_samr_DomInfo9_domain_server_state = -1;
351 static gint hf_samr_samr_Connect5_level_out = -1;
352 static gint hf_samr_samr_CreateUser2_user_handle = -1;
353 static gint hf_samr_samr_UserInfo5_last_logon = -1;
354 static gint hf_samr_samr_ChangePasswordUser2_server = -1;
355 static gint hf_samr_samr_SetDomainInfo_info = -1;
356 static gint hf_samr_samr_SamArray_count = -1;
357 static gint hf_samr_samr_UserInfo24_password = -1;
358 static gint hf_samr_samr_DispEntryFull_idx = -1;
359 static gint hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_INITIALIZE_SERVER = -1;
360 static gint hf_samr_samr_DispEntryFull_acct_flags = -1;
361 static gint hf_samr_samr_DomInfo13_modified_count_at_last_promotion = -1;
362 static gint hf_samr_samr_GetAliasMembership_sids = -1;
363 static gint hf_samr_samr_UserInfo_info1 = -1;
364 static gint hf_samr_samr_GroupAttrs_SE_GROUP_RESOURCE = -1;
365 static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_DESCRIPTION = -1;
366 static gint hf_samr_samr_UserInfo18_nt_pwd = -1;
367 static gint hf_samr_samr_UserInfo21_nt_owf_password = -1;
368 static gint hf_samr_samr_OpenAlias_alias_handle = -1;
369 static gint hf_samr_samr_SetMemberAttributesOfGroup_group_handle = -1;
370 static gint hf_samr_samr_UserInfo23_password = -1;
371 static gint hf_samr_samr_UserInfo21_last_logoff = -1;
372 static gint hf_samr_samr_DispInfo_info2 = -1;
373 static gint hf_samr_samr_EnumDomainUsers_resume_handle = -1;
374 static gint hf_samr_samr_ValidatePasswordRepCtr_status = -1;
375 static gint hf_samr_samr_SetMemberAttributesOfGroup_unknown2 = -1;
376 static gint hf_samr_samr_DomainInfo_general2 = -1;
377 static gint hf_samr_samr_UserInfo2_reserved = -1;
378 static gint hf_samr_samr_DispInfoFull_count = -1;
379 static gint hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_GET_MEMBERS = -1;
380 static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_COUNTRY_CODE = -1;
381 static gint hf_samr_samr_ValidatePasswordReq2_password = -1;
382 static gint hf_samr_samr_UserInfo5_logon_hours = -1;
383 static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_HOME_DIRECTORY = -1;
384 static gint hf_samr_samr_AcctFlags_ACB_NO_AUTH_DATA_REQD = -1;
385 static gint hf_samr_samr_DeleteUser_user_handle = -1;
386 static gint hf_samr_samr_QueryDomainInfo_level = -1;
387 static gint hf_samr_samr_UserInfo26_password = -1;
388 static gint hf_samr_samr_ValidatePasswordReq1_password_matched = -1;
389 static gint hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_ATTRIBUTES = -1;
390 static gint hf_samr_samr_UserInfo21_account_name = -1;
391 static gint hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_SET_INFO = -1;
392 static gint hf_samr_samr_UserInfo2_comment = -1;
393 static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_RID = -1;
394 static gint hf_samr_samr_UserInfo_info23 = -1;
395 static gint hf_samr_samr_UserInfo18_password_expired = -1;
396 static gint hf_samr_samr_QueryDisplayInfo2_total_size = -1;
397 static gint hf_samr_samr_UserInfo25_password = -1;
398 static gint hf_samr_samr_ChangePasswordUser2_lm_verifier = -1;
399 static gint hf_samr_samr_SetDomainInfo_domain_handle = -1;
400 static gint hf_samr_samr_UserInfo4_logon_hours = -1;
401 static gint hf_samr_samr_UserInfo5_home_directory = -1;
402 static gint hf_samr_samr_DomInfo12_lockout_duration = -1;
403 static gint hf_samr_samr_CreateUser_account_name = -1;
404 static gint hf_samr_samr_UserInfo9_primary_gid = -1;
405 static gint hf_samr_samr_Connect4_connect_handle = -1;
406 static gint hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_LOGONINFO = -1;
407 static gint hf_samr_samr_RidToSid_domain_handle = -1;
408 static gint hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_LAST_SET = -1;
409 static gint hf_samr_samr_DomGeneralInformation_domain_name = -1;
410 static gint hf_samr_samr_CreateUser2_account_name = -1;
411 static gint hf_samr_samr_QueryGroupMember_group_handle = -1;
412 static gint hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_CREATE_DOMAIN = -1;
413 static gint hf_samr_samr_DispEntryGeneral_rid = -1;
414 static gint hf_samr_samr_LookupDomain_sid = -1;
415 static gint hf_samr_samr_AddAliasMember_sid = -1;
416 static gint hf_samr_samr_QueryAliasInfo_info = -1;
417 static gint hf_samr_samr_ValidatePasswordReq2_hash = -1;
418 static gint hf_samr_samr_UserInfo21_fields_present = -1;
419 static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_EXPIRED_FLAG = -1;
420 static gint hf_samr_samr_ValidatePasswordReq2_password_matched = -1;
421 static gint hf_samr_samr_CreateUser2_domain_handle = -1;
422 static gint hf_samr_samr_QuerySecurity_sec_info = -1;
423 static gint hf_samr_samr_AddGroupMember_rid = -1;
424 static gint hf_samr_samr_DomainInfo_info12 = -1;
425 static gint hf_samr_samr_OpenGroup_domain_handle = -1;
426 static gint hf_samr_samr_QueryDisplayInfo_max_entries = -1;
427 static gint hf_samr_samr_EnumDomains_resume_handle = -1;
428 static gint hf_samr_samr_UserInfo_info7 = -1;
429 static gint hf_samr_samr_GroupInfo_all2 = -1;
430 static gint hf_samr_samr_UserInfo1_full_name = -1;
431 static gint hf_samr_samr_QueryDisplayInfo3_domain_handle = -1;
432 static gint hf_samr_samr_RemoveMemberFromForeignDomain_domain_handle = -1;
433 static gint hf_samr_samr_OpenGroup_group_handle = -1;
434 static gint hf_samr_samr_EnumDomainGroups_resume_handle = -1;
435 static gint hf_samr_samr_SetUserInfo2_info = -1;
436 static gint hf_samr_samr_QueryGroupInfo_group_handle = -1;
437 static gint hf_samr_samr_ChangePasswordUser3_nt_password = -1;
438 static gint hf_samr_samr_UserInfo21_buf_count = -1;
439 static gint hf_samr_samr_PwInfo_min_password_length = -1;
440 static gint hf_samr_samr_UserInfo21_lm_owf_password = -1;
441 static gint hf_samr_samr_DomGeneralInformation_sequence_num = -1;
442 static gint hf_samr_samr_UserInfo26_password_expired = -1;
443 static gint hf_samr_samr_ChangePasswordUser_old_lm_crypted = -1;
444 static gint hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_GET_MEMBERS = -1;
445 static gint hf_samr_samr_AcctFlags_ACB_NORMAL = -1;
446 static gint hf_samr_samr_GroupInfo_all = -1;
447 static gint hf_samr_samr_UserInfo16_acct_flags = -1;
448 static gint hf_samr_samr_UserInfo2_country_code = -1;
449 static gint hf_samr_samr_AddGroupMember_flags = -1;
450 static gint hf_samr_samr_UserInfo10_home_directory = -1;
451 static gint hf_samr_samr_CreateDomainGroup_group_handle = -1;
452 static gint hf_samr_samr_QueryUserInfo2_user_handle = -1;
453 static gint hf_samr_samr_OemChangePasswordUser2_server = -1;
454 static gint hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_CHANGE_PASSWORD = -1;
455 static gint hf_samr_samr_AliasInfo_all = -1;
456 static gint hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_BAD_PASSWORD_TIME = -1;
457 static gint hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_NAME_ETC = -1;
458 static gint hf_samr_samr_ChangePasswordUser3_password3 = -1;
459 static gint hf_samr_samr_UserInfo13_description = -1;
460 static gint hf_samr_samr_UserInfo21_lm_password_set = -1;
461 static gint hf_samr_samr_UserInfo_info2 = -1;
462 static gint hf_samr_samr_EnumDomainUsers_domain_handle = -1;
463 static gint hf_samr_samr_LookupRids_domain_handle = -1;
464 static gint hf_samr_samr_LogonHours_bits = -1;
465 static gint hf_samr_samr_OpenUser_domain_handle = -1;
466 static gint hf_samr_samr_CreateUser2_access_mask = -1;
467 static gint hf_samr_samr_GroupAttrs_SE_GROUP_ENABLED_BY_DEFAULT = -1;
468 static gint hf_samr_samr_EnumDomainGroups_sam = -1;
469 static gint hf_samr_samr_GroupInfoAll_name = -1;
470 static gint hf_samr_samr_ValidatePasswordRep_ctr2 = -1;
471 static gint hf_samr_samr_UserInfo_info24 = -1;
472 static gint hf_samr_samr_DomainInfo_info3 = -1;
473 static gint hf_samr_samr_EnumDomainGroups_num_entries = -1;
474 static gint hf_samr_samr_AcctFlags_ACB_PWNOTREQ = -1;
475 static gint hf_samr_samr_UserInfo3_bad_password_count = -1;
476 static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_CODE_PAGE = -1;
477 static gint hf_samr_samr_ChangePasswordUser_new_lm_crypted = -1;
478 static gint hf_samr_samr_LookupNames_types = -1;
479 static gint hf_samr_samr_SamEntry_idx = -1;
480 static gint hf_samr_samr_UserInfo3_logon_hours = -1;
481 static gint hf_samr_samr_ChangePasswordUser3_account = -1;
482 static gint hf_samr_samr_DomInfo8_sequence_num = -1;
483 static gint hf_samr_samr_ValidatePasswordInfo_pwd_history = -1;
484 static gint hf_samr_samr_Connect3_unknown = -1;
485 static gint hf_samr_samr_GetDisplayEnumerationIndex2_idx = -1;
486 static gint hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_LOOKUP_DOMAIN = -1;
487 static gint hf_samr_samr_ConnectInfo1_unknown2 = -1;
488 static gint hf_samr_samr_TestPrivateFunctionsUser_user_handle = -1;
489 static gint hf_samr_samr_QueryDisplayInfo2_domain_handle = -1;
490 static gint hf_samr_samr_AliasInfoAll_name = -1;
491 static gint hf_samr_samr_Connect_access_mask = -1;
492 static gint hf_samr_samr_GetUserPwInfo_user_handle = -1;
493 static gint hf_samr_samr_DispEntryFull_rid = -1;
494 static gint hf_samr_samr_OpenAlias_access_mask = -1;
495 static gint hf_samr_samr_GroupInfo_description = -1;
496 static gint hf_samr_samr_OpenGroup_rid = -1;
497 static gint hf_samr_samr_GroupAttrs_SE_GROUP_OWNER = -1;
498 static gint hf_samr_samr_EnumDomainAliases_sam = -1;
499 static gint hf_samr_samr_LogonHours_units_per_week = -1;
500 static gint hf_samr_samr_DomGeneralInformation_role = -1;
501 static gint hf_samr_samr_QueryDisplayInfo2_buf_size = -1;
502 static gint hf_samr_samr_DomainInfo_info13 = -1;
503 static gint hf_samr_samr_SetSecurity_sec_info = -1;
504 static gint hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_STORE_CLEARTEXT = -1;
505 static gint hf_samr_samr_DomGeneralInformation2_lockout_threshold = -1;
506 static gint hf_samr_samr_UserInfo21_last_password_change = -1;
507 static gint hf_samr_samr_ChangePasswordUser2_account = -1;
508 static gint hf_samr_samr_ChangePasswordUser3_lm_password = -1;
509 static gint hf_samr_samr_UserInfo3_account_name = -1;
510 static gint hf_samr_samr_Connect3_system_name = -1;
511 static gint hf_samr_samr_UserInfo_info11 = -1;
512 static gint hf_samr_samr_DomainInfo_info9 = -1;
513 static gint hf_samr_samr_SamEntry_name = -1;
514 static gint hf_samr_samr_UserInfo3_acct_flags = -1;
515 static gint hf_samr_samr_UserInfo3_allow_password_change = -1;
516 static gint hf_samr_samr_QueryDomainInfo2_level = -1;
517 static gint hf_samr_samr_GetDisplayEnumerationIndex_name = -1;
518 static gint hf_samr_samr_ValidatePasswordReq3_info = -1;
519 static gint hf_samr_samr_ValidatePasswordInfo_lockout_time = -1;
520 static gint hf_samr_samr_Connect4_access_mask = -1;
521 static gint hf_samr_samr_UserInfo17_acct_expiry = -1;
522 static gint hf_samr_samr_DomInfo1_password_history_length = -1;
523 static gint hf_samr_samr_AcctFlags_ACB_USE_AES_KEYS = -1;
524 static gint hf_samr_samr_QueryUserInfo_info = -1;
525 static gint hf_samr_samr_DomGeneralInformation_primary = -1;
526 static gint hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_SHUTDOWN_SERVER = -1;
527 static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_LM_PASSWORD_PRESENT = -1;
528 static gint hf_samr_samr_RemoveMemberFromForeignDomain_sid = -1;
529 static gint hf_samr_samr_UserInfo5_home_drive = -1;
530 static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_FORCE_PWD_CHANGE = -1;
531 static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_LAST_LOGOFF = -1;
532 static gint hf_samr_samr_RidWithAttributeArray_rids = -1;
533 static gint hf_samr_samr_DeleteDomainGroup_group_handle = -1;
534 static gint hf_samr_samr_Password_hash = -1;
535 static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_OWF_PWD = -1;
536 static gint hf_samr_samr_UserInfo_info25 = -1;
537 static gint hf_samr_samr_QueryDisplayInfo_start_idx = -1;
538 static gint hf_samr_samr_UserInfo3_home_drive = -1;
539 static gint hf_samr_samr_UserInfo_info13 = -1;
540 static gint hf_samr_samr_DeleteAliasMember_alias_handle = -1;
541 static gint hf_samr_samr_QueryDomainInfo_domain_handle = -1;
542 static gint hf_samr_samr_ChangePasswordUser2_nt_password = -1;
543 static gint hf_samr_samr_RidAttrArray_attributes = -1;
544 static gint hf_samr_samr_ValidatePasswordInfo_bad_pwd_count = -1;
545 static gint hf_samr_samr_QueryGroupMember_rids = -1;
546 static gint hf_samr_samr_UserInfo21_password_expired = -1;
547 static gint hf_samr_samr_EnumDomains_buf_size = -1;
548 static gint hf_samr_samr_DomInfo1_max_password_age = -1;
549 static gint hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_ADD_MEMBER = -1;
550 static gint hf_samr_samr_GroupInfoAll_description = -1;
551 static gint hf_samr_samr_UserInfo3_logon_count = -1;
552 static gint hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_HISTORY = -1;
553 static gint hf_samr_samr_AcctFlags_ACB_PARTIAL_SECRETS_ACCOUNT = -1;
554 static gint hf_samr_samr_GroupInfo_name = -1;
555 static gint hf_samr_samr_UserInfo3_force_password_change = -1;
556 static gint hf_samr_samr_ChangePasswordUser_nt_present = -1;
557 static gint hf_samr_samr_UserInfo21_home_directory = -1;
558 static gint hf_samr_samr_UserInfo_info12 = -1;
559 static gint hf_samr_samr_OemChangePasswordUser2_password = -1;
560 static gint hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_ALIAS = -1;
561 static gint hf_samr_samr_EnumDomainGroups_domain_handle = -1;
562 static gint hf_samr_opnum = -1;
563 static gint hf_samr_samr_ChangePasswordUser3_server = -1;
564 static gint hf_samr_samr_QueryUserInfo_user_handle = -1;
565 static gint hf_samr_samr_GetDisplayEnumerationIndex2_name = -1;
566 static gint hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_LOOKUP_INFO = -1;
567 static gint hf_samr_samr_GetGroupsForUser_user_handle = -1;
568 static gint hf_samr_samr_QueryDomainInfo2_domain_handle = -1;
569 static gint hf_samr_samr_UserInfo14_workstations = -1;
570 static gint hf_samr_samr_GetDisplayEnumerationIndex_domain_handle = -1;
571 static gint hf_samr_samr_DispInfo_info3 = -1;
572 static gint hf_samr_samr_DomainInfo_info8 = -1;
573 static gint hf_samr_samr_DispInfoGeneral_entries = -1;
574 static gint hf_samr_samr_UserInfo8_full_name = -1;
575 static gint hf_samr_samr_UserInfo21_logon_count = -1;
576 static gint hf_samr_samr_UserInfo21_code_page = -1;
577 static gint hf_samr_samr_DispEntryFullGroup_acct_flags = -1;
578 static gint hf_samr_samr_AcctFlags_ACB_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION = -1;
579 static gint hf_samr_samr_SetUserInfo_info = -1;
580 static gint hf_samr_samr_OpenDomain_sid = -1;
581 static gint hf_samr_samr_CreateUser2_acct_flags = -1;
582 static gint hf_samr_samr_DispEntryFull_account_name = -1;
583 static gint hf_samr_userPwdChangeFailureInformation_filterModuleName = -1;
584 static gint hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_LENGTH = -1;
585 static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_HOME_DRIVE = -1;
586 static gint hf_samr_samr_DomainInfo_info1 = -1;
587 static gint hf_samr_samr_RidAttrArray_rids = -1;
588 static gint hf_samr_samr_ValidatePasswordRep_ctr1 = -1;
589 static gint hf_samr_samr_UserInfo18_nt_pwd_active = -1;
590 static gint hf_samr_samr_AcctFlags_ACB_DOMTRUST = -1;
591 static gint hf_samr_samr_ChangePasswordUser_lm_cross = -1;
592 static gint hf_samr_samr_UserInfo3_profile_path = -1;
593 static gint hf_samr_samr_DomInfo13_domain_create_time = -1;
594 static gint hf_samr_samr_AcctFlags_ACB_WSTRUST = -1;
595 static gint hf_samr_samr_DispEntryAscii_idx = -1;
596 static gint hf_samr_samr_DomInfo5_domain_name = -1;
597 static gint hf_samr_samr_UserInfo5_logon_count = -1;
598 static gint hf_samr_samr_UserInfo5_last_logoff = -1;
599 static gint hf_samr_samr_CreateDomainGroup_rid = -1;
600 static gint hf_samr_samr_ValidatePassword_level = -1;
601 static gint hf_samr_samr_UserInfo6_full_name = -1;
602 static gint hf_samr_samr_LookupRids_names = -1;
603 static gint hf_samr_samr_UserInfo10_home_drive = -1;
604 static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_ACCT_FLAGS = -1;
605 static gint hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_GROUPS = -1;
606 static gint hf_samr_samr_OemChangePasswordUser2_account = -1;
607 static gint hf_samr_samr_RemoveMultipleMembersFromAlias_sids = -1;
608 static gint hf_samr_samr_QueryDisplayInfo2_info = -1;
609 static gint hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_ENUM_DOMAINS = -1;
610 static gint hf_samr_samr_UserInfo_info4 = -1;
611 static gint hf_samr_samr_DomInfo1_password_properties = -1;
612 static gint hf_samr_samr_UserInfo21_logon_script = -1;
613 static gint hf_samr_samr_AcctFlags_ACB_AUTOLOCK = -1;
614 static gint hf_samr_samr_CreateUser_domain_handle = -1;
615 static gint hf_samr_samr_GetBootKeyInformation_unknown = -1;
616 static gint hf_samr_samr_RidWithAttribute_attributes = -1;
617 static gint hf_samr_samr_CryptPassword_data = -1;
618 static gint hf_samr_samr_AliasInfo_name = -1;
619 static gint hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_USER = -1;
620 static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_COMMENT = -1;
621 static gint hf_samr_samr_UserInfo3_last_password_change = -1;
622 static gint hf_samr_samr_Shutdown_connect_handle = -1;
623 static gint hf_samr_samr_OpenDomain_access_mask = -1;
624 static gint hf_samr_samr_DispEntryFullGroup_rid = -1;
625 static gint hf_samr_samr_Connect2_connect_handle = -1;
626 static gint hf_samr_samr_GroupAttrs_SE_GROUP_ENABLED = -1;
627 static gint hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_INFO_2 = -1;
628 static gint hf_samr_samr_ValidationBlob_length = -1;
629 static gint hf_samr_samr_QueryDisplayInfo2_start_idx = -1;
630 static gint hf_samr_samr_DispEntryGeneral_idx = -1;
631 static gint hf_samr_samr_UserInfo21_logon_hours = -1;
632 static gint hf_samr_samr_UserInfo21_country_code = -1;
633 static gint hf_samr_samr_AddAliasMember_alias_handle = -1;
634 static gint hf_samr_samr_SetDsrmPassword_hash = -1;
635 static gint hf_samr_samr_DomainInfo_general = -1;
636 static gint hf_samr_samr_QueryDisplayInfo_domain_handle = -1;
637 static gint hf_samr_samr_GroupAttrs_SE_GROUP_MANDATORY = -1;
638 static gint hf_samr_samr_UserInfo5_description = -1;
639 static gint hf_samr_samr_DomInfo7_role = -1;
640 static gint hf_samr_samr_UserInfo21_workstations = -1;
641 static gint hf_samr_samr_DispEntryGeneral_description = -1;
642 static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_PRIVATE_DATA = -1;
643 static gint hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_ENUM_ACCOUNTS = -1;
644 static gint hf_samr_samr_ValidatePasswordReq_req3 = -1;
645 static gint hf_samr_samr_ChangePasswordUser2_nt_verifier = -1;
646 static gint hf_samr_samr_AcctFlags_ACB_TRUSTED_FOR_DELEGATION = -1;
647 static gint hf_samr_samr_EnumDomains_connect_handle = -1;
648 static gint hf_samr_samr_UserInfo_info18 = -1;
649 static gint hf_samr_samr_CreateDomAlias_access_mask = -1;
650 static gint hf_samr_samr_UserInfo21_force_password_change = -1;
651 static gint hf_samr_samr_GetDisplayEnumerationIndex2_domain_handle = -1;
652 static gint hf_samr_samr_TestPrivateFunctionsDomain_domain_handle = -1;
653 static gint hf_samr_samr_DomGeneralInformation_domain_server_state = -1;
654 static gint hf_samr_samr_SetBootKeyInformation_unknown3 = -1;
655 static gint hf_samr_samr_Connect3_connect_handle = -1;
656 static gint hf_samr_samr_EnumDomainUsers_num_entries = -1;
657 static gint hf_samr_samr_ValidatePasswordReq2_info = -1;
658 static gint hf_samr_samr_LookupNames_num_names = -1;
659 static gint hf_samr_samr_QueryDisplayInfo3_level = -1;
660 static gint hf_samr_userPwdChangeFailureInformation_extendedFailureReason = -1;
661 static gint hf_samr_samr_QueryDisplayInfo2_max_entries = -1;
662 static gint hf_samr_samr_ValidatePasswordInfo_last_password_change = -1;
663 static gint hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_LOCALE = -1;
664 static gint hf_samr_samr_AddMultipleMembersToAlias_alias_handle = -1;
665 static gint hf_samr_samr_OpenUser_access_mask = -1;
666 static gint hf_samr_samr_RemoveMultipleMembersFromAlias_alias_handle = -1;
667 static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_LOGON_HOURS = -1;
668 static gint hf_samr_samr_ChangePasswordUser3_dominfo = -1;
669 static gint hf_samr_samr_ValidationBlob_data = -1;
670 static gint hf_samr_samr_UserInfo18_lm_pwd_active = -1;
671 static gint hf_samr_samr_CreateDomAlias_domain_handle = -1;
672 static gint hf_samr_samr_UserInfo_info26 = -1;
673 static gint hf_samr_samr_EnumDomainAliases_domain_handle = -1;
674 static gint hf_samr_samr_GroupInfoAll_attributes = -1;
675 static gint hf_samr_samr_DomainInfo_info7 = -1;
676 static gint hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_CONNECT_TO_SERVER = -1;
677 static gint hf_samr_samr_EnumDomains_num_entries = -1;
678 static gint hf_samr_samr_UserInfo21_parameters = -1;
679 static gint hf_samr_samr_DispEntryGeneral_acct_flags = -1;
680 static gint hf_samr_samr_AcctFlags_ACB_TEMPDUP = -1;
681 static gint hf_samr_samr_DispInfoFullGroups_count = -1;
682 static gint hf_samr_samr_OpenUser_user_handle = -1;
683 static gint hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_INFO_1 = -1;
684 static gint hf_samr_samr_GetAliasMembership_rids = -1;
685 static gint hf_samr_samr_CreateDomAlias_alias_handle = -1;
686 static gint hf_samr_samr_UserInfo6_account_name = -1;
687 static gint hf_samr_samr_UserInfo_info3 = -1;
688 static gint hf_samr_samr_Connect5_level_in = -1;
689 static gint hf_samr_samr_DomInfo12_lockout_window = -1;
690 static gint hf_samr_samr_CreateUser_user_handle = -1;
691 static gint hf_samr_samr_RidToSid_sid = -1;
692 static gint hf_samr_samr_GetUserPwInfo_info = -1;
693 static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_SEC_DESC = -1;
694 static gint hf_samr_samr_EnumDomainUsers_acct_flags = -1;
695 static gint hf_samr_samr_UserInfo3_rid = -1;
696 static gint hf_samr_samr_DomainInfo_info6 = -1;
697 static gint hf_samr_samr_CreateDomAlias_alias_name = -1;
698 static gint hf_samr_samr_EnumDomainUsers_sam = -1;
699 static gint hf_samr_samr_DispInfo_info5 = -1;
700 static gint hf_samr_samr_GetGroupsForUser_rids = -1;
701 static gint hf_samr_samr_UserInfo3_last_logoff = -1;
702 static gint hf_samr_samr_ValidatePasswordRepCtr_info = -1;
703 static gint hf_samr_samr_CreateDomAlias_rid = -1;
704 static gint hf_samr_samr_SetGroupInfo_level = -1;
705 static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_NT_PASSWORD_PRESENT = -1;
706 static gint hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_SET_PASSWORD = -1;
707 static gint hf_samr_samr_SetUserInfo2_level = -1;
708 static gint hf_samr_samr_UserInfo5_acct_expiry = -1;
709 static gint hf_samr_samr_OpenAlias_rid = -1;
710 static gint hf_samr_samr_Close_handle = -1;
711 static gint hf_samr_samr_Connect5_info_in = -1;
712 static gint hf_samr_samr_UserInfo21_nt_password_set = -1;
713 static gint hf_samr_samr_UserInfo_info20 = -1;
714 static gint hf_samr_samr_UserInfo21_private_data = -1;
715 static gint hf_samr_samr_CreateUser_access_mask = -1;
716 static gint hf_samr_samr_UserInfo5_account_name = -1;
717 static gint hf_samr_samr_DispInfoFull_entries = -1;
718 static gint hf_samr_samr_UserInfo5_full_name = -1;
719 static gint hf_samr_samr_ChangePasswordUser3_lm_verifier = -1;
720 static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_PRIMARY_GID = -1;
721 static gint hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_3 = -1;
722 static gint hf_samr_samr_GroupAttrs_SE_GROUP_USE_FOR_DENY_ONLY = -1;
723 static gint hf_samr_samr_DispInfoAscii_count = -1;
724 static gint hf_samr_samr_GetMembersInAlias_sids = -1;
725 static gint hf_samr_samr_QueryDisplayInfo3_info = -1;
726 static gint hf_samr_samr_OemChangePasswordUser2_hash = -1;
727 static gint hf_samr_samr_ChangePasswordUser_user_handle = -1;
728 static gint hf_samr_samr_QueryUserInfo2_level = -1;
729 static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_BAD_PWD_COUNT = -1;
730 static gint hf_samr_samr_ValidatePasswordReq3_clear_lockout = -1;
731 static gint hf_samr_samr_Connect4_client_version = -1;
732 static gint hf_samr_samr_GetDisplayEnumerationIndex_level = -1;
733 static gint hf_samr_samr_UserInfo5_workstations = -1;
734 static gint hf_samr_samr_DispEntryFullGroup_account_name = -1;
735 static gint hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_LOCKOUT_TIME = -1;
736 static gint hf_samr_samr_QueryDisplayInfo_total_size = -1;
737 static gint hf_samr_samr_UserInfo1_comment = -1;
738 static gint hf_samr_samr_DeleteDomAlias_alias_handle = -1;
739 static gint hf_samr_samr_EnumDomains_sam = -1;
740 static gint hf_samr_samr_UserInfo2_code_page = -1;
741 static gint hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_LOCKOUT_ADMINS = -1;
742 static gint hf_samr_samr_DomGeneralInformation_unknown3 = -1;
743 static gint hf_samr_samr_OpenDomain_connect_handle = -1;
744 static gint hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_SET_ATTRIBUTES = -1;
745 static gint hf_samr_samr_QueryDisplayInfo_buf_size = -1;
746 static gint hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_REMOVE_MEMBER = -1;
747 static gint hf_samr_samr_QueryGroupInfo_level = -1;
748 static gint hf_samr_samr_SetAliasInfo_level = -1;
749 static gint hf_samr_samr_QueryDisplayInfo_level = -1;
750 static gint hf_samr_samr_UserInfo21_buffer = -1;
751 static gint hf_samr_samr_SetDsrmPassword_unknown = -1;
752 static gint hf_samr_samr_UserInfo5_last_password_change = -1;
753 static gint hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_GROUP = -1;
754 static gint hf_samr_samr_QueryDisplayInfo_returned_size = -1;
755 static gint hf_samr_samr_UserInfo21_allow_password_change = -1;
756 static gint hf_samr_samr_ConnectInfo_info1 = -1;
757 static gint hf_samr_samr_SetSecurity_handle = -1;
758 static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_FULL_NAME = -1;
759 static gint hf_samr_samr_AliasInfoAll_description = -1;
760
761 static gint proto_dcerpc_samr = -1;
762 /* Version information */
763
764
765 static e_uuid_t uuid_dcerpc_samr = {
766         0x12345778, 0x1234, 0xabcd,
767         { 0xef, 0x00, 0x01, 0x23, 0x45, 0x67, 0x89, 0xac }
768 };
769 static guint16 ver_dcerpc_samr = 1;
770
771 static const true_false_string samr_AcctFlags_ACB_DISABLED_tfs = {
772    "ACB_DISABLED is SET",
773    "ACB_DISABLED is NOT SET",
774 };
775 static const true_false_string samr_AcctFlags_ACB_HOMDIRREQ_tfs = {
776    "ACB_HOMDIRREQ is SET",
777    "ACB_HOMDIRREQ is NOT SET",
778 };
779 static const true_false_string samr_AcctFlags_ACB_PWNOTREQ_tfs = {
780    "ACB_PWNOTREQ is SET",
781    "ACB_PWNOTREQ is NOT SET",
782 };
783 static const true_false_string samr_AcctFlags_ACB_TEMPDUP_tfs = {
784    "ACB_TEMPDUP is SET",
785    "ACB_TEMPDUP is NOT SET",
786 };
787 static const true_false_string samr_AcctFlags_ACB_NORMAL_tfs = {
788    "ACB_NORMAL is SET",
789    "ACB_NORMAL is NOT SET",
790 };
791 static const true_false_string samr_AcctFlags_ACB_MNS_tfs = {
792    "ACB_MNS is SET",
793    "ACB_MNS is NOT SET",
794 };
795 static const true_false_string samr_AcctFlags_ACB_DOMTRUST_tfs = {
796    "ACB_DOMTRUST is SET",
797    "ACB_DOMTRUST is NOT SET",
798 };
799 static const true_false_string samr_AcctFlags_ACB_WSTRUST_tfs = {
800    "ACB_WSTRUST is SET",
801    "ACB_WSTRUST is NOT SET",
802 };
803 static const true_false_string samr_AcctFlags_ACB_SVRTRUST_tfs = {
804    "ACB_SVRTRUST is SET",
805    "ACB_SVRTRUST is NOT SET",
806 };
807 static const true_false_string samr_AcctFlags_ACB_PWNOEXP_tfs = {
808    "ACB_PWNOEXP is SET",
809    "ACB_PWNOEXP is NOT SET",
810 };
811 static const true_false_string samr_AcctFlags_ACB_AUTOLOCK_tfs = {
812    "ACB_AUTOLOCK is SET",
813    "ACB_AUTOLOCK is NOT SET",
814 };
815 static const true_false_string samr_AcctFlags_ACB_ENC_TXT_PWD_ALLOWED_tfs = {
816    "ACB_ENC_TXT_PWD_ALLOWED is SET",
817    "ACB_ENC_TXT_PWD_ALLOWED is NOT SET",
818 };
819 static const true_false_string samr_AcctFlags_ACB_SMARTCARD_REQUIRED_tfs = {
820    "ACB_SMARTCARD_REQUIRED is SET",
821    "ACB_SMARTCARD_REQUIRED is NOT SET",
822 };
823 static const true_false_string samr_AcctFlags_ACB_TRUSTED_FOR_DELEGATION_tfs = {
824    "ACB_TRUSTED_FOR_DELEGATION is SET",
825    "ACB_TRUSTED_FOR_DELEGATION is NOT SET",
826 };
827 static const true_false_string samr_AcctFlags_ACB_NOT_DELEGATED_tfs = {
828    "ACB_NOT_DELEGATED is SET",
829    "ACB_NOT_DELEGATED is NOT SET",
830 };
831 static const true_false_string samr_AcctFlags_ACB_USE_DES_KEY_ONLY_tfs = {
832    "ACB_USE_DES_KEY_ONLY is SET",
833    "ACB_USE_DES_KEY_ONLY is NOT SET",
834 };
835 static const true_false_string samr_AcctFlags_ACB_DONT_REQUIRE_PREAUTH_tfs = {
836    "ACB_DONT_REQUIRE_PREAUTH is SET",
837    "ACB_DONT_REQUIRE_PREAUTH is NOT SET",
838 };
839 static const true_false_string samr_AcctFlags_ACB_PW_EXPIRED_tfs = {
840    "ACB_PW_EXPIRED is SET",
841    "ACB_PW_EXPIRED is NOT SET",
842 };
843 static const true_false_string samr_AcctFlags_ACB_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION_tfs = {
844    "ACB_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION is SET",
845    "ACB_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION is NOT SET",
846 };
847 static const true_false_string samr_AcctFlags_ACB_NO_AUTH_DATA_REQD_tfs = {
848    "ACB_NO_AUTH_DATA_REQD is SET",
849    "ACB_NO_AUTH_DATA_REQD is NOT SET",
850 };
851 static const true_false_string samr_AcctFlags_ACB_PARTIAL_SECRETS_ACCOUNT_tfs = {
852    "ACB_PARTIAL_SECRETS_ACCOUNT is SET",
853    "ACB_PARTIAL_SECRETS_ACCOUNT is NOT SET",
854 };
855 static const true_false_string samr_AcctFlags_ACB_USE_AES_KEYS_tfs = {
856    "ACB_USE_AES_KEYS is SET",
857    "ACB_USE_AES_KEYS is NOT SET",
858 };
859 static const true_false_string samr_ConnectAccessMask_SAMR_ACCESS_CONNECT_TO_SERVER_tfs = {
860    "SAMR_ACCESS_CONNECT_TO_SERVER is SET",
861    "SAMR_ACCESS_CONNECT_TO_SERVER is NOT SET",
862 };
863 static const true_false_string samr_ConnectAccessMask_SAMR_ACCESS_SHUTDOWN_SERVER_tfs = {
864    "SAMR_ACCESS_SHUTDOWN_SERVER is SET",
865    "SAMR_ACCESS_SHUTDOWN_SERVER is NOT SET",
866 };
867 static const true_false_string samr_ConnectAccessMask_SAMR_ACCESS_INITIALIZE_SERVER_tfs = {
868    "SAMR_ACCESS_INITIALIZE_SERVER is SET",
869    "SAMR_ACCESS_INITIALIZE_SERVER is NOT SET",
870 };
871 static const true_false_string samr_ConnectAccessMask_SAMR_ACCESS_CREATE_DOMAIN_tfs = {
872    "SAMR_ACCESS_CREATE_DOMAIN is SET",
873    "SAMR_ACCESS_CREATE_DOMAIN is NOT SET",
874 };
875 static const true_false_string samr_ConnectAccessMask_SAMR_ACCESS_ENUM_DOMAINS_tfs = {
876    "SAMR_ACCESS_ENUM_DOMAINS is SET",
877    "SAMR_ACCESS_ENUM_DOMAINS is NOT SET",
878 };
879 static const true_false_string samr_ConnectAccessMask_SAMR_ACCESS_LOOKUP_DOMAIN_tfs = {
880    "SAMR_ACCESS_LOOKUP_DOMAIN is SET",
881    "SAMR_ACCESS_LOOKUP_DOMAIN is NOT SET",
882 };
883 static const true_false_string samr_UserAccessMask_SAMR_USER_ACCESS_GET_NAME_ETC_tfs = {
884    "SAMR_USER_ACCESS_GET_NAME_ETC is SET",
885    "SAMR_USER_ACCESS_GET_NAME_ETC is NOT SET",
886 };
887 static const true_false_string samr_UserAccessMask_SAMR_USER_ACCESS_GET_LOCALE_tfs = {
888    "SAMR_USER_ACCESS_GET_LOCALE is SET",
889    "SAMR_USER_ACCESS_GET_LOCALE is NOT SET",
890 };
891 static const true_false_string samr_UserAccessMask_SAMR_USER_ACCESS_SET_LOC_COM_tfs = {
892    "SAMR_USER_ACCESS_SET_LOC_COM is SET",
893    "SAMR_USER_ACCESS_SET_LOC_COM is NOT SET",
894 };
895 static const true_false_string samr_UserAccessMask_SAMR_USER_ACCESS_GET_LOGONINFO_tfs = {
896    "SAMR_USER_ACCESS_GET_LOGONINFO is SET",
897    "SAMR_USER_ACCESS_GET_LOGONINFO is NOT SET",
898 };
899 static const true_false_string samr_UserAccessMask_SAMR_USER_ACCESS_GET_ATTRIBUTES_tfs = {
900    "SAMR_USER_ACCESS_GET_ATTRIBUTES is SET",
901    "SAMR_USER_ACCESS_GET_ATTRIBUTES is NOT SET",
902 };
903 static const true_false_string samr_UserAccessMask_SAMR_USER_ACCESS_SET_ATTRIBUTES_tfs = {
904    "SAMR_USER_ACCESS_SET_ATTRIBUTES is SET",
905    "SAMR_USER_ACCESS_SET_ATTRIBUTES is NOT SET",
906 };
907 static const true_false_string samr_UserAccessMask_SAMR_USER_ACCESS_CHANGE_PASSWORD_tfs = {
908    "SAMR_USER_ACCESS_CHANGE_PASSWORD is SET",
909    "SAMR_USER_ACCESS_CHANGE_PASSWORD is NOT SET",
910 };
911 static const true_false_string samr_UserAccessMask_SAMR_USER_ACCESS_SET_PASSWORD_tfs = {
912    "SAMR_USER_ACCESS_SET_PASSWORD is SET",
913    "SAMR_USER_ACCESS_SET_PASSWORD is NOT SET",
914 };
915 static const true_false_string samr_UserAccessMask_SAMR_USER_ACCESS_GET_GROUPS_tfs = {
916    "SAMR_USER_ACCESS_GET_GROUPS is SET",
917    "SAMR_USER_ACCESS_GET_GROUPS is NOT SET",
918 };
919 static const true_false_string samr_UserAccessMask_SAMR_USER_ACCESS_GET_GROUP_MEMBERSHIP_tfs = {
920    "SAMR_USER_ACCESS_GET_GROUP_MEMBERSHIP is SET",
921    "SAMR_USER_ACCESS_GET_GROUP_MEMBERSHIP is NOT SET",
922 };
923 static const true_false_string samr_UserAccessMask_SAMR_USER_ACCESS_CHANGE_GROUP_MEMBERSHIP_tfs = {
924    "SAMR_USER_ACCESS_CHANGE_GROUP_MEMBERSHIP is SET",
925    "SAMR_USER_ACCESS_CHANGE_GROUP_MEMBERSHIP is NOT SET",
926 };
927 static const true_false_string samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_INFO_1_tfs = {
928    "SAMR_DOMAIN_ACCESS_LOOKUP_INFO_1 is SET",
929    "SAMR_DOMAIN_ACCESS_LOOKUP_INFO_1 is NOT SET",
930 };
931 static const true_false_string samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_1_tfs = {
932    "SAMR_DOMAIN_ACCESS_SET_INFO_1 is SET",
933    "SAMR_DOMAIN_ACCESS_SET_INFO_1 is NOT SET",
934 };
935 static const true_false_string samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_INFO_2_tfs = {
936    "SAMR_DOMAIN_ACCESS_LOOKUP_INFO_2 is SET",
937    "SAMR_DOMAIN_ACCESS_LOOKUP_INFO_2 is NOT SET",
938 };
939 static const true_false_string samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_2_tfs = {
940    "SAMR_DOMAIN_ACCESS_SET_INFO_2 is SET",
941    "SAMR_DOMAIN_ACCESS_SET_INFO_2 is NOT SET",
942 };
943 static const true_false_string samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_USER_tfs = {
944    "SAMR_DOMAIN_ACCESS_CREATE_USER is SET",
945    "SAMR_DOMAIN_ACCESS_CREATE_USER is NOT SET",
946 };
947 static const true_false_string samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_GROUP_tfs = {
948    "SAMR_DOMAIN_ACCESS_CREATE_GROUP is SET",
949    "SAMR_DOMAIN_ACCESS_CREATE_GROUP is NOT SET",
950 };
951 static const true_false_string samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_ALIAS_tfs = {
952    "SAMR_DOMAIN_ACCESS_CREATE_ALIAS is SET",
953    "SAMR_DOMAIN_ACCESS_CREATE_ALIAS is NOT SET",
954 };
955 static const true_false_string samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_ALIAS_tfs = {
956    "SAMR_DOMAIN_ACCESS_LOOKUP_ALIAS is SET",
957    "SAMR_DOMAIN_ACCESS_LOOKUP_ALIAS is NOT SET",
958 };
959 static const true_false_string samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_ENUM_ACCOUNTS_tfs = {
960    "SAMR_DOMAIN_ACCESS_ENUM_ACCOUNTS is SET",
961    "SAMR_DOMAIN_ACCESS_ENUM_ACCOUNTS is NOT SET",
962 };
963 static const true_false_string samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT_tfs = {
964    "SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT is SET",
965    "SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT is NOT SET",
966 };
967 static const true_false_string samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_3_tfs = {
968    "SAMR_DOMAIN_ACCESS_SET_INFO_3 is SET",
969    "SAMR_DOMAIN_ACCESS_SET_INFO_3 is NOT SET",
970 };
971 static const true_false_string samr_GroupAccessMask_SAMR_GROUP_ACCESS_LOOKUP_INFO_tfs = {
972    "SAMR_GROUP_ACCESS_LOOKUP_INFO is SET",
973    "SAMR_GROUP_ACCESS_LOOKUP_INFO is NOT SET",
974 };
975 static const true_false_string samr_GroupAccessMask_SAMR_GROUP_ACCESS_SET_INFO_tfs = {
976    "SAMR_GROUP_ACCESS_SET_INFO is SET",
977    "SAMR_GROUP_ACCESS_SET_INFO is NOT SET",
978 };
979 static const true_false_string samr_GroupAccessMask_SAMR_GROUP_ACCESS_ADD_MEMBER_tfs = {
980    "SAMR_GROUP_ACCESS_ADD_MEMBER is SET",
981    "SAMR_GROUP_ACCESS_ADD_MEMBER is NOT SET",
982 };
983 static const true_false_string samr_GroupAccessMask_SAMR_GROUP_ACCESS_REMOVE_MEMBER_tfs = {
984    "SAMR_GROUP_ACCESS_REMOVE_MEMBER is SET",
985    "SAMR_GROUP_ACCESS_REMOVE_MEMBER is NOT SET",
986 };
987 static const true_false_string samr_GroupAccessMask_SAMR_GROUP_ACCESS_GET_MEMBERS_tfs = {
988    "SAMR_GROUP_ACCESS_GET_MEMBERS is SET",
989    "SAMR_GROUP_ACCESS_GET_MEMBERS is NOT SET",
990 };
991 static const true_false_string samr_AliasAccessMask_SAMR_ALIAS_ACCESS_ADD_MEMBER_tfs = {
992    "SAMR_ALIAS_ACCESS_ADD_MEMBER is SET",
993    "SAMR_ALIAS_ACCESS_ADD_MEMBER is NOT SET",
994 };
995 static const true_false_string samr_AliasAccessMask_SAMR_ALIAS_ACCESS_REMOVE_MEMBER_tfs = {
996    "SAMR_ALIAS_ACCESS_REMOVE_MEMBER is SET",
997    "SAMR_ALIAS_ACCESS_REMOVE_MEMBER is NOT SET",
998 };
999 static const true_false_string samr_AliasAccessMask_SAMR_ALIAS_ACCESS_GET_MEMBERS_tfs = {
1000    "SAMR_ALIAS_ACCESS_GET_MEMBERS is SET",
1001    "SAMR_ALIAS_ACCESS_GET_MEMBERS is NOT SET",
1002 };
1003 static const true_false_string samr_AliasAccessMask_SAMR_ALIAS_ACCESS_LOOKUP_INFO_tfs = {
1004    "SAMR_ALIAS_ACCESS_LOOKUP_INFO is SET",
1005    "SAMR_ALIAS_ACCESS_LOOKUP_INFO is NOT SET",
1006 };
1007 static const true_false_string samr_AliasAccessMask_SAMR_ALIAS_ACCESS_SET_INFO_tfs = {
1008    "SAMR_ALIAS_ACCESS_SET_INFO is SET",
1009    "SAMR_ALIAS_ACCESS_SET_INFO is NOT SET",
1010 };
1011 static int samr_dissect_element_SamEntry_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1012 static int samr_dissect_element_SamEntry_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1013 static int samr_dissect_element_SamArray_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1014 static int samr_dissect_element_SamArray_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1015 static int samr_dissect_element_SamArray_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1016 static int samr_dissect_element_SamArray_entries__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1017 const value_string samr_samr_DomainInfoClass_vals[] = {
1018         { DomainPasswordInformation, "DomainPasswordInformation" },
1019         { DomainGeneralInformation, "DomainGeneralInformation" },
1020         { DomainLogoffInformation, "DomainLogoffInformation" },
1021         { DomainOemInformation, "DomainOemInformation" },
1022         { DomainNameInformation, "DomainNameInformation" },
1023         { DomainReplicationInformation, "DomainReplicationInformation" },
1024         { DomainServerRoleInformation, "DomainServerRoleInformation" },
1025         { DomainModifiedInformation, "DomainModifiedInformation" },
1026         { DomainStateInformation, "DomainStateInformation" },
1027         { DomainUasInformation, "DomainUasInformation" },
1028         { DomainGeneralInformation2, "DomainGeneralInformation2" },
1029         { DomainLockoutInformation, "DomainLockoutInformation" },
1030         { DomainModifiedInformation2, "DomainModifiedInformation2" },
1031 { 0, NULL }
1032 };
1033 const value_string samr_samr_Role_vals[] = {
1034         { SAMR_ROLE_STANDALONE, "SAMR_ROLE_STANDALONE" },
1035         { SAMR_ROLE_DOMAIN_MEMBER, "SAMR_ROLE_DOMAIN_MEMBER" },
1036         { SAMR_ROLE_DOMAIN_BDC, "SAMR_ROLE_DOMAIN_BDC" },
1037         { SAMR_ROLE_DOMAIN_PDC, "SAMR_ROLE_DOMAIN_PDC" },
1038 { 0, NULL }
1039 };
1040 static const true_false_string samr_PasswordProperties_DOMAIN_PASSWORD_COMPLEX_tfs = {
1041    "DOMAIN_PASSWORD_COMPLEX is SET",
1042    "DOMAIN_PASSWORD_COMPLEX is NOT SET",
1043 };
1044 static const true_false_string samr_PasswordProperties_DOMAIN_PASSWORD_NO_ANON_CHANGE_tfs = {
1045    "DOMAIN_PASSWORD_NO_ANON_CHANGE is SET",
1046    "DOMAIN_PASSWORD_NO_ANON_CHANGE is NOT SET",
1047 };
1048 static const true_false_string samr_PasswordProperties_DOMAIN_PASSWORD_NO_CLEAR_CHANGE_tfs = {
1049    "DOMAIN_PASSWORD_NO_CLEAR_CHANGE is SET",
1050    "DOMAIN_PASSWORD_NO_CLEAR_CHANGE is NOT SET",
1051 };
1052 static const true_false_string samr_PasswordProperties_DOMAIN_PASSWORD_LOCKOUT_ADMINS_tfs = {
1053    "DOMAIN_PASSWORD_LOCKOUT_ADMINS is SET",
1054    "DOMAIN_PASSWORD_LOCKOUT_ADMINS is NOT SET",
1055 };
1056 static const true_false_string samr_PasswordProperties_DOMAIN_PASSWORD_STORE_CLEARTEXT_tfs = {
1057    "DOMAIN_PASSWORD_STORE_CLEARTEXT is SET",
1058    "DOMAIN_PASSWORD_STORE_CLEARTEXT is NOT SET",
1059 };
1060 static const true_false_string samr_PasswordProperties_DOMAIN_REFUSE_PASSWORD_CHANGE_tfs = {
1061    "DOMAIN_REFUSE_PASSWORD_CHANGE is SET",
1062    "DOMAIN_REFUSE_PASSWORD_CHANGE is NOT SET",
1063 };
1064 const value_string samr_samr_DomainServerState_vals[] = {
1065         { DOMAIN_SERVER_ENABLED, "DOMAIN_SERVER_ENABLED" },
1066         { DOMAIN_SERVER_DISABLED, "DOMAIN_SERVER_DISABLED" },
1067 { 0, NULL }
1068 };
1069 static int samr_dissect_element_DomInfo1_min_password_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1070 static int samr_dissect_element_DomInfo1_password_history_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1071 static int samr_dissect_element_DomInfo1_password_properties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1072 static int samr_dissect_element_DomInfo1_max_password_age(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1073 static int samr_dissect_element_DomInfo1_min_password_age(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1074 static int samr_dissect_element_DomGeneralInformation_force_logoff_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1075 static int samr_dissect_element_DomGeneralInformation_oem_information(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1076 static int samr_dissect_element_DomGeneralInformation_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1077 static int samr_dissect_element_DomGeneralInformation_primary(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1078 static int samr_dissect_element_DomGeneralInformation_sequence_num(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1079 static int samr_dissect_element_DomGeneralInformation_domain_server_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1080 static int samr_dissect_element_DomGeneralInformation_role(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1081 static int samr_dissect_element_DomGeneralInformation_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1082 static int samr_dissect_element_DomGeneralInformation_num_users(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1083 static int samr_dissect_element_DomGeneralInformation_num_groups(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1084 static int samr_dissect_element_DomGeneralInformation_num_aliases(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1085 static int samr_dissect_element_DomInfo3_force_logoff_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1086 static int samr_dissect_element_DomOEMInformation_oem_information(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1087 static int samr_dissect_element_DomInfo5_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1088 static int samr_dissect_element_DomInfo6_primary(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1089 static int samr_dissect_element_DomInfo7_role(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1090 static int samr_dissect_element_DomInfo8_sequence_num(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1091 static int samr_dissect_element_DomInfo8_domain_create_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1092 static int samr_dissect_element_DomInfo9_domain_server_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1093 static int samr_dissect_element_DomGeneralInformation2_general(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1094 static int samr_dissect_element_DomGeneralInformation2_lockout_duration(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1095 static int samr_dissect_element_DomGeneralInformation2_lockout_window(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1096 static int samr_dissect_element_DomGeneralInformation2_lockout_threshold(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1097 static int samr_dissect_element_DomInfo12_lockout_duration(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1098 static int samr_dissect_element_DomInfo12_lockout_window(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1099 static int samr_dissect_element_DomInfo12_lockout_threshold(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1100 static int samr_dissect_element_DomInfo13_sequence_num(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1101 static int samr_dissect_element_DomInfo13_domain_create_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1102 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_, guint8 *drep _U_);
1103 static int samr_dissect_element_DomainInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1104 static int samr_dissect_element_DomainInfo_general(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1105 static int samr_dissect_element_DomainInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1106 static int samr_dissect_element_DomainInfo_oem(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1107 static int samr_dissect_element_DomainInfo_info5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1108 static int samr_dissect_element_DomainInfo_info6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1109 static int samr_dissect_element_DomainInfo_info7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1110 static int samr_dissect_element_DomainInfo_info8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1111 static int samr_dissect_element_DomainInfo_info9(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1112 static int samr_dissect_element_DomainInfo_general2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1113 static int samr_dissect_element_DomainInfo_info12(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1114 static int samr_dissect_element_DomainInfo_info13(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1115 static int samr_dissect_element_Ids_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1116 static int samr_dissect_element_Ids_ids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1117 static int samr_dissect_element_Ids_ids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1118 static int samr_dissect_element_Ids_ids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1119 static const true_false_string samr_GroupAttrs_SE_GROUP_MANDATORY_tfs = {
1120    "SE_GROUP_MANDATORY is SET",
1121    "SE_GROUP_MANDATORY is NOT SET",
1122 };
1123 static const true_false_string samr_GroupAttrs_SE_GROUP_ENABLED_BY_DEFAULT_tfs = {
1124    "SE_GROUP_ENABLED_BY_DEFAULT is SET",
1125    "SE_GROUP_ENABLED_BY_DEFAULT is NOT SET",
1126 };
1127 static const true_false_string samr_GroupAttrs_SE_GROUP_ENABLED_tfs = {
1128    "SE_GROUP_ENABLED is SET",
1129    "SE_GROUP_ENABLED is NOT SET",
1130 };
1131 static const true_false_string samr_GroupAttrs_SE_GROUP_OWNER_tfs = {
1132    "SE_GROUP_OWNER is SET",
1133    "SE_GROUP_OWNER is NOT SET",
1134 };
1135 static const true_false_string samr_GroupAttrs_SE_GROUP_USE_FOR_DENY_ONLY_tfs = {
1136    "SE_GROUP_USE_FOR_DENY_ONLY is SET",
1137    "SE_GROUP_USE_FOR_DENY_ONLY is NOT SET",
1138 };
1139 static const true_false_string samr_GroupAttrs_SE_GROUP_RESOURCE_tfs = {
1140    "SE_GROUP_RESOURCE is SET",
1141    "SE_GROUP_RESOURCE is NOT SET",
1142 };
1143 static const true_false_string samr_GroupAttrs_SE_GROUP_LOGON_ID_tfs = {
1144    "SE_GROUP_LOGON_ID is SET",
1145    "SE_GROUP_LOGON_ID is NOT SET",
1146 };
1147 static int samr_dissect_element_GroupInfoAll_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1148 static int samr_dissect_element_GroupInfoAll_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1149 static int samr_dissect_element_GroupInfoAll_num_members(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1150 static int samr_dissect_element_GroupInfoAll_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1151 static int samr_dissect_element_GroupInfoAttributes_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1152 static int samr_dissect_element_GroupInfoDescription_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1153 const value_string samr_samr_GroupInfoEnum_vals[] = {
1154         { GROUPINFOALL, "GROUPINFOALL" },
1155         { GROUPINFONAME, "GROUPINFONAME" },
1156         { GROUPINFOATTRIBUTES, "GROUPINFOATTRIBUTES" },
1157         { GROUPINFODESCRIPTION, "GROUPINFODESCRIPTION" },
1158         { GROUPINFOALL2, "GROUPINFOALL2" },
1159 { 0, NULL }
1160 };
1161 static int samr_dissect_element_GroupInfo_all(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1162 static int samr_dissect_element_GroupInfo_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1163 static int samr_dissect_element_GroupInfo_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1164 static int samr_dissect_element_GroupInfo_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1165 static int samr_dissect_element_GroupInfo_all2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1166 static int samr_dissect_element_RidAttrArray_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1167 static int samr_dissect_element_RidAttrArray_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1168 static int samr_dissect_element_RidAttrArray_rids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1169 static int samr_dissect_element_RidAttrArray_rids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1170 static int samr_dissect_element_RidAttrArray_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1171 static int samr_dissect_element_RidAttrArray_attributes_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1172 static int samr_dissect_element_RidAttrArray_attributes__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1173 static int samr_dissect_element_AliasInfoAll_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1174 static int samr_dissect_element_AliasInfoAll_num_members(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1175 static int samr_dissect_element_AliasInfoAll_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1176 const value_string samr_samr_AliasInfoEnum_vals[] = {
1177         { ALIASINFOALL, "ALIASINFOALL" },
1178         { ALIASINFONAME, "ALIASINFONAME" },
1179         { ALIASINFODESCRIPTION, "ALIASINFODESCRIPTION" },
1180 { 0, NULL }
1181 };
1182 static int samr_dissect_element_AliasInfo_all(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1183 static int samr_dissect_element_AliasInfo_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1184 static int samr_dissect_element_AliasInfo_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1185 const value_string samr_samr_UserInfoLevel_vals[] = {
1186         { UserGeneralInformation, "UserGeneralInformation" },
1187         { UserPreferencesInformation, "UserPreferencesInformation" },
1188         { UserLogonInformation, "UserLogonInformation" },
1189         { UserLogonHoursInformation, "UserLogonHoursInformation" },
1190         { UserAccountInformation, "UserAccountInformation" },
1191         { UserNameInformation, "UserNameInformation" },
1192         { UserAccountNameInformation, "UserAccountNameInformation" },
1193         { UserFullNameInformation, "UserFullNameInformation" },
1194         { UserPrimaryGroupInformation, "UserPrimaryGroupInformation" },
1195         { UserHomeInformation, "UserHomeInformation" },
1196         { UserScriptInformation, "UserScriptInformation" },
1197         { UserProfileInformation, "UserProfileInformation" },
1198         { UserAdminCommentInformation, "UserAdminCommentInformation" },
1199         { UserWorkStationsInformation, "UserWorkStationsInformation" },
1200         { UserControlInformation, "UserControlInformation" },
1201         { UserExpiresInformation, "UserExpiresInformation" },
1202         { UserInternal1Information, "UserInternal1Information" },
1203         { UserParametersInformation, "UserParametersInformation" },
1204         { UserAllInformation, "UserAllInformation" },
1205         { UserInternal4Information, "UserInternal4Information" },
1206         { UserInternal5Information, "UserInternal5Information" },
1207         { UserInternal4InformationNew, "UserInternal4InformationNew" },
1208         { UserInternal5InformationNew, "UserInternal5InformationNew" },
1209 { 0, NULL }
1210 };
1211 static int samr_dissect_element_UserInfo1_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1212 static int samr_dissect_element_UserInfo1_full_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1213 static int samr_dissect_element_UserInfo1_primary_gid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1214 static int samr_dissect_element_UserInfo1_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1215 static int samr_dissect_element_UserInfo1_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1216 static int samr_dissect_element_UserInfo2_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1217 static int samr_dissect_element_UserInfo2_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1218 static int samr_dissect_element_UserInfo2_country_code(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1219 static int samr_dissect_element_UserInfo2_code_page(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1220 static int samr_dissect_element_LogonHours_units_per_week(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1221 static int samr_dissect_element_LogonHours_bits(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1222 static int samr_dissect_element_LogonHours_bits_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1223 static int samr_dissect_element_LogonHours_bits__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1224 static int samr_dissect_element_UserInfo3_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1225 static int samr_dissect_element_UserInfo3_full_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1226 static int samr_dissect_element_UserInfo3_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1227 static int samr_dissect_element_UserInfo3_primary_gid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1228 static int samr_dissect_element_UserInfo3_home_directory(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1229 static int samr_dissect_element_UserInfo3_home_drive(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1230 static int samr_dissect_element_UserInfo3_logon_script(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1231 static int samr_dissect_element_UserInfo3_profile_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1232 static int samr_dissect_element_UserInfo3_workstations(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1233 static int samr_dissect_element_UserInfo3_last_logon(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1234 static int samr_dissect_element_UserInfo3_last_logoff(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1235 static int samr_dissect_element_UserInfo3_last_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1236 static int samr_dissect_element_UserInfo3_allow_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1237 static int samr_dissect_element_UserInfo3_force_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1238 static int samr_dissect_element_UserInfo3_logon_hours(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1239 static int samr_dissect_element_UserInfo3_bad_password_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1240 static int samr_dissect_element_UserInfo3_logon_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1241 static int samr_dissect_element_UserInfo3_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1242 static int samr_dissect_element_UserInfo4_logon_hours(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1243 static int samr_dissect_element_UserInfo5_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1244 static int samr_dissect_element_UserInfo5_full_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1245 static int samr_dissect_element_UserInfo5_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1246 static int samr_dissect_element_UserInfo5_primary_gid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1247 static int samr_dissect_element_UserInfo5_home_directory(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1248 static int samr_dissect_element_UserInfo5_home_drive(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1249 static int samr_dissect_element_UserInfo5_logon_script(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1250 static int samr_dissect_element_UserInfo5_profile_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1251 static int samr_dissect_element_UserInfo5_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1252 static int samr_dissect_element_UserInfo5_workstations(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1253 static int samr_dissect_element_UserInfo5_last_logon(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1254 static int samr_dissect_element_UserInfo5_last_logoff(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1255 static int samr_dissect_element_UserInfo5_logon_hours(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1256 static int samr_dissect_element_UserInfo5_bad_password_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1257 static int samr_dissect_element_UserInfo5_logon_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1258 static int samr_dissect_element_UserInfo5_last_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1259 static int samr_dissect_element_UserInfo5_acct_expiry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1260 static int samr_dissect_element_UserInfo5_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1261 static int samr_dissect_element_UserInfo6_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1262 static int samr_dissect_element_UserInfo6_full_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1263 static int samr_dissect_element_UserInfo7_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1264 static int samr_dissect_element_UserInfo8_full_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1265 static int samr_dissect_element_UserInfo9_primary_gid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1266 static int samr_dissect_element_UserInfo10_home_directory(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1267 static int samr_dissect_element_UserInfo10_home_drive(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1268 static int samr_dissect_element_UserInfo11_logon_script(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1269 static int samr_dissect_element_UserInfo12_profile_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1270 static int samr_dissect_element_UserInfo13_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1271 static int samr_dissect_element_UserInfo14_workstations(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1272 static int samr_dissect_element_UserInfo16_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1273 static int samr_dissect_element_UserInfo17_acct_expiry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1274 static int samr_dissect_element_Password_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1275 static int samr_dissect_element_Password_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1276 static int samr_dissect_element_UserInfo18_nt_pwd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1277 static int samr_dissect_element_UserInfo18_lm_pwd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1278 static int samr_dissect_element_UserInfo18_nt_pwd_active(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1279 static int samr_dissect_element_UserInfo18_lm_pwd_active(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1280 static int samr_dissect_element_UserInfo18_password_expired(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1281 static int samr_dissect_element_UserInfo20_parameters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1282 static const true_false_string samr_FieldsPresent_SAMR_FIELD_ACCOUNT_NAME_tfs = {
1283    "SAMR_FIELD_ACCOUNT_NAME is SET",
1284    "SAMR_FIELD_ACCOUNT_NAME is NOT SET",
1285 };
1286 static const true_false_string samr_FieldsPresent_SAMR_FIELD_FULL_NAME_tfs = {
1287    "SAMR_FIELD_FULL_NAME is SET",
1288    "SAMR_FIELD_FULL_NAME is NOT SET",
1289 };
1290 static const true_false_string samr_FieldsPresent_SAMR_FIELD_RID_tfs = {
1291    "SAMR_FIELD_RID is SET",
1292    "SAMR_FIELD_RID is NOT SET",
1293 };
1294 static const true_false_string samr_FieldsPresent_SAMR_FIELD_PRIMARY_GID_tfs = {
1295    "SAMR_FIELD_PRIMARY_GID is SET",
1296    "SAMR_FIELD_PRIMARY_GID is NOT SET",
1297 };
1298 static const true_false_string samr_FieldsPresent_SAMR_FIELD_DESCRIPTION_tfs = {
1299    "SAMR_FIELD_DESCRIPTION is SET",
1300    "SAMR_FIELD_DESCRIPTION is NOT SET",
1301 };
1302 static const true_false_string samr_FieldsPresent_SAMR_FIELD_COMMENT_tfs = {
1303    "SAMR_FIELD_COMMENT is SET",
1304    "SAMR_FIELD_COMMENT is NOT SET",
1305 };
1306 static const true_false_string samr_FieldsPresent_SAMR_FIELD_HOME_DIRECTORY_tfs = {
1307    "SAMR_FIELD_HOME_DIRECTORY is SET",
1308    "SAMR_FIELD_HOME_DIRECTORY is NOT SET",
1309 };
1310 static const true_false_string samr_FieldsPresent_SAMR_FIELD_HOME_DRIVE_tfs = {
1311    "SAMR_FIELD_HOME_DRIVE is SET",
1312    "SAMR_FIELD_HOME_DRIVE is NOT SET",
1313 };
1314 static const true_false_string samr_FieldsPresent_SAMR_FIELD_LOGON_SCRIPT_tfs = {
1315    "SAMR_FIELD_LOGON_SCRIPT is SET",
1316    "SAMR_FIELD_LOGON_SCRIPT is NOT SET",
1317 };
1318 static const true_false_string samr_FieldsPresent_SAMR_FIELD_PROFILE_PATH_tfs = {
1319    "SAMR_FIELD_PROFILE_PATH is SET",
1320    "SAMR_FIELD_PROFILE_PATH is NOT SET",
1321 };
1322 static const true_false_string samr_FieldsPresent_SAMR_FIELD_WORKSTATIONS_tfs = {
1323    "SAMR_FIELD_WORKSTATIONS is SET",
1324    "SAMR_FIELD_WORKSTATIONS is NOT SET",
1325 };
1326 static const true_false_string samr_FieldsPresent_SAMR_FIELD_LAST_LOGON_tfs = {
1327    "SAMR_FIELD_LAST_LOGON is SET",
1328    "SAMR_FIELD_LAST_LOGON is NOT SET",
1329 };
1330 static const true_false_string samr_FieldsPresent_SAMR_FIELD_LAST_LOGOFF_tfs = {
1331    "SAMR_FIELD_LAST_LOGOFF is SET",
1332    "SAMR_FIELD_LAST_LOGOFF is NOT SET",
1333 };
1334 static const true_false_string samr_FieldsPresent_SAMR_FIELD_LOGON_HOURS_tfs = {
1335    "SAMR_FIELD_LOGON_HOURS is SET",
1336    "SAMR_FIELD_LOGON_HOURS is NOT SET",
1337 };
1338 static const true_false_string samr_FieldsPresent_SAMR_FIELD_BAD_PWD_COUNT_tfs = {
1339    "SAMR_FIELD_BAD_PWD_COUNT is SET",
1340    "SAMR_FIELD_BAD_PWD_COUNT is NOT SET",
1341 };
1342 static const true_false_string samr_FieldsPresent_SAMR_FIELD_NUM_LOGONS_tfs = {
1343    "SAMR_FIELD_NUM_LOGONS is SET",
1344    "SAMR_FIELD_NUM_LOGONS is NOT SET",
1345 };
1346 static const true_false_string samr_FieldsPresent_SAMR_FIELD_ALLOW_PWD_CHANGE_tfs = {
1347    "SAMR_FIELD_ALLOW_PWD_CHANGE is SET",
1348    "SAMR_FIELD_ALLOW_PWD_CHANGE is NOT SET",
1349 };
1350 static const true_false_string samr_FieldsPresent_SAMR_FIELD_FORCE_PWD_CHANGE_tfs = {
1351    "SAMR_FIELD_FORCE_PWD_CHANGE is SET",
1352    "SAMR_FIELD_FORCE_PWD_CHANGE is NOT SET",
1353 };
1354 static const true_false_string samr_FieldsPresent_SAMR_FIELD_LAST_PWD_CHANGE_tfs = {
1355    "SAMR_FIELD_LAST_PWD_CHANGE is SET",
1356    "SAMR_FIELD_LAST_PWD_CHANGE is NOT SET",
1357 };
1358 static const true_false_string samr_FieldsPresent_SAMR_FIELD_ACCT_EXPIRY_tfs = {
1359    "SAMR_FIELD_ACCT_EXPIRY is SET",
1360    "SAMR_FIELD_ACCT_EXPIRY is NOT SET",
1361 };
1362 static const true_false_string samr_FieldsPresent_SAMR_FIELD_ACCT_FLAGS_tfs = {
1363    "SAMR_FIELD_ACCT_FLAGS is SET",
1364    "SAMR_FIELD_ACCT_FLAGS is NOT SET",
1365 };
1366 static const true_false_string samr_FieldsPresent_SAMR_FIELD_PARAMETERS_tfs = {
1367    "SAMR_FIELD_PARAMETERS is SET",
1368    "SAMR_FIELD_PARAMETERS is NOT SET",
1369 };
1370 static const true_false_string samr_FieldsPresent_SAMR_FIELD_COUNTRY_CODE_tfs = {
1371    "SAMR_FIELD_COUNTRY_CODE is SET",
1372    "SAMR_FIELD_COUNTRY_CODE is NOT SET",
1373 };
1374 static const true_false_string samr_FieldsPresent_SAMR_FIELD_CODE_PAGE_tfs = {
1375    "SAMR_FIELD_CODE_PAGE is SET",
1376    "SAMR_FIELD_CODE_PAGE is NOT SET",
1377 };
1378 static const true_false_string samr_FieldsPresent_SAMR_FIELD_NT_PASSWORD_PRESENT_tfs = {
1379    "SAMR_FIELD_NT_PASSWORD_PRESENT is SET",
1380    "SAMR_FIELD_NT_PASSWORD_PRESENT is NOT SET",
1381 };
1382 static const true_false_string samr_FieldsPresent_SAMR_FIELD_LM_PASSWORD_PRESENT_tfs = {
1383    "SAMR_FIELD_LM_PASSWORD_PRESENT is SET",
1384    "SAMR_FIELD_LM_PASSWORD_PRESENT is NOT SET",
1385 };
1386 static const true_false_string samr_FieldsPresent_SAMR_FIELD_PRIVATE_DATA_tfs = {
1387    "SAMR_FIELD_PRIVATE_DATA is SET",
1388    "SAMR_FIELD_PRIVATE_DATA is NOT SET",
1389 };
1390 static const true_false_string samr_FieldsPresent_SAMR_FIELD_EXPIRED_FLAG_tfs = {
1391    "SAMR_FIELD_EXPIRED_FLAG is SET",
1392    "SAMR_FIELD_EXPIRED_FLAG is NOT SET",
1393 };
1394 static const true_false_string samr_FieldsPresent_SAMR_FIELD_SEC_DESC_tfs = {
1395    "SAMR_FIELD_SEC_DESC is SET",
1396    "SAMR_FIELD_SEC_DESC is NOT SET",
1397 };
1398 static const true_false_string samr_FieldsPresent_SAMR_FIELD_OWF_PWD_tfs = {
1399    "SAMR_FIELD_OWF_PWD is SET",
1400    "SAMR_FIELD_OWF_PWD is NOT SET",
1401 };
1402 static int samr_dissect_element_UserInfo21_last_logon(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1403 static int samr_dissect_element_UserInfo21_last_logoff(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1404 static int samr_dissect_element_UserInfo21_last_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1405 static int samr_dissect_element_UserInfo21_acct_expiry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1406 static int samr_dissect_element_UserInfo21_allow_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1407 static int samr_dissect_element_UserInfo21_force_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1408 static int samr_dissect_element_UserInfo21_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1409 static int samr_dissect_element_UserInfo21_full_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1410 static int samr_dissect_element_UserInfo21_home_directory(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1411 static int samr_dissect_element_UserInfo21_home_drive(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1412 static int samr_dissect_element_UserInfo21_logon_script(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1413 static int samr_dissect_element_UserInfo21_profile_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1414 static int samr_dissect_element_UserInfo21_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1415 static int samr_dissect_element_UserInfo21_workstations(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1416 static int samr_dissect_element_UserInfo21_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1417 static int samr_dissect_element_UserInfo21_parameters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1418 static int samr_dissect_element_UserInfo21_lm_owf_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1419 static int samr_dissect_element_UserInfo21_nt_owf_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1420 static int samr_dissect_element_UserInfo21_private_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1421 static int samr_dissect_element_UserInfo21_buf_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1422 static int samr_dissect_element_UserInfo21_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1423 static int samr_dissect_element_UserInfo21_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1424 static int samr_dissect_element_UserInfo21_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1425 static int samr_dissect_element_UserInfo21_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1426 static int samr_dissect_element_UserInfo21_primary_gid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1427 static int samr_dissect_element_UserInfo21_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1428 static int samr_dissect_element_UserInfo21_fields_present(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1429 static int samr_dissect_element_UserInfo21_logon_hours(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1430 static int samr_dissect_element_UserInfo21_bad_password_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1431 static int samr_dissect_element_UserInfo21_logon_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1432 static int samr_dissect_element_UserInfo21_country_code(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1433 static int samr_dissect_element_UserInfo21_code_page(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1434 static int samr_dissect_element_UserInfo21_lm_password_set(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1435 static int samr_dissect_element_UserInfo21_nt_password_set(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1436 static int samr_dissect_element_UserInfo21_password_expired(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1437 static int samr_dissect_element_UserInfo21_private_data_sensitive(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1438 static int samr_dissect_element_CryptPassword_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1439 static int samr_dissect_element_CryptPassword_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1440 static int samr_dissect_element_UserInfo23_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1441 static int samr_dissect_element_UserInfo23_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1442 static int samr_dissect_element_UserInfo24_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1443 static int samr_dissect_element_UserInfo24_password_expired(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1444 static int samr_dissect_element_CryptPasswordEx_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1445 static int samr_dissect_element_CryptPasswordEx_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1446 static int samr_dissect_element_UserInfo25_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1447 static int samr_dissect_element_UserInfo25_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1448 static int samr_dissect_element_UserInfo26_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1449 static int samr_dissect_element_UserInfo26_password_expired(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1450 static int samr_dissect_element_UserInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1451 static int samr_dissect_element_UserInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1452 static int samr_dissect_element_UserInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1453 static int samr_dissect_element_UserInfo_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1454 static int samr_dissect_element_UserInfo_info5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1455 static int samr_dissect_element_UserInfo_info6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1456 static int samr_dissect_element_UserInfo_info7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1457 static int samr_dissect_element_UserInfo_info8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1458 static int samr_dissect_element_UserInfo_info9(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1459 static int samr_dissect_element_UserInfo_info10(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1460 static int samr_dissect_element_UserInfo_info11(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1461 static int samr_dissect_element_UserInfo_info12(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1462 static int samr_dissect_element_UserInfo_info13(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1463 static int samr_dissect_element_UserInfo_info14(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1464 static int samr_dissect_element_UserInfo_info16(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1465 static int samr_dissect_element_UserInfo_info17(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1466 static int samr_dissect_element_UserInfo_info18(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1467 static int samr_dissect_element_UserInfo_info20(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1468 static int samr_dissect_element_UserInfo_info21(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1469 static int samr_dissect_element_UserInfo_info23(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1470 static int samr_dissect_element_UserInfo_info24(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1471 static int samr_dissect_element_UserInfo_info25(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1472 static int samr_dissect_element_UserInfo_info26(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1473 static int samr_dissect_element_RidWithAttribute_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1474 static int samr_dissect_element_RidWithAttribute_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1475 static int samr_dissect_element_RidWithAttributeArray_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1476 static int samr_dissect_element_RidWithAttributeArray_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1477 static int samr_dissect_element_RidWithAttributeArray_rids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1478 static int samr_dissect_element_RidWithAttributeArray_rids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1479 static int samr_dissect_element_DispEntryGeneral_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1480 static int samr_dissect_element_DispEntryGeneral_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1481 static int samr_dissect_element_DispEntryGeneral_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1482 static int samr_dissect_element_DispEntryGeneral_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1483 static int samr_dissect_element_DispEntryGeneral_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1484 static int samr_dissect_element_DispEntryGeneral_full_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1485 static int samr_dissect_element_DispInfoGeneral_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1486 static int samr_dissect_element_DispInfoGeneral_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1487 static int samr_dissect_element_DispInfoGeneral_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1488 static int samr_dissect_element_DispInfoGeneral_entries__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1489 static int samr_dissect_element_DispEntryFull_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1490 static int samr_dissect_element_DispEntryFull_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1491 static int samr_dissect_element_DispEntryFull_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1492 static int samr_dissect_element_DispEntryFull_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1493 static int samr_dissect_element_DispEntryFull_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1494 static int samr_dissect_element_DispInfoFull_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1495 static int samr_dissect_element_DispInfoFull_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1496 static int samr_dissect_element_DispInfoFull_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1497 static int samr_dissect_element_DispInfoFull_entries__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1498 static int samr_dissect_element_DispEntryFullGroup_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1499 static int samr_dissect_element_DispEntryFullGroup_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1500 static int samr_dissect_element_DispEntryFullGroup_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1501 static int samr_dissect_element_DispEntryFullGroup_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1502 static int samr_dissect_element_DispEntryFullGroup_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1503 static int samr_dissect_element_DispInfoFullGroups_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1504 static int samr_dissect_element_DispInfoFullGroups_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1505 static int samr_dissect_element_DispInfoFullGroups_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1506 static int samr_dissect_element_DispInfoFullGroups_entries__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1507 static int samr_dissect_element_DispEntryAscii_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1508 static int samr_dissect_element_DispEntryAscii_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1509 static int samr_dissect_element_DispInfoAscii_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1510 static int samr_dissect_element_DispInfoAscii_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1511 static int samr_dissect_element_DispInfoAscii_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1512 static int samr_dissect_element_DispInfoAscii_entries__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1513 static int samr_dissect_element_DispInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1514 static int samr_dissect_element_DispInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1515 static int samr_dissect_element_DispInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1516 static int samr_dissect_element_DispInfo_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1517 static int samr_dissect_element_DispInfo_info5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1518 static int samr_dissect_element_PwInfo_min_password_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1519 static int samr_dissect_element_PwInfo_password_properties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1520 const value_string samr_samr_ConnectVersion_vals[] = {
1521         { SAMR_CONNECT_PRE_W2K, "SAMR_CONNECT_PRE_W2K" },
1522         { SAMR_CONNECT_W2K, "SAMR_CONNECT_W2K" },
1523         { SAMR_CONNECT_AFTER_W2K, "SAMR_CONNECT_AFTER_W2K" },
1524 { 0, NULL }
1525 };
1526 const value_string samr_samPwdChangeReason_vals[] = {
1527         { SAM_PWD_CHANGE_NO_ERROR, "SAM_PWD_CHANGE_NO_ERROR" },
1528         { SAM_PWD_CHANGE_PASSWORD_TOO_SHORT, "SAM_PWD_CHANGE_PASSWORD_TOO_SHORT" },
1529         { SAM_PWD_CHANGE_PWD_IN_HISTORY, "SAM_PWD_CHANGE_PWD_IN_HISTORY" },
1530         { SAM_PWD_CHANGE_USERNAME_IN_PASSWORD, "SAM_PWD_CHANGE_USERNAME_IN_PASSWORD" },
1531         { SAM_PWD_CHANGE_FULLNAME_IN_PASSWORD, "SAM_PWD_CHANGE_FULLNAME_IN_PASSWORD" },
1532         { SAM_PWD_CHANGE_NOT_COMPLEX, "SAM_PWD_CHANGE_NOT_COMPLEX" },
1533         { SAM_PWD_CHANGE_MACHINE_NOT_DEFAULT, "SAM_PWD_CHANGE_MACHINE_NOT_DEFAULT" },
1534         { SAM_PWD_CHANGE_FAILED_BY_FILTER, "SAM_PWD_CHANGE_FAILED_BY_FILTER" },
1535         { SAM_PWD_CHANGE_PASSWORD_TOO_LONG, "SAM_PWD_CHANGE_PASSWORD_TOO_LONG" },
1536 { 0, NULL }
1537 };
1538 static int samr_dissect_element_userPwdChangeFailureInformation_extendedFailureReason(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1539 static int samr_dissect_element_userPwdChangeFailureInformation_filterModuleName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1540 static int samr_dissect_element_ConnectInfo1_client_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1541 static int samr_dissect_element_ConnectInfo1_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1542 static int samr_dissect_element_ConnectInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1543 static const true_false_string samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_LAST_SET_tfs = {
1544    "SAMR_VALIDATE_FIELD_PASSWORD_LAST_SET is SET",
1545    "SAMR_VALIDATE_FIELD_PASSWORD_LAST_SET is NOT SET",
1546 };
1547 static const true_false_string samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_BAD_PASSWORD_TIME_tfs = {
1548    "SAMR_VALIDATE_FIELD_BAD_PASSWORD_TIME is SET",
1549    "SAMR_VALIDATE_FIELD_BAD_PASSWORD_TIME is NOT SET",
1550 };
1551 static const true_false_string samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_LOCKOUT_TIME_tfs = {
1552    "SAMR_VALIDATE_FIELD_LOCKOUT_TIME is SET",
1553    "SAMR_VALIDATE_FIELD_LOCKOUT_TIME is NOT SET",
1554 };
1555 static const true_false_string samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_BAD_PASSWORD_COUNT_tfs = {
1556    "SAMR_VALIDATE_FIELD_BAD_PASSWORD_COUNT is SET",
1557    "SAMR_VALIDATE_FIELD_BAD_PASSWORD_COUNT is NOT SET",
1558 };
1559 static const true_false_string samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_LENGTH_tfs = {
1560    "SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_LENGTH is SET",
1561    "SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_LENGTH is NOT SET",
1562 };
1563 static const true_false_string samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_tfs = {
1564    "SAMR_VALIDATE_FIELD_PASSWORD_HISTORY is SET",
1565    "SAMR_VALIDATE_FIELD_PASSWORD_HISTORY is NOT SET",
1566 };
1567 const value_string samr_samr_ValidatePasswordLevel_vals[] = {
1568         { NetValidateAuthentication, "NetValidateAuthentication" },
1569         { NetValidatePasswordChange, "NetValidatePasswordChange" },
1570         { NetValidatePasswordReset, "NetValidatePasswordReset" },
1571 { 0, NULL }
1572 };
1573 const value_string samr_samr_ValidationStatus_vals[] = {
1574         { SAMR_VALIDATION_STATUS_SUCCESS, "SAMR_VALIDATION_STATUS_SUCCESS" },
1575         { SAMR_VALIDATION_STATUS_PASSWORD_MUST_CHANGE, "SAMR_VALIDATION_STATUS_PASSWORD_MUST_CHANGE" },
1576         { SAMR_VALIDATION_STATUS_ACCOUNT_LOCKED_OUT, "SAMR_VALIDATION_STATUS_ACCOUNT_LOCKED_OUT" },
1577         { SAMR_VALIDATION_STATUS_PASSWORD_EXPIRED, "SAMR_VALIDATION_STATUS_PASSWORD_EXPIRED" },
1578         { SAMR_VALIDATION_STATUS_BAD_PASSWORD, "SAMR_VALIDATION_STATUS_BAD_PASSWORD" },
1579         { SAMR_VALIDATION_STATUS_PWD_HISTORY_CONFLICT, "SAMR_VALIDATION_STATUS_PWD_HISTORY_CONFLICT" },
1580         { SAMR_VALIDATION_STATUS_PWD_TOO_SHORT, "SAMR_VALIDATION_STATUS_PWD_TOO_SHORT" },
1581         { SAMR_VALIDATION_STATUS_PWD_TOO_LONG, "SAMR_VALIDATION_STATUS_PWD_TOO_LONG" },
1582         { SAMR_VALIDATION_STATUS_NOT_COMPLEX_ENOUGH, "SAMR_VALIDATION_STATUS_NOT_COMPLEX_ENOUGH" },
1583         { SAMR_VALIDATION_STATUS_PASSWORD_TOO_RECENT, "SAMR_VALIDATION_STATUS_PASSWORD_TOO_RECENT" },
1584         { SAMR_VALIDATION_STATUS_PASSWORD_FILTER_ERROR, "SAMR_VALIDATION_STATUS_PASSWORD_FILTER_ERROR" },
1585 { 0, NULL }
1586 };
1587 static int samr_dissect_element_ValidationBlob_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1588 static int samr_dissect_element_ValidationBlob_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1589 static int samr_dissect_element_ValidationBlob_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1590 static int samr_dissect_element_ValidationBlob_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1591 static int samr_dissect_element_ValidatePasswordInfo_fields_present(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1592 static int samr_dissect_element_ValidatePasswordInfo_last_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1593 static int samr_dissect_element_ValidatePasswordInfo_bad_password_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1594 static int samr_dissect_element_ValidatePasswordInfo_lockout_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1595 static int samr_dissect_element_ValidatePasswordInfo_bad_pwd_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1596 static int samr_dissect_element_ValidatePasswordInfo_pwd_history_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1597 static int samr_dissect_element_ValidatePasswordInfo_pwd_history(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1598 static int samr_dissect_element_ValidatePasswordInfo_pwd_history_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1599 static int samr_dissect_element_ValidatePasswordInfo_pwd_history__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1600 static int samr_dissect_element_ValidatePasswordRepCtr_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1601 static int samr_dissect_element_ValidatePasswordRepCtr_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1602 static int samr_dissect_element_ValidatePasswordRep_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1603 static int samr_dissect_element_ValidatePasswordRep_ctr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1604 static int samr_dissect_element_ValidatePasswordRep_ctr3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1605 static int samr_dissect_element_ValidatePasswordReq3_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1606 static int samr_dissect_element_ValidatePasswordReq3_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1607 static int samr_dissect_element_ValidatePasswordReq3_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1608 static int samr_dissect_element_ValidatePasswordReq3_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1609 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_, guint8 *drep _U_);
1610 static int samr_dissect_element_ValidatePasswordReq3_clear_lockout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1611 static int samr_dissect_element_ValidatePasswordReq2_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1612 static int samr_dissect_element_ValidatePasswordReq2_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1613 static int samr_dissect_element_ValidatePasswordReq2_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1614 static int samr_dissect_element_ValidatePasswordReq2_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1615 static int samr_dissect_element_ValidatePasswordReq2_password_matched(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1616 static int samr_dissect_element_ValidatePasswordReq1_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1617 static int samr_dissect_element_ValidatePasswordReq1_password_matched(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1618 static int samr_dissect_element_ValidatePasswordReq_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1619 static int samr_dissect_element_ValidatePasswordReq_req2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1620 static int samr_dissect_element_ValidatePasswordReq_req3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1621 static int samr_dissect_element_Connect_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1622 static int samr_dissect_element_Connect_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1623 static int samr_dissect_element_Connect_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1624 static int samr_dissect_element_Connect_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1625 static int samr_dissect_element_Connect_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1626 static int samr_dissect_element_Close_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1627 static int samr_dissect_element_Close_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1628 static int samr_dissect_element_SetSecurity_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1629 static int samr_dissect_element_SetSecurity_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1630 static int samr_dissect_element_SetSecurity_sec_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1631 static int samr_dissect_element_SetSecurity_sdbuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1632 static int samr_dissect_element_SetSecurity_sdbuf_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1633 static int samr_dissect_element_QuerySecurity_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1634 static int samr_dissect_element_QuerySecurity_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1635 static int samr_dissect_element_QuerySecurity_sec_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1636 static int samr_dissect_element_QuerySecurity_sdbuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1637 static int samr_dissect_element_QuerySecurity_sdbuf_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1638 static int samr_dissect_element_QuerySecurity_sdbuf__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1639 static int samr_dissect_element_Shutdown_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1640 static int samr_dissect_element_Shutdown_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1641 static int samr_dissect_element_LookupDomain_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1642 static int samr_dissect_element_LookupDomain_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1643 static int samr_dissect_element_LookupDomain_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1644 static int samr_dissect_element_LookupDomain_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1645 static int samr_dissect_element_LookupDomain_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1646 static int samr_dissect_element_LookupDomain_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1647 static int samr_dissect_element_LookupDomain_sid__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1648 static int samr_dissect_element_EnumDomains_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1649 static int samr_dissect_element_EnumDomains_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1650 static int samr_dissect_element_EnumDomains_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1651 static int samr_dissect_element_EnumDomains_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1652 static int samr_dissect_element_EnumDomains_sam(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1653 static int samr_dissect_element_EnumDomains_sam_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1654 static int samr_dissect_element_EnumDomains_sam__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1655 static int samr_dissect_element_EnumDomains_buf_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1656 static int samr_dissect_element_EnumDomains_num_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1657 static int samr_dissect_element_EnumDomains_num_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1658 static int samr_dissect_element_OpenDomain_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1659 static int samr_dissect_element_OpenDomain_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1660 static int samr_dissect_element_OpenDomain_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1661 static int samr_dissect_element_OpenDomain_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1662 static int samr_dissect_element_OpenDomain_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1663 static int samr_dissect_element_OpenDomain_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1664 static int samr_dissect_element_OpenDomain_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1665 static int samr_dissect_element_QueryDomainInfo_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1666 static int samr_dissect_element_QueryDomainInfo_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1667 static int samr_dissect_element_QueryDomainInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1668 static int samr_dissect_element_QueryDomainInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1669 static int samr_dissect_element_QueryDomainInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1670 static int samr_dissect_element_QueryDomainInfo_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1671 static int samr_dissect_element_SetDomainInfo_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1672 static int samr_dissect_element_SetDomainInfo_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1673 static int samr_dissect_element_SetDomainInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1674 static int samr_dissect_element_SetDomainInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1675 static int samr_dissect_element_SetDomainInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1676 static int samr_dissect_element_CreateDomainGroup_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1677 static int samr_dissect_element_CreateDomainGroup_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1678 static int samr_dissect_element_CreateDomainGroup_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1679 static int samr_dissect_element_CreateDomainGroup_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1680 static int samr_dissect_element_CreateDomainGroup_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1681 static int samr_dissect_element_CreateDomainGroup_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1682 static int samr_dissect_element_CreateDomainGroup_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1683 static int samr_dissect_element_CreateDomainGroup_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1684 static int samr_dissect_element_CreateDomainGroup_rid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1685 static int samr_dissect_element_EnumDomainGroups_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1686 static int samr_dissect_element_EnumDomainGroups_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1687 static int samr_dissect_element_EnumDomainGroups_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1688 static int samr_dissect_element_EnumDomainGroups_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1689 static int samr_dissect_element_EnumDomainGroups_sam(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1690 static int samr_dissect_element_EnumDomainGroups_sam_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1691 static int samr_dissect_element_EnumDomainGroups_sam__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1692 static int samr_dissect_element_EnumDomainGroups_max_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1693 static int samr_dissect_element_EnumDomainGroups_num_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1694 static int samr_dissect_element_EnumDomainGroups_num_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1695 static int samr_dissect_element_CreateUser_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1696 static int samr_dissect_element_CreateUser_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1697 static int samr_dissect_element_CreateUser_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1698 static int samr_dissect_element_CreateUser_account_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1699 static int samr_dissect_element_CreateUser_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1700 static int samr_dissect_element_CreateUser_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1701 static int samr_dissect_element_CreateUser_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1702 static int samr_dissect_element_CreateUser_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1703 static int samr_dissect_element_CreateUser_rid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1704 static int samr_dissect_element_EnumDomainUsers_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1705 static int samr_dissect_element_EnumDomainUsers_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1706 static int samr_dissect_element_EnumDomainUsers_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1707 static int samr_dissect_element_EnumDomainUsers_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1708 static int samr_dissect_element_EnumDomainUsers_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1709 static int samr_dissect_element_EnumDomainUsers_sam(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1710 static int samr_dissect_element_EnumDomainUsers_sam_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1711 static int samr_dissect_element_EnumDomainUsers_sam__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1712 static int samr_dissect_element_EnumDomainUsers_max_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1713 static int samr_dissect_element_EnumDomainUsers_num_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1714 static int samr_dissect_element_EnumDomainUsers_num_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1715 static int samr_dissect_element_CreateDomAlias_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1716 static int samr_dissect_element_CreateDomAlias_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1717 static int samr_dissect_element_CreateDomAlias_alias_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1718 static int samr_dissect_element_CreateDomAlias_alias_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1719 static int samr_dissect_element_CreateDomAlias_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1720 static int samr_dissect_element_CreateDomAlias_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1721 static int samr_dissect_element_CreateDomAlias_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1722 static int samr_dissect_element_CreateDomAlias_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1723 static int samr_dissect_element_CreateDomAlias_rid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1724 static int samr_dissect_element_EnumDomainAliases_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1725 static int samr_dissect_element_EnumDomainAliases_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1726 static int samr_dissect_element_EnumDomainAliases_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1727 static int samr_dissect_element_EnumDomainAliases_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1728 static int samr_dissect_element_EnumDomainAliases_sam(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1729 static int samr_dissect_element_EnumDomainAliases_sam_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1730 static int samr_dissect_element_EnumDomainAliases_sam__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1731 static int samr_dissect_element_EnumDomainAliases_max_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1732 static int samr_dissect_element_EnumDomainAliases_num_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1733 static int samr_dissect_element_EnumDomainAliases_num_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1734 static int samr_dissect_element_GetAliasMembership_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1735 static int samr_dissect_element_GetAliasMembership_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1736 static int samr_dissect_element_GetAliasMembership_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1737 static int samr_dissect_element_GetAliasMembership_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1738 static int samr_dissect_element_GetAliasMembership_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1739 static int samr_dissect_element_GetAliasMembership_rids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1740 static int samr_dissect_element_LookupNames_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1741 static int samr_dissect_element_LookupNames_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1742 static int samr_dissect_element_LookupNames_num_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1743 static int samr_dissect_element_LookupNames_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1744 static int samr_dissect_element_LookupNames_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1745 static int samr_dissect_element_LookupNames_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1746 static int samr_dissect_element_LookupNames_rids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1747 static int samr_dissect_element_LookupNames_types(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1748 static int samr_dissect_element_LookupNames_types_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1749 static int samr_dissect_element_LookupRids_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1750 static int samr_dissect_element_LookupRids_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1751 static int samr_dissect_element_LookupRids_num_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1752 static int samr_dissect_element_LookupRids_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1753 static int samr_dissect_element_LookupRids_rids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1754 static int samr_dissect_element_LookupRids_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1755 static int samr_dissect_element_LookupRids_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1756 static int samr_dissect_element_LookupRids_types(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1757 static int samr_dissect_element_LookupRids_types_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1758 static int samr_dissect_element_OpenGroup_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1759 static int samr_dissect_element_OpenGroup_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1760 static int samr_dissect_element_OpenGroup_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1761 static int samr_dissect_element_OpenGroup_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1762 static int samr_dissect_element_OpenGroup_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1763 static int samr_dissect_element_OpenGroup_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1764 static int samr_dissect_element_QueryGroupInfo_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1765 static int samr_dissect_element_QueryGroupInfo_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1766 static int samr_dissect_element_QueryGroupInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1767 static int samr_dissect_element_QueryGroupInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1768 static int samr_dissect_element_QueryGroupInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1769 static int samr_dissect_element_QueryGroupInfo_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1770 static int samr_dissect_element_SetGroupInfo_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1771 static int samr_dissect_element_SetGroupInfo_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1772 static int samr_dissect_element_SetGroupInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1773 static int samr_dissect_element_SetGroupInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1774 static int samr_dissect_element_SetGroupInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1775 static int samr_dissect_element_AddGroupMember_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1776 static int samr_dissect_element_AddGroupMember_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1777 static int samr_dissect_element_AddGroupMember_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1778 static int samr_dissect_element_AddGroupMember_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1779 static int samr_dissect_element_DeleteDomainGroup_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1780 static int samr_dissect_element_DeleteDomainGroup_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1781 static int samr_dissect_element_DeleteGroupMember_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1782 static int samr_dissect_element_DeleteGroupMember_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1783 static int samr_dissect_element_DeleteGroupMember_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1784 static int samr_dissect_element_QueryGroupMember_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1785 static int samr_dissect_element_QueryGroupMember_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1786 static int samr_dissect_element_QueryGroupMember_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1787 static int samr_dissect_element_QueryGroupMember_rids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1788 static int samr_dissect_element_QueryGroupMember_rids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1789 static int samr_dissect_element_SetMemberAttributesOfGroup_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1790 static int samr_dissect_element_SetMemberAttributesOfGroup_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1791 static int samr_dissect_element_SetMemberAttributesOfGroup_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1792 static int samr_dissect_element_SetMemberAttributesOfGroup_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1793 static int samr_dissect_element_OpenAlias_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1794 static int samr_dissect_element_OpenAlias_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1795 static int samr_dissect_element_OpenAlias_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1796 static int samr_dissect_element_OpenAlias_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1797 static int samr_dissect_element_OpenAlias_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1798 static int samr_dissect_element_OpenAlias_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1799 static int samr_dissect_element_QueryAliasInfo_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1800 static int samr_dissect_element_QueryAliasInfo_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1801 static int samr_dissect_element_QueryAliasInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1802 static int samr_dissect_element_QueryAliasInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1803 static int samr_dissect_element_QueryAliasInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1804 static int samr_dissect_element_QueryAliasInfo_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1805 static int samr_dissect_element_SetAliasInfo_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1806 static int samr_dissect_element_SetAliasInfo_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1807 static int samr_dissect_element_SetAliasInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1808 static int samr_dissect_element_SetAliasInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1809 static int samr_dissect_element_SetAliasInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1810 static int samr_dissect_element_DeleteDomAlias_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1811 static int samr_dissect_element_DeleteDomAlias_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1812 static int samr_dissect_element_AddAliasMember_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1813 static int samr_dissect_element_AddAliasMember_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1814 static int samr_dissect_element_AddAliasMember_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1815 static int samr_dissect_element_AddAliasMember_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1816 static int samr_dissect_element_DeleteAliasMember_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1817 static int samr_dissect_element_DeleteAliasMember_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1818 static int samr_dissect_element_DeleteAliasMember_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1819 static int samr_dissect_element_DeleteAliasMember_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1820 static int samr_dissect_element_GetMembersInAlias_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1821 static int samr_dissect_element_GetMembersInAlias_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1822 static int samr_dissect_element_GetMembersInAlias_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1823 static int samr_dissect_element_GetMembersInAlias_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1824 static int samr_dissect_element_OpenUser_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1825 static int samr_dissect_element_OpenUser_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1826 static int samr_dissect_element_OpenUser_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1827 static int samr_dissect_element_OpenUser_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1828 static int samr_dissect_element_OpenUser_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1829 static int samr_dissect_element_OpenUser_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1830 static int samr_dissect_element_DeleteUser_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1831 static int samr_dissect_element_DeleteUser_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1832 static int samr_dissect_element_QueryUserInfo_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1833 static int samr_dissect_element_QueryUserInfo_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1834 static int samr_dissect_element_QueryUserInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1835 static int samr_dissect_element_QueryUserInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1836 static int samr_dissect_element_QueryUserInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1837 static int samr_dissect_element_QueryUserInfo_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1838 static int samr_dissect_element_SetUserInfo_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1839 static int samr_dissect_element_SetUserInfo_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1840 static int samr_dissect_element_SetUserInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1841 static int samr_dissect_element_SetUserInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1842 static int samr_dissect_element_SetUserInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1843 static int samr_dissect_element_ChangePasswordUser_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1844 static int samr_dissect_element_ChangePasswordUser_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1845 static int samr_dissect_element_ChangePasswordUser_lm_present(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1846 static int samr_dissect_element_ChangePasswordUser_old_lm_crypted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1847 static int samr_dissect_element_ChangePasswordUser_old_lm_crypted_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1848 static int samr_dissect_element_ChangePasswordUser_new_lm_crypted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1849 static int samr_dissect_element_ChangePasswordUser_new_lm_crypted_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1850 static int samr_dissect_element_ChangePasswordUser_nt_present(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1851 static int samr_dissect_element_ChangePasswordUser_old_nt_crypted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1852 static int samr_dissect_element_ChangePasswordUser_old_nt_crypted_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1853 static int samr_dissect_element_ChangePasswordUser_new_nt_crypted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1854 static int samr_dissect_element_ChangePasswordUser_new_nt_crypted_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1855 static int samr_dissect_element_ChangePasswordUser_cross1_present(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1856 static int samr_dissect_element_ChangePasswordUser_nt_cross(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1857 static int samr_dissect_element_ChangePasswordUser_nt_cross_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1858 static int samr_dissect_element_ChangePasswordUser_cross2_present(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1859 static int samr_dissect_element_ChangePasswordUser_lm_cross(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1860 static int samr_dissect_element_ChangePasswordUser_lm_cross_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1861 static int samr_dissect_element_GetGroupsForUser_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1862 static int samr_dissect_element_GetGroupsForUser_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1863 static int samr_dissect_element_GetGroupsForUser_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1864 static int samr_dissect_element_GetGroupsForUser_rids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1865 static int samr_dissect_element_GetGroupsForUser_rids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1866 static int samr_dissect_element_QueryDisplayInfo_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1867 static int samr_dissect_element_QueryDisplayInfo_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1868 static int samr_dissect_element_QueryDisplayInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1869 static int samr_dissect_element_QueryDisplayInfo_start_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1870 static int samr_dissect_element_QueryDisplayInfo_max_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1871 static int samr_dissect_element_QueryDisplayInfo_buf_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1872 static int samr_dissect_element_QueryDisplayInfo_total_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1873 static int samr_dissect_element_QueryDisplayInfo_total_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1874 static int samr_dissect_element_QueryDisplayInfo_returned_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1875 static int samr_dissect_element_QueryDisplayInfo_returned_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1876 static int samr_dissect_element_QueryDisplayInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1877 static int samr_dissect_element_QueryDisplayInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1878 static int samr_dissect_element_GetDisplayEnumerationIndex_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1879 static int samr_dissect_element_GetDisplayEnumerationIndex_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1880 static int samr_dissect_element_GetDisplayEnumerationIndex_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1881 static int samr_dissect_element_GetDisplayEnumerationIndex_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1882 static int samr_dissect_element_GetDisplayEnumerationIndex_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1883 static int samr_dissect_element_GetDisplayEnumerationIndex_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1884 static int samr_dissect_element_GetDisplayEnumerationIndex_idx_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1885 static int samr_dissect_element_TestPrivateFunctionsDomain_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1886 static int samr_dissect_element_TestPrivateFunctionsDomain_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1887 static int samr_dissect_element_TestPrivateFunctionsUser_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1888 static int samr_dissect_element_TestPrivateFunctionsUser_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1889 static int samr_dissect_element_GetUserPwInfo_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1890 static int samr_dissect_element_GetUserPwInfo_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1891 static int samr_dissect_element_GetUserPwInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1892 static int samr_dissect_element_GetUserPwInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1893 static int samr_dissect_element_RemoveMemberFromForeignDomain_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1894 static int samr_dissect_element_RemoveMemberFromForeignDomain_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1895 static int samr_dissect_element_RemoveMemberFromForeignDomain_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1896 static int samr_dissect_element_RemoveMemberFromForeignDomain_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1897 static int samr_dissect_element_QueryDomainInfo2_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1898 static int samr_dissect_element_QueryDomainInfo2_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1899 static int samr_dissect_element_QueryDomainInfo2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1900 static int samr_dissect_element_QueryDomainInfo2_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1901 static int samr_dissect_element_QueryDomainInfo2_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1902 static int samr_dissect_element_QueryDomainInfo2_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1903 static int samr_dissect_element_QueryUserInfo2_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1904 static int samr_dissect_element_QueryUserInfo2_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1905 static int samr_dissect_element_QueryUserInfo2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1906 static int samr_dissect_element_QueryUserInfo2_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1907 static int samr_dissect_element_QueryUserInfo2_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1908 static int samr_dissect_element_QueryUserInfo2_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1909 static int samr_dissect_element_QueryDisplayInfo2_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1910 static int samr_dissect_element_QueryDisplayInfo2_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1911 static int samr_dissect_element_QueryDisplayInfo2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1912 static int samr_dissect_element_QueryDisplayInfo2_start_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1913 static int samr_dissect_element_QueryDisplayInfo2_max_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1914 static int samr_dissect_element_QueryDisplayInfo2_buf_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1915 static int samr_dissect_element_QueryDisplayInfo2_total_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1916 static int samr_dissect_element_QueryDisplayInfo2_total_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1917 static int samr_dissect_element_QueryDisplayInfo2_returned_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1918 static int samr_dissect_element_QueryDisplayInfo2_returned_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1919 static int samr_dissect_element_QueryDisplayInfo2_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1920 static int samr_dissect_element_QueryDisplayInfo2_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1921 static int samr_dissect_element_GetDisplayEnumerationIndex2_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1922 static int samr_dissect_element_GetDisplayEnumerationIndex2_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1923 static int samr_dissect_element_GetDisplayEnumerationIndex2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1924 static int samr_dissect_element_GetDisplayEnumerationIndex2_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1925 static int samr_dissect_element_GetDisplayEnumerationIndex2_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1926 static int samr_dissect_element_GetDisplayEnumerationIndex2_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1927 static int samr_dissect_element_GetDisplayEnumerationIndex2_idx_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1928 static int samr_dissect_element_CreateUser2_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1929 static int samr_dissect_element_CreateUser2_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1930 static int samr_dissect_element_CreateUser2_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1931 static int samr_dissect_element_CreateUser2_account_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1932 static int samr_dissect_element_CreateUser2_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1933 static int samr_dissect_element_CreateUser2_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1934 static int samr_dissect_element_CreateUser2_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1935 static int samr_dissect_element_CreateUser2_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1936 static int samr_dissect_element_CreateUser2_access_granted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1937 static int samr_dissect_element_CreateUser2_access_granted_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1938 static int samr_dissect_element_CreateUser2_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1939 static int samr_dissect_element_CreateUser2_rid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1940 static int samr_dissect_element_QueryDisplayInfo3_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1941 static int samr_dissect_element_QueryDisplayInfo3_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1942 static int samr_dissect_element_QueryDisplayInfo3_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1943 static int samr_dissect_element_QueryDisplayInfo3_start_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1944 static int samr_dissect_element_QueryDisplayInfo3_max_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1945 static int samr_dissect_element_QueryDisplayInfo3_buf_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1946 static int samr_dissect_element_QueryDisplayInfo3_total_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1947 static int samr_dissect_element_QueryDisplayInfo3_total_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1948 static int samr_dissect_element_QueryDisplayInfo3_returned_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1949 static int samr_dissect_element_QueryDisplayInfo3_returned_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1950 static int samr_dissect_element_QueryDisplayInfo3_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1951 static int samr_dissect_element_QueryDisplayInfo3_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1952 static int samr_dissect_element_AddMultipleMembersToAlias_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1953 static int samr_dissect_element_AddMultipleMembersToAlias_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1954 static int samr_dissect_element_AddMultipleMembersToAlias_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1955 static int samr_dissect_element_AddMultipleMembersToAlias_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1956 static int samr_dissect_element_RemoveMultipleMembersFromAlias_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1957 static int samr_dissect_element_RemoveMultipleMembersFromAlias_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1958 static int samr_dissect_element_RemoveMultipleMembersFromAlias_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1959 static int samr_dissect_element_RemoveMultipleMembersFromAlias_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1960 static int samr_dissect_element_OemChangePasswordUser2_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1961 static int samr_dissect_element_OemChangePasswordUser2_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1962 static int samr_dissect_element_OemChangePasswordUser2_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1963 static int samr_dissect_element_OemChangePasswordUser2_account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1964 static int samr_dissect_element_OemChangePasswordUser2_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1965 static int samr_dissect_element_OemChangePasswordUser2_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1966 static int samr_dissect_element_OemChangePasswordUser2_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1967 static int samr_dissect_element_OemChangePasswordUser2_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1968 static int samr_dissect_element_ChangePasswordUser2_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1969 static int samr_dissect_element_ChangePasswordUser2_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1970 static int samr_dissect_element_ChangePasswordUser2_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1971 static int samr_dissect_element_ChangePasswordUser2_account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1972 static int samr_dissect_element_ChangePasswordUser2_nt_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1973 static int samr_dissect_element_ChangePasswordUser2_nt_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1974 static int samr_dissect_element_ChangePasswordUser2_nt_verifier(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1975 static int samr_dissect_element_ChangePasswordUser2_nt_verifier_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1976 static int samr_dissect_element_ChangePasswordUser2_lm_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1977 static int samr_dissect_element_ChangePasswordUser2_lm_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1978 static int samr_dissect_element_ChangePasswordUser2_lm_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1979 static int samr_dissect_element_ChangePasswordUser2_lm_verifier(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1980 static int samr_dissect_element_ChangePasswordUser2_lm_verifier_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1981 static int samr_dissect_element_GetDomPwInfo_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1982 static int samr_dissect_element_GetDomPwInfo_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1983 static int samr_dissect_element_GetDomPwInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1984 static int samr_dissect_element_GetDomPwInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1985 static int samr_dissect_element_Connect2_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1986 static int samr_dissect_element_Connect2_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1987 static int samr_dissect_element_Connect2_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1988 static int samr_dissect_element_Connect2_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1989 static int samr_dissect_element_Connect2_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1990 static int samr_dissect_element_SetUserInfo2_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1991 static int samr_dissect_element_SetUserInfo2_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1992 static int samr_dissect_element_SetUserInfo2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1993 static int samr_dissect_element_SetUserInfo2_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1994 static int samr_dissect_element_SetUserInfo2_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1995 static int samr_dissect_element_SetBootKeyInformation_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1996 static int samr_dissect_element_SetBootKeyInformation_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1997 static int samr_dissect_element_SetBootKeyInformation_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1998 static int samr_dissect_element_SetBootKeyInformation_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1999 static int samr_dissect_element_SetBootKeyInformation_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2000 static int samr_dissect_element_GetBootKeyInformation_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2001 static int samr_dissect_element_GetBootKeyInformation_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2002 static int samr_dissect_element_GetBootKeyInformation_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2003 static int samr_dissect_element_GetBootKeyInformation_unknown_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2004 static int samr_dissect_element_Connect3_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2005 static int samr_dissect_element_Connect3_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2006 static int samr_dissect_element_Connect3_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2007 static int samr_dissect_element_Connect3_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2008 static int samr_dissect_element_Connect3_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2009 static int samr_dissect_element_Connect3_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2010 static int samr_dissect_element_Connect4_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2011 static int samr_dissect_element_Connect4_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2012 static int samr_dissect_element_Connect4_client_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2013 static int samr_dissect_element_Connect4_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2014 static int samr_dissect_element_Connect4_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2015 static int samr_dissect_element_Connect4_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2016 static int samr_dissect_element_ChangePasswordUser3_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2017 static int samr_dissect_element_ChangePasswordUser3_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2018 static int samr_dissect_element_ChangePasswordUser3_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2019 static int samr_dissect_element_ChangePasswordUser3_account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2020 static int samr_dissect_element_ChangePasswordUser3_nt_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2021 static int samr_dissect_element_ChangePasswordUser3_nt_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2022 static int samr_dissect_element_ChangePasswordUser3_nt_verifier(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2023 static int samr_dissect_element_ChangePasswordUser3_nt_verifier_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2024 static int samr_dissect_element_ChangePasswordUser3_lm_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2025 static int samr_dissect_element_ChangePasswordUser3_lm_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2026 static int samr_dissect_element_ChangePasswordUser3_lm_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2027 static int samr_dissect_element_ChangePasswordUser3_lm_verifier(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2028 static int samr_dissect_element_ChangePasswordUser3_lm_verifier_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2029 static int samr_dissect_element_ChangePasswordUser3_password3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2030 static int samr_dissect_element_ChangePasswordUser3_password3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2031 static int samr_dissect_element_ChangePasswordUser3_dominfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2032 static int samr_dissect_element_ChangePasswordUser3_dominfo_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2033 static int samr_dissect_element_ChangePasswordUser3_dominfo__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2034 static int samr_dissect_element_ChangePasswordUser3_reject(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2035 static int samr_dissect_element_ChangePasswordUser3_reject_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2036 static int samr_dissect_element_ChangePasswordUser3_reject__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2037 static int samr_dissect_element_Connect5_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2038 static int samr_dissect_element_Connect5_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2039 static int samr_dissect_element_Connect5_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2040 static int samr_dissect_element_Connect5_level_in(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2041 static int samr_dissect_element_Connect5_info_in(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2042 static int samr_dissect_element_Connect5_info_in_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2043 static int samr_dissect_element_Connect5_level_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2044 static int samr_dissect_element_Connect5_level_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2045 static int samr_dissect_element_Connect5_info_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2046 static int samr_dissect_element_Connect5_info_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2047 static int samr_dissect_element_Connect5_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2048 static int samr_dissect_element_Connect5_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2049 static int samr_dissect_element_RidToSid_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2050 static int samr_dissect_element_RidToSid_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2051 static int samr_dissect_element_RidToSid_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2052 static int samr_dissect_element_RidToSid_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2053 static int samr_dissect_element_RidToSid_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2054 static int samr_dissect_element_RidToSid_sid__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2055 static int samr_dissect_element_SetDsrmPassword_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2056 static int samr_dissect_element_SetDsrmPassword_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2057 static int samr_dissect_element_SetDsrmPassword_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2058 static int samr_dissect_element_SetDsrmPassword_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2059 static int samr_dissect_element_SetDsrmPassword_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2060 static int samr_dissect_element_ValidatePassword_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2061 static int samr_dissect_element_ValidatePassword_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2062 static int samr_dissect_element_ValidatePassword_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2063 static int samr_dissect_element_ValidatePassword_rep(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2064 static int samr_dissect_element_ValidatePassword_rep_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2065 static int samr_dissect_element_ValidatePassword_rep__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2066
2067
2068 /* IDL: bitmap { */
2069 /* IDL: } */
2070
2071 int
2072 samr_dissect_bitmap_security_secinfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
2073 {
2074         proto_item *item = NULL;
2075         proto_tree *tree = NULL;
2076
2077         guint32 flags;
2078         ALIGN_TO_4_BYTES;
2079
2080         if (parent_tree) {
2081                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
2082                 tree = proto_item_add_subtree(item,ett_samr_security_secinfo);
2083         }
2084
2085         offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
2086         proto_item_append_text(item, ": ");
2087
2088         if (!flags)
2089                 proto_item_append_text(item, "(No values set)");
2090
2091         if (flags) {
2092                 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
2093         }
2094
2095         return offset;
2096 }
2097
2098
2099 /* IDL: bitmap { */
2100 /* IDL:         ACB_DISABLED =  0x00000001 , */
2101 /* IDL:         ACB_HOMDIRREQ =  0x00000002 , */
2102 /* IDL:         ACB_PWNOTREQ =  0x00000004 , */
2103 /* IDL:         ACB_TEMPDUP =  0x00000008 , */
2104 /* IDL:         ACB_NORMAL =  0x00000010 , */
2105 /* IDL:         ACB_MNS =  0x00000020 , */
2106 /* IDL:         ACB_DOMTRUST =  0x00000040 , */
2107 /* IDL:         ACB_WSTRUST =  0x00000080 , */
2108 /* IDL:         ACB_SVRTRUST =  0x00000100 , */
2109 /* IDL:         ACB_PWNOEXP =  0x00000200 , */
2110 /* IDL:         ACB_AUTOLOCK =  0x00000400 , */
2111 /* IDL:         ACB_ENC_TXT_PWD_ALLOWED =  0x00000800 , */
2112 /* IDL:         ACB_SMARTCARD_REQUIRED =  0x00001000 , */
2113 /* IDL:         ACB_TRUSTED_FOR_DELEGATION =  0x00002000 , */
2114 /* IDL:         ACB_NOT_DELEGATED =  0x00004000 , */
2115 /* IDL:         ACB_USE_DES_KEY_ONLY =  0x00008000 , */
2116 /* IDL:         ACB_DONT_REQUIRE_PREAUTH =  0x00010000 , */
2117 /* IDL:         ACB_PW_EXPIRED =  0x00020000 , */
2118 /* IDL:         ACB_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION =  0x00040000 , */
2119 /* IDL:         ACB_NO_AUTH_DATA_REQD =  0x00080000 , */
2120 /* IDL:         ACB_PARTIAL_SECRETS_ACCOUNT =  0x00100000 , */
2121 /* IDL:         ACB_USE_AES_KEYS =  0x00200000 , */
2122 /* IDL: } */
2123
2124 int
2125 samr_dissect_bitmap_AcctFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
2126 {
2127         proto_item *item = NULL;
2128         proto_tree *tree = NULL;
2129
2130         guint32 flags;
2131         ALIGN_TO_4_BYTES;
2132
2133         if (parent_tree) {
2134                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
2135                 tree = proto_item_add_subtree(item,ett_samr_samr_AcctFlags);
2136         }
2137
2138         offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
2139         proto_item_append_text(item, ": ");
2140
2141         if (!flags)
2142                 proto_item_append_text(item, "(No values set)");
2143
2144         proto_tree_add_boolean(tree, hf_samr_samr_AcctFlags_ACB_DISABLED, tvb, offset-4, 4, flags);
2145         if (flags&( 0x00000001 )){
2146                 proto_item_append_text(item, "ACB_DISABLED");
2147                 if (flags & (~( 0x00000001 )))
2148                         proto_item_append_text(item, ", ");
2149         }
2150         flags&=(~( 0x00000001 ));
2151
2152         proto_tree_add_boolean(tree, hf_samr_samr_AcctFlags_ACB_HOMDIRREQ, tvb, offset-4, 4, flags);
2153         if (flags&( 0x00000002 )){
2154                 proto_item_append_text(item, "ACB_HOMDIRREQ");
2155                 if (flags & (~( 0x00000002 )))
2156                         proto_item_append_text(item, ", ");
2157         }
2158         flags&=(~( 0x00000002 ));
2159
2160         proto_tree_add_boolean(tree, hf_samr_samr_AcctFlags_ACB_PWNOTREQ, tvb, offset-4, 4, flags);
2161         if (flags&( 0x00000004 )){
2162                 proto_item_append_text(item, "ACB_PWNOTREQ");
2163                 if (flags & (~( 0x00000004 )))
2164                         proto_item_append_text(item, ", ");
2165         }
2166         flags&=(~( 0x00000004 ));
2167
2168         proto_tree_add_boolean(tree, hf_samr_samr_AcctFlags_ACB_TEMPDUP, tvb, offset-4, 4, flags);
2169         if (flags&( 0x00000008 )){
2170                 proto_item_append_text(item, "ACB_TEMPDUP");
2171                 if (flags & (~( 0x00000008 )))
2172                         proto_item_append_text(item, ", ");
2173         }
2174         flags&=(~( 0x00000008 ));
2175
2176         proto_tree_add_boolean(tree, hf_samr_samr_AcctFlags_ACB_NORMAL, tvb, offset-4, 4, flags);
2177         if (flags&( 0x00000010 )){
2178                 proto_item_append_text(item, "ACB_NORMAL");
2179                 if (flags & (~( 0x00000010 )))
2180                         proto_item_append_text(item, ", ");
2181         }
2182         flags&=(~( 0x00000010 ));
2183
2184         proto_tree_add_boolean(tree, hf_samr_samr_AcctFlags_ACB_MNS, tvb, offset-4, 4, flags);
2185         if (flags&( 0x00000020 )){
2186                 proto_item_append_text(item, "ACB_MNS");
2187                 if (flags & (~( 0x00000020 )))
2188                         proto_item_append_text(item, ", ");
2189         }
2190         flags&=(~( 0x00000020 ));
2191
2192         proto_tree_add_boolean(tree, hf_samr_samr_AcctFlags_ACB_DOMTRUST, tvb, offset-4, 4, flags);
2193         if (flags&( 0x00000040 )){
2194                 proto_item_append_text(item, "ACB_DOMTRUST");
2195                 if (flags & (~( 0x00000040 )))
2196                         proto_item_append_text(item, ", ");
2197         }
2198         flags&=(~( 0x00000040 ));
2199
2200         proto_tree_add_boolean(tree, hf_samr_samr_AcctFlags_ACB_WSTRUST, tvb, offset-4, 4, flags);
2201         if (flags&( 0x00000080 )){
2202                 proto_item_append_text(item, "ACB_WSTRUST");
2203                 if (flags & (~( 0x00000080 )))
2204                         proto_item_append_text(item, ", ");
2205         }
2206         flags&=(~( 0x00000080 ));
2207
2208         proto_tree_add_boolean(tree, hf_samr_samr_AcctFlags_ACB_SVRTRUST, tvb, offset-4, 4, flags);
2209         if (flags&( 0x00000100 )){
2210                 proto_item_append_text(item, "ACB_SVRTRUST");
2211                 if (flags & (~( 0x00000100 )))
2212                         proto_item_append_text(item, ", ");
2213         }
2214         flags&=(~( 0x00000100 ));
2215
2216         proto_tree_add_boolean(tree, hf_samr_samr_AcctFlags_ACB_PWNOEXP, tvb, offset-4, 4, flags);
2217         if (flags&( 0x00000200 )){
2218                 proto_item_append_text(item, "ACB_PWNOEXP");
2219                 if (flags & (~( 0x00000200 )))
2220                         proto_item_append_text(item, ", ");
2221         }
2222         flags&=(~( 0x00000200 ));
2223
2224         proto_tree_add_boolean(tree, hf_samr_samr_AcctFlags_ACB_AUTOLOCK, tvb, offset-4, 4, flags);
2225         if (flags&( 0x00000400 )){
2226                 proto_item_append_text(item, "ACB_AUTOLOCK");
2227                 if (flags & (~( 0x00000400 )))
2228                         proto_item_append_text(item, ", ");
2229         }
2230         flags&=(~( 0x00000400 ));
2231
2232         proto_tree_add_boolean(tree, hf_samr_samr_AcctFlags_ACB_ENC_TXT_PWD_ALLOWED, tvb, offset-4, 4, flags);
2233         if (flags&( 0x00000800 )){
2234                 proto_item_append_text(item, "ACB_ENC_TXT_PWD_ALLOWED");
2235                 if (flags & (~( 0x00000800 )))
2236                         proto_item_append_text(item, ", ");
2237         }
2238         flags&=(~( 0x00000800 ));
2239
2240         proto_tree_add_boolean(tree, hf_samr_samr_AcctFlags_ACB_SMARTCARD_REQUIRED, tvb, offset-4, 4, flags);
2241         if (flags&( 0x00001000 )){
2242                 proto_item_append_text(item, "ACB_SMARTCARD_REQUIRED");
2243                 if (flags & (~( 0x00001000 )))
2244                         proto_item_append_text(item, ", ");
2245         }
2246         flags&=(~( 0x00001000 ));
2247
2248         proto_tree_add_boolean(tree, hf_samr_samr_AcctFlags_ACB_TRUSTED_FOR_DELEGATION, tvb, offset-4, 4, flags);
2249         if (flags&( 0x00002000 )){
2250                 proto_item_append_text(item, "ACB_TRUSTED_FOR_DELEGATION");
2251                 if (flags & (~( 0x00002000 )))
2252                         proto_item_append_text(item, ", ");
2253         }
2254         flags&=(~( 0x00002000 ));
2255
2256         proto_tree_add_boolean(tree, hf_samr_samr_AcctFlags_ACB_NOT_DELEGATED, tvb, offset-4, 4, flags);
2257         if (flags&( 0x00004000 )){
2258                 proto_item_append_text(item, "ACB_NOT_DELEGATED");
2259                 if (flags & (~( 0x00004000 )))
2260                         proto_item_append_text(item, ", ");
2261         }
2262         flags&=(~( 0x00004000 ));
2263
2264         proto_tree_add_boolean(tree, hf_samr_samr_AcctFlags_ACB_USE_DES_KEY_ONLY, tvb, offset-4, 4, flags);
2265         if (flags&( 0x00008000 )){
2266                 proto_item_append_text(item, "ACB_USE_DES_KEY_ONLY");
2267                 if (flags & (~( 0x00008000 )))
2268                         proto_item_append_text(item, ", ");
2269         }
2270         flags&=(~( 0x00008000 ));
2271
2272         proto_tree_add_boolean(tree, hf_samr_samr_AcctFlags_ACB_DONT_REQUIRE_PREAUTH, tvb, offset-4, 4, flags);
2273         if (flags&( 0x00010000 )){
2274                 proto_item_append_text(item, "ACB_DONT_REQUIRE_PREAUTH");
2275                 if (flags & (~( 0x00010000 )))
2276                         proto_item_append_text(item, ", ");
2277         }
2278         flags&=(~( 0x00010000 ));
2279
2280         proto_tree_add_boolean(tree, hf_samr_samr_AcctFlags_ACB_PW_EXPIRED, tvb, offset-4, 4, flags);
2281         if (flags&( 0x00020000 )){
2282                 proto_item_append_text(item, "ACB_PW_EXPIRED");
2283                 if (flags & (~( 0x00020000 )))
2284                         proto_item_append_text(item, ", ");
2285         }
2286         flags&=(~( 0x00020000 ));
2287
2288         proto_tree_add_boolean(tree, hf_samr_samr_AcctFlags_ACB_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION, tvb, offset-4, 4, flags);
2289         if (flags&( 0x00040000 )){
2290                 proto_item_append_text(item, "ACB_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION");
2291                 if (flags & (~( 0x00040000 )))
2292                         proto_item_append_text(item, ", ");
2293         }
2294         flags&=(~( 0x00040000 ));
2295
2296         proto_tree_add_boolean(tree, hf_samr_samr_AcctFlags_ACB_NO_AUTH_DATA_REQD, tvb, offset-4, 4, flags);
2297         if (flags&( 0x00080000 )){
2298                 proto_item_append_text(item, "ACB_NO_AUTH_DATA_REQD");
2299                 if (flags & (~( 0x00080000 )))
2300                         proto_item_append_text(item, ", ");
2301         }
2302         flags&=(~( 0x00080000 ));
2303
2304         proto_tree_add_boolean(tree, hf_samr_samr_AcctFlags_ACB_PARTIAL_SECRETS_ACCOUNT, tvb, offset-4, 4, flags);
2305         if (flags&( 0x00100000 )){
2306                 proto_item_append_text(item, "ACB_PARTIAL_SECRETS_ACCOUNT");
2307                 if (flags & (~( 0x00100000 )))
2308                         proto_item_append_text(item, ", ");
2309         }
2310         flags&=(~( 0x00100000 ));
2311
2312         proto_tree_add_boolean(tree, hf_samr_samr_AcctFlags_ACB_USE_AES_KEYS, tvb, offset-4, 4, flags);
2313         if (flags&( 0x00200000 )){
2314                 proto_item_append_text(item, "ACB_USE_AES_KEYS");
2315                 if (flags & (~( 0x00200000 )))
2316                         proto_item_append_text(item, ", ");
2317         }
2318         flags&=(~( 0x00200000 ));
2319
2320         if (flags) {
2321                 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
2322         }
2323
2324         return offset;
2325 }
2326
2327
2328 /* IDL: bitmap { */
2329 /* IDL:         SAMR_ACCESS_CONNECT_TO_SERVER =  0x00000001 , */
2330 /* IDL:         SAMR_ACCESS_SHUTDOWN_SERVER =  0x00000002 , */
2331 /* IDL:         SAMR_ACCESS_INITIALIZE_SERVER =  0x00000004 , */
2332 /* IDL:         SAMR_ACCESS_CREATE_DOMAIN =  0x00000008 , */
2333 /* IDL:         SAMR_ACCESS_ENUM_DOMAINS =  0x00000010 , */
2334 /* IDL:         SAMR_ACCESS_LOOKUP_DOMAIN =  0x00000020 , */
2335 /* IDL: } */
2336
2337 int
2338 samr_dissect_bitmap_ConnectAccessMask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
2339 {
2340         proto_item *item = NULL;
2341         proto_tree *tree = NULL;
2342
2343         guint32 flags;
2344         ALIGN_TO_4_BYTES;
2345
2346         if (parent_tree) {
2347                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
2348                 tree = proto_item_add_subtree(item,ett_samr_samr_ConnectAccessMask);
2349         }
2350
2351         offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
2352         proto_item_append_text(item, ": ");
2353
2354         if (!flags)
2355                 proto_item_append_text(item, "(No values set)");
2356
2357         proto_tree_add_boolean(tree, hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_CONNECT_TO_SERVER, tvb, offset-4, 4, flags);
2358         if (flags&( 0x00000001 )){
2359                 proto_item_append_text(item, "SAMR_ACCESS_CONNECT_TO_SERVER");
2360                 if (flags & (~( 0x00000001 )))
2361                         proto_item_append_text(item, ", ");
2362         }
2363         flags&=(~( 0x00000001 ));
2364
2365         proto_tree_add_boolean(tree, hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_SHUTDOWN_SERVER, tvb, offset-4, 4, flags);
2366         if (flags&( 0x00000002 )){
2367                 proto_item_append_text(item, "SAMR_ACCESS_SHUTDOWN_SERVER");
2368                 if (flags & (~( 0x00000002 )))
2369                         proto_item_append_text(item, ", ");
2370         }
2371         flags&=(~( 0x00000002 ));
2372
2373         proto_tree_add_boolean(tree, hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_INITIALIZE_SERVER, tvb, offset-4, 4, flags);
2374         if (flags&( 0x00000004 )){
2375                 proto_item_append_text(item, "SAMR_ACCESS_INITIALIZE_SERVER");
2376                 if (flags & (~( 0x00000004 )))
2377                         proto_item_append_text(item, ", ");
2378         }
2379         flags&=(~( 0x00000004 ));
2380
2381         proto_tree_add_boolean(tree, hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_CREATE_DOMAIN, tvb, offset-4, 4, flags);
2382         if (flags&( 0x00000008 )){
2383                 proto_item_append_text(item, "SAMR_ACCESS_CREATE_DOMAIN");
2384                 if (flags & (~( 0x00000008 )))
2385                         proto_item_append_text(item, ", ");
2386         }
2387         flags&=(~( 0x00000008 ));
2388
2389         proto_tree_add_boolean(tree, hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_ENUM_DOMAINS, tvb, offset-4, 4, flags);
2390         if (flags&( 0x00000010 )){
2391                 proto_item_append_text(item, "SAMR_ACCESS_ENUM_DOMAINS");
2392                 if (flags & (~( 0x00000010 )))
2393                         proto_item_append_text(item, ", ");
2394         }
2395         flags&=(~( 0x00000010 ));
2396
2397         proto_tree_add_boolean(tree, hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_LOOKUP_DOMAIN, tvb, offset-4, 4, flags);
2398         if (flags&( 0x00000020 )){
2399                 proto_item_append_text(item, "SAMR_ACCESS_LOOKUP_DOMAIN");
2400                 if (flags & (~( 0x00000020 )))
2401                         proto_item_append_text(item, ", ");
2402         }
2403         flags&=(~( 0x00000020 ));
2404
2405         if (flags) {
2406                 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
2407         }
2408
2409         return offset;
2410 }
2411
2412
2413 /* IDL: bitmap { */
2414 /* IDL:         SAMR_USER_ACCESS_GET_NAME_ETC =  0x00000001 , */
2415 /* IDL:         SAMR_USER_ACCESS_GET_LOCALE =  0x00000002 , */
2416 /* IDL:         SAMR_USER_ACCESS_SET_LOC_COM =  0x00000004 , */
2417 /* IDL:         SAMR_USER_ACCESS_GET_LOGONINFO =  0x00000008 , */
2418 /* IDL:         SAMR_USER_ACCESS_GET_ATTRIBUTES =  0x00000010 , */
2419 /* IDL:         SAMR_USER_ACCESS_SET_ATTRIBUTES =  0x00000020 , */
2420 /* IDL:         SAMR_USER_ACCESS_CHANGE_PASSWORD =  0x00000040 , */
2421 /* IDL:         SAMR_USER_ACCESS_SET_PASSWORD =  0x00000080 , */
2422 /* IDL:         SAMR_USER_ACCESS_GET_GROUPS =  0x00000100 , */
2423 /* IDL:         SAMR_USER_ACCESS_GET_GROUP_MEMBERSHIP =  0x00000200 , */
2424 /* IDL:         SAMR_USER_ACCESS_CHANGE_GROUP_MEMBERSHIP =  0x00000400 , */
2425 /* IDL: } */
2426
2427 int
2428 samr_dissect_bitmap_UserAccessMask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
2429 {
2430         proto_item *item = NULL;
2431         proto_tree *tree = NULL;
2432
2433         guint32 flags;
2434         ALIGN_TO_4_BYTES;
2435
2436         if (parent_tree) {
2437                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
2438                 tree = proto_item_add_subtree(item,ett_samr_samr_UserAccessMask);
2439         }
2440
2441         offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
2442         proto_item_append_text(item, ": ");
2443
2444         if (!flags)
2445                 proto_item_append_text(item, "(No values set)");
2446
2447         proto_tree_add_boolean(tree, hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_NAME_ETC, tvb, offset-4, 4, flags);
2448         if (flags&( 0x00000001 )){
2449                 proto_item_append_text(item, "SAMR_USER_ACCESS_GET_NAME_ETC");
2450                 if (flags & (~( 0x00000001 )))
2451                         proto_item_append_text(item, ", ");
2452         }
2453         flags&=(~( 0x00000001 ));
2454
2455         proto_tree_add_boolean(tree, hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_LOCALE, tvb, offset-4, 4, flags);
2456         if (flags&( 0x00000002 )){
2457                 proto_item_append_text(item, "SAMR_USER_ACCESS_GET_LOCALE");
2458                 if (flags & (~( 0x00000002 )))
2459                         proto_item_append_text(item, ", ");
2460         }
2461         flags&=(~( 0x00000002 ));
2462
2463         proto_tree_add_boolean(tree, hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_SET_LOC_COM, tvb, offset-4, 4, flags);
2464         if (flags&( 0x00000004 )){
2465                 proto_item_append_text(item, "SAMR_USER_ACCESS_SET_LOC_COM");
2466                 if (flags & (~( 0x00000004 )))
2467                         proto_item_append_text(item, ", ");
2468         }
2469         flags&=(~( 0x00000004 ));
2470
2471         proto_tree_add_boolean(tree, hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_LOGONINFO, tvb, offset-4, 4, flags);
2472         if (flags&( 0x00000008 )){
2473                 proto_item_append_text(item, "SAMR_USER_ACCESS_GET_LOGONINFO");
2474                 if (flags & (~( 0x00000008 )))
2475                         proto_item_append_text(item, ", ");
2476         }
2477         flags&=(~( 0x00000008 ));
2478
2479         proto_tree_add_boolean(tree, hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_ATTRIBUTES, tvb, offset-4, 4, flags);
2480         if (flags&( 0x00000010 )){
2481                 proto_item_append_text(item, "SAMR_USER_ACCESS_GET_ATTRIBUTES");
2482                 if (flags & (~( 0x00000010 )))
2483                         proto_item_append_text(item, ", ");
2484         }
2485         flags&=(~( 0x00000010 ));
2486
2487         proto_tree_add_boolean(tree, hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_SET_ATTRIBUTES, tvb, offset-4, 4, flags);
2488         if (flags&( 0x00000020 )){
2489                 proto_item_append_text(item, "SAMR_USER_ACCESS_SET_ATTRIBUTES");
2490                 if (flags & (~( 0x00000020 )))
2491                         proto_item_append_text(item, ", ");
2492         }
2493         flags&=(~( 0x00000020 ));
2494
2495         proto_tree_add_boolean(tree, hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_CHANGE_PASSWORD, tvb, offset-4, 4, flags);
2496         if (flags&( 0x00000040 )){
2497                 proto_item_append_text(item, "SAMR_USER_ACCESS_CHANGE_PASSWORD");
2498                 if (flags & (~( 0x00000040 )))
2499                         proto_item_append_text(item, ", ");
2500         }
2501         flags&=(~( 0x00000040 ));
2502
2503         proto_tree_add_boolean(tree, hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_SET_PASSWORD, tvb, offset-4, 4, flags);
2504         if (flags&( 0x00000080 )){
2505                 proto_item_append_text(item, "SAMR_USER_ACCESS_SET_PASSWORD");
2506                 if (flags & (~( 0x00000080 )))
2507                         proto_item_append_text(item, ", ");
2508         }
2509         flags&=(~( 0x00000080 ));
2510
2511         proto_tree_add_boolean(tree, hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_GROUPS, tvb, offset-4, 4, flags);
2512         if (flags&( 0x00000100 )){
2513                 proto_item_append_text(item, "SAMR_USER_ACCESS_GET_GROUPS");
2514                 if (flags & (~( 0x00000100 )))
2515                         proto_item_append_text(item, ", ");
2516         }
2517         flags&=(~( 0x00000100 ));
2518
2519         proto_tree_add_boolean(tree, hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_GROUP_MEMBERSHIP, tvb, offset-4, 4, flags);
2520         if (flags&( 0x00000200 )){
2521                 proto_item_append_text(item, "SAMR_USER_ACCESS_GET_GROUP_MEMBERSHIP");
2522                 if (flags & (~( 0x00000200 )))
2523                         proto_item_append_text(item, ", ");
2524         }
2525         flags&=(~( 0x00000200 ));
2526
2527         proto_tree_add_boolean(tree, hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_CHANGE_GROUP_MEMBERSHIP, tvb, offset-4, 4, flags);
2528         if (flags&( 0x00000400 )){
2529                 proto_item_append_text(item, "SAMR_USER_ACCESS_CHANGE_GROUP_MEMBERSHIP");
2530                 if (flags & (~( 0x00000400 )))
2531                         proto_item_append_text(item, ", ");
2532         }
2533         flags&=(~( 0x00000400 ));
2534
2535         if (flags) {
2536                 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
2537         }
2538
2539         return offset;
2540 }
2541
2542
2543 /* IDL: bitmap { */
2544 /* IDL:         SAMR_DOMAIN_ACCESS_LOOKUP_INFO_1 =  0x00000001 , */
2545 /* IDL:         SAMR_DOMAIN_ACCESS_SET_INFO_1 =  0x00000002 , */
2546 /* IDL:         SAMR_DOMAIN_ACCESS_LOOKUP_INFO_2 =  0x00000004 , */
2547 /* IDL:         SAMR_DOMAIN_ACCESS_SET_INFO_2 =  0x00000008 , */
2548 /* IDL:         SAMR_DOMAIN_ACCESS_CREATE_USER =  0x00000010 , */
2549 /* IDL:         SAMR_DOMAIN_ACCESS_CREATE_GROUP =  0x00000020 , */
2550 /* IDL:         SAMR_DOMAIN_ACCESS_CREATE_ALIAS =  0x00000040 , */
2551 /* IDL:         SAMR_DOMAIN_ACCESS_LOOKUP_ALIAS =  0x00000080 , */
2552 /* IDL:         SAMR_DOMAIN_ACCESS_ENUM_ACCOUNTS =  0x00000100 , */
2553 /* IDL:         SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT =  0x00000200 , */
2554 /* IDL:         SAMR_DOMAIN_ACCESS_SET_INFO_3 =  0x00000400 , */
2555 /* IDL: } */
2556
2557 int
2558 samr_dissect_bitmap_DomainAccessMask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
2559 {
2560         proto_item *item = NULL;
2561         proto_tree *tree = NULL;
2562
2563         guint32 flags;
2564         ALIGN_TO_4_BYTES;
2565
2566         if (parent_tree) {
2567                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
2568                 tree = proto_item_add_subtree(item,ett_samr_samr_DomainAccessMask);
2569         }
2570
2571         offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
2572         proto_item_append_text(item, ": ");
2573
2574         if (!flags)
2575                 proto_item_append_text(item, "(No values set)");
2576
2577         proto_tree_add_boolean(tree, hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_INFO_1, tvb, offset-4, 4, flags);
2578         if (flags&( 0x00000001 )){
2579                 proto_item_append_text(item, "SAMR_DOMAIN_ACCESS_LOOKUP_INFO_1");
2580                 if (flags & (~( 0x00000001 )))
2581                         proto_item_append_text(item, ", ");
2582         }
2583         flags&=(~( 0x00000001 ));
2584
2585         proto_tree_add_boolean(tree, hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_1, tvb, offset-4, 4, flags);
2586         if (flags&( 0x00000002 )){
2587                 proto_item_append_text(item, "SAMR_DOMAIN_ACCESS_SET_INFO_1");
2588                 if (flags & (~( 0x00000002 )))
2589                         proto_item_append_text(item, ", ");
2590         }
2591         flags&=(~( 0x00000002 ));
2592
2593         proto_tree_add_boolean(tree, hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_INFO_2, tvb, offset-4, 4, flags);
2594         if (flags&( 0x00000004 )){
2595                 proto_item_append_text(item, "SAMR_DOMAIN_ACCESS_LOOKUP_INFO_2");
2596                 if (flags & (~( 0x00000004 )))
2597                         proto_item_append_text(item, ", ");
2598         }
2599         flags&=(~( 0x00000004 ));
2600
2601         proto_tree_add_boolean(tree, hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_2, tvb, offset-4, 4, flags);
2602         if (flags&( 0x00000008 )){
2603                 proto_item_append_text(item, "SAMR_DOMAIN_ACCESS_SET_INFO_2");
2604                 if (flags & (~( 0x00000008 )))
2605                         proto_item_append_text(item, ", ");
2606         }
2607         flags&=(~( 0x00000008 ));
2608
2609         proto_tree_add_boolean(tree, hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_USER, tvb, offset-4, 4, flags);
2610         if (flags&( 0x00000010 )){
2611                 proto_item_append_text(item, "SAMR_DOMAIN_ACCESS_CREATE_USER");
2612                 if (flags & (~( 0x00000010 )))
2613                         proto_item_append_text(item, ", ");
2614         }
2615         flags&=(~( 0x00000010 ));
2616
2617         proto_tree_add_boolean(tree, hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_GROUP, tvb, offset-4, 4, flags);
2618         if (flags&( 0x00000020 )){
2619                 proto_item_append_text(item, "SAMR_DOMAIN_ACCESS_CREATE_GROUP");
2620                 if (flags & (~( 0x00000020 )))
2621                         proto_item_append_text(item, ", ");
2622         }
2623         flags&=(~( 0x00000020 ));
2624
2625         proto_tree_add_boolean(tree, hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_ALIAS, tvb, offset-4, 4, flags);
2626         if (flags&( 0x00000040 )){
2627                 proto_item_append_text(item, "SAMR_DOMAIN_ACCESS_CREATE_ALIAS");
2628                 if (flags & (~( 0x00000040 )))
2629                         proto_item_append_text(item, ", ");
2630         }
2631         flags&=(~( 0x00000040 ));
2632
2633         proto_tree_add_boolean(tree, hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_ALIAS, tvb, offset-4, 4, flags);
2634         if (flags&( 0x00000080 )){
2635                 proto_item_append_text(item, "SAMR_DOMAIN_ACCESS_LOOKUP_ALIAS");
2636                 if (flags & (~( 0x00000080 )))
2637                         proto_item_append_text(item, ", ");
2638         }
2639         flags&=(~( 0x00000080 ));
2640
2641         proto_tree_add_boolean(tree, hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_ENUM_ACCOUNTS, tvb, offset-4, 4, flags);
2642         if (flags&( 0x00000100 )){
2643                 proto_item_append_text(item, "SAMR_DOMAIN_ACCESS_ENUM_ACCOUNTS");
2644                 if (flags & (~( 0x00000100 )))
2645                         proto_item_append_text(item, ", ");
2646         }
2647         flags&=(~( 0x00000100 ));
2648
2649         proto_tree_add_boolean(tree, hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT, tvb, offset-4, 4, flags);
2650         if (flags&( 0x00000200 )){
2651                 proto_item_append_text(item, "SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT");
2652                 if (flags & (~( 0x00000200 )))
2653                         proto_item_append_text(item, ", ");
2654         }
2655         flags&=(~( 0x00000200 ));
2656
2657         proto_tree_add_boolean(tree, hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_3, tvb, offset-4, 4, flags);
2658         if (flags&( 0x00000400 )){
2659                 proto_item_append_text(item, "SAMR_DOMAIN_ACCESS_SET_INFO_3");
2660                 if (flags & (~( 0x00000400 )))
2661                         proto_item_append_text(item, ", ");
2662         }
2663         flags&=(~( 0x00000400 ));
2664
2665         if (flags) {
2666                 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
2667         }
2668
2669         return offset;
2670 }
2671
2672
2673 /* IDL: bitmap { */
2674 /* IDL:         SAMR_GROUP_ACCESS_LOOKUP_INFO =  0x00000001 , */
2675 /* IDL:         SAMR_GROUP_ACCESS_SET_INFO =  0x00000002 , */
2676 /* IDL:         SAMR_GROUP_ACCESS_ADD_MEMBER =  0x00000004 , */
2677 /* IDL:         SAMR_GROUP_ACCESS_REMOVE_MEMBER =  0x00000008 , */
2678 /* IDL:         SAMR_GROUP_ACCESS_GET_MEMBERS =  0x00000010 , */
2679 /* IDL: } */
2680
2681 int
2682 samr_dissect_bitmap_GroupAccessMask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
2683 {
2684         proto_item *item = NULL;
2685         proto_tree *tree = NULL;
2686
2687         guint32 flags;
2688         ALIGN_TO_4_BYTES;
2689
2690         if (parent_tree) {
2691                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
2692                 tree = proto_item_add_subtree(item,ett_samr_samr_GroupAccessMask);
2693         }
2694
2695         offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
2696         proto_item_append_text(item, ": ");
2697
2698         if (!flags)
2699                 proto_item_append_text(item, "(No values set)");
2700
2701         proto_tree_add_boolean(tree, hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_LOOKUP_INFO, tvb, offset-4, 4, flags);
2702         if (flags&( 0x00000001 )){
2703                 proto_item_append_text(item, "SAMR_GROUP_ACCESS_LOOKUP_INFO");
2704                 if (flags & (~( 0x00000001 )))
2705                         proto_item_append_text(item, ", ");
2706         }
2707         flags&=(~( 0x00000001 ));
2708
2709         proto_tree_add_boolean(tree, hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_SET_INFO, tvb, offset-4, 4, flags);
2710         if (flags&( 0x00000002 )){
2711                 proto_item_append_text(item, "SAMR_GROUP_ACCESS_SET_INFO");
2712                 if (flags & (~( 0x00000002 )))
2713                         proto_item_append_text(item, ", ");
2714         }
2715         flags&=(~( 0x00000002 ));
2716
2717         proto_tree_add_boolean(tree, hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_ADD_MEMBER, tvb, offset-4, 4, flags);
2718         if (flags&( 0x00000004 )){
2719                 proto_item_append_text(item, "SAMR_GROUP_ACCESS_ADD_MEMBER");
2720                 if (flags & (~( 0x00000004 )))
2721                         proto_item_append_text(item, ", ");
2722         }
2723         flags&=(~( 0x00000004 ));
2724
2725         proto_tree_add_boolean(tree, hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_REMOVE_MEMBER, tvb, offset-4, 4, flags);
2726         if (flags&( 0x00000008 )){
2727                 proto_item_append_text(item, "SAMR_GROUP_ACCESS_REMOVE_MEMBER");
2728                 if (flags & (~( 0x00000008 )))
2729                         proto_item_append_text(item, ", ");
2730         }
2731         flags&=(~( 0x00000008 ));
2732
2733         proto_tree_add_boolean(tree, hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_GET_MEMBERS, tvb, offset-4, 4, flags);
2734         if (flags&( 0x00000010 )){
2735                 proto_item_append_text(item, "SAMR_GROUP_ACCESS_GET_MEMBERS");
2736                 if (flags & (~( 0x00000010 )))
2737                         proto_item_append_text(item, ", ");
2738         }
2739         flags&=(~( 0x00000010 ));
2740
2741         if (flags) {
2742                 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
2743         }
2744
2745         return offset;
2746 }
2747
2748
2749 /* IDL: bitmap { */
2750 /* IDL:         SAMR_ALIAS_ACCESS_ADD_MEMBER =  0x00000001 , */
2751 /* IDL:         SAMR_ALIAS_ACCESS_REMOVE_MEMBER =  0x00000002 , */
2752 /* IDL:         SAMR_ALIAS_ACCESS_GET_MEMBERS =  0x00000004 , */
2753 /* IDL:         SAMR_ALIAS_ACCESS_LOOKUP_INFO =  0x00000008 , */
2754 /* IDL:         SAMR_ALIAS_ACCESS_SET_INFO =  0x00000010 , */
2755 /* IDL: } */
2756
2757 int
2758 samr_dissect_bitmap_AliasAccessMask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
2759 {
2760         proto_item *item = NULL;
2761         proto_tree *tree = NULL;
2762
2763         guint32 flags;
2764         ALIGN_TO_4_BYTES;
2765
2766         if (parent_tree) {
2767                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
2768                 tree = proto_item_add_subtree(item,ett_samr_samr_AliasAccessMask);
2769         }
2770
2771         offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
2772         proto_item_append_text(item, ": ");
2773
2774         if (!flags)
2775                 proto_item_append_text(item, "(No values set)");
2776
2777         proto_tree_add_boolean(tree, hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_ADD_MEMBER, tvb, offset-4, 4, flags);
2778         if (flags&( 0x00000001 )){
2779                 proto_item_append_text(item, "SAMR_ALIAS_ACCESS_ADD_MEMBER");
2780                 if (flags & (~( 0x00000001 )))
2781                         proto_item_append_text(item, ", ");
2782         }
2783         flags&=(~( 0x00000001 ));
2784
2785         proto_tree_add_boolean(tree, hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_REMOVE_MEMBER, tvb, offset-4, 4, flags);
2786         if (flags&( 0x00000002 )){
2787                 proto_item_append_text(item, "SAMR_ALIAS_ACCESS_REMOVE_MEMBER");
2788                 if (flags & (~( 0x00000002 )))
2789                         proto_item_append_text(item, ", ");
2790         }
2791         flags&=(~( 0x00000002 ));
2792
2793         proto_tree_add_boolean(tree, hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_GET_MEMBERS, tvb, offset-4, 4, flags);
2794         if (flags&( 0x00000004 )){
2795                 proto_item_append_text(item, "SAMR_ALIAS_ACCESS_GET_MEMBERS");
2796                 if (flags & (~( 0x00000004 )))
2797                         proto_item_append_text(item, ", ");
2798         }
2799         flags&=(~( 0x00000004 ));
2800
2801         proto_tree_add_boolean(tree, hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_LOOKUP_INFO, tvb, offset-4, 4, flags);
2802         if (flags&( 0x00000008 )){
2803                 proto_item_append_text(item, "SAMR_ALIAS_ACCESS_LOOKUP_INFO");
2804                 if (flags & (~( 0x00000008 )))
2805                         proto_item_append_text(item, ", ");
2806         }
2807         flags&=(~( 0x00000008 ));
2808
2809         proto_tree_add_boolean(tree, hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_SET_INFO, tvb, offset-4, 4, flags);
2810         if (flags&( 0x00000010 )){
2811                 proto_item_append_text(item, "SAMR_ALIAS_ACCESS_SET_INFO");
2812                 if (flags & (~( 0x00000010 )))
2813                         proto_item_append_text(item, ", ");
2814         }
2815         flags&=(~( 0x00000010 ));
2816
2817         if (flags) {
2818                 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
2819         }
2820
2821         return offset;
2822 }
2823
2824
2825 /* IDL: struct { */
2826 /* IDL:         uint32 idx; */
2827 /* IDL:         lsa_String name; */
2828 /* IDL: } */
2829
2830 static int
2831 samr_dissect_element_SamEntry_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2832 {
2833         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_SamEntry_idx, 0);
2834
2835         return offset;
2836 }
2837
2838 static int
2839 samr_dissect_element_SamEntry_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2840 {
2841         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_SamEntry_name,0);
2842
2843         return offset;
2844 }
2845
2846 int
2847 samr_dissect_struct_SamEntry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
2848 {
2849         proto_item *item = NULL;
2850         proto_tree *tree = NULL;
2851         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
2852         int old_offset;
2853
2854         ALIGN_TO_5_BYTES;
2855
2856         old_offset = offset;
2857
2858         if (parent_tree) {
2859                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2860                 tree = proto_item_add_subtree(item, ett_samr_samr_SamEntry);
2861         }
2862         
2863         offset = samr_dissect_element_SamEntry_idx(tvb, offset, pinfo, tree, drep);
2864
2865         offset = samr_dissect_element_SamEntry_name(tvb, offset, pinfo, tree, drep);
2866
2867
2868         proto_item_set_len(item, offset-old_offset);
2869
2870
2871         if (di->call_data->flags & DCERPC_IS_NDR64) {
2872                 ALIGN_TO_5_BYTES;
2873         }
2874
2875         return offset;
2876 }
2877
2878
2879 /* IDL: struct { */
2880 /* IDL:         uint32 count; */
2881 /* IDL:         [unique(1)] [size_is(count)] samr_SamEntry *entries; */
2882 /* IDL: } */
2883
2884 static int
2885 samr_dissect_element_SamArray_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2886 {
2887         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_SamArray_count, 0);
2888
2889         return offset;
2890 }
2891
2892 static int
2893 samr_dissect_element_SamArray_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2894 {
2895         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_SamArray_entries_, NDR_POINTER_UNIQUE, "Pointer to Entries (samr_SamEntry)",hf_samr_samr_SamArray_entries);
2896
2897         return offset;
2898 }
2899
2900 static int
2901 samr_dissect_element_SamArray_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2902 {
2903         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, samr_dissect_element_SamArray_entries__);
2904
2905         return offset;
2906 }
2907
2908 static int
2909 samr_dissect_element_SamArray_entries__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2910 {
2911         offset = samr_dissect_struct_SamEntry(tvb,offset,pinfo,tree,drep,hf_samr_samr_SamArray_entries,0);
2912
2913         return offset;
2914 }
2915
2916 int
2917 samr_dissect_struct_SamArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
2918 {
2919         proto_item *item = NULL;
2920         proto_tree *tree = NULL;
2921         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
2922         int old_offset;
2923
2924         ALIGN_TO_5_BYTES;
2925
2926         old_offset = offset;
2927
2928         if (parent_tree) {
2929                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2930                 tree = proto_item_add_subtree(item, ett_samr_samr_SamArray);
2931         }
2932         
2933         offset = samr_dissect_element_SamArray_count(tvb, offset, pinfo, tree, drep);
2934
2935         offset = samr_dissect_element_SamArray_entries(tvb, offset, pinfo, tree, drep);
2936
2937
2938         proto_item_set_len(item, offset-old_offset);
2939
2940
2941         if (di->call_data->flags & DCERPC_IS_NDR64) {
2942                 ALIGN_TO_5_BYTES;
2943         }
2944
2945         return offset;
2946 }
2947
2948
2949 /* IDL: enum { */
2950 /* IDL:         DomainPasswordInformation=1, */
2951 /* IDL:         DomainGeneralInformation=2, */
2952 /* IDL:         DomainLogoffInformation=3, */
2953 /* IDL:         DomainOemInformation=4, */
2954 /* IDL:         DomainNameInformation=5, */
2955 /* IDL:         DomainReplicationInformation=6, */
2956 /* IDL:         DomainServerRoleInformation=7, */
2957 /* IDL:         DomainModifiedInformation=8, */
2958 /* IDL:         DomainStateInformation=9, */
2959 /* IDL:         DomainUasInformation=10, */
2960 /* IDL:         DomainGeneralInformation2=11, */
2961 /* IDL:         DomainLockoutInformation=12, */
2962 /* IDL:         DomainModifiedInformation2=13, */
2963 /* IDL: } */
2964
2965 int
2966 samr_dissect_enum_DomainInfoClass(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
2967 {
2968         guint1632 parameter=0;
2969         if(param){
2970                 parameter=(guint1632)*param;
2971         }
2972         offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
2973         if(param){
2974                 *param=(guint32)parameter;
2975         }
2976         return offset;
2977 }
2978
2979
2980 /* IDL: enum { */
2981 /* IDL:         SAMR_ROLE_STANDALONE=0, */
2982 /* IDL:         SAMR_ROLE_DOMAIN_MEMBER=1, */
2983 /* IDL:         SAMR_ROLE_DOMAIN_BDC=2, */
2984 /* IDL:         SAMR_ROLE_DOMAIN_PDC=3, */
2985 /* IDL: } */
2986
2987 int
2988 samr_dissect_enum_Role(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
2989 {
2990         guint32 parameter=0;
2991         if(param){
2992                 parameter=(guint32)*param;
2993         }
2994         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
2995         if(param){
2996                 *param=(guint32)parameter;
2997         }
2998         return offset;
2999 }
3000
3001
3002 /* IDL: bitmap { */
3003 /* IDL:         DOMAIN_PASSWORD_COMPLEX =  0x00000001 , */
3004 /* IDL:         DOMAIN_PASSWORD_NO_ANON_CHANGE =  0x00000002 , */
3005 /* IDL:         DOMAIN_PASSWORD_NO_CLEAR_CHANGE =  0x00000004 , */
3006 /* IDL:         DOMAIN_PASSWORD_LOCKOUT_ADMINS =  0x00000008 , */
3007 /* IDL:         DOMAIN_PASSWORD_STORE_CLEARTEXT =  0x00000010 , */
3008 /* IDL:         DOMAIN_REFUSE_PASSWORD_CHANGE =  0x00000020 , */
3009 /* IDL: } */
3010
3011 int
3012 samr_dissect_bitmap_PasswordProperties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
3013 {
3014         proto_item *item = NULL;
3015         proto_tree *tree = NULL;
3016
3017         guint32 flags;
3018         ALIGN_TO_4_BYTES;
3019
3020         if (parent_tree) {
3021                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
3022                 tree = proto_item_add_subtree(item,ett_samr_samr_PasswordProperties);
3023         }
3024
3025         offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
3026         proto_item_append_text(item, ": ");
3027
3028         if (!flags)
3029                 proto_item_append_text(item, "(No values set)");
3030
3031         proto_tree_add_boolean(tree, hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_COMPLEX, tvb, offset-4, 4, flags);
3032         if (flags&( 0x00000001 )){
3033                 proto_item_append_text(item, "DOMAIN_PASSWORD_COMPLEX");
3034                 if (flags & (~( 0x00000001 )))
3035                         proto_item_append_text(item, ", ");
3036         }
3037         flags&=(~( 0x00000001 ));
3038
3039         proto_tree_add_boolean(tree, hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_NO_ANON_CHANGE, tvb, offset-4, 4, flags);
3040         if (flags&( 0x00000002 )){
3041                 proto_item_append_text(item, "DOMAIN_PASSWORD_NO_ANON_CHANGE");
3042                 if (flags & (~( 0x00000002 )))
3043                         proto_item_append_text(item, ", ");
3044         }
3045         flags&=(~( 0x00000002 ));
3046
3047         proto_tree_add_boolean(tree, hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_NO_CLEAR_CHANGE, tvb, offset-4, 4, flags);
3048         if (flags&( 0x00000004 )){
3049                 proto_item_append_text(item, "DOMAIN_PASSWORD_NO_CLEAR_CHANGE");
3050                 if (flags & (~( 0x00000004 )))
3051                         proto_item_append_text(item, ", ");
3052         }
3053         flags&=(~( 0x00000004 ));
3054
3055         proto_tree_add_boolean(tree, hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_LOCKOUT_ADMINS, tvb, offset-4, 4, flags);
3056         if (flags&( 0x00000008 )){
3057                 proto_item_append_text(item, "DOMAIN_PASSWORD_LOCKOUT_ADMINS");
3058                 if (flags & (~( 0x00000008 )))
3059                         proto_item_append_text(item, ", ");
3060         }
3061         flags&=(~( 0x00000008 ));
3062
3063         proto_tree_add_boolean(tree, hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_STORE_CLEARTEXT, tvb, offset-4, 4, flags);
3064         if (flags&( 0x00000010 )){
3065                 proto_item_append_text(item, "DOMAIN_PASSWORD_STORE_CLEARTEXT");
3066                 if (flags & (~( 0x00000010 )))
3067                         proto_item_append_text(item, ", ");
3068         }
3069         flags&=(~( 0x00000010 ));
3070
3071         proto_tree_add_boolean(tree, hf_samr_samr_PasswordProperties_DOMAIN_REFUSE_PASSWORD_CHANGE, tvb, offset-4, 4, flags);
3072         if (flags&( 0x00000020 )){
3073                 proto_item_append_text(item, "DOMAIN_REFUSE_PASSWORD_CHANGE");
3074                 if (flags & (~( 0x00000020 )))
3075                         proto_item_append_text(item, ", ");
3076         }
3077         flags&=(~( 0x00000020 ));
3078
3079         if (flags) {
3080                 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
3081         }
3082
3083         return offset;
3084 }
3085
3086
3087 /* IDL: enum { */
3088 /* IDL:         DOMAIN_SERVER_ENABLED=1, */
3089 /* IDL:         DOMAIN_SERVER_DISABLED=2, */
3090 /* IDL: } */
3091
3092 int
3093 samr_dissect_enum_DomainServerState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
3094 {
3095         guint32 parameter=0;
3096         if(param){
3097                 parameter=(guint32)*param;
3098         }
3099         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
3100         if(param){
3101                 *param=(guint32)parameter;
3102         }
3103         return offset;
3104 }
3105
3106
3107 /* IDL: struct { */
3108 /* IDL:         uint16 min_password_length; */
3109 /* IDL:         uint16 password_history_length; */
3110 /* IDL:         samr_PasswordProperties password_properties; */
3111 /* IDL:         dlong max_password_age; */
3112 /* IDL:         dlong min_password_age; */
3113 /* IDL: } */
3114
3115 static int
3116 samr_dissect_element_DomInfo1_min_password_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3117 {
3118         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomInfo1_min_password_length, 0);
3119
3120         return offset;
3121 }
3122
3123 static int
3124 samr_dissect_element_DomInfo1_password_history_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3125 {
3126         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomInfo1_password_history_length, 0);
3127
3128         return offset;
3129 }
3130
3131 static int
3132 samr_dissect_element_DomInfo1_password_properties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3133 {
3134         offset = samr_dissect_bitmap_PasswordProperties(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomInfo1_password_properties, 0);
3135
3136         return offset;
3137 }
3138
3139 static int
3140 samr_dissect_element_DomInfo1_max_password_age(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3141 {
3142         offset = dissect_ndr_duint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomInfo1_max_password_age, NULL);
3143
3144         return offset;
3145 }
3146
3147 static int
3148 samr_dissect_element_DomInfo1_min_password_age(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3149 {
3150         offset = dissect_ndr_duint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomInfo1_min_password_age, NULL);
3151
3152         return offset;
3153 }
3154
3155 int
3156 samr_dissect_struct_DomInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
3157 {
3158         proto_item *item = NULL;
3159         proto_tree *tree = NULL;
3160         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
3161         int old_offset;
3162
3163         ALIGN_TO_4_BYTES;
3164
3165         old_offset = offset;
3166
3167         if (parent_tree) {
3168                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3169                 tree = proto_item_add_subtree(item, ett_samr_samr_DomInfo1);
3170         }
3171         
3172         offset = samr_dissect_element_DomInfo1_min_password_length(tvb, offset, pinfo, tree, drep);
3173
3174         offset = samr_dissect_element_DomInfo1_password_history_length(tvb, offset, pinfo, tree, drep);
3175
3176         offset = samr_dissect_element_DomInfo1_password_properties(tvb, offset, pinfo, tree, drep);
3177
3178         offset = samr_dissect_element_DomInfo1_max_password_age(tvb, offset, pinfo, tree, drep);
3179
3180         offset = samr_dissect_element_DomInfo1_min_password_age(tvb, offset, pinfo, tree, drep);
3181
3182
3183         proto_item_set_len(item, offset-old_offset);
3184
3185
3186         if (di->call_data->flags & DCERPC_IS_NDR64) {
3187                 ALIGN_TO_4_BYTES;
3188         }
3189
3190         return offset;
3191 }
3192
3193
3194 /* IDL: struct { */
3195 /* IDL:         NTTIME force_logoff_time; */
3196 /* IDL:         lsa_String oem_information; */
3197 /* IDL:         lsa_String domain_name; */
3198 /* IDL:         lsa_String primary; */
3199 /* IDL:         udlong sequence_num; */
3200 /* IDL:         samr_DomainServerState domain_server_state; */
3201 /* IDL:         samr_Role role; */
3202 /* IDL:         uint32 unknown3; */
3203 /* IDL:         uint32 num_users; */
3204 /* IDL:         uint32 num_groups; */
3205 /* IDL:         uint32 num_aliases; */
3206 /* IDL: } */
3207
3208 static int
3209 samr_dissect_element_DomGeneralInformation_force_logoff_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3210 {
3211         offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomGeneralInformation_force_logoff_time);
3212
3213         return offset;
3214 }
3215
3216 static int
3217 samr_dissect_element_DomGeneralInformation_oem_information(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3218 {
3219         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_DomGeneralInformation_oem_information,0);
3220
3221         return offset;
3222 }
3223
3224 static int
3225 samr_dissect_element_DomGeneralInformation_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3226 {
3227         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_DomGeneralInformation_domain_name,0);
3228
3229         return offset;
3230 }
3231
3232 static int
3233 samr_dissect_element_DomGeneralInformation_primary(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3234 {
3235         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_DomGeneralInformation_primary,0);
3236
3237         return offset;
3238 }
3239
3240 static int
3241 samr_dissect_element_DomGeneralInformation_sequence_num(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3242 {
3243         offset = dissect_ndr_duint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomGeneralInformation_sequence_num, NULL);
3244
3245         return offset;
3246 }
3247
3248 static int
3249 samr_dissect_element_DomGeneralInformation_domain_server_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3250 {
3251         offset = samr_dissect_enum_DomainServerState(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomGeneralInformation_domain_server_state, 0);
3252
3253         return offset;
3254 }
3255
3256 static int
3257 samr_dissect_element_DomGeneralInformation_role(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3258 {
3259         offset = samr_dissect_enum_Role(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomGeneralInformation_role, 0);
3260
3261         return offset;
3262 }
3263
3264 static int
3265 samr_dissect_element_DomGeneralInformation_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3266 {
3267         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomGeneralInformation_unknown3, 0);
3268
3269         return offset;
3270 }
3271
3272 static int
3273 samr_dissect_element_DomGeneralInformation_num_users(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3274 {
3275         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomGeneralInformation_num_users, 0);
3276
3277         return offset;
3278 }
3279
3280 static int
3281 samr_dissect_element_DomGeneralInformation_num_groups(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3282 {
3283         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomGeneralInformation_num_groups, 0);
3284
3285         return offset;
3286 }
3287
3288 static int
3289 samr_dissect_element_DomGeneralInformation_num_aliases(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3290 {
3291         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomGeneralInformation_num_aliases, 0);
3292
3293         return offset;
3294 }
3295
3296 int
3297 samr_dissect_struct_DomGeneralInformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
3298 {
3299         proto_item *item = NULL;
3300         proto_tree *tree = NULL;
3301         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
3302         int old_offset;
3303
3304         ALIGN_TO_5_BYTES;
3305
3306         old_offset = offset;
3307
3308         if (parent_tree) {
3309                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3310                 tree = proto_item_add_subtree(item, ett_samr_samr_DomGeneralInformation);
3311         }
3312         
3313         offset = samr_dissect_element_DomGeneralInformation_force_logoff_time(tvb, offset, pinfo, tree, drep);
3314
3315         offset = samr_dissect_element_DomGeneralInformation_oem_information(tvb, offset, pinfo, tree, drep);
3316
3317         offset = samr_dissect_element_DomGeneralInformation_domain_name(tvb, offset, pinfo, tree, drep);
3318
3319         offset = samr_dissect_element_DomGeneralInformation_primary(tvb, offset, pinfo, tree, drep);
3320
3321         offset = samr_dissect_element_DomGeneralInformation_sequence_num(tvb, offset, pinfo, tree, drep);
3322
3323         offset = samr_dissect_element_DomGeneralInformation_domain_server_state(tvb, offset, pinfo, tree, drep);
3324
3325         offset = samr_dissect_element_DomGeneralInformation_role(tvb, offset, pinfo, tree, drep);
3326
3327         offset = samr_dissect_element_DomGeneralInformation_unknown3(tvb, offset, pinfo, tree, drep);
3328
3329         offset = samr_dissect_element_DomGeneralInformation_num_users(tvb, offset, pinfo, tree, drep);
3330
3331         offset = samr_dissect_element_DomGeneralInformation_num_groups(tvb, offset, pinfo, tree, drep);
3332
3333         offset = samr_dissect_element_DomGeneralInformation_num_aliases(tvb, offset, pinfo, tree, drep);
3334
3335
3336         proto_item_set_len(item, offset-old_offset);
3337
3338
3339         if (di->call_data->flags & DCERPC_IS_NDR64) {
3340                 ALIGN_TO_5_BYTES;
3341         }
3342
3343         return offset;
3344 }
3345
3346
3347 /* IDL: struct { */
3348 /* IDL:         NTTIME force_logoff_time; */
3349 /* IDL: } */
3350
3351 static int
3352 samr_dissect_element_DomInfo3_force_logoff_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3353 {
3354         offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomInfo3_force_logoff_time);
3355
3356         return offset;
3357 }
3358
3359 int
3360 samr_dissect_struct_DomInfo3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
3361 {
3362         proto_item *item = NULL;
3363         proto_tree *tree = NULL;
3364         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
3365         int old_offset;
3366
3367         ALIGN_TO_4_BYTES;
3368
3369         old_offset = offset;
3370
3371         if (parent_tree) {
3372                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3373                 tree = proto_item_add_subtree(item, ett_samr_samr_DomInfo3);
3374         }
3375         
3376         offset = samr_dissect_element_DomInfo3_force_logoff_time(tvb, offset, pinfo, tree, drep);
3377
3378
3379         proto_item_set_len(item, offset-old_offset);
3380
3381
3382         if (di->call_data->flags & DCERPC_IS_NDR64) {
3383                 ALIGN_TO_4_BYTES;
3384         }
3385
3386         return offset;
3387 }
3388
3389
3390 /* IDL: struct { */
3391 /* IDL:         lsa_String oem_information; */
3392 /* IDL: } */
3393
3394 static int
3395 samr_dissect_element_DomOEMInformation_oem_information(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3396 {
3397         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_DomOEMInformation_oem_information,0);
3398
3399         return offset;
3400 }
3401
3402 int
3403 samr_dissect_struct_DomOEMInformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
3404 {
3405         proto_item *item = NULL;
3406         proto_tree *tree = NULL;
3407         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
3408         int old_offset;
3409
3410         ALIGN_TO_5_BYTES;
3411
3412         old_offset = offset;
3413
3414         if (parent_tree) {
3415                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3416                 tree = proto_item_add_subtree(item, ett_samr_samr_DomOEMInformation);
3417         }
3418         
3419         offset = samr_dissect_element_DomOEMInformation_oem_information(tvb, offset, pinfo, tree, drep);
3420
3421
3422         proto_item_set_len(item, offset-old_offset);
3423
3424
3425         if (di->call_data->flags & DCERPC_IS_NDR64) {
3426                 ALIGN_TO_5_BYTES;
3427         }
3428
3429         return offset;
3430 }
3431
3432
3433 /* IDL: struct { */
3434 /* IDL:         lsa_String domain_name; */
3435 /* IDL: } */
3436
3437 static int
3438 samr_dissect_element_DomInfo5_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3439 {
3440         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_DomInfo5_domain_name,0);
3441
3442         return offset;
3443 }
3444
3445 int
3446 samr_dissect_struct_DomInfo5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
3447 {
3448         proto_item *item = NULL;
3449         proto_tree *tree = NULL;
3450         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
3451         int old_offset;
3452
3453         ALIGN_TO_5_BYTES;
3454
3455         old_offset = offset;
3456
3457         if (parent_tree) {
3458                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3459                 tree = proto_item_add_subtree(item, ett_samr_samr_DomInfo5);
3460         }
3461         
3462         offset = samr_dissect_element_DomInfo5_domain_name(tvb, offset, pinfo, tree, drep);
3463
3464
3465         proto_item_set_len(item, offset-old_offset);
3466
3467
3468         if (di->call_data->flags & DCERPC_IS_NDR64) {
3469                 ALIGN_TO_5_BYTES;
3470         }
3471
3472         return offset;
3473 }
3474
3475
3476 /* IDL: struct { */
3477 /* IDL:         lsa_String primary; */
3478 /* IDL: } */
3479
3480 static int
3481 samr_dissect_element_DomInfo6_primary(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3482 {
3483         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_DomInfo6_primary,0);
3484
3485         return offset;
3486 }
3487
3488 int
3489 samr_dissect_struct_DomInfo6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
3490 {
3491         proto_item *item = NULL;
3492         proto_tree *tree = NULL;
3493         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
3494         int old_offset;
3495
3496         ALIGN_TO_5_BYTES;
3497
3498         old_offset = offset;
3499
3500         if (parent_tree) {
3501                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3502                 tree = proto_item_add_subtree(item, ett_samr_samr_DomInfo6);
3503         }
3504         
3505         offset = samr_dissect_element_DomInfo6_primary(tvb, offset, pinfo, tree, drep);
3506
3507
3508         proto_item_set_len(item, offset-old_offset);
3509
3510
3511         if (di->call_data->flags & DCERPC_IS_NDR64) {
3512                 ALIGN_TO_5_BYTES;
3513         }
3514
3515         return offset;
3516 }
3517
3518
3519 /* IDL: struct { */
3520 /* IDL:         samr_Role role; */
3521 /* IDL: } */
3522
3523 static int
3524 samr_dissect_element_DomInfo7_role(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3525 {
3526         offset = samr_dissect_enum_Role(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomInfo7_role, 0);
3527
3528         return offset;
3529 }
3530
3531 int
3532 samr_dissect_struct_DomInfo7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
3533 {
3534         proto_item *item = NULL;
3535         proto_tree *tree = NULL;
3536         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
3537         int old_offset;
3538
3539         ALIGN_TO_4_BYTES;
3540
3541         old_offset = offset;
3542
3543         if (parent_tree) {
3544                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3545                 tree = proto_item_add_subtree(item, ett_samr_samr_DomInfo7);
3546         }
3547         
3548         offset = samr_dissect_element_DomInfo7_role(tvb, offset, pinfo, tree, drep);
3549
3550
3551         proto_item_set_len(item, offset-old_offset);
3552
3553
3554         if (di->call_data->flags & DCERPC_IS_NDR64) {
3555                 ALIGN_TO_4_BYTES;
3556         }
3557
3558         return offset;
3559 }
3560
3561
3562 /* IDL: struct { */
3563 /* IDL:         hyper sequence_num; */
3564 /* IDL:         NTTIME domain_create_time; */
3565 /* IDL: } */
3566
3567 static int
3568 samr_dissect_element_DomInfo8_sequence_num(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3569 {
3570         offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomInfo8_sequence_num, NULL);
3571
3572         return offset;
3573 }
3574
3575 static int
3576 samr_dissect_element_DomInfo8_domain_create_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3577 {
3578         offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomInfo8_domain_create_time);
3579
3580         return offset;
3581 }
3582
3583 int
3584 samr_dissect_struct_DomInfo8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
3585 {
3586         proto_item *item = NULL;
3587         proto_tree *tree = NULL;
3588         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
3589         int old_offset;
3590
3591         ALIGN_TO_8_BYTES;
3592
3593         old_offset = offset;
3594
3595         if (parent_tree) {
3596                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3597                 tree = proto_item_add_subtree(item, ett_samr_samr_DomInfo8);
3598         }
3599         
3600         offset = samr_dissect_element_DomInfo8_sequence_num(tvb, offset, pinfo, tree, drep);
3601
3602         offset = samr_dissect_element_DomInfo8_domain_create_time(tvb, offset, pinfo, tree, drep);
3603
3604
3605         proto_item_set_len(item, offset-old_offset);
3606
3607
3608         if (di->call_data->flags & DCERPC_IS_NDR64) {
3609                 ALIGN_TO_8_BYTES;
3610         }
3611
3612         return offset;
3613 }
3614
3615
3616 /* IDL: struct { */
3617 /* IDL:         samr_DomainServerState domain_server_state; */
3618 /* IDL: } */
3619
3620 static int
3621 samr_dissect_element_DomInfo9_domain_server_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3622 {
3623         offset = samr_dissect_enum_DomainServerState(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomInfo9_domain_server_state, 0);
3624
3625         return offset;
3626 }
3627
3628 int
3629 samr_dissect_struct_DomInfo9(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
3630 {
3631         proto_item *item = NULL;
3632         proto_tree *tree = NULL;
3633         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
3634         int old_offset;
3635
3636         ALIGN_TO_4_BYTES;
3637
3638         old_offset = offset;
3639
3640         if (parent_tree) {
3641                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3642                 tree = proto_item_add_subtree(item, ett_samr_samr_DomInfo9);
3643         }
3644         
3645         offset = samr_dissect_element_DomInfo9_domain_server_state(tvb, offset, pinfo, tree, drep);
3646
3647
3648         proto_item_set_len(item, offset-old_offset);
3649
3650
3651         if (di->call_data->flags & DCERPC_IS_NDR64) {
3652                 ALIGN_TO_4_BYTES;
3653         }
3654
3655         return offset;
3656 }
3657
3658
3659 /* IDL: struct { */
3660 /* IDL:         samr_DomGeneralInformation general; */
3661 /* IDL:         hyper lockout_duration; */
3662 /* IDL:         hyper lockout_window; */
3663 /* IDL:         uint16 lockout_threshold; */
3664 /* IDL: } */
3665
3666 static int
3667 samr_dissect_element_DomGeneralInformation2_general(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3668 {
3669         offset = samr_dissect_struct_DomGeneralInformation(tvb,offset,pinfo,tree,drep,hf_samr_samr_DomGeneralInformation2_general,0);
3670
3671         return offset;
3672 }
3673
3674 static int
3675 samr_dissect_element_DomGeneralInformation2_lockout_duration(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3676 {
3677         offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomGeneralInformation2_lockout_duration, NULL);
3678
3679         return offset;
3680 }
3681
3682 static int
3683 samr_dissect_element_DomGeneralInformation2_lockout_window(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3684 {
3685         offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomGeneralInformation2_lockout_window, NULL);
3686
3687         return offset;
3688 }
3689
3690 static int
3691 samr_dissect_element_DomGeneralInformation2_lockout_threshold(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3692 {
3693         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomGeneralInformation2_lockout_threshold, 0);
3694
3695         return offset;
3696 }
3697
3698 int
3699 samr_dissect_struct_DomGeneralInformation2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
3700 {
3701         proto_item *item = NULL;
3702         proto_tree *tree = NULL;
3703         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
3704         int old_offset;
3705
3706         ALIGN_TO_8_BYTES;
3707
3708         old_offset = offset;
3709
3710         if (parent_tree) {
3711                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3712                 tree = proto_item_add_subtree(item, ett_samr_samr_DomGeneralInformation2);
3713         }
3714         
3715         offset = samr_dissect_element_DomGeneralInformation2_general(tvb, offset, pinfo, tree, drep);
3716
3717         offset = samr_dissect_element_DomGeneralInformation2_lockout_duration(tvb, offset, pinfo, tree, drep);
3718
3719         offset = samr_dissect_element_DomGeneralInformation2_lockout_window(tvb, offset, pinfo, tree, drep);
3720
3721         offset = samr_dissect_element_DomGeneralInformation2_lockout_threshold(tvb, offset, pinfo, tree, drep);
3722
3723
3724         proto_item_set_len(item, offset-old_offset);
3725
3726
3727         if (di->call_data->flags & DCERPC_IS_NDR64) {
3728                 ALIGN_TO_8_BYTES;
3729         }
3730
3731         return offset;
3732 }
3733
3734
3735 /* IDL: struct { */
3736 /* IDL:         hyper lockout_duration; */
3737 /* IDL:         hyper lockout_window; */
3738 /* IDL:         uint16 lockout_threshold; */
3739 /* IDL: } */
3740
3741 static int
3742 samr_dissect_element_DomInfo12_lockout_duration(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3743 {
3744         offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomInfo12_lockout_duration, NULL);
3745
3746         return offset;
3747 }
3748
3749 static int
3750 samr_dissect_element_DomInfo12_lockout_window(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3751 {
3752         offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomInfo12_lockout_window, NULL);
3753
3754         return offset;
3755 }
3756
3757 static int
3758 samr_dissect_element_DomInfo12_lockout_threshold(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3759 {
3760         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomInfo12_lockout_threshold, 0);
3761
3762         return offset;
3763 }
3764
3765 int
3766 samr_dissect_struct_DomInfo12(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
3767 {
3768         proto_item *item = NULL;
3769         proto_tree *tree = NULL;
3770         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
3771         int old_offset;
3772
3773         ALIGN_TO_8_BYTES;
3774
3775         old_offset = offset;
3776
3777         if (parent_tree) {
3778                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3779                 tree = proto_item_add_subtree(item, ett_samr_samr_DomInfo12);
3780         }
3781         
3782         offset = samr_dissect_element_DomInfo12_lockout_duration(tvb, offset, pinfo, tree, drep);
3783
3784         offset = samr_dissect_element_DomInfo12_lockout_window(tvb, offset, pinfo, tree, drep);
3785
3786         offset = samr_dissect_element_DomInfo12_lockout_threshold(tvb, offset, pinfo, tree, drep);
3787
3788
3789         proto_item_set_len(item, offset-old_offset);
3790
3791
3792         if (di->call_data->flags & DCERPC_IS_NDR64) {
3793                 ALIGN_TO_8_BYTES;
3794         }
3795
3796         return offset;
3797 }
3798
3799
3800 /* IDL: struct { */
3801 /* IDL:         hyper sequence_num; */
3802 /* IDL:         NTTIME domain_create_time; */
3803 /* IDL:         hyper modified_count_at_last_promotion; */
3804 /* IDL: } */
3805
3806 static int
3807 samr_dissect_element_DomInfo13_sequence_num(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3808 {
3809         offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomInfo13_sequence_num, NULL);
3810
3811         return offset;
3812 }
3813
3814 static int
3815 samr_dissect_element_DomInfo13_domain_create_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3816 {
3817         offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomInfo13_domain_create_time);
3818
3819         return offset;
3820 }
3821
3822 static int
3823 samr_dissect_element_DomInfo13_modified_count_at_last_promotion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3824 {
3825         offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomInfo13_modified_count_at_last_promotion, NULL);
3826
3827         return offset;
3828 }
3829
3830 int
3831 samr_dissect_struct_DomInfo13(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
3832 {
3833         proto_item *item = NULL;
3834         proto_tree *tree = NULL;
3835         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
3836         int old_offset;
3837
3838         ALIGN_TO_8_BYTES;
3839
3840         old_offset = offset;
3841
3842         if (parent_tree) {
3843                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3844                 tree = proto_item_add_subtree(item, ett_samr_samr_DomInfo13);
3845         }
3846         
3847         offset = samr_dissect_element_DomInfo13_sequence_num(tvb, offset, pinfo, tree, drep);
3848
3849         offset = samr_dissect_element_DomInfo13_domain_create_time(tvb, offset, pinfo, tree, drep);
3850
3851         offset = samr_dissect_element_DomInfo13_modified_count_at_last_promotion(tvb, offset, pinfo, tree, drep);
3852
3853
3854         proto_item_set_len(item, offset-old_offset);
3855
3856
3857         if (di->call_data->flags & DCERPC_IS_NDR64) {
3858                 ALIGN_TO_8_BYTES;
3859         }
3860
3861         return offset;
3862 }
3863
3864
3865 /* IDL: [switch_type(uint16)] union { */
3866 /* IDL: [case(1)] [case(1)] samr_DomInfo1 info1; */
3867 /* IDL: [case(2)] [case(2)] samr_DomGeneralInformation general; */
3868 /* IDL: [case(3)] [case(3)] samr_DomInfo3 info3; */
3869 /* IDL: [case(4)] [case(4)] samr_DomOEMInformation oem; */
3870 /* IDL: [case(5)] [case(5)] samr_DomInfo5 info5; */
3871 /* IDL: [case(6)] [case(6)] samr_DomInfo6 info6; */
3872 /* IDL: [case(7)] [case(7)] samr_DomInfo7 info7; */
3873 /* IDL: [case(8)] [case(8)] samr_DomInfo8 info8; */
3874 /* IDL: [case(9)] [case(9)] samr_DomInfo9 info9; */
3875 /* IDL: [case(11)] [case(11)] samr_DomGeneralInformation2 general2; */
3876 /* IDL: [case(12)] [case(12)] samr_DomInfo12 info12; */
3877 /* IDL: [case(13)] [case(13)] samr_DomInfo13 info13; */
3878 /* IDL: } */
3879
3880 static int
3881 samr_dissect_element_DomainInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3882 {
3883         offset = samr_dissect_struct_DomInfo1(tvb,offset,pinfo,tree,drep,hf_samr_samr_DomainInfo_info1,0);
3884
3885         return offset;
3886 }
3887
3888 static int
3889 samr_dissect_element_DomainInfo_general(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3890 {
3891         offset = samr_dissect_struct_DomGeneralInformation(tvb,offset,pinfo,tree,drep,hf_samr_samr_DomainInfo_general,0);
3892
3893         return offset;
3894 }
3895
3896 static int
3897 samr_dissect_element_DomainInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3898 {
3899         offset = samr_dissect_struct_DomInfo3(tvb,offset,pinfo,tree,drep,hf_samr_samr_DomainInfo_info3,0);
3900
3901         return offset;
3902 }
3903
3904 static int
3905 samr_dissect_element_DomainInfo_oem(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3906 {
3907         offset = samr_dissect_struct_DomOEMInformation(tvb,offset,pinfo,tree,drep,hf_samr_samr_DomainInfo_oem,0);
3908
3909         return offset;
3910 }
3911
3912 static int
3913 samr_dissect_element_DomainInfo_info5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3914 {
3915         offset = samr_dissect_struct_DomInfo5(tvb,offset,pinfo,tree,drep,hf_samr_samr_DomainInfo_info5,0);
3916
3917         return offset;
3918 }
3919
3920 static int
3921 samr_dissect_element_DomainInfo_info6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3922 {
3923         offset = samr_dissect_struct_DomInfo6(tvb,offset,pinfo,tree,drep,hf_samr_samr_DomainInfo_info6,0);
3924
3925         return offset;
3926 }
3927
3928 static int
3929 samr_dissect_element_DomainInfo_info7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3930 {
3931         offset = samr_dissect_struct_DomInfo7(tvb,offset,pinfo,tree,drep,hf_samr_samr_DomainInfo_info7,0);
3932
3933         return offset;
3934 }
3935
3936 static int
3937 samr_dissect_element_DomainInfo_info8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3938 {
3939         offset = samr_dissect_struct_DomInfo8(tvb,offset,pinfo,tree,drep,hf_samr_samr_DomainInfo_info8,0);
3940
3941         return offset;
3942 }
3943
3944 static int
3945 samr_dissect_element_DomainInfo_info9(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3946 {
3947         offset = samr_dissect_struct_DomInfo9(tvb,offset,pinfo,tree,drep,hf_samr_samr_DomainInfo_info9,0);
3948
3949         return offset;
3950 }
3951
3952 static int
3953 samr_dissect_element_DomainInfo_general2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3954 {
3955         offset = samr_dissect_struct_DomGeneralInformation2(tvb,offset,pinfo,tree,drep,hf_samr_samr_DomainInfo_general2,0);
3956
3957         return offset;
3958 }
3959
3960 static int
3961 samr_dissect_element_DomainInfo_info12(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3962 {
3963         offset = samr_dissect_struct_DomInfo12(tvb,offset,pinfo,tree,drep,hf_samr_samr_DomainInfo_info12,0);
3964
3965         return offset;
3966 }
3967
3968 static int
3969 samr_dissect_element_DomainInfo_info13(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3970 {
3971         offset = samr_dissect_struct_DomInfo13(tvb,offset,pinfo,tree,drep,hf_samr_samr_DomainInfo_info13,0);
3972
3973         return offset;
3974 }
3975
3976 static int
3977 samr_dissect_DomainInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
3978 {
3979         proto_item *item = NULL;
3980         proto_tree *tree = NULL;
3981         int old_offset;
3982         guint16 level;
3983
3984         old_offset = offset;
3985         if (parent_tree) {
3986                 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "samr_DomainInfo");
3987                 tree = proto_item_add_subtree(item, ett_samr_samr_DomainInfo);
3988         }
3989
3990         offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, &level);
3991         ALIGN_TO_8_BYTES;
3992
3993         switch(level) {
3994                 case 1:
3995                         offset = samr_dissect_element_DomainInfo_info1(tvb, offset, pinfo, tree, drep);
3996                 break;
3997
3998                 case 2:
3999                         offset = samr_dissect_element_DomainInfo_general(tvb, offset, pinfo, tree, drep);
4000                 break;
4001
4002                 case 3:
4003                         offset = samr_dissect_element_DomainInfo_info3(tvb, offset, pinfo, tree, drep);
4004                 break;
4005
4006                 case 4:
4007                         offset = samr_dissect_element_DomainInfo_oem(tvb, offset, pinfo, tree, drep);
4008                 break;
4009
4010                 case 5:
4011                         offset = samr_dissect_element_DomainInfo_info5(tvb, offset, pinfo, tree, drep);
4012                 break;
4013
4014                 case 6:
4015                         offset = samr_dissect_element_DomainInfo_info6(tvb, offset, pinfo, tree, drep);
4016                 break;
4017
4018                 case 7:
4019                         offset = samr_dissect_element_DomainInfo_info7(tvb, offset, pinfo, tree, drep);
4020                 break;
4021
4022                 case 8:
4023                         offset = samr_dissect_element_DomainInfo_info8(tvb, offset, pinfo, tree, drep);
4024                 break;
4025
4026                 case 9:
4027                         offset = samr_dissect_element_DomainInfo_info9(tvb, offset, pinfo, tree, drep);
4028                 break;
4029
4030                 case 11:
4031                         offset = samr_dissect_element_DomainInfo_general2(tvb, offset, pinfo, tree, drep);
4032                 break;
4033
4034                 case 12:
4035                         offset = samr_dissect_element_DomainInfo_info12(tvb, offset, pinfo, tree, drep);
4036                 break;
4037
4038                 case 13:
4039                         offset = samr_dissect_element_DomainInfo_info13(tvb, offset, pinfo, tree, drep);
4040                 break;
4041         }
4042         proto_item_set_len(item, offset-old_offset);
4043
4044
4045         return offset;
4046 }
4047
4048 /* IDL: struct { */
4049 /* IDL:         [range(0,1024)] uint32 count; */
4050 /* IDL:         [unique(1)] [size_is(count)] uint32 *ids; */
4051 /* IDL: } */
4052
4053 static int
4054 samr_dissect_element_Ids_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
4055 {
4056         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_Ids_count, 0);
4057
4058         return offset;
4059 }
4060
4061 static int
4062 samr_dissect_element_Ids_ids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
4063 {
4064         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_Ids_ids_, NDR_POINTER_UNIQUE, "Pointer to Ids (uint32)",hf_samr_samr_Ids_ids);
4065
4066         return offset;
4067 }
4068
4069 static int
4070 samr_dissect_element_Ids_ids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
4071 {
4072         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, samr_dissect_element_Ids_ids__);
4073
4074         return offset;
4075 }
4076
4077 static int
4078 samr_dissect_element_Ids_ids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
4079 {
4080         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_Ids_ids, 0);
4081
4082         return offset;
4083 }
4084
4085 int
4086 samr_dissect_struct_Ids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
4087 {
4088         proto_item *item = NULL;
4089         proto_tree *tree = NULL;
4090         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
4091         int old_offset;
4092
4093         ALIGN_TO_5_BYTES;
4094
4095         old_offset = offset;
4096
4097         if (parent_tree) {
4098                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4099                 tree = proto_item_add_subtree(item, ett_samr_samr_Ids);
4100         }
4101         
4102         offset = samr_dissect_element_Ids_count(tvb, offset, pinfo, tree, drep);
4103
4104         offset = samr_dissect_element_Ids_ids(tvb, offset, pinfo, tree, drep);
4105
4106
4107         proto_item_set_len(item, offset-old_offset);
4108
4109
4110         if (di->call_data->flags & DCERPC_IS_NDR64) {
4111                 ALIGN_TO_5_BYTES;
4112         }
4113
4114         return offset;
4115 }
4116
4117
4118 /* IDL: bitmap { */
4119 /* IDL:         SE_GROUP_MANDATORY =  0x00000001 , */
4120 /* IDL:         SE_GROUP_ENABLED_BY_DEFAULT =  0x00000002 , */
4121 /* IDL:         SE_GROUP_ENABLED =  0x00000004 , */
4122 /* IDL:         SE_GROUP_OWNER =  0x00000008 , */
4123 /* IDL:         SE_GROUP_USE_FOR_DENY_ONLY =  0x00000010 , */
4124 /* IDL:         SE_GROUP_RESOURCE =  0x20000000 , */
4125 /* IDL:         SE_GROUP_LOGON_ID =  0xC0000000 , */
4126 /* IDL: } */
4127
4128 int
4129 samr_dissect_bitmap_GroupAttrs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
4130 {
4131         proto_item *item = NULL;
4132         proto_tree *tree = NULL;
4133
4134         guint32 flags;
4135         ALIGN_TO_4_BYTES;
4136
4137         if (parent_tree) {
4138                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
4139                 tree = proto_item_add_subtree(item,ett_samr_samr_GroupAttrs);
4140         }
4141
4142         offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
4143         proto_item_append_text(item, ": ");
4144
4145         if (!flags)
4146                 proto_item_append_text(item, "(No values set)");
4147
4148         proto_tree_add_boolean(tree, hf_samr_samr_GroupAttrs_SE_GROUP_MANDATORY, tvb, offset-4, 4, flags);
4149         if (flags&( 0x00000001 )){
4150                 proto_item_append_text(item, "SE_GROUP_MANDATORY");
4151                 if (flags & (~( 0x00000001 )))
4152                         proto_item_append_text(item, ", ");
4153         }
4154         flags&=(~( 0x00000001 ));
4155
4156         proto_tree_add_boolean(tree, hf_samr_samr_GroupAttrs_SE_GROUP_ENABLED_BY_DEFAULT, tvb, offset-4, 4, flags);
4157         if (flags&( 0x00000002 )){
4158                 proto_item_append_text(item, "SE_GROUP_ENABLED_BY_DEFAULT");
4159                 if (flags & (~( 0x00000002 )))
4160                         proto_item_append_text(item, ", ");
4161         }
4162         flags&=(~( 0x00000002 ));
4163
4164         proto_tree_add_boolean(tree, hf_samr_samr_GroupAttrs_SE_GROUP_ENABLED, tvb, offset-4, 4, flags);
4165         if (flags&( 0x00000004 )){
4166                 proto_item_append_text(item, "SE_GROUP_ENABLED");
4167                 if (flags & (~( 0x00000004 )))
4168                         proto_item_append_text(item, ", ");
4169         }
4170         flags&=(~( 0x00000004 ));
4171
4172         proto_tree_add_boolean(tree, hf_samr_samr_GroupAttrs_SE_GROUP_OWNER, tvb, offset-4, 4, flags);
4173         if (flags&( 0x00000008 )){
4174                 proto_item_append_text(item, "SE_GROUP_OWNER");
4175                 if (flags & (~( 0x00000008 )))
4176                         proto_item_append_text(item, ", ");
4177         }
4178         flags&=(~( 0x00000008 ));
4179
4180         proto_tree_add_boolean(tree, hf_samr_samr_GroupAttrs_SE_GROUP_USE_FOR_DENY_ONLY, tvb, offset-4, 4, flags);
4181         if (flags&( 0x00000010 )){
4182                 proto_item_append_text(item, "SE_GROUP_USE_FOR_DENY_ONLY");
4183                 if (flags & (~( 0x00000010 )))
4184                         proto_item_append_text(item, ", ");
4185         }
4186         flags&=(~( 0x00000010 ));
4187
4188         proto_tree_add_boolean(tree, hf_samr_samr_GroupAttrs_SE_GROUP_RESOURCE, tvb, offset-4, 4, flags);
4189         if (flags&( 0x20000000 )){
4190                 proto_item_append_text(item, "SE_GROUP_RESOURCE");
4191                 if (flags & (~( 0x20000000 )))
4192                         proto_item_append_text(item, ", ");
4193         }
4194         flags&=(~( 0x20000000 ));
4195
4196         proto_tree_add_boolean(tree, hf_samr_samr_GroupAttrs_SE_GROUP_LOGON_ID, tvb, offset-4, 4, flags);
4197         if (flags&( 0xC0000000 )){
4198                 proto_item_append_text(item, "SE_GROUP_LOGON_ID");
4199                 if (flags & (~( 0xC0000000 )))
4200                         proto_item_append_text(item, ", ");
4201         }
4202         flags&=(~( 0xC0000000 ));
4203
4204         if (flags) {
4205                 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
4206         }
4207
4208         return offset;
4209 }
4210
4211
4212 /* IDL: struct { */
4213 /* IDL:         lsa_String name; */
4214 /* IDL:         samr_GroupAttrs attributes; */
4215 /* IDL:         uint32 num_members; */
4216 /* IDL:         lsa_String description; */
4217 /* IDL: } */
4218
4219 static int
4220 samr_dissect_element_GroupInfoAll_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
4221 {
4222         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_GroupInfoAll_name,0);
4223
4224         return offset;
4225 }
4226
4227 static int
4228 samr_dissect_element_GroupInfoAll_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
4229 {
4230         offset = samr_dissect_bitmap_GroupAttrs(tvb, offset, pinfo, tree, drep, hf_samr_samr_GroupInfoAll_attributes, 0);
4231
4232         return offset;
4233 }
4234
4235 static int
4236 samr_dissect_element_GroupInfoAll_num_members(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
4237 {
4238         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_GroupInfoAll_num_members, 0);
4239
4240         return offset;
4241 }
4242
4243 static int
4244 samr_dissect_element_GroupInfoAll_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
4245 {
4246         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_GroupInfoAll_description,0);
4247
4248         return offset;
4249 }
4250
4251 int
4252 samr_dissect_struct_GroupInfoAll(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
4253 {
4254         proto_item *item = NULL;
4255         proto_tree *tree = NULL;
4256         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
4257         int old_offset;
4258
4259         ALIGN_TO_5_BYTES;
4260
4261         old_offset = offset;
4262
4263         if (parent_tree) {
4264                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4265                 tree = proto_item_add_subtree(item, ett_samr_samr_GroupInfoAll);
4266         }
4267         
4268         offset = samr_dissect_element_GroupInfoAll_name(tvb, offset, pinfo, tree, drep);
4269
4270         offset = samr_dissect_element_GroupInfoAll_attributes(tvb, offset, pinfo, tree, drep);
4271
4272         offset = samr_dissect_element_GroupInfoAll_num_members(tvb, offset, pinfo, tree, drep);
4273
4274         offset = samr_dissect_element_GroupInfoAll_description(tvb, offset, pinfo, tree, drep);
4275
4276
4277         proto_item_set_len(item, offset-old_offset);
4278
4279
4280         if (di->call_data->flags & DCERPC_IS_NDR64) {
4281                 ALIGN_TO_5_BYTES;
4282         }
4283
4284         return offset;
4285 }
4286
4287
4288 /* IDL: struct { */
4289 /* IDL:         samr_GroupAttrs attributes; */
4290 /* IDL: } */
4291
4292 static int
4293 samr_dissect_element_GroupInfoAttributes_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
4294 {
4295         offset = samr_dissect_bitmap_GroupAttrs(tvb, offset, pinfo, tree, drep, hf_samr_samr_GroupInfoAttributes_attributes, 0);
4296
4297         return offset;
4298 }
4299
4300 int
4301 samr_dissect_struct_GroupInfoAttributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
4302 {
4303         proto_item *item = NULL;
4304         proto_tree *tree = NULL;
4305         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
4306         int old_offset;
4307
4308         ALIGN_TO_4_BYTES;
4309
4310         old_offset = offset;
4311
4312         if (parent_tree) {
4313                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4314                 tree = proto_item_add_subtree(item, ett_samr_samr_GroupInfoAttributes);
4315         }
4316         
4317         offset = samr_dissect_element_GroupInfoAttributes_attributes(tvb, offset, pinfo, tree, drep);
4318
4319
4320         proto_item_set_len(item, offset-old_offset);
4321
4322
4323         if (di->call_data->flags & DCERPC_IS_NDR64) {
4324                 ALIGN_TO_4_BYTES;
4325         }
4326
4327         return offset;
4328 }
4329
4330
4331 /* IDL: struct { */
4332 /* IDL:         lsa_String description; */
4333 /* IDL: } */
4334
4335 static int
4336 samr_dissect_element_GroupInfoDescription_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
4337 {
4338         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_GroupInfoDescription_description,0);
4339
4340         return offset;
4341 }
4342
4343 int
4344 samr_dissect_struct_GroupInfoDescription(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
4345 {
4346         proto_item *item = NULL;
4347         proto_tree *tree = NULL;
4348         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
4349         int old_offset;
4350
4351         ALIGN_TO_5_BYTES;
4352
4353         old_offset = offset;
4354
4355         if (parent_tree) {
4356                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4357                 tree = proto_item_add_subtree(item, ett_samr_samr_GroupInfoDescription);
4358         }
4359         
4360         offset = samr_dissect_element_GroupInfoDescription_description(tvb, offset, pinfo, tree, drep);
4361
4362
4363         proto_item_set_len(item, offset-old_offset);
4364
4365
4366         if (di->call_data->flags & DCERPC_IS_NDR64) {
4367                 ALIGN_TO_5_BYTES;
4368         }
4369
4370         return offset;
4371 }
4372
4373
4374 /* IDL: enum { */
4375 /* IDL:         GROUPINFOALL=1, */
4376 /* IDL:         GROUPINFONAME=2, */
4377 /* IDL:         GROUPINFOATTRIBUTES=3, */
4378 /* IDL:         GROUPINFODESCRIPTION=4, */
4379 /* IDL:         GROUPINFOALL2=5, */
4380 /* IDL: } */
4381
4382 int
4383 samr_dissect_enum_GroupInfoEnum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
4384 {
4385         guint1632 parameter=0;
4386         if(param){
4387                 parameter=(guint1632)*param;
4388         }
4389         offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
4390         if(param){
4391                 *param=(guint32)parameter;
4392         }
4393         return offset;
4394 }
4395
4396
4397 /* IDL: [switch_type(samr_GroupInfoEnum)] union { */
4398 /* IDL: [case(GROUPINFOALL)] [case(GROUPINFOALL)] samr_GroupInfoAll all; */
4399 /* IDL: [case(GROUPINFONAME)] [case(GROUPINFONAME)] lsa_String name; */
4400 /* IDL: [case(GROUPINFOATTRIBUTES)] [case(GROUPINFOATTRIBUTES)] samr_GroupInfoAttributes attributes; */
4401 /* IDL: [case(GROUPINFODESCRIPTION)] [case(GROUPINFODESCRIPTION)] lsa_String description; */
4402 /* IDL: [case(GROUPINFOALL2)] [case(GROUPINFOALL2)] samr_GroupInfoAll all2; */
4403 /* IDL: } */
4404
4405 static int
4406 samr_dissect_element_GroupInfo_all(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
4407 {
4408         offset = samr_dissect_struct_GroupInfoAll(tvb,offset,pinfo,tree,drep,hf_samr_samr_GroupInfo_all,0);
4409
4410         return offset;
4411 }
4412
4413 static int
4414 samr_dissect_element_GroupInfo_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
4415 {
4416         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_GroupInfo_name,0);
4417
4418         return offset;
4419 }
4420
4421 static int
4422 samr_dissect_element_GroupInfo_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
4423 {
4424         offset = samr_dissect_struct_GroupInfoAttributes(tvb,offset,pinfo,tree,drep,hf_samr_samr_GroupInfo_attributes,0);
4425
4426         return offset;
4427 }
4428
4429 static int
4430 samr_dissect_element_GroupInfo_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
4431 {
4432         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_GroupInfo_description,0);
4433
4434         return offset;
4435 }
4436
4437 static int
4438 samr_dissect_element_GroupInfo_all2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
4439 {
4440         offset = samr_dissect_struct_GroupInfoAll(tvb,offset,pinfo,tree,drep,hf_samr_samr_GroupInfo_all2,0);
4441
4442         return offset;
4443 }
4444
4445 static int
4446 samr_dissect_GroupInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
4447 {
4448         proto_item *item = NULL;
4449         proto_tree *tree = NULL;
4450         int old_offset;
4451         guint1632 level;
4452
4453         old_offset = offset;
4454         if (parent_tree) {
4455                 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "samr_GroupInfo");
4456                 tree = proto_item_add_subtree(item, ett_samr_samr_GroupInfo);
4457         }
4458
4459         offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &level);
4460         ALIGN_TO_5_BYTES;
4461
4462         switch(level) {
4463                 case GROUPINFOALL:
4464                         offset = samr_dissect_element_GroupInfo_all(tvb, offset, pinfo, tree, drep);
4465                 break;
4466
4467                 case GROUPINFONAME:
4468                         offset = samr_dissect_element_GroupInfo_name(tvb, offset, pinfo, tree, drep);
4469                 break;
4470
4471                 case GROUPINFOATTRIBUTES:
4472                         offset = samr_dissect_element_GroupInfo_attributes(tvb, offset, pinfo, tree, drep);
4473                 break;
4474
4475                 case GROUPINFODESCRIPTION:
4476                         offset = samr_dissect_element_GroupInfo_description(tvb, offset, pinfo, tree, drep);
4477                 break;
4478
4479                 case GROUPINFOALL2:
4480                         offset = samr_dissect_element_GroupInfo_all2(tvb, offset, pinfo, tree, drep);
4481                 break;
4482         }
4483         proto_item_set_len(item, offset-old_offset);
4484
4485
4486         return offset;
4487 }
4488
4489 /* IDL: struct { */
4490 /* IDL:         uint32 count; */
4491 /* IDL:         [unique(1)] [size_is(count)] uint32 *rids; */
4492 /* IDL:         [unique(1)] [size_is(count)] samr_GroupAttrs *attributes; */
4493 /* IDL: } */
4494
4495 static int
4496 samr_dissect_element_RidAttrArray_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
4497 {
4498         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_RidAttrArray_count, 0);
4499
4500         return offset;
4501 }
4502
4503 static int
4504 samr_dissect_element_RidAttrArray_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
4505 {
4506         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_RidAttrArray_rids_, NDR_POINTER_UNIQUE, "Pointer to Rids (uint32)",hf_samr_samr_RidAttrArray_rids);
4507
4508         return offset;
4509 }
4510
4511 static int
4512 samr_dissect_element_RidAttrArray_rids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
4513 {
4514         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, samr_dissect_element_RidAttrArray_rids__);
4515
4516         return offset;
4517 }
4518
4519 static int
4520 samr_dissect_element_RidAttrArray_rids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
4521 {
4522         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_RidAttrArray_rids, 0);
4523
4524         return offset;
4525 }
4526
4527 static int
4528 samr_dissect_element_RidAttrArray_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
4529 {
4530         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_RidAttrArray_attributes_, NDR_POINTER_UNIQUE, "Pointer to Attributes (samr_GroupAttrs)",hf_samr_samr_RidAttrArray_attributes);
4531
4532         return offset;
4533 }
4534
4535 static int
4536 samr_dissect_element_RidAttrArray_attributes_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
4537 {
4538         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, samr_dissect_element_RidAttrArray_attributes__);
4539
4540         return offset;
4541 }
4542
4543 static int
4544 samr_dissect_element_RidAttrArray_attributes__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
4545 {
4546         offset = samr_dissect_bitmap_GroupAttrs(tvb, offset, pinfo, tree, drep, hf_samr_samr_RidAttrArray_attributes, 0);
4547
4548         return offset;
4549 }
4550
4551 int
4552 samr_dissect_struct_RidAttrArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
4553 {
4554         proto_item *item = NULL;
4555         proto_tree *tree = NULL;
4556         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
4557         int old_offset;
4558
4559         ALIGN_TO_5_BYTES;
4560
4561         old_offset = offset;
4562
4563         if (parent_tree) {
4564                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4565                 tree = proto_item_add_subtree(item, ett_samr_samr_RidAttrArray);
4566         }
4567         
4568         offset = samr_dissect_element_RidAttrArray_count(tvb, offset, pinfo, tree, drep);
4569
4570         offset = samr_dissect_element_RidAttrArray_rids(tvb, offset, pinfo, tree, drep);
4571
4572         offset = samr_dissect_element_RidAttrArray_attributes(tvb, offset, pinfo, tree, drep);
4573
4574
4575         proto_item_set_len(item, offset-old_offset);
4576
4577
4578         if (di->call_data->flags & DCERPC_IS_NDR64) {
4579                 ALIGN_TO_5_BYTES;
4580         }
4581
4582         return offset;
4583 }
4584
4585
4586 /* IDL: struct { */
4587 /* IDL:         lsa_String name; */
4588 /* IDL:         uint32 num_members; */
4589 /* IDL:         lsa_String description; */
4590 /* IDL: } */
4591
4592 static int
4593 samr_dissect_element_AliasInfoAll_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
4594 {
4595         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_AliasInfoAll_name,0);
4596
4597         return offset;
4598 }
4599
4600 static int
4601 samr_dissect_element_AliasInfoAll_num_members(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
4602 {
4603         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_AliasInfoAll_num_members, 0);
4604
4605         return offset;
4606 }
4607
4608 static int
4609 samr_dissect_element_AliasInfoAll_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
4610 {
4611         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_AliasInfoAll_description,0);
4612
4613         return offset;
4614 }
4615
4616 int
4617 samr_dissect_struct_AliasInfoAll(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
4618 {
4619         proto_item *item = NULL;
4620         proto_tree *tree = NULL;
4621         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
4622         int old_offset;
4623
4624         ALIGN_TO_5_BYTES;
4625
4626         old_offset = offset;
4627
4628         if (parent_tree) {
4629                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4630                 tree = proto_item_add_subtree(item, ett_samr_samr_AliasInfoAll);
4631         }
4632         
4633         offset = samr_dissect_element_AliasInfoAll_name(tvb, offset, pinfo, tree, drep);
4634
4635         offset = samr_dissect_element_AliasInfoAll_num_members(tvb, offset, pinfo, tree, drep);
4636
4637         offset = samr_dissect_element_AliasInfoAll_description(tvb, offset, pinfo, tree, drep);
4638
4639
4640         proto_item_set_len(item, offset-old_offset);
4641
4642
4643         if (di->call_data->flags & DCERPC_IS_NDR64) {
4644                 ALIGN_TO_5_BYTES;
4645         }
4646
4647         return offset;
4648 }
4649
4650
4651 /* IDL: enum { */
4652 /* IDL:         ALIASINFOALL=1, */
4653 /* IDL:         ALIASINFONAME=2, */
4654 /* IDL:         ALIASINFODESCRIPTION=3, */
4655 /* IDL: } */
4656
4657 int
4658 samr_dissect_enum_AliasInfoEnum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
4659 {
4660         guint1632 parameter=0;
4661         if(param){
4662                 parameter=(guint1632)*param;
4663         }
4664         offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
4665         if(param){
4666                 *param=(guint32)parameter;
4667         }
4668         return offset;
4669 }
4670
4671
4672 /* IDL: [switch_type(samr_AliasInfoEnum)] union { */
4673 /* IDL: [case(ALIASINFOALL)] [case(ALIASINFOALL)] samr_AliasInfoAll all; */
4674 /* IDL: [case(ALIASINFONAME)] [case(ALIASINFONAME)] lsa_String name; */
4675 /* IDL: [case(ALIASINFODESCRIPTION)] [case(ALIASINFODESCRIPTION)] lsa_String description; */
4676 /* IDL: } */
4677
4678 static int
4679 samr_dissect_element_AliasInfo_all(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
4680 {
4681         offset = samr_dissect_struct_AliasInfoAll(tvb,offset,pinfo,tree,drep,hf_samr_samr_AliasInfo_all,0);
4682
4683         return offset;
4684 }
4685
4686 static int
4687 samr_dissect_element_AliasInfo_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
4688 {
4689         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_AliasInfo_name,0);
4690
4691         return offset;
4692 }
4693
4694 static int
4695 samr_dissect_element_AliasInfo_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
4696 {
4697         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_AliasInfo_description,0);
4698
4699         return offset;
4700 }
4701
4702 static int
4703 samr_dissect_AliasInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
4704 {
4705         proto_item *item = NULL;
4706         proto_tree *tree = NULL;
4707         int old_offset;
4708         guint1632 level;
4709
4710         old_offset = offset;
4711         if (parent_tree) {
4712                 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "samr_AliasInfo");
4713                 tree = proto_item_add_subtree(item, ett_samr_samr_AliasInfo);
4714         }
4715
4716         offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &level);
4717         ALIGN_TO_5_BYTES;
4718
4719         switch(level) {
4720                 case ALIASINFOALL:
4721                         offset = samr_dissect_element_AliasInfo_all(tvb, offset, pinfo, tree, drep);
4722                 break;
4723
4724                 case ALIASINFONAME:
4725                         offset = samr_dissect_element_AliasInfo_name(tvb, offset, pinfo, tree, drep);
4726                 break;
4727
4728                 case ALIASINFODESCRIPTION:
4729                         offset = samr_dissect_element_AliasInfo_description(tvb, offset, pinfo, tree, drep);
4730                 break;
4731         }
4732         proto_item_set_len(item, offset-old_offset);
4733
4734
4735         return offset;
4736 }
4737
4738 /* IDL: enum { */
4739 /* IDL:         UserGeneralInformation=1, */
4740 /* IDL:         UserPreferencesInformation=2, */
4741 /* IDL:         UserLogonInformation=3, */
4742 /* IDL:         UserLogonHoursInformation=4, */
4743 /* IDL:         UserAccountInformation=5, */
4744 /* IDL:         UserNameInformation=6, */
4745 /* IDL:         UserAccountNameInformation=7, */
4746 /* IDL:         UserFullNameInformation=8, */
4747 /* IDL:         UserPrimaryGroupInformation=9, */
4748 /* IDL:         UserHomeInformation=10, */
4749 /* IDL:         UserScriptInformation=11, */
4750 /* IDL:         UserProfileInformation=12, */
4751 /* IDL:         UserAdminCommentInformation=13, */
4752 /* IDL:         UserWorkStationsInformation=14, */
4753 /* IDL:         UserControlInformation=16, */
4754 /* IDL:         UserExpiresInformation=17, */
4755 /* IDL:         UserInternal1Information=18, */
4756 /* IDL:         UserParametersInformation=20, */
4757 /* IDL:         UserAllInformation=21, */
4758 /* IDL:         UserInternal4Information=23, */
4759 /* IDL:         UserInternal5Information=24, */
4760 /* IDL:         UserInternal4InformationNew=25, */
4761 /* IDL:         UserInternal5InformationNew=26, */
4762 /* IDL: } */
4763
4764 int
4765 samr_dissect_enum_UserInfoLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
4766 {
4767         guint1632 parameter=0;
4768         if(param){
4769                 parameter=(guint1632)*param;
4770         }
4771         offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
4772         if(param){
4773                 *param=(guint32)parameter;
4774         }
4775         return offset;
4776 }
4777
4778
4779 /* IDL: struct { */
4780 /* IDL:         lsa_String account_name; */
4781 /* IDL:         lsa_String full_name; */
4782 /* IDL:         uint32 primary_gid; */
4783 /* IDL:         lsa_String description; */
4784 /* IDL:         lsa_String comment; */
4785 /* IDL: } */
4786
4787 static int
4788 samr_dissect_element_UserInfo1_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
4789 {
4790         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo1_account_name,0);
4791
4792         return offset;
4793 }
4794
4795 static int
4796 samr_dissect_element_UserInfo1_full_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
4797 {
4798         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo1_full_name,0);
4799
4800         return offset;
4801 }
4802
4803 static int
4804 samr_dissect_element_UserInfo1_primary_gid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
4805 {
4806         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo1_primary_gid, 0);
4807
4808         return offset;
4809 }
4810
4811 static int
4812 samr_dissect_element_UserInfo1_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
4813 {
4814         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo1_description,0);
4815
4816         return offset;
4817 }
4818
4819 static int
4820 samr_dissect_element_UserInfo1_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
4821 {
4822         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo1_comment,0);
4823
4824         return offset;
4825 }
4826
4827 int
4828 samr_dissect_struct_UserInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
4829 {
4830         proto_item *item = NULL;
4831         proto_tree *tree = NULL;
4832         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
4833         int old_offset;
4834
4835         ALIGN_TO_5_BYTES;
4836
4837         old_offset = offset;
4838
4839         if (parent_tree) {
4840                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4841                 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo1);
4842         }
4843         
4844         offset = samr_dissect_element_UserInfo1_account_name(tvb, offset, pinfo, tree, drep);
4845
4846         offset = samr_dissect_element_UserInfo1_full_name(tvb, offset, pinfo, tree, drep);
4847
4848         offset = samr_dissect_element_UserInfo1_primary_gid(tvb, offset, pinfo, tree, drep);
4849
4850         offset = samr_dissect_element_UserInfo1_description(tvb, offset, pinfo, tree, drep);
4851
4852         offset = samr_dissect_element_UserInfo1_comment(tvb, offset, pinfo, tree, drep);
4853
4854
4855         proto_item_set_len(item, offset-old_offset);
4856
4857
4858         if (di->call_data->flags & DCERPC_IS_NDR64) {
4859                 ALIGN_TO_5_BYTES;
4860         }
4861
4862         return offset;
4863 }
4864
4865
4866 /* IDL: struct { */
4867 /* IDL:         lsa_String comment; */
4868 /* IDL:         lsa_String reserved; */
4869 /* IDL:         uint16 country_code; */
4870 /* IDL:         uint16 code_page; */
4871 /* IDL: } */
4872
4873 static int
4874 samr_dissect_element_UserInfo2_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
4875 {
4876         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo2_comment,0);
4877
4878         return offset;
4879 }
4880
4881 static int
4882 samr_dissect_element_UserInfo2_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
4883 {
4884         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo2_reserved,0);
4885
4886         return offset;
4887 }
4888
4889 static int
4890 samr_dissect_element_UserInfo2_country_code(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
4891 {
4892         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo2_country_code, 0);
4893
4894         return offset;
4895 }
4896
4897 static int
4898 samr_dissect_element_UserInfo2_code_page(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
4899 {
4900         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo2_code_page, 0);
4901
4902         return offset;
4903 }
4904
4905 int
4906 samr_dissect_struct_UserInfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
4907 {
4908         proto_item *item = NULL;
4909         proto_tree *tree = NULL;
4910         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
4911         int old_offset;
4912
4913         ALIGN_TO_5_BYTES;
4914
4915         old_offset = offset;
4916
4917         if (parent_tree) {
4918                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4919                 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo2);
4920         }
4921         
4922         offset = samr_dissect_element_UserInfo2_comment(tvb, offset, pinfo, tree, drep);
4923
4924         offset = samr_dissect_element_UserInfo2_reserved(tvb, offset, pinfo, tree, drep);
4925
4926         offset = samr_dissect_element_UserInfo2_country_code(tvb, offset, pinfo, tree, drep);
4927
4928         offset = samr_dissect_element_UserInfo2_code_page(tvb, offset, pinfo, tree, drep);
4929
4930
4931         proto_item_set_len(item, offset-old_offset);
4932
4933
4934         if (di->call_data->flags & DCERPC_IS_NDR64) {
4935                 ALIGN_TO_5_BYTES;
4936         }
4937
4938         return offset;
4939 }
4940
4941
4942 /* IDL: struct { */
4943 /* IDL:         uint16 units_per_week; */
4944 /* IDL:         [unique(1)] [length_is(units_per_week/8)] [size_is(1260)] uint8 *bits; */
4945 /* IDL: } */
4946
4947 static int
4948 samr_dissect_element_LogonHours_units_per_week(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
4949 {
4950         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_LogonHours_units_per_week, 0);
4951
4952         return offset;
4953 }
4954
4955 static int
4956 samr_dissect_element_LogonHours_bits(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
4957 {
4958         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_LogonHours_bits_, NDR_POINTER_UNIQUE, "Pointer to Bits (uint8)",hf_samr_samr_LogonHours_bits);
4959
4960         return offset;
4961 }
4962
4963 static int
4964 samr_dissect_element_LogonHours_bits_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
4965 {
4966         offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, samr_dissect_element_LogonHours_bits__);
4967
4968         return offset;
4969 }
4970
4971 static int
4972 samr_dissect_element_LogonHours_bits__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
4973 {
4974         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_LogonHours_bits, 0);
4975
4976         return offset;
4977 }
4978
4979 int
4980 samr_dissect_struct_LogonHours(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
4981 {
4982         proto_item *item = NULL;
4983         proto_tree *tree = NULL;
4984         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
4985         int old_offset;
4986
4987         ALIGN_TO_5_BYTES;
4988
4989         old_offset = offset;
4990
4991         if (parent_tree) {
4992                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4993                 tree = proto_item_add_subtree(item, ett_samr_samr_LogonHours);
4994         }
4995         
4996         offset = samr_dissect_element_LogonHours_units_per_week(tvb, offset, pinfo, tree, drep);
4997
4998         offset = samr_dissect_element_LogonHours_bits(tvb, offset, pinfo, tree, drep);
4999
5000
5001         proto_item_set_len(item, offset-old_offset);
5002
5003
5004         if (di->call_data->flags & DCERPC_IS_NDR64) {
5005                 ALIGN_TO_5_BYTES;
5006         }
5007
5008         return offset;
5009 }
5010
5011
5012 /* IDL: struct { */
5013 /* IDL:         lsa_String account_name; */
5014 /* IDL:         lsa_String full_name; */
5015 /* IDL:         uint32 rid; */
5016 /* IDL:         uint32 primary_gid; */
5017 /* IDL:         lsa_String home_directory; */
5018 /* IDL:         lsa_String home_drive; */
5019 /* IDL:         lsa_String logon_script; */
5020 /* IDL:         lsa_String profile_path; */
5021 /* IDL:         lsa_String workstations; */
5022 /* IDL:         NTTIME last_logon; */
5023 /* IDL:         NTTIME last_logoff; */
5024 /* IDL:         NTTIME last_password_change; */
5025 /* IDL:         NTTIME allow_password_change; */
5026 /* IDL:         NTTIME force_password_change; */
5027 /* IDL:         samr_LogonHours logon_hours; */
5028 /* IDL:         uint16 bad_password_count; */
5029 /* IDL:         uint16 logon_count; */
5030 /* IDL:         samr_AcctFlags acct_flags; */
5031 /* IDL: } */
5032
5033 static int
5034 samr_dissect_element_UserInfo3_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5035 {
5036         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo3_account_name,0);
5037
5038         return offset;
5039 }
5040
5041 static int
5042 samr_dissect_element_UserInfo3_full_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5043 {
5044         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo3_full_name,0);
5045
5046         return offset;
5047 }
5048
5049 static int
5050 samr_dissect_element_UserInfo3_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5051 {
5052         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo3_rid, 0);
5053
5054         return offset;
5055 }
5056
5057 static int
5058 samr_dissect_element_UserInfo3_primary_gid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5059 {
5060         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo3_primary_gid, 0);
5061
5062         return offset;
5063 }
5064
5065 static int
5066 samr_dissect_element_UserInfo3_home_directory(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5067 {
5068         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo3_home_directory,0);
5069
5070         return offset;
5071 }
5072
5073 static int
5074 samr_dissect_element_UserInfo3_home_drive(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5075 {
5076         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo3_home_drive,0);
5077
5078         return offset;
5079 }
5080
5081 static int
5082 samr_dissect_element_UserInfo3_logon_script(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5083 {
5084         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo3_logon_script,0);
5085
5086         return offset;
5087 }
5088
5089 static int
5090 samr_dissect_element_UserInfo3_profile_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5091 {
5092         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo3_profile_path,0);
5093
5094         return offset;
5095 }
5096
5097 static int
5098 samr_dissect_element_UserInfo3_workstations(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5099 {
5100         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo3_workstations,0);
5101
5102         return offset;
5103 }
5104
5105 static int
5106 samr_dissect_element_UserInfo3_last_logon(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5107 {
5108         offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo3_last_logon);
5109
5110         return offset;
5111 }
5112
5113 static int
5114 samr_dissect_element_UserInfo3_last_logoff(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5115 {
5116         offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo3_last_logoff);
5117
5118         return offset;
5119 }
5120
5121 static int
5122 samr_dissect_element_UserInfo3_last_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5123 {
5124         offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo3_last_password_change);
5125
5126         return offset;
5127 }
5128
5129 static int
5130 samr_dissect_element_UserInfo3_allow_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5131 {
5132         offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo3_allow_password_change);
5133
5134         return offset;
5135 }
5136
5137 static int
5138 samr_dissect_element_UserInfo3_force_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5139 {
5140         offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo3_force_password_change);
5141
5142         return offset;
5143 }
5144
5145 static int
5146 samr_dissect_element_UserInfo3_logon_hours(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5147 {
5148         offset = samr_dissect_struct_LogonHours(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo3_logon_hours,0);
5149
5150         return offset;
5151 }
5152
5153 static int
5154 samr_dissect_element_UserInfo3_bad_password_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5155 {
5156         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo3_bad_password_count, 0);
5157
5158         return offset;
5159 }
5160
5161 static int
5162 samr_dissect_element_UserInfo3_logon_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5163 {
5164         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo3_logon_count, 0);
5165
5166         return offset;
5167 }
5168
5169 static int
5170 samr_dissect_element_UserInfo3_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5171 {
5172         offset = samr_dissect_bitmap_AcctFlags(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo3_acct_flags, 0);
5173
5174         return offset;
5175 }
5176
5177 int
5178 samr_dissect_struct_UserInfo3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
5179 {
5180         proto_item *item = NULL;
5181         proto_tree *tree = NULL;
5182         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
5183         int old_offset;
5184
5185         ALIGN_TO_5_BYTES;
5186
5187         old_offset = offset;
5188
5189         if (parent_tree) {
5190                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5191                 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo3);
5192         }
5193         
5194         offset = samr_dissect_element_UserInfo3_account_name(tvb, offset, pinfo, tree, drep);
5195
5196         offset = samr_dissect_element_UserInfo3_full_name(tvb, offset, pinfo, tree, drep);
5197
5198         offset = samr_dissect_element_UserInfo3_rid(tvb, offset, pinfo, tree, drep);
5199
5200         offset = samr_dissect_element_UserInfo3_primary_gid(tvb, offset, pinfo, tree, drep);
5201
5202         offset = samr_dissect_element_UserInfo3_home_directory(tvb, offset, pinfo, tree, drep);
5203
5204         offset = samr_dissect_element_UserInfo3_home_drive(tvb, offset, pinfo, tree, drep);
5205
5206         offset = samr_dissect_element_UserInfo3_logon_script(tvb, offset, pinfo, tree, drep);
5207
5208         offset = samr_dissect_element_UserInfo3_profile_path(tvb, offset, pinfo, tree, drep);
5209
5210         offset = samr_dissect_element_UserInfo3_workstations(tvb, offset, pinfo, tree, drep);
5211
5212         offset = samr_dissect_element_UserInfo3_last_logon(tvb, offset, pinfo, tree, drep);
5213
5214         offset = samr_dissect_element_UserInfo3_last_logoff(tvb, offset, pinfo, tree, drep);
5215
5216         offset = samr_dissect_element_UserInfo3_last_password_change(tvb, offset, pinfo, tree, drep);
5217
5218         offset = samr_dissect_element_UserInfo3_allow_password_change(tvb, offset, pinfo, tree, drep);
5219
5220         offset = samr_dissect_element_UserInfo3_force_password_change(tvb, offset, pinfo, tree, drep);
5221
5222         offset = samr_dissect_element_UserInfo3_logon_hours(tvb, offset, pinfo, tree, drep);
5223
5224         offset = samr_dissect_element_UserInfo3_bad_password_count(tvb, offset, pinfo, tree, drep);
5225
5226         offset = samr_dissect_element_UserInfo3_logon_count(tvb, offset, pinfo, tree, drep);
5227
5228         offset = samr_dissect_element_UserInfo3_acct_flags(tvb, offset, pinfo, tree, drep);
5229
5230
5231         proto_item_set_len(item, offset-old_offset);
5232
5233
5234         if (di->call_data->flags & DCERPC_IS_NDR64) {
5235                 ALIGN_TO_5_BYTES;
5236         }
5237
5238         return offset;
5239 }
5240
5241
5242 /* IDL: struct { */
5243 /* IDL:         samr_LogonHours logon_hours; */
5244 /* IDL: } */
5245
5246 static int
5247 samr_dissect_element_UserInfo4_logon_hours(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5248 {
5249         offset = samr_dissect_struct_LogonHours(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo4_logon_hours,0);
5250
5251         return offset;
5252 }
5253
5254 int
5255 samr_dissect_struct_UserInfo4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
5256 {
5257         proto_item *item = NULL;
5258         proto_tree *tree = NULL;
5259         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
5260         int old_offset;
5261
5262         ALIGN_TO_5_BYTES;
5263
5264         old_offset = offset;
5265
5266         if (parent_tree) {
5267                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5268                 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo4);
5269         }
5270         
5271         offset = samr_dissect_element_UserInfo4_logon_hours(tvb, offset, pinfo, tree, drep);
5272
5273
5274         proto_item_set_len(item, offset-old_offset);
5275
5276
5277         if (di->call_data->flags & DCERPC_IS_NDR64) {
5278                 ALIGN_TO_5_BYTES;
5279         }
5280
5281         return offset;
5282 }
5283
5284
5285 /* IDL: struct { */
5286 /* IDL:         lsa_String account_name; */
5287 /* IDL:         lsa_String full_name; */
5288 /* IDL:         uint32 rid; */
5289 /* IDL:         uint32 primary_gid; */
5290 /* IDL:         lsa_String home_directory; */
5291 /* IDL:         lsa_String home_drive; */
5292 /* IDL:         lsa_String logon_script; */
5293 /* IDL:         lsa_String profile_path; */
5294 /* IDL:         lsa_String description; */
5295 /* IDL:         lsa_String workstations; */
5296 /* IDL:         NTTIME last_logon; */
5297 /* IDL:         NTTIME last_logoff; */
5298 /* IDL:         samr_LogonHours logon_hours; */
5299 /* IDL:         uint16 bad_password_count; */
5300 /* IDL:         uint16 logon_count; */
5301 /* IDL:         NTTIME last_password_change; */
5302 /* IDL:         NTTIME acct_expiry; */
5303 /* IDL:         samr_AcctFlags acct_flags; */
5304 /* IDL: } */
5305
5306 static int
5307 samr_dissect_element_UserInfo5_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5308 {
5309         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo5_account_name,0);
5310
5311         return offset;
5312 }
5313
5314 static int
5315 samr_dissect_element_UserInfo5_full_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5316 {
5317         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo5_full_name,0);
5318
5319         return offset;
5320 }
5321
5322 static int
5323 samr_dissect_element_UserInfo5_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5324 {
5325         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo5_rid, 0);
5326
5327         return offset;
5328 }
5329
5330 static int
5331 samr_dissect_element_UserInfo5_primary_gid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5332 {
5333         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo5_primary_gid, 0);
5334
5335         return offset;
5336 }
5337
5338 static int
5339 samr_dissect_element_UserInfo5_home_directory(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5340 {
5341         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo5_home_directory,0);
5342
5343         return offset;
5344 }
5345
5346 static int
5347 samr_dissect_element_UserInfo5_home_drive(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5348 {
5349         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo5_home_drive,0);
5350
5351         return offset;
5352 }
5353
5354 static int
5355 samr_dissect_element_UserInfo5_logon_script(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5356 {
5357         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo5_logon_script,0);
5358
5359         return offset;
5360 }
5361
5362 static int
5363 samr_dissect_element_UserInfo5_profile_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5364 {
5365         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo5_profile_path,0);
5366
5367         return offset;
5368 }
5369
5370 static int
5371 samr_dissect_element_UserInfo5_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5372 {
5373         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo5_description,0);
5374
5375         return offset;
5376 }
5377
5378 static int
5379 samr_dissect_element_UserInfo5_workstations(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5380 {
5381         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo5_workstations,0);
5382
5383         return offset;
5384 }
5385
5386 static int
5387 samr_dissect_element_UserInfo5_last_logon(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5388 {
5389         offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo5_last_logon);
5390
5391         return offset;
5392 }
5393
5394 static int
5395 samr_dissect_element_UserInfo5_last_logoff(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5396 {
5397         offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo5_last_logoff);
5398
5399         return offset;
5400 }
5401
5402 static int
5403 samr_dissect_element_UserInfo5_logon_hours(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5404 {
5405         offset = samr_dissect_struct_LogonHours(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo5_logon_hours,0);
5406
5407         return offset;
5408 }
5409
5410 static int
5411 samr_dissect_element_UserInfo5_bad_password_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5412 {
5413         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo5_bad_password_count, 0);
5414
5415         return offset;
5416 }
5417
5418 static int
5419 samr_dissect_element_UserInfo5_logon_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5420 {
5421         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo5_logon_count, 0);
5422
5423         return offset;
5424 }
5425
5426 static int
5427 samr_dissect_element_UserInfo5_last_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5428 {
5429         offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo5_last_password_change);
5430
5431         return offset;
5432 }
5433
5434 static int
5435 samr_dissect_element_UserInfo5_acct_expiry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5436 {
5437         offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo5_acct_expiry);
5438
5439         return offset;
5440 }
5441
5442 static int
5443 samr_dissect_element_UserInfo5_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5444 {
5445         offset = samr_dissect_bitmap_AcctFlags(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo5_acct_flags, 0);
5446
5447         return offset;
5448 }
5449
5450 int
5451 samr_dissect_struct_UserInfo5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
5452 {
5453         proto_item *item = NULL;
5454         proto_tree *tree = NULL;
5455         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
5456         int old_offset;
5457
5458         ALIGN_TO_5_BYTES;
5459
5460         old_offset = offset;
5461
5462         if (parent_tree) {
5463                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5464                 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo5);
5465         }
5466         
5467         offset = samr_dissect_element_UserInfo5_account_name(tvb, offset, pinfo, tree, drep);
5468
5469         offset = samr_dissect_element_UserInfo5_full_name(tvb, offset, pinfo, tree, drep);
5470
5471         offset = samr_dissect_element_UserInfo5_rid(tvb, offset, pinfo, tree, drep);
5472
5473         offset = samr_dissect_element_UserInfo5_primary_gid(tvb, offset, pinfo, tree, drep);
5474
5475         offset = samr_dissect_element_UserInfo5_home_directory(tvb, offset, pinfo, tree, drep);
5476
5477         offset = samr_dissect_element_UserInfo5_home_drive(tvb, offset, pinfo, tree, drep);
5478
5479         offset = samr_dissect_element_UserInfo5_logon_script(tvb, offset, pinfo, tree, drep);
5480
5481         offset = samr_dissect_element_UserInfo5_profile_path(tvb, offset, pinfo, tree, drep);
5482
5483         offset = samr_dissect_element_UserInfo5_description(tvb, offset, pinfo, tree, drep);
5484
5485         offset = samr_dissect_element_UserInfo5_workstations(tvb, offset, pinfo, tree, drep);
5486
5487         offset = samr_dissect_element_UserInfo5_last_logon(tvb, offset, pinfo, tree, drep);
5488
5489         offset = samr_dissect_element_UserInfo5_last_logoff(tvb, offset, pinfo, tree, drep);
5490
5491         offset = samr_dissect_element_UserInfo5_logon_hours(tvb, offset, pinfo, tree, drep);
5492
5493         offset = samr_dissect_element_UserInfo5_bad_password_count(tvb, offset, pinfo, tree, drep);
5494
5495         offset = samr_dissect_element_UserInfo5_logon_count(tvb, offset, pinfo, tree, drep);
5496
5497         offset = samr_dissect_element_UserInfo5_last_password_change(tvb, offset, pinfo, tree, drep);
5498
5499         offset = samr_dissect_element_UserInfo5_acct_expiry(tvb, offset, pinfo, tree, drep);
5500
5501         offset = samr_dissect_element_UserInfo5_acct_flags(tvb, offset, pinfo, tree, drep);
5502
5503
5504         proto_item_set_len(item, offset-old_offset);
5505
5506
5507         if (di->call_data->flags & DCERPC_IS_NDR64) {
5508                 ALIGN_TO_5_BYTES;
5509         }
5510
5511         return offset;
5512 }
5513
5514
5515 /* IDL: struct { */
5516 /* IDL:         lsa_String account_name; */
5517 /* IDL:         lsa_String full_name; */
5518 /* IDL: } */
5519
5520 static int
5521 samr_dissect_element_UserInfo6_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5522 {
5523         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo6_account_name,0);
5524
5525         return offset;
5526 }
5527
5528 static int
5529 samr_dissect_element_UserInfo6_full_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5530 {
5531         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo6_full_name,0);
5532
5533         return offset;
5534 }
5535
5536 int
5537 samr_dissect_struct_UserInfo6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
5538 {
5539         proto_item *item = NULL;
5540         proto_tree *tree = NULL;
5541         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
5542         int old_offset;
5543
5544         ALIGN_TO_5_BYTES;
5545
5546         old_offset = offset;
5547
5548         if (parent_tree) {
5549                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5550                 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo6);
5551         }
5552         
5553         offset = samr_dissect_element_UserInfo6_account_name(tvb, offset, pinfo, tree, drep);
5554
5555         offset = samr_dissect_element_UserInfo6_full_name(tvb, offset, pinfo, tree, drep);
5556
5557
5558         proto_item_set_len(item, offset-old_offset);
5559
5560
5561         if (di->call_data->flags & DCERPC_IS_NDR64) {
5562                 ALIGN_TO_5_BYTES;
5563         }
5564
5565         return offset;
5566 }
5567
5568
5569 /* IDL: struct { */
5570 /* IDL:         lsa_String account_name; */
5571 /* IDL: } */
5572
5573 static int
5574 samr_dissect_element_UserInfo7_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5575 {
5576         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo7_account_name,0);
5577
5578         return offset;
5579 }
5580
5581 int
5582 samr_dissect_struct_UserInfo7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
5583 {
5584         proto_item *item = NULL;
5585         proto_tree *tree = NULL;
5586         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
5587         int old_offset;
5588
5589         ALIGN_TO_5_BYTES;
5590
5591         old_offset = offset;
5592
5593         if (parent_tree) {
5594                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5595                 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo7);
5596         }
5597         
5598         offset = samr_dissect_element_UserInfo7_account_name(tvb, offset, pinfo, tree, drep);
5599
5600
5601         proto_item_set_len(item, offset-old_offset);
5602
5603
5604         if (di->call_data->flags & DCERPC_IS_NDR64) {
5605                 ALIGN_TO_5_BYTES;
5606         }
5607
5608         return offset;
5609 }
5610
5611
5612 /* IDL: struct { */
5613 /* IDL:         lsa_String full_name; */
5614 /* IDL: } */
5615
5616 static int
5617 samr_dissect_element_UserInfo8_full_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5618 {
5619         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo8_full_name,0);
5620
5621         return offset;
5622 }
5623
5624 int
5625 samr_dissect_struct_UserInfo8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
5626 {
5627         proto_item *item = NULL;
5628         proto_tree *tree = NULL;
5629         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
5630         int old_offset;
5631
5632         ALIGN_TO_5_BYTES;
5633
5634         old_offset = offset;
5635
5636         if (parent_tree) {
5637                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5638                 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo8);
5639         }
5640         
5641         offset = samr_dissect_element_UserInfo8_full_name(tvb, offset, pinfo, tree, drep);
5642
5643
5644         proto_item_set_len(item, offset-old_offset);
5645
5646
5647         if (di->call_data->flags & DCERPC_IS_NDR64) {
5648                 ALIGN_TO_5_BYTES;
5649         }
5650
5651         return offset;
5652 }
5653
5654
5655 /* IDL: struct { */
5656 /* IDL:         uint32 primary_gid; */
5657 /* IDL: } */
5658
5659 static int
5660 samr_dissect_element_UserInfo9_primary_gid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5661 {
5662         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo9_primary_gid, 0);
5663
5664         return offset;
5665 }
5666
5667 int
5668 samr_dissect_struct_UserInfo9(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
5669 {
5670         proto_item *item = NULL;
5671         proto_tree *tree = NULL;
5672         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
5673         int old_offset;
5674
5675         ALIGN_TO_4_BYTES;
5676
5677         old_offset = offset;
5678
5679         if (parent_tree) {
5680                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5681                 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo9);
5682         }
5683         
5684         offset = samr_dissect_element_UserInfo9_primary_gid(tvb, offset, pinfo, tree, drep);
5685
5686
5687         proto_item_set_len(item, offset-old_offset);
5688
5689
5690         if (di->call_data->flags & DCERPC_IS_NDR64) {
5691                 ALIGN_TO_4_BYTES;
5692         }
5693
5694         return offset;
5695 }
5696
5697
5698 /* IDL: struct { */
5699 /* IDL:         lsa_String home_directory; */
5700 /* IDL:         lsa_String home_drive; */
5701 /* IDL: } */
5702
5703 static int
5704 samr_dissect_element_UserInfo10_home_directory(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5705 {
5706         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo10_home_directory,0);
5707
5708         return offset;
5709 }
5710
5711 static int
5712 samr_dissect_element_UserInfo10_home_drive(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5713 {
5714         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo10_home_drive,0);
5715
5716         return offset;
5717 }
5718
5719 int
5720 samr_dissect_struct_UserInfo10(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
5721 {
5722         proto_item *item = NULL;
5723         proto_tree *tree = NULL;
5724         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
5725         int old_offset;
5726
5727         ALIGN_TO_5_BYTES;
5728
5729         old_offset = offset;
5730
5731         if (parent_tree) {
5732                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5733                 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo10);
5734         }
5735         
5736         offset = samr_dissect_element_UserInfo10_home_directory(tvb, offset, pinfo, tree, drep);
5737
5738         offset = samr_dissect_element_UserInfo10_home_drive(tvb, offset, pinfo, tree, drep);
5739
5740
5741         proto_item_set_len(item, offset-old_offset);
5742
5743
5744         if (di->call_data->flags & DCERPC_IS_NDR64) {
5745                 ALIGN_TO_5_BYTES;
5746         }
5747
5748         return offset;
5749 }
5750
5751
5752 /* IDL: struct { */
5753 /* IDL:         lsa_String logon_script; */
5754 /* IDL: } */
5755
5756 static int
5757 samr_dissect_element_UserInfo11_logon_script(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5758 {
5759         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo11_logon_script,0);
5760
5761         return offset;
5762 }
5763
5764 int
5765 samr_dissect_struct_UserInfo11(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
5766 {
5767         proto_item *item = NULL;
5768         proto_tree *tree = NULL;
5769         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
5770         int old_offset;
5771
5772         ALIGN_TO_5_BYTES;
5773
5774         old_offset = offset;
5775
5776         if (parent_tree) {
5777                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5778                 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo11);
5779         }
5780         
5781         offset = samr_dissect_element_UserInfo11_logon_script(tvb, offset, pinfo, tree, drep);
5782
5783
5784         proto_item_set_len(item, offset-old_offset);
5785
5786
5787         if (di->call_data->flags & DCERPC_IS_NDR64) {
5788                 ALIGN_TO_5_BYTES;
5789         }
5790
5791         return offset;
5792 }
5793
5794
5795 /* IDL: struct { */
5796 /* IDL:         lsa_String profile_path; */
5797 /* IDL: } */
5798
5799 static int
5800 samr_dissect_element_UserInfo12_profile_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5801 {
5802         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo12_profile_path,0);
5803
5804         return offset;
5805 }
5806
5807 int
5808 samr_dissect_struct_UserInfo12(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
5809 {
5810         proto_item *item = NULL;
5811         proto_tree *tree = NULL;
5812         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
5813         int old_offset;
5814
5815         ALIGN_TO_5_BYTES;
5816
5817         old_offset = offset;
5818
5819         if (parent_tree) {
5820                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5821                 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo12);
5822         }
5823         
5824         offset = samr_dissect_element_UserInfo12_profile_path(tvb, offset, pinfo, tree, drep);
5825
5826
5827         proto_item_set_len(item, offset-old_offset);
5828
5829
5830         if (di->call_data->flags & DCERPC_IS_NDR64) {
5831                 ALIGN_TO_5_BYTES;
5832         }
5833
5834         return offset;
5835 }
5836
5837
5838 /* IDL: struct { */
5839 /* IDL:         lsa_String description; */
5840 /* IDL: } */
5841
5842 static int
5843 samr_dissect_element_UserInfo13_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5844 {
5845         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo13_description,0);
5846
5847         return offset;
5848 }
5849
5850 int
5851 samr_dissect_struct_UserInfo13(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
5852 {
5853         proto_item *item = NULL;
5854         proto_tree *tree = NULL;
5855         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
5856         int old_offset;
5857
5858         ALIGN_TO_5_BYTES;
5859
5860         old_offset = offset;
5861
5862         if (parent_tree) {
5863                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5864                 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo13);
5865         }
5866         
5867         offset = samr_dissect_element_UserInfo13_description(tvb, offset, pinfo, tree, drep);
5868
5869
5870         proto_item_set_len(item, offset-old_offset);
5871
5872
5873         if (di->call_data->flags & DCERPC_IS_NDR64) {
5874                 ALIGN_TO_5_BYTES;
5875         }
5876
5877         return offset;
5878 }
5879
5880
5881 /* IDL: struct { */
5882 /* IDL:         lsa_String workstations; */
5883 /* IDL: } */
5884
5885 static int
5886 samr_dissect_element_UserInfo14_workstations(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5887 {
5888         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo14_workstations,0);
5889
5890         return offset;
5891 }
5892
5893 int
5894 samr_dissect_struct_UserInfo14(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
5895 {
5896         proto_item *item = NULL;
5897         proto_tree *tree = NULL;
5898         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
5899         int old_offset;
5900
5901         ALIGN_TO_5_BYTES;
5902
5903         old_offset = offset;
5904
5905         if (parent_tree) {
5906                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5907                 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo14);
5908         }
5909         
5910         offset = samr_dissect_element_UserInfo14_workstations(tvb, offset, pinfo, tree, drep);
5911
5912
5913         proto_item_set_len(item, offset-old_offset);
5914
5915
5916         if (di->call_data->flags & DCERPC_IS_NDR64) {
5917                 ALIGN_TO_5_BYTES;
5918         }
5919
5920         return offset;
5921 }
5922
5923
5924 /* IDL: struct { */
5925 /* IDL:         samr_AcctFlags acct_flags; */
5926 /* IDL: } */
5927
5928 static int
5929 samr_dissect_element_UserInfo16_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5930 {
5931         offset = samr_dissect_bitmap_AcctFlags(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo16_acct_flags, 0);
5932
5933         return offset;
5934 }
5935
5936 int
5937 samr_dissect_struct_UserInfo16(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
5938 {
5939         proto_item *item = NULL;
5940         proto_tree *tree = NULL;
5941         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
5942         int old_offset;
5943
5944         ALIGN_TO_4_BYTES;
5945
5946         old_offset = offset;
5947
5948         if (parent_tree) {
5949                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5950                 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo16);
5951         }
5952         
5953         offset = samr_dissect_element_UserInfo16_acct_flags(tvb, offset, pinfo, tree, drep);
5954
5955
5956         proto_item_set_len(item, offset-old_offset);
5957
5958
5959         if (di->call_data->flags & DCERPC_IS_NDR64) {
5960                 ALIGN_TO_4_BYTES;
5961         }
5962
5963         return offset;
5964 }
5965
5966
5967 /* IDL: struct { */
5968 /* IDL:         NTTIME acct_expiry; */
5969 /* IDL: } */
5970
5971 static int
5972 samr_dissect_element_UserInfo17_acct_expiry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5973 {
5974         offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo17_acct_expiry);
5975
5976         return offset;
5977 }
5978
5979 int
5980 samr_dissect_struct_UserInfo17(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
5981 {
5982         proto_item *item = NULL;
5983         proto_tree *tree = NULL;
5984         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
5985         int old_offset;
5986
5987         ALIGN_TO_4_BYTES;
5988
5989         old_offset = offset;
5990
5991         if (parent_tree) {
5992                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5993                 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo17);
5994         }
5995         
5996         offset = samr_dissect_element_UserInfo17_acct_expiry(tvb, offset, pinfo, tree, drep);
5997
5998
5999         proto_item_set_len(item, offset-old_offset);
6000
6001
6002         if (di->call_data->flags & DCERPC_IS_NDR64) {
6003                 ALIGN_TO_4_BYTES;
6004         }
6005
6006         return offset;
6007 }
6008
6009
6010 /* IDL: struct { */
6011 /* IDL:         uint8 hash[16]; */
6012 /* IDL: } */
6013
6014 static int
6015 samr_dissect_element_Password_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6016 {
6017         int i;
6018         for (i = 0; i < 16; i++)
6019                 offset = samr_dissect_element_Password_hash_(tvb, offset, pinfo, tree, drep);
6020
6021         return offset;
6022 }
6023
6024 static int
6025 samr_dissect_element_Password_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6026 {
6027         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_Password_hash, 0);
6028
6029         return offset;
6030 }
6031
6032 int
6033 samr_dissect_struct_Password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
6034 {
6035         proto_item *item = NULL;
6036         proto_tree *tree = NULL;
6037         int old_offset;
6038
6039
6040         old_offset = offset;
6041
6042         if (parent_tree) {
6043                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
6044                 tree = proto_item_add_subtree(item, ett_samr_samr_Password);
6045         }
6046         
6047         offset = samr_dissect_element_Password_hash(tvb, offset, pinfo, tree, drep);
6048
6049
6050         proto_item_set_len(item, offset-old_offset);
6051
6052
6053         return offset;
6054 }
6055
6056
6057 /* IDL: struct { */
6058 /* IDL:         samr_Password nt_pwd; */
6059 /* IDL:         samr_Password lm_pwd; */
6060 /* IDL:         uint8 nt_pwd_active; */
6061 /* IDL:         uint8 lm_pwd_active; */
6062 /* IDL:         uint8 password_expired; */
6063 /* IDL: } */
6064
6065 static int
6066 samr_dissect_element_UserInfo18_nt_pwd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6067 {
6068         offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo18_nt_pwd,0);
6069
6070         return offset;
6071 }
6072
6073 static int
6074 samr_dissect_element_UserInfo18_lm_pwd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6075 {
6076         offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo18_lm_pwd,0);
6077
6078         return offset;
6079 }
6080
6081 static int
6082 samr_dissect_element_UserInfo18_nt_pwd_active(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6083 {
6084         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo18_nt_pwd_active, 0);
6085
6086         return offset;
6087 }
6088
6089 static int
6090 samr_dissect_element_UserInfo18_lm_pwd_active(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6091 {
6092         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo18_lm_pwd_active, 0);
6093
6094         return offset;
6095 }
6096
6097 static int
6098 samr_dissect_element_UserInfo18_password_expired(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6099 {
6100         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo18_password_expired, 0);
6101
6102         return offset;
6103 }
6104
6105 int
6106 samr_dissect_struct_UserInfo18(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
6107 {
6108         proto_item *item = NULL;
6109         proto_tree *tree = NULL;
6110         int old_offset;
6111
6112
6113         old_offset = offset;
6114
6115         if (parent_tree) {
6116                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
6117                 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo18);
6118         }
6119         
6120         offset = samr_dissect_element_UserInfo18_nt_pwd(tvb, offset, pinfo, tree, drep);
6121
6122         offset = samr_dissect_element_UserInfo18_lm_pwd(tvb, offset, pinfo, tree, drep);
6123
6124         offset = samr_dissect_element_UserInfo18_nt_pwd_active(tvb, offset, pinfo, tree, drep);
6125
6126         offset = samr_dissect_element_UserInfo18_lm_pwd_active(tvb, offset, pinfo, tree, drep);
6127
6128         offset = samr_dissect_element_UserInfo18_password_expired(tvb, offset, pinfo, tree, drep);
6129
6130
6131         proto_item_set_len(item, offset-old_offset);
6132
6133
6134         return offset;
6135 }
6136
6137
6138 /* IDL: struct { */
6139 /* IDL:         lsa_BinaryString parameters; */
6140 /* IDL: } */
6141
6142 static int
6143 samr_dissect_element_UserInfo20_parameters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6144 {
6145         offset = samr_dissect_struct_lsa_BinaryString(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo20_parameters,0);
6146
6147         return offset;
6148 }
6149
6150 int
6151 samr_dissect_struct_UserInfo20(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
6152 {
6153         proto_item *item = NULL;
6154         proto_tree *tree = NULL;
6155         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
6156         int old_offset;
6157
6158         ALIGN_TO_5_BYTES;
6159
6160         old_offset = offset;
6161
6162         if (parent_tree) {
6163                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
6164                 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo20);
6165         }
6166         
6167         offset = samr_dissect_element_UserInfo20_parameters(tvb, offset, pinfo, tree, drep);
6168
6169
6170         proto_item_set_len(item, offset-old_offset);
6171
6172
6173         if (di->call_data->flags & DCERPC_IS_NDR64) {
6174                 ALIGN_TO_5_BYTES;
6175         }
6176
6177         return offset;
6178 }
6179
6180
6181 /* IDL: bitmap { */
6182 /* IDL:         SAMR_FIELD_ACCOUNT_NAME =  0x00000001 , */
6183 /* IDL:         SAMR_FIELD_FULL_NAME =  0x00000002 , */
6184 /* IDL:         SAMR_FIELD_RID =  0x00000004 , */
6185 /* IDL:         SAMR_FIELD_PRIMARY_GID =  0x00000008 , */
6186 /* IDL:         SAMR_FIELD_DESCRIPTION =  0x00000010 , */
6187 /* IDL:         SAMR_FIELD_COMMENT =  0x00000020 , */
6188 /* IDL:         SAMR_FIELD_HOME_DIRECTORY =  0x00000040 , */
6189 /* IDL:         SAMR_FIELD_HOME_DRIVE =  0x00000080 , */
6190 /* IDL:         SAMR_FIELD_LOGON_SCRIPT =  0x00000100 , */
6191 /* IDL:         SAMR_FIELD_PROFILE_PATH =  0x00000200 , */
6192 /* IDL:         SAMR_FIELD_WORKSTATIONS =  0x00000400 , */
6193 /* IDL:         SAMR_FIELD_LAST_LOGON =  0x00000800 , */
6194 /* IDL:         SAMR_FIELD_LAST_LOGOFF =  0x00001000 , */
6195 /* IDL:         SAMR_FIELD_LOGON_HOURS =  0x00002000 , */
6196 /* IDL:         SAMR_FIELD_BAD_PWD_COUNT =  0x00004000 , */
6197 /* IDL:         SAMR_FIELD_NUM_LOGONS =  0x00008000 , */
6198 /* IDL:         SAMR_FIELD_ALLOW_PWD_CHANGE =  0x00010000 , */
6199 /* IDL:         SAMR_FIELD_FORCE_PWD_CHANGE =  0x00020000 , */
6200 /* IDL:         SAMR_FIELD_LAST_PWD_CHANGE =  0x00040000 , */
6201 /* IDL:         SAMR_FIELD_ACCT_EXPIRY =  0x00080000 , */
6202 /* IDL:         SAMR_FIELD_ACCT_FLAGS =  0x00100000 , */
6203 /* IDL:         SAMR_FIELD_PARAMETERS =  0x00200000 , */
6204 /* IDL:         SAMR_FIELD_COUNTRY_CODE =  0x00400000 , */
6205 /* IDL:         SAMR_FIELD_CODE_PAGE =  0x00800000 , */
6206 /* IDL:         SAMR_FIELD_NT_PASSWORD_PRESENT =  0x01000000 , */
6207 /* IDL:         SAMR_FIELD_LM_PASSWORD_PRESENT =  0x02000000 , */
6208 /* IDL:         SAMR_FIELD_PRIVATE_DATA =  0x04000000 , */
6209 /* IDL:         SAMR_FIELD_EXPIRED_FLAG =  0x08000000 , */
6210 /* IDL:         SAMR_FIELD_SEC_DESC =  0x10000000 , */
6211 /* IDL:         SAMR_FIELD_OWF_PWD =  0x20000000 , */
6212 /* IDL: } */
6213
6214 int
6215 samr_dissect_bitmap_FieldsPresent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
6216 {
6217         proto_item *item = NULL;
6218         proto_tree *tree = NULL;
6219
6220         guint32 flags;
6221         ALIGN_TO_4_BYTES;
6222
6223         if (parent_tree) {
6224                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
6225                 tree = proto_item_add_subtree(item,ett_samr_samr_FieldsPresent);
6226         }
6227
6228         offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
6229         proto_item_append_text(item, ": ");
6230
6231         if (!flags)
6232                 proto_item_append_text(item, "(No values set)");
6233
6234         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_ACCOUNT_NAME, tvb, offset-4, 4, flags);
6235         if (flags&( 0x00000001 )){
6236                 proto_item_append_text(item, "SAMR_FIELD_ACCOUNT_NAME");
6237                 if (flags & (~( 0x00000001 )))
6238                         proto_item_append_text(item, ", ");
6239         }
6240         flags&=(~( 0x00000001 ));
6241
6242         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_FULL_NAME, tvb, offset-4, 4, flags);
6243         if (flags&( 0x00000002 )){
6244                 proto_item_append_text(item, "SAMR_FIELD_FULL_NAME");
6245                 if (flags & (~( 0x00000002 )))
6246                         proto_item_append_text(item, ", ");
6247         }
6248         flags&=(~( 0x00000002 ));
6249
6250         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_RID, tvb, offset-4, 4, flags);
6251         if (flags&( 0x00000004 )){
6252                 proto_item_append_text(item, "SAMR_FIELD_RID");
6253                 if (flags & (~( 0x00000004 )))
6254                         proto_item_append_text(item, ", ");
6255         }
6256         flags&=(~( 0x00000004 ));
6257
6258         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_PRIMARY_GID, tvb, offset-4, 4, flags);
6259         if (flags&( 0x00000008 )){
6260                 proto_item_append_text(item, "SAMR_FIELD_PRIMARY_GID");
6261                 if (flags & (~( 0x00000008 )))
6262                         proto_item_append_text(item, ", ");
6263         }
6264         flags&=(~( 0x00000008 ));
6265
6266         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_DESCRIPTION, tvb, offset-4, 4, flags);
6267         if (flags&( 0x00000010 )){
6268                 proto_item_append_text(item, "SAMR_FIELD_DESCRIPTION");
6269                 if (flags & (~( 0x00000010 )))
6270                         proto_item_append_text(item, ", ");
6271         }
6272         flags&=(~( 0x00000010 ));
6273
6274         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_COMMENT, tvb, offset-4, 4, flags);
6275         if (flags&( 0x00000020 )){
6276                 proto_item_append_text(item, "SAMR_FIELD_COMMENT");
6277                 if (flags & (~( 0x00000020 )))
6278                         proto_item_append_text(item, ", ");
6279         }
6280         flags&=(~( 0x00000020 ));
6281
6282         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_HOME_DIRECTORY, tvb, offset-4, 4, flags);
6283         if (flags&( 0x00000040 )){
6284                 proto_item_append_text(item, "SAMR_FIELD_HOME_DIRECTORY");
6285                 if (flags & (~( 0x00000040 )))
6286                         proto_item_append_text(item, ", ");
6287         }
6288         flags&=(~( 0x00000040 ));
6289
6290         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_HOME_DRIVE, tvb, offset-4, 4, flags);
6291         if (flags&( 0x00000080 )){
6292                 proto_item_append_text(item, "SAMR_FIELD_HOME_DRIVE");
6293                 if (flags & (~( 0x00000080 )))
6294                         proto_item_append_text(item, ", ");
6295         }
6296         flags&=(~( 0x00000080 ));
6297
6298         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_LOGON_SCRIPT, tvb, offset-4, 4, flags);
6299         if (flags&( 0x00000100 )){
6300                 proto_item_append_text(item, "SAMR_FIELD_LOGON_SCRIPT");
6301                 if (flags & (~( 0x00000100 )))
6302                         proto_item_append_text(item, ", ");
6303         }
6304         flags&=(~( 0x00000100 ));
6305
6306         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_PROFILE_PATH, tvb, offset-4, 4, flags);
6307         if (flags&( 0x00000200 )){
6308                 proto_item_append_text(item, "SAMR_FIELD_PROFILE_PATH");
6309                 if (flags & (~( 0x00000200 )))
6310                         proto_item_append_text(item, ", ");
6311         }
6312         flags&=(~( 0x00000200 ));
6313
6314         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_WORKSTATIONS, tvb, offset-4, 4, flags);
6315         if (flags&( 0x00000400 )){
6316                 proto_item_append_text(item, "SAMR_FIELD_WORKSTATIONS");
6317                 if (flags & (~( 0x00000400 )))
6318                         proto_item_append_text(item, ", ");
6319         }
6320         flags&=(~( 0x00000400 ));
6321
6322         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_LAST_LOGON, tvb, offset-4, 4, flags);
6323         if (flags&( 0x00000800 )){
6324                 proto_item_append_text(item, "SAMR_FIELD_LAST_LOGON");
6325                 if (flags & (~( 0x00000800 )))
6326                         proto_item_append_text(item, ", ");
6327         }
6328         flags&=(~( 0x00000800 ));
6329
6330         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_LAST_LOGOFF, tvb, offset-4, 4, flags);
6331         if (flags&( 0x00001000 )){
6332                 proto_item_append_text(item, "SAMR_FIELD_LAST_LOGOFF");
6333                 if (flags & (~( 0x00001000 )))
6334                         proto_item_append_text(item, ", ");
6335         }
6336         flags&=(~( 0x00001000 ));
6337
6338         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_LOGON_HOURS, tvb, offset-4, 4, flags);
6339         if (flags&( 0x00002000 )){
6340                 proto_item_append_text(item, "SAMR_FIELD_LOGON_HOURS");
6341                 if (flags & (~( 0x00002000 )))
6342                         proto_item_append_text(item, ", ");
6343         }
6344         flags&=(~( 0x00002000 ));
6345
6346         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_BAD_PWD_COUNT, tvb, offset-4, 4, flags);
6347         if (flags&( 0x00004000 )){
6348                 proto_item_append_text(item, "SAMR_FIELD_BAD_PWD_COUNT");
6349                 if (flags & (~( 0x00004000 )))
6350                         proto_item_append_text(item, ", ");
6351         }
6352         flags&=(~( 0x00004000 ));
6353
6354         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_NUM_LOGONS, tvb, offset-4, 4, flags);
6355         if (flags&( 0x00008000 )){
6356                 proto_item_append_text(item, "SAMR_FIELD_NUM_LOGONS");
6357                 if (flags & (~( 0x00008000 )))
6358                         proto_item_append_text(item, ", ");
6359         }
6360         flags&=(~( 0x00008000 ));
6361
6362         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_ALLOW_PWD_CHANGE, tvb, offset-4, 4, flags);
6363         if (flags&( 0x00010000 )){
6364                 proto_item_append_text(item, "SAMR_FIELD_ALLOW_PWD_CHANGE");
6365                 if (flags & (~( 0x00010000 )))
6366                         proto_item_append_text(item, ", ");
6367         }
6368         flags&=(~( 0x00010000 ));
6369
6370         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_FORCE_PWD_CHANGE, tvb, offset-4, 4, flags);
6371         if (flags&( 0x00020000 )){
6372                 proto_item_append_text(item, "SAMR_FIELD_FORCE_PWD_CHANGE");
6373                 if (flags & (~( 0x00020000 )))
6374                         proto_item_append_text(item, ", ");
6375         }
6376         flags&=(~( 0x00020000 ));
6377
6378         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_LAST_PWD_CHANGE, tvb, offset-4, 4, flags);
6379         if (flags&( 0x00040000 )){
6380                 proto_item_append_text(item, "SAMR_FIELD_LAST_PWD_CHANGE");
6381                 if (flags & (~( 0x00040000 )))
6382                         proto_item_append_text(item, ", ");
6383         }
6384         flags&=(~( 0x00040000 ));
6385
6386         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_ACCT_EXPIRY, tvb, offset-4, 4, flags);
6387         if (flags&( 0x00080000 )){
6388                 proto_item_append_text(item, "SAMR_FIELD_ACCT_EXPIRY");
6389                 if (flags & (~( 0x00080000 )))
6390                         proto_item_append_text(item, ", ");
6391         }
6392         flags&=(~( 0x00080000 ));
6393
6394         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_ACCT_FLAGS, tvb, offset-4, 4, flags);
6395         if (flags&( 0x00100000 )){
6396                 proto_item_append_text(item, "SAMR_FIELD_ACCT_FLAGS");
6397                 if (flags & (~( 0x00100000 )))
6398                         proto_item_append_text(item, ", ");
6399         }
6400         flags&=(~( 0x00100000 ));
6401
6402         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_PARAMETERS, tvb, offset-4, 4, flags);
6403         if (flags&( 0x00200000 )){
6404                 proto_item_append_text(item, "SAMR_FIELD_PARAMETERS");
6405                 if (flags & (~( 0x00200000 )))
6406                         proto_item_append_text(item, ", ");
6407         }
6408         flags&=(~( 0x00200000 ));
6409
6410         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_COUNTRY_CODE, tvb, offset-4, 4, flags);
6411         if (flags&( 0x00400000 )){
6412                 proto_item_append_text(item, "SAMR_FIELD_COUNTRY_CODE");
6413                 if (flags & (~( 0x00400000 )))
6414                         proto_item_append_text(item, ", ");
6415         }
6416         flags&=(~( 0x00400000 ));
6417
6418         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_CODE_PAGE, tvb, offset-4, 4, flags);
6419         if (flags&( 0x00800000 )){
6420                 proto_item_append_text(item, "SAMR_FIELD_CODE_PAGE");
6421                 if (flags & (~( 0x00800000 )))
6422                         proto_item_append_text(item, ", ");
6423         }
6424         flags&=(~( 0x00800000 ));
6425
6426         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_NT_PASSWORD_PRESENT, tvb, offset-4, 4, flags);
6427         if (flags&( 0x01000000 )){
6428                 proto_item_append_text(item, "SAMR_FIELD_NT_PASSWORD_PRESENT");
6429                 if (flags & (~( 0x01000000 )))
6430                         proto_item_append_text(item, ", ");
6431         }
6432         flags&=(~( 0x01000000 ));
6433
6434         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_LM_PASSWORD_PRESENT, tvb, offset-4, 4, flags);
6435         if (flags&( 0x02000000 )){
6436                 proto_item_append_text(item, "SAMR_FIELD_LM_PASSWORD_PRESENT");
6437                 if (flags & (~( 0x02000000 )))
6438                         proto_item_append_text(item, ", ");
6439         }
6440         flags&=(~( 0x02000000 ));
6441
6442         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_PRIVATE_DATA, tvb, offset-4, 4, flags);
6443         if (flags&( 0x04000000 )){
6444                 proto_item_append_text(item, "SAMR_FIELD_PRIVATE_DATA");
6445                 if (flags & (~( 0x04000000 )))
6446                         proto_item_append_text(item, ", ");
6447         }
6448         flags&=(~( 0x04000000 ));
6449
6450         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_EXPIRED_FLAG, tvb, offset-4, 4, flags);
6451         if (flags&( 0x08000000 )){
6452                 proto_item_append_text(item, "SAMR_FIELD_EXPIRED_FLAG");
6453                 if (flags & (~( 0x08000000 )))
6454                         proto_item_append_text(item, ", ");
6455         }
6456         flags&=(~( 0x08000000 ));
6457
6458         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_SEC_DESC, tvb, offset-4, 4, flags);
6459         if (flags&( 0x10000000 )){
6460                 proto_item_append_text(item, "SAMR_FIELD_SEC_DESC");
6461                 if (flags & (~( 0x10000000 )))
6462                         proto_item_append_text(item, ", ");
6463         }
6464         flags&=(~( 0x10000000 ));
6465
6466         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_OWF_PWD, tvb, offset-4, 4, flags);
6467         if (flags&( 0x20000000 )){
6468                 proto_item_append_text(item, "SAMR_FIELD_OWF_PWD");
6469                 if (flags & (~( 0x20000000 )))
6470                         proto_item_append_text(item, ", ");
6471         }
6472         flags&=(~( 0x20000000 ));
6473
6474         if (flags) {
6475                 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
6476         }
6477
6478         return offset;
6479 }
6480
6481
6482 /* IDL: struct { */
6483 /* IDL:         NTTIME last_logon; */
6484 /* IDL:         NTTIME last_logoff; */
6485 /* IDL:         NTTIME last_password_change; */
6486 /* IDL:         NTTIME acct_expiry; */
6487 /* IDL:         NTTIME allow_password_change; */
6488 /* IDL:         NTTIME force_password_change; */
6489 /* IDL:         lsa_String account_name; */
6490 /* IDL:         lsa_String full_name; */
6491 /* IDL:         lsa_String home_directory; */
6492 /* IDL:         lsa_String home_drive; */
6493 /* IDL:         lsa_String logon_script; */
6494 /* IDL:         lsa_String profile_path; */
6495 /* IDL:         lsa_String description; */
6496 /* IDL:         lsa_String workstations; */
6497 /* IDL:         lsa_String comment; */
6498 /* IDL:         lsa_BinaryString parameters; */
6499 /* IDL:         lsa_BinaryString lm_owf_password; */
6500 /* IDL:         lsa_BinaryString nt_owf_password; */
6501 /* IDL:         lsa_String private_data; */
6502 /* IDL:         uint32 buf_count; */
6503 /* IDL:         [unique(1)] [size_is(buf_count)] uint8 *buffer; */
6504 /* IDL:         uint32 rid; */
6505 /* IDL:         uint32 primary_gid; */
6506 /* IDL:         samr_AcctFlags acct_flags; */
6507 /* IDL:         samr_FieldsPresent fields_present; */
6508 /* IDL:         samr_LogonHours logon_hours; */
6509 /* IDL:         uint16 bad_password_count; */
6510 /* IDL:         uint16 logon_count; */
6511 /* IDL:         uint16 country_code; */
6512 /* IDL:         uint16 code_page; */
6513 /* IDL:         uint8 lm_password_set; */
6514 /* IDL:         uint8 nt_password_set; */
6515 /* IDL:         uint8 password_expired; */
6516 /* IDL:         uint8 private_data_sensitive; */
6517 /* IDL: } */
6518
6519 static int
6520 samr_dissect_element_UserInfo21_last_logon(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6521 {
6522         offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_last_logon);
6523
6524         return offset;
6525 }
6526
6527 static int
6528 samr_dissect_element_UserInfo21_last_logoff(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6529 {
6530         offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_last_logoff);
6531
6532         return offset;
6533 }
6534
6535 static int
6536 samr_dissect_element_UserInfo21_last_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6537 {
6538         offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_last_password_change);
6539
6540         return offset;
6541 }
6542
6543 static int
6544 samr_dissect_element_UserInfo21_acct_expiry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6545 {
6546         offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_acct_expiry);
6547
6548         return offset;
6549 }
6550
6551 static int
6552 samr_dissect_element_UserInfo21_allow_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6553 {
6554         offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_allow_password_change);
6555
6556         return offset;
6557 }
6558
6559 static int
6560 samr_dissect_element_UserInfo21_force_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6561 {
6562         offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_force_password_change);
6563
6564         return offset;
6565 }
6566
6567 static int
6568 samr_dissect_element_UserInfo21_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6569 {
6570         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo21_account_name,0);
6571
6572         return offset;
6573 }
6574
6575 static int
6576 samr_dissect_element_UserInfo21_full_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6577 {
6578         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo21_full_name,0);
6579
6580         return offset;
6581 }
6582
6583 static int
6584 samr_dissect_element_UserInfo21_home_directory(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6585 {
6586         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo21_home_directory,0);
6587
6588         return offset;
6589 }
6590
6591 static int
6592 samr_dissect_element_UserInfo21_home_drive(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6593 {
6594         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo21_home_drive,0);
6595
6596         return offset;
6597 }
6598
6599 static int
6600 samr_dissect_element_UserInfo21_logon_script(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6601 {
6602         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo21_logon_script,0);
6603
6604         return offset;
6605 }
6606
6607 static int
6608 samr_dissect_element_UserInfo21_profile_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6609 {
6610         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo21_profile_path,0);
6611
6612         return offset;
6613 }
6614
6615 static int
6616 samr_dissect_element_UserInfo21_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6617 {
6618         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo21_description,0);
6619
6620         return offset;
6621 }
6622
6623 static int
6624 samr_dissect_element_UserInfo21_workstations(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6625 {
6626         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo21_workstations,0);
6627
6628         return offset;
6629 }
6630
6631 static int
6632 samr_dissect_element_UserInfo21_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6633 {
6634         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo21_comment,0);
6635
6636         return offset;
6637 }
6638
6639 static int
6640 samr_dissect_element_UserInfo21_parameters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6641 {
6642         offset = samr_dissect_struct_lsa_BinaryString(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo21_parameters,0);
6643
6644         return offset;
6645 }
6646
6647 static int
6648 samr_dissect_element_UserInfo21_lm_owf_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6649 {
6650         offset = samr_dissect_struct_lsa_BinaryString(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo21_lm_owf_password,0);
6651
6652         return offset;
6653 }
6654
6655 static int
6656 samr_dissect_element_UserInfo21_nt_owf_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6657 {
6658         offset = samr_dissect_struct_lsa_BinaryString(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo21_nt_owf_password,0);
6659
6660         return offset;
6661 }
6662
6663 static int
6664 samr_dissect_element_UserInfo21_private_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6665 {
6666         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo21_private_data,0);
6667
6668         return offset;
6669 }
6670
6671 static int
6672 samr_dissect_element_UserInfo21_buf_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6673 {
6674         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_buf_count, 0);
6675
6676         return offset;
6677 }
6678
6679 static int
6680 samr_dissect_element_UserInfo21_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6681 {
6682         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_UserInfo21_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (uint8)",hf_samr_samr_UserInfo21_buffer);
6683
6684         return offset;
6685 }
6686
6687 static int
6688 samr_dissect_element_UserInfo21_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6689 {
6690         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, samr_dissect_element_UserInfo21_buffer__);
6691
6692         return offset;
6693 }
6694
6695 static int
6696 samr_dissect_element_UserInfo21_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6697 {
6698         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_buffer, 0);
6699
6700         return offset;
6701 }
6702
6703 static int
6704 samr_dissect_element_UserInfo21_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6705 {
6706         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_rid, 0);
6707
6708         return offset;
6709 }
6710
6711 static int
6712 samr_dissect_element_UserInfo21_primary_gid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6713 {
6714         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_primary_gid, 0);
6715
6716         return offset;
6717 }
6718
6719 static int
6720 samr_dissect_element_UserInfo21_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6721 {
6722         offset = samr_dissect_bitmap_AcctFlags(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_acct_flags, 0);
6723
6724         return offset;
6725 }
6726
6727 static int
6728 samr_dissect_element_UserInfo21_fields_present(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6729 {
6730         offset = samr_dissect_bitmap_FieldsPresent(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_fields_present, 0);
6731
6732         return offset;
6733 }
6734
6735 static int
6736 samr_dissect_element_UserInfo21_logon_hours(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6737 {
6738         offset = samr_dissect_struct_LogonHours(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo21_logon_hours,0);
6739
6740         return offset;
6741 }
6742
6743 static int
6744 samr_dissect_element_UserInfo21_bad_password_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6745 {
6746         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_bad_password_count, 0);
6747
6748         return offset;
6749 }
6750
6751 static int
6752 samr_dissect_element_UserInfo21_logon_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6753 {
6754         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_logon_count, 0);
6755
6756         return offset;
6757 }
6758
6759 static int
6760 samr_dissect_element_UserInfo21_country_code(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6761 {
6762         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_country_code, 0);
6763
6764         return offset;
6765 }
6766
6767 static int
6768 samr_dissect_element_UserInfo21_code_page(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6769 {
6770         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_code_page, 0);
6771
6772         return offset;
6773 }
6774
6775 static int
6776 samr_dissect_element_UserInfo21_lm_password_set(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6777 {
6778         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_lm_password_set, 0);
6779
6780         return offset;
6781 }
6782
6783 static int
6784 samr_dissect_element_UserInfo21_nt_password_set(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6785 {
6786         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_nt_password_set, 0);
6787
6788         return offset;
6789 }
6790
6791 static int
6792 samr_dissect_element_UserInfo21_password_expired(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6793 {
6794         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_password_expired, 0);
6795
6796         return offset;
6797 }
6798
6799 static int
6800 samr_dissect_element_UserInfo21_private_data_sensitive(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6801 {
6802         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_private_data_sensitive, 0);
6803
6804         return offset;
6805 }
6806
6807 int
6808 samr_dissect_struct_UserInfo21(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
6809 {
6810         proto_item *item = NULL;
6811         proto_tree *tree = NULL;
6812         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
6813         int old_offset;
6814
6815         ALIGN_TO_5_BYTES;
6816
6817         old_offset = offset;
6818
6819         if (parent_tree) {
6820                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
6821                 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo21);
6822         }
6823         
6824         offset = samr_dissect_element_UserInfo21_last_logon(tvb, offset, pinfo, tree, drep);
6825
6826         offset = samr_dissect_element_UserInfo21_last_logoff(tvb, offset, pinfo, tree, drep);
6827
6828         offset = samr_dissect_element_UserInfo21_last_password_change(tvb, offset, pinfo, tree, drep);
6829
6830         offset = samr_dissect_element_UserInfo21_acct_expiry(tvb, offset, pinfo, tree, drep);
6831
6832         offset = samr_dissect_element_UserInfo21_allow_password_change(tvb, offset, pinfo, tree, drep);
6833
6834         offset = samr_dissect_element_UserInfo21_force_password_change(tvb, offset, pinfo, tree, drep);
6835
6836         offset = samr_dissect_element_UserInfo21_account_name(tvb, offset, pinfo, tree, drep);
6837
6838         offset = samr_dissect_element_UserInfo21_full_name(tvb, offset, pinfo, tree, drep);
6839
6840         offset = samr_dissect_element_UserInfo21_home_directory(tvb, offset, pinfo, tree, drep);
6841
6842         offset = samr_dissect_element_UserInfo21_home_drive(tvb, offset, pinfo, tree, drep);
6843
6844         offset = samr_dissect_element_UserInfo21_logon_script(tvb, offset, pinfo, tree, drep);
6845
6846         offset = samr_dissect_element_UserInfo21_profile_path(tvb, offset, pinfo, tree, drep);
6847
6848         offset = samr_dissect_element_UserInfo21_description(tvb, offset, pinfo, tree, drep);
6849
6850         offset = samr_dissect_element_UserInfo21_workstations(tvb, offset, pinfo, tree, drep);
6851
6852         offset = samr_dissect_element_UserInfo21_comment(tvb, offset, pinfo, tree, drep);
6853
6854         offset = samr_dissect_element_UserInfo21_parameters(tvb, offset, pinfo, tree, drep);
6855
6856         offset = samr_dissect_element_UserInfo21_lm_owf_password(tvb, offset, pinfo, tree, drep);
6857
6858         offset = samr_dissect_element_UserInfo21_nt_owf_password(tvb, offset, pinfo, tree, drep);
6859
6860         offset = samr_dissect_element_UserInfo21_private_data(tvb, offset, pinfo, tree, drep);
6861
6862         offset = samr_dissect_element_UserInfo21_buf_count(tvb, offset, pinfo, tree, drep);
6863
6864         offset = samr_dissect_element_UserInfo21_buffer(tvb, offset, pinfo, tree, drep);
6865
6866         offset = samr_dissect_element_UserInfo21_rid(tvb, offset, pinfo, tree, drep);
6867
6868         offset = samr_dissect_element_UserInfo21_primary_gid(tvb, offset, pinfo, tree, drep);
6869
6870         offset = samr_dissect_element_UserInfo21_acct_flags(tvb, offset, pinfo, tree, drep);
6871
6872         offset = samr_dissect_element_UserInfo21_fields_present(tvb, offset, pinfo, tree, drep);
6873
6874         offset = samr_dissect_element_UserInfo21_logon_hours(tvb, offset, pinfo, tree, drep);
6875
6876         offset = samr_dissect_element_UserInfo21_bad_password_count(tvb, offset, pinfo, tree, drep);
6877
6878         offset = samr_dissect_element_UserInfo21_logon_count(tvb, offset, pinfo, tree, drep);
6879
6880         offset = samr_dissect_element_UserInfo21_country_code(tvb, offset, pinfo, tree, drep);
6881
6882         offset = samr_dissect_element_UserInfo21_code_page(tvb, offset, pinfo, tree, drep);
6883
6884         offset = samr_dissect_element_UserInfo21_lm_password_set(tvb, offset, pinfo, tree, drep);
6885
6886         offset = samr_dissect_element_UserInfo21_nt_password_set(tvb, offset, pinfo, tree, drep);
6887
6888         offset = samr_dissect_element_UserInfo21_password_expired(tvb, offset, pinfo, tree, drep);
6889
6890         offset = samr_dissect_element_UserInfo21_private_data_sensitive(tvb, offset, pinfo, tree, drep);
6891
6892
6893         proto_item_set_len(item, offset-old_offset);
6894
6895
6896         if (di->call_data->flags & DCERPC_IS_NDR64) {
6897                 ALIGN_TO_5_BYTES;
6898         }
6899
6900         return offset;
6901 }
6902
6903
6904 /* IDL: struct { */
6905 /* IDL:         uint8 data[516]; */
6906 /* IDL: } */
6907
6908 static int
6909 samr_dissect_element_CryptPassword_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6910 {
6911         int i;
6912         for (i = 0; i < 516; i++)
6913                 offset = samr_dissect_element_CryptPassword_data_(tvb, offset, pinfo, tree, drep);
6914
6915         return offset;
6916 }
6917
6918 static int
6919 samr_dissect_element_CryptPassword_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6920 {
6921         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_CryptPassword_data, 0);
6922
6923         return offset;
6924 }
6925
6926 int
6927 samr_dissect_struct_CryptPassword(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
6928 {
6929         proto_item *item = NULL;
6930         proto_tree *tree = NULL;
6931         int old_offset;
6932
6933
6934         old_offset = offset;
6935
6936         if (parent_tree) {
6937                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
6938                 tree = proto_item_add_subtree(item, ett_samr_samr_CryptPassword);
6939         }
6940         
6941         offset = samr_dissect_element_CryptPassword_data(tvb, offset, pinfo, tree, drep);
6942
6943
6944         proto_item_set_len(item, offset-old_offset);
6945
6946
6947         return offset;
6948 }
6949
6950
6951 /* IDL: struct { */
6952 /* IDL:         samr_UserInfo21 info; */
6953 /* IDL:         samr_CryptPassword password; */
6954 /* IDL: } */
6955
6956 static int
6957 samr_dissect_element_UserInfo23_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6958 {
6959         offset = samr_dissect_struct_UserInfo21(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo23_info,0);
6960
6961         return offset;
6962 }
6963
6964 static int
6965 samr_dissect_element_UserInfo23_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6966 {
6967         offset = samr_dissect_struct_CryptPassword(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo23_password,0);
6968
6969         return offset;
6970 }
6971
6972 int
6973 samr_dissect_struct_UserInfo23(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
6974 {
6975         proto_item *item = NULL;
6976         proto_tree *tree = NULL;
6977         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
6978         int old_offset;
6979
6980         ALIGN_TO_5_BYTES;
6981
6982         old_offset = offset;
6983
6984         if (parent_tree) {
6985                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
6986                 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo23);
6987         }
6988         
6989         offset = samr_dissect_element_UserInfo23_info(tvb, offset, pinfo, tree, drep);
6990
6991         offset = samr_dissect_element_UserInfo23_password(tvb, offset, pinfo, tree, drep);
6992
6993
6994         proto_item_set_len(item, offset-old_offset);
6995
6996
6997         if (di->call_data->flags & DCERPC_IS_NDR64) {
6998                 ALIGN_TO_5_BYTES;
6999         }
7000
7001         return offset;
7002 }
7003
7004
7005 /* IDL: struct { */
7006 /* IDL:         samr_CryptPassword password; */
7007 /* IDL:         uint8 password_expired; */
7008 /* IDL: } */
7009
7010 static int
7011 samr_dissect_element_UserInfo24_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7012 {
7013         offset = samr_dissect_struct_CryptPassword(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo24_password,0);
7014
7015         return offset;
7016 }
7017
7018 static int
7019 samr_dissect_element_UserInfo24_password_expired(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7020 {
7021         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo24_password_expired, 0);
7022
7023         return offset;
7024 }
7025
7026 int
7027 samr_dissect_struct_UserInfo24(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
7028 {
7029         proto_item *item = NULL;
7030         proto_tree *tree = NULL;
7031         int old_offset;
7032
7033
7034         old_offset = offset;
7035
7036         if (parent_tree) {
7037                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
7038                 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo24);
7039         }
7040         
7041         offset = samr_dissect_element_UserInfo24_password(tvb, offset, pinfo, tree, drep);
7042
7043         offset = samr_dissect_element_UserInfo24_password_expired(tvb, offset, pinfo, tree, drep);
7044
7045
7046         proto_item_set_len(item, offset-old_offset);
7047
7048
7049         return offset;
7050 }
7051
7052
7053 /* IDL: struct { */
7054 /* IDL:         uint8 data[532]; */
7055 /* IDL: } */
7056
7057 static int
7058 samr_dissect_element_CryptPasswordEx_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7059 {
7060         int i;
7061         for (i = 0; i < 532; i++)
7062                 offset = samr_dissect_element_CryptPasswordEx_data_(tvb, offset, pinfo, tree, drep);
7063
7064         return offset;
7065 }
7066
7067 static int
7068 samr_dissect_element_CryptPasswordEx_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7069 {
7070         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_CryptPasswordEx_data, 0);
7071
7072         return offset;
7073 }
7074
7075 int
7076 samr_dissect_struct_CryptPasswordEx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
7077 {
7078         proto_item *item = NULL;
7079         proto_tree *tree = NULL;
7080         int old_offset;
7081
7082
7083         old_offset = offset;
7084
7085         if (parent_tree) {
7086                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
7087                 tree = proto_item_add_subtree(item, ett_samr_samr_CryptPasswordEx);
7088         }
7089         
7090         offset = samr_dissect_element_CryptPasswordEx_data(tvb, offset, pinfo, tree, drep);
7091
7092
7093         proto_item_set_len(item, offset-old_offset);
7094
7095
7096         return offset;
7097 }
7098
7099
7100 /* IDL: struct { */
7101 /* IDL:         samr_UserInfo21 info; */
7102 /* IDL:         samr_CryptPasswordEx password; */
7103 /* IDL: } */
7104
7105 static int
7106 samr_dissect_element_UserInfo25_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7107 {
7108         offset = samr_dissect_struct_UserInfo21(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo25_info,0);
7109
7110         return offset;
7111 }
7112
7113 static int
7114 samr_dissect_element_UserInfo25_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7115 {
7116         offset = samr_dissect_struct_CryptPasswordEx(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo25_password,0);
7117
7118         return offset;
7119 }
7120
7121 int
7122 samr_dissect_struct_UserInfo25(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
7123 {
7124         proto_item *item = NULL;
7125         proto_tree *tree = NULL;
7126         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
7127         int old_offset;
7128
7129         ALIGN_TO_5_BYTES;
7130
7131         old_offset = offset;
7132
7133         if (parent_tree) {
7134                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
7135                 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo25);
7136         }
7137         
7138         offset = samr_dissect_element_UserInfo25_info(tvb, offset, pinfo, tree, drep);
7139
7140         offset = samr_dissect_element_UserInfo25_password(tvb, offset, pinfo, tree, drep);
7141
7142
7143         proto_item_set_len(item, offset-old_offset);
7144
7145
7146         if (di->call_data->flags & DCERPC_IS_NDR64) {
7147                 ALIGN_TO_5_BYTES;
7148         }
7149
7150         return offset;
7151 }
7152
7153
7154 /* IDL: struct { */
7155 /* IDL:         samr_CryptPasswordEx password; */
7156 /* IDL:         uint8 password_expired; */
7157 /* IDL: } */
7158
7159 static int
7160 samr_dissect_element_UserInfo26_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7161 {
7162         offset = samr_dissect_struct_CryptPasswordEx(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo26_password,0);
7163
7164         return offset;
7165 }
7166
7167 static int
7168 samr_dissect_element_UserInfo26_password_expired(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7169 {
7170         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo26_password_expired, 0);
7171
7172         return offset;
7173 }
7174
7175 int
7176 samr_dissect_struct_UserInfo26(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
7177 {
7178         proto_item *item = NULL;
7179         proto_tree *tree = NULL;
7180         int old_offset;
7181
7182
7183         old_offset = offset;
7184
7185         if (parent_tree) {
7186                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
7187                 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo26);
7188         }
7189         
7190         offset = samr_dissect_element_UserInfo26_password(tvb, offset, pinfo, tree, drep);
7191
7192         offset = samr_dissect_element_UserInfo26_password_expired(tvb, offset, pinfo, tree, drep);
7193
7194
7195         proto_item_set_len(item, offset-old_offset);
7196
7197
7198         return offset;
7199 }
7200
7201
7202 /* IDL: [switch_type(uint16)] union { */
7203 /* IDL: [case(1)] [case(1)] samr_UserInfo1 info1; */
7204 /* IDL: [case(2)] [case(2)] samr_UserInfo2 info2; */
7205 /* IDL: [case(3)] [case(3)] samr_UserInfo3 info3; */
7206 /* IDL: [case(4)] [case(4)] samr_UserInfo4 info4; */
7207 /* IDL: [case(5)] [case(5)] samr_UserInfo5 info5; */
7208 /* IDL: [case(6)] [case(6)] samr_UserInfo6 info6; */
7209 /* IDL: [case(7)] [case(7)] samr_UserInfo7 info7; */
7210 /* IDL: [case(8)] [case(8)] samr_UserInfo8 info8; */
7211 /* IDL: [case(9)] [case(9)] samr_UserInfo9 info9; */
7212 /* IDL: [case(10)] [case(10)] samr_UserInfo10 info10; */
7213 /* IDL: [case(11)] [case(11)] samr_UserInfo11 info11; */
7214 /* IDL: [case(12)] [case(12)] samr_UserInfo12 info12; */
7215 /* IDL: [case(13)] [case(13)] samr_UserInfo13 info13; */
7216 /* IDL: [case(14)] [case(14)] samr_UserInfo14 info14; */
7217 /* IDL: [case(16)] [case(16)] samr_UserInfo16 info16; */
7218 /* IDL: [case(17)] [case(17)] samr_UserInfo17 info17; */
7219 /* IDL: [case(18)] [case(18)] samr_UserInfo18 info18; */
7220 /* IDL: [case(20)] [case(20)] samr_UserInfo20 info20; */
7221 /* IDL: [case(21)] [case(21)] samr_UserInfo21 info21; */
7222 /* IDL: [case(23)] [case(23)] samr_UserInfo23 info23; */
7223 /* IDL: [case(24)] [case(24)] samr_UserInfo24 info24; */
7224 /* IDL: [case(25)] [case(25)] samr_UserInfo25 info25; */
7225 /* IDL: [case(26)] [case(26)] samr_UserInfo26 info26; */
7226 /* IDL: } */
7227
7228 static int
7229 samr_dissect_element_UserInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7230 {
7231         offset = samr_dissect_struct_UserInfo1(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info1,0);
7232
7233         return offset;
7234 }
7235
7236 static int
7237 samr_dissect_element_UserInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7238 {
7239         offset = samr_dissect_struct_UserInfo2(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info2,0);
7240
7241         return offset;
7242 }
7243
7244 static int
7245 samr_dissect_element_UserInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7246 {
7247         offset = samr_dissect_struct_UserInfo3(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info3,0);
7248
7249         return offset;
7250 }
7251
7252 static int
7253 samr_dissect_element_UserInfo_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7254 {
7255         offset = samr_dissect_struct_UserInfo4(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info4,0);
7256
7257         return offset;
7258 }
7259
7260 static int
7261 samr_dissect_element_UserInfo_info5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7262 {
7263         offset = samr_dissect_struct_UserInfo5(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info5,0);
7264
7265         return offset;
7266 }
7267
7268 static int
7269 samr_dissect_element_UserInfo_info6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7270 {
7271         offset = samr_dissect_struct_UserInfo6(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info6,0);
7272
7273         return offset;
7274 }
7275
7276 static int
7277 samr_dissect_element_UserInfo_info7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7278 {
7279         offset = samr_dissect_struct_UserInfo7(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info7,0);
7280
7281         return offset;
7282 }
7283
7284 static int
7285 samr_dissect_element_UserInfo_info8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7286 {
7287         offset = samr_dissect_struct_UserInfo8(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info8,0);
7288
7289         return offset;
7290 }
7291
7292 static int
7293 samr_dissect_element_UserInfo_info9(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7294 {
7295         offset = samr_dissect_struct_UserInfo9(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info9,0);
7296
7297         return offset;
7298 }
7299
7300 static int
7301 samr_dissect_element_UserInfo_info10(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7302 {
7303         offset = samr_dissect_struct_UserInfo10(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info10,0);
7304
7305         return offset;
7306 }
7307
7308 static int
7309 samr_dissect_element_UserInfo_info11(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7310 {
7311         offset = samr_dissect_struct_UserInfo11(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info11,0);
7312
7313         return offset;
7314 }
7315
7316 static int
7317 samr_dissect_element_UserInfo_info12(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7318 {
7319         offset = samr_dissect_struct_UserInfo12(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info12,0);
7320
7321         return offset;
7322 }
7323
7324 static int
7325 samr_dissect_element_UserInfo_info13(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7326 {
7327         offset = samr_dissect_struct_UserInfo13(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info13,0);
7328
7329         return offset;
7330 }
7331
7332 static int
7333 samr_dissect_element_UserInfo_info14(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7334 {
7335         offset = samr_dissect_struct_UserInfo14(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info14,0);
7336
7337         return offset;
7338 }
7339
7340 static int
7341 samr_dissect_element_UserInfo_info16(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7342 {
7343         offset = samr_dissect_struct_UserInfo16(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info16,0);
7344
7345         return offset;
7346 }
7347
7348 static int
7349 samr_dissect_element_UserInfo_info17(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7350 {
7351         offset = samr_dissect_struct_UserInfo17(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info17,0);
7352
7353         return offset;
7354 }
7355
7356 static int
7357 samr_dissect_element_UserInfo_info18(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7358 {
7359         offset = samr_dissect_struct_UserInfo18(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info18,0);
7360
7361         return offset;
7362 }
7363
7364 static int
7365 samr_dissect_element_UserInfo_info20(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7366 {
7367         offset = samr_dissect_struct_UserInfo20(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info20,0);
7368
7369         return offset;
7370 }
7371
7372 static int
7373 samr_dissect_element_UserInfo_info21(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7374 {
7375         offset = samr_dissect_struct_UserInfo21(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info21,0);
7376
7377         return offset;
7378 }
7379
7380 static int
7381 samr_dissect_element_UserInfo_info23(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7382 {
7383         offset = samr_dissect_struct_UserInfo23(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info23,0);
7384
7385         return offset;
7386 }
7387
7388 static int
7389 samr_dissect_element_UserInfo_info24(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7390 {
7391         offset = samr_dissect_struct_UserInfo24(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info24,0);
7392
7393         return offset;
7394 }
7395
7396 static int
7397 samr_dissect_element_UserInfo_info25(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7398 {
7399         offset = samr_dissect_struct_UserInfo25(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info25,0);
7400
7401         return offset;
7402 }
7403
7404 static int
7405 samr_dissect_element_UserInfo_info26(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7406 {
7407         offset = samr_dissect_struct_UserInfo26(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info26,0);
7408
7409         return offset;
7410 }
7411
7412 static int
7413 samr_dissect_UserInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
7414 {
7415         proto_item *item = NULL;
7416         proto_tree *tree = NULL;
7417         int old_offset;
7418         guint16 level;
7419
7420         old_offset = offset;
7421         if (parent_tree) {
7422                 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "samr_UserInfo");
7423                 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo);
7424         }
7425
7426         offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, &level);
7427         ALIGN_TO_5_BYTES;
7428
7429         switch(level) {
7430                 case 1:
7431                         offset = samr_dissect_element_UserInfo_info1(tvb, offset, pinfo, tree, drep);
7432                 break;
7433
7434                 case 2:
7435                         offset = samr_dissect_element_UserInfo_info2(tvb, offset, pinfo, tree, drep);
7436                 break;
7437
7438                 case 3:
7439                         offset = samr_dissect_element_UserInfo_info3(tvb, offset, pinfo, tree, drep);
7440                 break;
7441
7442                 case 4:
7443                         offset = samr_dissect_element_UserInfo_info4(tvb, offset, pinfo, tree, drep);
7444                 break;
7445
7446                 case 5:
7447                         offset = samr_dissect_element_UserInfo_info5(tvb, offset, pinfo, tree, drep);
7448                 break;
7449
7450                 case 6:
7451                         offset = samr_dissect_element_UserInfo_info6(tvb, offset, pinfo, tree, drep);
7452                 break;
7453
7454                 case 7:
7455                         offset = samr_dissect_element_UserInfo_info7(tvb, offset, pinfo, tree, drep);
7456                 break;
7457
7458                 case 8:
7459                         offset = samr_dissect_element_UserInfo_info8(tvb, offset, pinfo, tree, drep);
7460                 break;
7461
7462                 case 9:
7463                         offset = samr_dissect_element_UserInfo_info9(tvb, offset, pinfo, tree, drep);
7464                 break;
7465
7466                 case 10:
7467                         offset = samr_dissect_element_UserInfo_info10(tvb, offset, pinfo, tree, drep);
7468                 break;
7469
7470                 case 11:
7471                         offset = samr_dissect_element_UserInfo_info11(tvb, offset, pinfo, tree, drep);
7472                 break;
7473
7474                 case 12:
7475                         offset = samr_dissect_element_UserInfo_info12(tvb, offset, pinfo, tree, drep);
7476                 break;
7477
7478                 case 13:
7479                         offset = samr_dissect_element_UserInfo_info13(tvb, offset, pinfo, tree, drep);
7480                 break;
7481
7482                 case 14:
7483                         offset = samr_dissect_element_UserInfo_info14(tvb, offset, pinfo, tree, drep);
7484                 break;
7485
7486                 case 16:
7487                         offset = samr_dissect_element_UserInfo_info16(tvb, offset, pinfo, tree, drep);
7488                 break;
7489
7490                 case 17:
7491                         offset = samr_dissect_element_UserInfo_info17(tvb, offset, pinfo, tree, drep);
7492                 break;
7493
7494                 case 18:
7495                         offset = samr_dissect_element_UserInfo_info18(tvb, offset, pinfo, tree, drep);
7496                 break;
7497
7498                 case 20:
7499                         offset = samr_dissect_element_UserInfo_info20(tvb, offset, pinfo, tree, drep);
7500                 break;
7501
7502                 case 21:
7503                         offset = samr_dissect_element_UserInfo_info21(tvb, offset, pinfo, tree, drep);
7504                 break;
7505
7506                 case 23:
7507                         offset = samr_dissect_element_UserInfo_info23(tvb, offset, pinfo, tree, drep);
7508                 break;
7509
7510                 case 24:
7511                         offset = samr_dissect_element_UserInfo_info24(tvb, offset, pinfo, tree, drep);
7512                 break;
7513
7514                 case 25:
7515                         offset = samr_dissect_element_UserInfo_info25(tvb, offset, pinfo, tree, drep);
7516                 break;
7517
7518                 case 26:
7519                         offset = samr_dissect_element_UserInfo_info26(tvb, offset, pinfo, tree, drep);
7520                 break;
7521         }
7522         proto_item_set_len(item, offset-old_offset);
7523
7524
7525         return offset;
7526 }
7527
7528 /* IDL: struct { */
7529 /* IDL:         uint32 rid; */
7530 /* IDL:         samr_GroupAttrs attributes; */
7531 /* IDL: } */
7532
7533 static int
7534 samr_dissect_element_RidWithAttribute_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7535 {
7536         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_RidWithAttribute_rid, 0);
7537
7538         return offset;
7539 }
7540
7541 static int
7542 samr_dissect_element_RidWithAttribute_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7543 {
7544         offset = samr_dissect_bitmap_GroupAttrs(tvb, offset, pinfo, tree, drep, hf_samr_samr_RidWithAttribute_attributes, 0);
7545
7546         return offset;
7547 }
7548
7549 int
7550 samr_dissect_struct_RidWithAttribute(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
7551 {
7552         proto_item *item = NULL;
7553         proto_tree *tree = NULL;
7554         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
7555         int old_offset;
7556
7557         ALIGN_TO_4_BYTES;
7558
7559         old_offset = offset;
7560
7561         if (parent_tree) {
7562                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
7563                 tree = proto_item_add_subtree(item, ett_samr_samr_RidWithAttribute);
7564         }
7565         
7566         offset = samr_dissect_element_RidWithAttribute_rid(tvb, offset, pinfo, tree, drep);
7567
7568         offset = samr_dissect_element_RidWithAttribute_attributes(tvb, offset, pinfo, tree, drep);
7569
7570
7571         proto_item_set_len(item, offset-old_offset);
7572
7573
7574         if (di->call_data->flags & DCERPC_IS_NDR64) {
7575                 ALIGN_TO_4_BYTES;
7576         }
7577
7578         return offset;
7579 }
7580
7581
7582 /* IDL: struct { */
7583 /* IDL:         uint32 count; */
7584 /* IDL:         [unique(1)] [size_is(count)] samr_RidWithAttribute *rids; */
7585 /* IDL: } */
7586
7587 static int
7588 samr_dissect_element_RidWithAttributeArray_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7589 {
7590         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_RidWithAttributeArray_count, 0);
7591
7592         return offset;
7593 }
7594
7595 static int
7596 samr_dissect_element_RidWithAttributeArray_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7597 {
7598         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_RidWithAttributeArray_rids_, NDR_POINTER_UNIQUE, "Pointer to Rids (samr_RidWithAttribute)",hf_samr_samr_RidWithAttributeArray_rids);
7599
7600         return offset;
7601 }
7602
7603 static int
7604 samr_dissect_element_RidWithAttributeArray_rids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7605 {
7606         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, samr_dissect_element_RidWithAttributeArray_rids__);
7607
7608         return offset;
7609 }
7610
7611 static int
7612 samr_dissect_element_RidWithAttributeArray_rids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7613 {
7614         offset = samr_dissect_struct_RidWithAttribute(tvb,offset,pinfo,tree,drep,hf_samr_samr_RidWithAttributeArray_rids,0);
7615
7616         return offset;
7617 }
7618
7619 int
7620 samr_dissect_struct_RidWithAttributeArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
7621 {
7622         proto_item *item = NULL;
7623         proto_tree *tree = NULL;
7624         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
7625         int old_offset;
7626
7627         ALIGN_TO_5_BYTES;
7628
7629         old_offset = offset;
7630
7631         if (parent_tree) {
7632                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
7633                 tree = proto_item_add_subtree(item, ett_samr_samr_RidWithAttributeArray);
7634         }
7635         
7636         offset = samr_dissect_element_RidWithAttributeArray_count(tvb, offset, pinfo, tree, drep);
7637
7638         offset = samr_dissect_element_RidWithAttributeArray_rids(tvb, offset, pinfo, tree, drep);
7639
7640
7641         proto_item_set_len(item, offset-old_offset);
7642
7643
7644         if (di->call_data->flags & DCERPC_IS_NDR64) {
7645                 ALIGN_TO_5_BYTES;
7646         }
7647
7648         return offset;
7649 }
7650
7651
7652 /* IDL: struct { */
7653 /* IDL:         uint32 idx; */
7654 /* IDL:         uint32 rid; */
7655 /* IDL:         samr_AcctFlags acct_flags; */
7656 /* IDL:         lsa_String account_name; */
7657 /* IDL:         lsa_String description; */
7658 /* IDL:         lsa_String full_name; */
7659 /* IDL: } */
7660
7661 static int
7662 samr_dissect_element_DispEntryGeneral_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7663 {
7664         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_DispEntryGeneral_idx, 0);
7665
7666         return offset;
7667 }
7668
7669 static int
7670 samr_dissect_element_DispEntryGeneral_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7671 {
7672         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_DispEntryGeneral_rid, 0);
7673
7674         return offset;
7675 }
7676
7677 static int
7678 samr_dissect_element_DispEntryGeneral_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7679 {
7680         offset = samr_dissect_bitmap_AcctFlags(tvb, offset, pinfo, tree, drep, hf_samr_samr_DispEntryGeneral_acct_flags, 0);
7681
7682         return offset;
7683 }
7684
7685 static int
7686 samr_dissect_element_DispEntryGeneral_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7687 {
7688         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_DispEntryGeneral_account_name,0);
7689
7690         return offset;
7691 }
7692
7693 static int
7694 samr_dissect_element_DispEntryGeneral_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7695 {
7696         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_DispEntryGeneral_description,0);
7697
7698         return offset;
7699 }
7700
7701 static int
7702 samr_dissect_element_DispEntryGeneral_full_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7703 {
7704         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_DispEntryGeneral_full_name,0);
7705
7706         return offset;
7707 }
7708
7709 int
7710 samr_dissect_struct_DispEntryGeneral(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
7711 {
7712         proto_item *item = NULL;
7713         proto_tree *tree = NULL;
7714         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
7715         int old_offset;
7716
7717         ALIGN_TO_5_BYTES;
7718
7719         old_offset = offset;
7720
7721         if (parent_tree) {
7722                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
7723                 tree = proto_item_add_subtree(item, ett_samr_samr_DispEntryGeneral);
7724         }
7725         
7726         offset = samr_dissect_element_DispEntryGeneral_idx(tvb, offset, pinfo, tree, drep);
7727
7728         offset = samr_dissect_element_DispEntryGeneral_rid(tvb, offset, pinfo, tree, drep);
7729
7730         offset = samr_dissect_element_DispEntryGeneral_acct_flags(tvb, offset, pinfo, tree, drep);
7731
7732         offset = samr_dissect_element_DispEntryGeneral_account_name(tvb, offset, pinfo, tree, drep);
7733
7734         offset = samr_dissect_element_DispEntryGeneral_description(tvb, offset, pinfo, tree, drep);
7735
7736         offset = samr_dissect_element_DispEntryGeneral_full_name(tvb, offset, pinfo, tree, drep);
7737
7738
7739         proto_item_set_len(item, offset-old_offset);
7740
7741
7742         if (di->call_data->flags & DCERPC_IS_NDR64) {
7743                 ALIGN_TO_5_BYTES;
7744         }
7745
7746         return offset;
7747 }
7748
7749
7750 /* IDL: struct { */
7751 /* IDL:         uint32 count; */
7752 /* IDL:         [unique(1)] [size_is(count)] samr_DispEntryGeneral *entries; */
7753 /* IDL: } */
7754
7755 static int
7756 samr_dissect_element_DispInfoGeneral_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7757 {
7758         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_DispInfoGeneral_count, 0);
7759
7760         return offset;
7761 }
7762
7763 static int
7764 samr_dissect_element_DispInfoGeneral_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7765 {
7766         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_DispInfoGeneral_entries_, NDR_POINTER_UNIQUE, "Pointer to Entries (samr_DispEntryGeneral)",hf_samr_samr_DispInfoGeneral_entries);
7767
7768         return offset;
7769 }
7770
7771 static int
7772 samr_dissect_element_DispInfoGeneral_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7773 {
7774         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, samr_dissect_element_DispInfoGeneral_entries__);
7775
7776         return offset;
7777 }
7778
7779 static int
7780 samr_dissect_element_DispInfoGeneral_entries__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7781 {
7782         offset = samr_dissect_struct_DispEntryGeneral(tvb,offset,pinfo,tree,drep,hf_samr_samr_DispInfoGeneral_entries,0);
7783
7784         return offset;
7785 }
7786
7787 int
7788 samr_dissect_struct_DispInfoGeneral(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
7789 {
7790         proto_item *item = NULL;
7791         proto_tree *tree = NULL;
7792         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
7793         int old_offset;
7794
7795         ALIGN_TO_5_BYTES;
7796
7797         old_offset = offset;
7798
7799         if (parent_tree) {
7800                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
7801                 tree = proto_item_add_subtree(item, ett_samr_samr_DispInfoGeneral);
7802         }
7803         
7804         offset = samr_dissect_element_DispInfoGeneral_count(tvb, offset, pinfo, tree, drep);
7805
7806         offset = samr_dissect_element_DispInfoGeneral_entries(tvb, offset, pinfo, tree, drep);
7807
7808
7809         proto_item_set_len(item, offset-old_offset);
7810
7811
7812         if (di->call_data->flags & DCERPC_IS_NDR64) {
7813                 ALIGN_TO_5_BYTES;
7814         }
7815
7816         return offset;
7817 }
7818
7819
7820 /* IDL: struct { */
7821 /* IDL:         uint32 idx; */
7822 /* IDL:         uint32 rid; */
7823 /* IDL:         samr_AcctFlags acct_flags; */
7824 /* IDL:         lsa_String account_name; */
7825 /* IDL:         lsa_String description; */
7826 /* IDL: } */
7827
7828 static int
7829 samr_dissect_element_DispEntryFull_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7830 {
7831         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_DispEntryFull_idx, 0);
7832
7833         return offset;
7834 }
7835
7836 static int
7837 samr_dissect_element_DispEntryFull_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7838 {
7839         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_DispEntryFull_rid, 0);
7840
7841         return offset;
7842 }
7843
7844 static int
7845 samr_dissect_element_DispEntryFull_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7846 {
7847         offset = samr_dissect_bitmap_AcctFlags(tvb, offset, pinfo, tree, drep, hf_samr_samr_DispEntryFull_acct_flags, 0);
7848
7849         return offset;
7850 }
7851
7852 static int
7853 samr_dissect_element_DispEntryFull_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7854 {
7855         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_DispEntryFull_account_name,0);
7856
7857         return offset;
7858 }
7859
7860 static int
7861 samr_dissect_element_DispEntryFull_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7862 {
7863         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_DispEntryFull_description,0);
7864
7865         return offset;
7866 }
7867
7868 int
7869 samr_dissect_struct_DispEntryFull(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
7870 {
7871         proto_item *item = NULL;
7872         proto_tree *tree = NULL;
7873         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
7874         int old_offset;
7875
7876         ALIGN_TO_5_BYTES;
7877
7878         old_offset = offset;
7879
7880         if (parent_tree) {
7881                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
7882                 tree = proto_item_add_subtree(item, ett_samr_samr_DispEntryFull);
7883         }
7884         
7885         offset = samr_dissect_element_DispEntryFull_idx(tvb, offset, pinfo, tree, drep);
7886
7887         offset = samr_dissect_element_DispEntryFull_rid(tvb, offset, pinfo, tree, drep);
7888
7889         offset = samr_dissect_element_DispEntryFull_acct_flags(tvb, offset, pinfo, tree, drep);
7890
7891         offset = samr_dissect_element_DispEntryFull_account_name(tvb, offset, pinfo, tree, drep);
7892
7893         offset = samr_dissect_element_DispEntryFull_description(tvb, offset, pinfo, tree, drep);
7894
7895
7896         proto_item_set_len(item, offset-old_offset);
7897
7898
7899         if (di->call_data->flags & DCERPC_IS_NDR64) {
7900                 ALIGN_TO_5_BYTES;
7901         }
7902
7903         return offset;
7904 }
7905
7906
7907 /* IDL: struct { */
7908 /* IDL:         uint32 count; */
7909 /* IDL:         [unique(1)] [size_is(count)] samr_DispEntryFull *entries; */
7910 /* IDL: } */
7911
7912 static int
7913 samr_dissect_element_DispInfoFull_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7914 {
7915         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_DispInfoFull_count, 0);
7916
7917         return offset;
7918 }
7919
7920 static int
7921 samr_dissect_element_DispInfoFull_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7922 {
7923         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_DispInfoFull_entries_, NDR_POINTER_UNIQUE, "Pointer to Entries (samr_DispEntryFull)",hf_samr_samr_DispInfoFull_entries);
7924
7925         return offset;
7926 }
7927
7928 static int
7929 samr_dissect_element_DispInfoFull_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7930 {
7931         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, samr_dissect_element_DispInfoFull_entries__);
7932
7933         return offset;
7934 }
7935
7936 static int
7937 samr_dissect_element_DispInfoFull_entries__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7938 {
7939         offset = samr_dissect_struct_DispEntryFull(tvb,offset,pinfo,tree,drep,hf_samr_samr_DispInfoFull_entries,0);
7940
7941         return offset;
7942 }
7943
7944 int
7945 samr_dissect_struct_DispInfoFull(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
7946 {
7947         proto_item *item = NULL;
7948         proto_tree *tree = NULL;
7949         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
7950         int old_offset;
7951
7952         ALIGN_TO_5_BYTES;
7953
7954         old_offset = offset;
7955
7956         if (parent_tree) {
7957                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
7958                 tree = proto_item_add_subtree(item, ett_samr_samr_DispInfoFull);
7959         }
7960         
7961         offset = samr_dissect_element_DispInfoFull_count(tvb, offset, pinfo, tree, drep);
7962
7963         offset = samr_dissect_element_DispInfoFull_entries(tvb, offset, pinfo, tree, drep);
7964
7965
7966         proto_item_set_len(item, offset-old_offset);
7967
7968
7969         if (di->call_data->flags & DCERPC_IS_NDR64) {
7970                 ALIGN_TO_5_BYTES;
7971         }
7972
7973         return offset;
7974 }
7975
7976
7977 /* IDL: struct { */
7978 /* IDL:         uint32 idx; */
7979 /* IDL:         uint32 rid; */
7980 /* IDL:         samr_GroupAttrs acct_flags; */
7981 /* IDL:         lsa_String account_name; */
7982 /* IDL:         lsa_String description; */
7983 /* IDL: } */
7984
7985 static int
7986 samr_dissect_element_DispEntryFullGroup_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7987 {
7988         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_DispEntryFullGroup_idx, 0);
7989
7990         return offset;
7991 }
7992
7993 static int
7994 samr_dissect_element_DispEntryFullGroup_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7995 {
7996         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_DispEntryFullGroup_rid, 0);
7997
7998         return offset;
7999 }
8000
8001 static int
8002 samr_dissect_element_DispEntryFullGroup_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8003 {
8004         offset = samr_dissect_bitmap_GroupAttrs(tvb, offset, pinfo, tree, drep, hf_samr_samr_DispEntryFullGroup_acct_flags, 0);
8005
8006         return offset;
8007 }
8008
8009 static int
8010 samr_dissect_element_DispEntryFullGroup_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8011 {
8012         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_DispEntryFullGroup_account_name,0);
8013
8014         return offset;
8015 }
8016
8017 static int
8018 samr_dissect_element_DispEntryFullGroup_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8019 {
8020         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_DispEntryFullGroup_description,0);
8021
8022         return offset;
8023 }
8024
8025 int
8026 samr_dissect_struct_DispEntryFullGroup(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
8027 {
8028         proto_item *item = NULL;
8029         proto_tree *tree = NULL;
8030         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
8031         int old_offset;
8032
8033         ALIGN_TO_5_BYTES;
8034
8035         old_offset = offset;
8036
8037         if (parent_tree) {
8038                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
8039                 tree = proto_item_add_subtree(item, ett_samr_samr_DispEntryFullGroup);
8040         }
8041         
8042         offset = samr_dissect_element_DispEntryFullGroup_idx(tvb, offset, pinfo, tree, drep);
8043
8044         offset = samr_dissect_element_DispEntryFullGroup_rid(tvb, offset, pinfo, tree, drep);
8045
8046         offset = samr_dissect_element_DispEntryFullGroup_acct_flags(tvb, offset, pinfo, tree, drep);
8047
8048         offset = samr_dissect_element_DispEntryFullGroup_account_name(tvb, offset, pinfo, tree, drep);
8049
8050         offset = samr_dissect_element_DispEntryFullGroup_description(tvb, offset, pinfo, tree, drep);
8051
8052
8053         proto_item_set_len(item, offset-old_offset);
8054
8055
8056         if (di->call_data->flags & DCERPC_IS_NDR64) {
8057                 ALIGN_TO_5_BYTES;
8058         }
8059
8060         return offset;
8061 }
8062
8063
8064 /* IDL: struct { */
8065 /* IDL:         uint32 count; */
8066 /* IDL:         [unique(1)] [size_is(count)] samr_DispEntryFullGroup *entries; */
8067 /* IDL: } */
8068
8069 static int
8070 samr_dissect_element_DispInfoFullGroups_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8071 {
8072         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_DispInfoFullGroups_count, 0);
8073
8074         return offset;
8075 }
8076
8077 static int
8078 samr_dissect_element_DispInfoFullGroups_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8079 {
8080         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_DispInfoFullGroups_entries_, NDR_POINTER_UNIQUE, "Pointer to Entries (samr_DispEntryFullGroup)",hf_samr_samr_DispInfoFullGroups_entries);
8081
8082         return offset;
8083 }
8084
8085 static int
8086 samr_dissect_element_DispInfoFullGroups_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8087 {
8088         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, samr_dissect_element_DispInfoFullGroups_entries__);
8089
8090         return offset;
8091 }
8092
8093 static int
8094 samr_dissect_element_DispInfoFullGroups_entries__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8095 {
8096         offset = samr_dissect_struct_DispEntryFullGroup(tvb,offset,pinfo,tree,drep,hf_samr_samr_DispInfoFullGroups_entries,0);
8097
8098         return offset;
8099 }
8100
8101 int
8102 samr_dissect_struct_DispInfoFullGroups(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
8103 {
8104         proto_item *item = NULL;
8105         proto_tree *tree = NULL;
8106         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
8107         int old_offset;
8108
8109         ALIGN_TO_5_BYTES;
8110
8111         old_offset = offset;
8112
8113         if (parent_tree) {
8114                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
8115                 tree = proto_item_add_subtree(item, ett_samr_samr_DispInfoFullGroups);
8116         }
8117         
8118         offset = samr_dissect_element_DispInfoFullGroups_count(tvb, offset, pinfo, tree, drep);
8119
8120         offset = samr_dissect_element_DispInfoFullGroups_entries(tvb, offset, pinfo, tree, drep);
8121
8122
8123         proto_item_set_len(item, offset-old_offset);
8124
8125
8126         if (di->call_data->flags & DCERPC_IS_NDR64) {
8127                 ALIGN_TO_5_BYTES;
8128         }
8129
8130         return offset;
8131 }
8132
8133
8134 /* IDL: struct { */
8135 /* IDL:         uint32 idx; */
8136 /* IDL:         lsa_AsciiStringLarge account_name; */
8137 /* IDL: } */
8138
8139 static int
8140 samr_dissect_element_DispEntryAscii_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8141 {
8142         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_DispEntryAscii_idx, 0);
8143
8144         return offset;
8145 }
8146
8147 static int
8148 samr_dissect_element_DispEntryAscii_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8149 {
8150         offset = samr_dissect_struct_lsa_AsciiStringLarge(tvb,offset,pinfo,tree,drep,hf_samr_samr_DispEntryAscii_account_name,0);
8151
8152         return offset;
8153 }
8154
8155 int
8156 samr_dissect_struct_DispEntryAscii(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
8157 {
8158         proto_item *item = NULL;
8159         proto_tree *tree = NULL;
8160         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
8161         int old_offset;
8162
8163         ALIGN_TO_5_BYTES;
8164
8165         old_offset = offset;
8166
8167         if (parent_tree) {
8168                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
8169                 tree = proto_item_add_subtree(item, ett_samr_samr_DispEntryAscii);
8170         }
8171         
8172         offset = samr_dissect_element_DispEntryAscii_idx(tvb, offset, pinfo, tree, drep);
8173
8174         offset = samr_dissect_element_DispEntryAscii_account_name(tvb, offset, pinfo, tree, drep);
8175
8176
8177         proto_item_set_len(item, offset-old_offset);
8178
8179
8180         if (di->call_data->flags & DCERPC_IS_NDR64) {
8181                 ALIGN_TO_5_BYTES;
8182         }
8183
8184         return offset;
8185 }
8186
8187
8188 /* IDL: struct { */
8189 /* IDL:         uint32 count; */
8190 /* IDL:         [unique(1)] [size_is(count)] samr_DispEntryAscii *entries; */
8191 /* IDL: } */
8192
8193 static int
8194 samr_dissect_element_DispInfoAscii_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8195 {
8196         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_DispInfoAscii_count, 0);
8197
8198         return offset;
8199 }
8200
8201 static int
8202 samr_dissect_element_DispInfoAscii_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8203 {
8204         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_DispInfoAscii_entries_, NDR_POINTER_UNIQUE, "Pointer to Entries (samr_DispEntryAscii)",hf_samr_samr_DispInfoAscii_entries);
8205
8206         return offset;
8207 }
8208
8209 static int
8210 samr_dissect_element_DispInfoAscii_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8211 {
8212         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, samr_dissect_element_DispInfoAscii_entries__);
8213
8214         return offset;
8215 }
8216
8217 static int
8218 samr_dissect_element_DispInfoAscii_entries__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8219 {
8220         offset = samr_dissect_struct_DispEntryAscii(tvb,offset,pinfo,tree,drep,hf_samr_samr_DispInfoAscii_entries,0);
8221
8222         return offset;
8223 }
8224
8225 int
8226 samr_dissect_struct_DispInfoAscii(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
8227 {
8228         proto_item *item = NULL;
8229         proto_tree *tree = NULL;
8230         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
8231         int old_offset;
8232
8233         ALIGN_TO_5_BYTES;
8234
8235         old_offset = offset;
8236
8237         if (parent_tree) {
8238                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
8239                 tree = proto_item_add_subtree(item, ett_samr_samr_DispInfoAscii);
8240         }
8241         
8242         offset = samr_dissect_element_DispInfoAscii_count(tvb, offset, pinfo, tree, drep);
8243
8244         offset = samr_dissect_element_DispInfoAscii_entries(tvb, offset, pinfo, tree, drep);
8245
8246
8247         proto_item_set_len(item, offset-old_offset);
8248
8249
8250         if (di->call_data->flags & DCERPC_IS_NDR64) {
8251                 ALIGN_TO_5_BYTES;
8252         }
8253
8254         return offset;
8255 }
8256
8257
8258 /* IDL: [switch_type(uint16)] union { */
8259 /* IDL: [case(1)] [case(1)] samr_DispInfoGeneral info1; */
8260 /* IDL: [case(2)] [case(2)] samr_DispInfoFull info2; */
8261 /* IDL: [case(3)] [case(3)] samr_DispInfoFullGroups info3; */
8262 /* IDL: [case(4)] [case(4)] samr_DispInfoAscii info4; */
8263 /* IDL: [case(5)] [case(5)] samr_DispInfoAscii info5; */
8264 /* IDL: } */
8265
8266 static int
8267 samr_dissect_element_DispInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8268 {
8269         offset = samr_dissect_struct_DispInfoGeneral(tvb,offset,pinfo,tree,drep,hf_samr_samr_DispInfo_info1,0);
8270
8271         return offset;
8272 }
8273
8274 static int
8275 samr_dissect_element_DispInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8276 {
8277         offset = samr_dissect_struct_DispInfoFull(tvb,offset,pinfo,tree,drep,hf_samr_samr_DispInfo_info2,0);
8278
8279         return offset;
8280 }
8281
8282 static int
8283 samr_dissect_element_DispInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8284 {
8285         offset = samr_dissect_struct_DispInfoFullGroups(tvb,offset,pinfo,tree,drep,hf_samr_samr_DispInfo_info3,0);
8286
8287         return offset;
8288 }
8289
8290 static int
8291 samr_dissect_element_DispInfo_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8292 {
8293         offset = samr_dissect_struct_DispInfoAscii(tvb,offset,pinfo,tree,drep,hf_samr_samr_DispInfo_info4,0);
8294
8295         return offset;
8296 }
8297
8298 static int
8299 samr_dissect_element_DispInfo_info5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8300 {
8301         offset = samr_dissect_struct_DispInfoAscii(tvb,offset,pinfo,tree,drep,hf_samr_samr_DispInfo_info5,0);
8302
8303         return offset;
8304 }
8305
8306 static int
8307 samr_dissect_DispInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
8308 {
8309         proto_item *item = NULL;
8310         proto_tree *tree = NULL;
8311         int old_offset;
8312         guint16 level;
8313
8314         old_offset = offset;
8315         if (parent_tree) {
8316                 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "samr_DispInfo");
8317                 tree = proto_item_add_subtree(item, ett_samr_samr_DispInfo);
8318         }
8319
8320         offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, &level);
8321         ALIGN_TO_5_BYTES;
8322
8323         switch(level) {
8324                 case 1:
8325                         offset = samr_dissect_element_DispInfo_info1(tvb, offset, pinfo, tree, drep);
8326                 break;
8327
8328                 case 2:
8329                         offset = samr_dissect_element_DispInfo_info2(tvb, offset, pinfo, tree, drep);
8330                 break;
8331
8332                 case 3:
8333                         offset = samr_dissect_element_DispInfo_info3(tvb, offset, pinfo, tree, drep);
8334                 break;
8335
8336                 case 4:
8337                         offset = samr_dissect_element_DispInfo_info4(tvb, offset, pinfo, tree, drep);
8338                 break;
8339
8340                 case 5:
8341                         offset = samr_dissect_element_DispInfo_info5(tvb, offset, pinfo, tree, drep);
8342                 break;
8343         }
8344         proto_item_set_len(item, offset-old_offset);
8345
8346
8347         return offset;
8348 }
8349
8350 /* IDL: struct { */
8351 /* IDL:         uint16 min_password_length; */
8352 /* IDL:         samr_PasswordProperties password_properties; */
8353 /* IDL: } */
8354
8355 static int
8356 samr_dissect_element_PwInfo_min_password_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8357 {
8358         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_PwInfo_min_password_length, 0);
8359
8360         return offset;
8361 }
8362
8363 static int
8364 samr_dissect_element_PwInfo_password_properties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8365 {
8366         offset = samr_dissect_bitmap_PasswordProperties(tvb, offset, pinfo, tree, drep, hf_samr_samr_PwInfo_password_properties, 0);
8367
8368         return offset;
8369 }
8370
8371 int
8372 samr_dissect_struct_PwInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
8373 {
8374         proto_item *item = NULL;
8375         proto_tree *tree = NULL;
8376         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
8377         int old_offset;
8378
8379         ALIGN_TO_4_BYTES;
8380
8381         old_offset = offset;
8382
8383         if (parent_tree) {
8384                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
8385                 tree = proto_item_add_subtree(item, ett_samr_samr_PwInfo);
8386         }
8387         
8388         offset = samr_dissect_element_PwInfo_min_password_length(tvb, offset, pinfo, tree, drep);
8389
8390         offset = samr_dissect_element_PwInfo_password_properties(tvb, offset, pinfo, tree, drep);
8391
8392
8393         proto_item_set_len(item, offset-old_offset);
8394
8395
8396         if (di->call_data->flags & DCERPC_IS_NDR64) {
8397                 ALIGN_TO_4_BYTES;
8398         }
8399
8400         return offset;
8401 }
8402
8403
8404 /* IDL: enum { */
8405 /* IDL:         SAMR_CONNECT_PRE_W2K=1, */
8406 /* IDL:         SAMR_CONNECT_W2K=2, */
8407 /* IDL:         SAMR_CONNECT_AFTER_W2K=3, */
8408 /* IDL: } */
8409
8410 int
8411 samr_dissect_enum_ConnectVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
8412 {
8413         guint32 parameter=0;
8414         if(param){
8415                 parameter=(guint32)*param;
8416         }
8417         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
8418         if(param){
8419                 *param=(guint32)parameter;
8420         }
8421         return offset;
8422 }
8423
8424
8425 /* IDL: enum { */
8426 /* IDL:         SAM_PWD_CHANGE_NO_ERROR=0, */
8427 /* IDL:         SAM_PWD_CHANGE_PASSWORD_TOO_SHORT=1, */
8428 /* IDL:         SAM_PWD_CHANGE_PWD_IN_HISTORY=2, */
8429 /* IDL:         SAM_PWD_CHANGE_USERNAME_IN_PASSWORD=3, */
8430 /* IDL:         SAM_PWD_CHANGE_FULLNAME_IN_PASSWORD=4, */
8431 /* IDL:         SAM_PWD_CHANGE_NOT_COMPLEX=5, */
8432 /* IDL:         SAM_PWD_CHANGE_MACHINE_NOT_DEFAULT=6, */
8433 /* IDL:         SAM_PWD_CHANGE_FAILED_BY_FILTER=7, */
8434 /* IDL:         SAM_PWD_CHANGE_PASSWORD_TOO_LONG=8, */
8435 /* IDL: } */
8436
8437 int
8438 samr_dissect_enum_samPwdChangeReason(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
8439 {
8440         guint32 parameter=0;
8441         if(param){
8442                 parameter=(guint32)*param;
8443         }
8444         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
8445         if(param){
8446                 *param=(guint32)parameter;
8447         }
8448         return offset;
8449 }
8450
8451
8452 /* IDL: struct { */
8453 /* IDL:         samPwdChangeReason extendedFailureReason; */
8454 /* IDL:         lsa_String filterModuleName; */
8455 /* IDL: } */
8456
8457 static int
8458 samr_dissect_element_userPwdChangeFailureInformation_extendedFailureReason(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8459 {
8460         offset = samr_dissect_enum_samPwdChangeReason(tvb, offset, pinfo, tree, drep, hf_samr_userPwdChangeFailureInformation_extendedFailureReason, 0);
8461
8462         return offset;
8463 }
8464
8465 static int
8466 samr_dissect_element_userPwdChangeFailureInformation_filterModuleName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8467 {
8468         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_userPwdChangeFailureInformation_filterModuleName,0);
8469
8470         return offset;
8471 }
8472
8473 int
8474 samr_dissect_struct_userPwdChangeFailureInformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
8475 {
8476         proto_item *item = NULL;
8477         proto_tree *tree = NULL;
8478         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
8479         int old_offset;
8480
8481         ALIGN_TO_5_BYTES;
8482
8483         old_offset = offset;
8484
8485         if (parent_tree) {
8486                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
8487                 tree = proto_item_add_subtree(item, ett_samr_userPwdChangeFailureInformation);
8488         }
8489         
8490         offset = samr_dissect_element_userPwdChangeFailureInformation_extendedFailureReason(tvb, offset, pinfo, tree, drep);
8491
8492         offset = samr_dissect_element_userPwdChangeFailureInformation_filterModuleName(tvb, offset, pinfo, tree, drep);
8493
8494
8495         proto_item_set_len(item, offset-old_offset);
8496
8497
8498         if (di->call_data->flags & DCERPC_IS_NDR64) {
8499                 ALIGN_TO_5_BYTES;
8500         }
8501
8502         return offset;
8503 }
8504
8505
8506 /* IDL: struct { */
8507 /* IDL:         samr_ConnectVersion client_version; */
8508 /* IDL:         uint32 unknown2; */
8509 /* IDL: } */
8510
8511 static int
8512 samr_dissect_element_ConnectInfo1_client_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8513 {
8514         offset = samr_dissect_enum_ConnectVersion(tvb, offset, pinfo, tree, drep, hf_samr_samr_ConnectInfo1_client_version, 0);
8515
8516         return offset;
8517 }
8518
8519 static int
8520 samr_dissect_element_ConnectInfo1_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8521 {
8522         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_ConnectInfo1_unknown2, 0);
8523
8524         return offset;
8525 }
8526
8527 int
8528 samr_dissect_struct_ConnectInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
8529 {
8530         proto_item *item = NULL;
8531         proto_tree *tree = NULL;
8532         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
8533         int old_offset;
8534
8535         ALIGN_TO_4_BYTES;
8536
8537         old_offset = offset;
8538
8539         if (parent_tree) {
8540                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
8541                 tree = proto_item_add_subtree(item, ett_samr_samr_ConnectInfo1);
8542         }
8543         
8544         offset = samr_dissect_element_ConnectInfo1_client_version(tvb, offset, pinfo, tree, drep);
8545
8546         offset = samr_dissect_element_ConnectInfo1_unknown2(tvb, offset, pinfo, tree, drep);
8547
8548
8549         proto_item_set_len(item, offset-old_offset);
8550
8551
8552         if (di->call_data->flags & DCERPC_IS_NDR64) {
8553                 ALIGN_TO_4_BYTES;
8554         }
8555
8556         return offset;
8557 }
8558
8559
8560 /* IDL: union { */
8561 /* IDL: [case(1)] [case(1)] samr_ConnectInfo1 info1; */
8562 /* IDL: } */
8563
8564 static int
8565 samr_dissect_element_ConnectInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8566 {
8567         offset = samr_dissect_struct_ConnectInfo1(tvb,offset,pinfo,tree,drep,hf_samr_samr_ConnectInfo_info1,0);
8568
8569         return offset;
8570 }
8571
8572 static int
8573 samr_dissect_ConnectInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
8574 {
8575         proto_item *item = NULL;
8576         proto_tree *tree = NULL;
8577         int old_offset;
8578         guint32 level;
8579
8580         old_offset = offset;
8581         if (parent_tree) {
8582                 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "samr_ConnectInfo");
8583                 tree = proto_item_add_subtree(item, ett_samr_samr_ConnectInfo);
8584         }
8585
8586         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
8587         ALIGN_TO_4_BYTES;
8588
8589         switch(level) {
8590                 case 1:
8591                         offset = samr_dissect_element_ConnectInfo_info1(tvb, offset, pinfo, tree, drep);
8592                 break;
8593         }
8594         proto_item_set_len(item, offset-old_offset);
8595
8596
8597         return offset;
8598 }
8599
8600 /* IDL: bitmap { */
8601 /* IDL:         SAMR_VALIDATE_FIELD_PASSWORD_LAST_SET =  0x00000001 , */
8602 /* IDL:         SAMR_VALIDATE_FIELD_BAD_PASSWORD_TIME =  0x00000002 , */
8603 /* IDL:         SAMR_VALIDATE_FIELD_LOCKOUT_TIME =  0x00000004 , */
8604 /* IDL:         SAMR_VALIDATE_FIELD_BAD_PASSWORD_COUNT =  0x00000008 , */
8605 /* IDL:         SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_LENGTH =  0x00000010 , */
8606 /* IDL:         SAMR_VALIDATE_FIELD_PASSWORD_HISTORY =  0x00000020 , */
8607 /* IDL: } */
8608
8609 int
8610 samr_dissect_bitmap_ValidateFieldsPresent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
8611 {
8612         proto_item *item = NULL;
8613         proto_tree *tree = NULL;
8614
8615         guint32 flags;
8616         ALIGN_TO_4_BYTES;
8617
8618         if (parent_tree) {
8619                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
8620                 tree = proto_item_add_subtree(item,ett_samr_samr_ValidateFieldsPresent);
8621         }
8622
8623         offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
8624         proto_item_append_text(item, ": ");
8625
8626         if (!flags)
8627                 proto_item_append_text(item, "(No values set)");
8628
8629         proto_tree_add_boolean(tree, hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_LAST_SET, tvb, offset-4, 4, flags);
8630         if (flags&( 0x00000001 )){
8631                 proto_item_append_text(item, "SAMR_VALIDATE_FIELD_PASSWORD_LAST_SET");
8632                 if (flags & (~( 0x00000001 )))
8633                         proto_item_append_text(item, ", ");
8634         }
8635         flags&=(~( 0x00000001 ));
8636
8637         proto_tree_add_boolean(tree, hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_BAD_PASSWORD_TIME, tvb, offset-4, 4, flags);
8638         if (flags&( 0x00000002 )){
8639                 proto_item_append_text(item, "SAMR_VALIDATE_FIELD_BAD_PASSWORD_TIME");
8640                 if (flags & (~( 0x00000002 )))
8641                         proto_item_append_text(item, ", ");
8642         }
8643         flags&=(~( 0x00000002 ));
8644
8645         proto_tree_add_boolean(tree, hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_LOCKOUT_TIME, tvb, offset-4, 4, flags);
8646         if (flags&( 0x00000004 )){
8647                 proto_item_append_text(item, "SAMR_VALIDATE_FIELD_LOCKOUT_TIME");
8648                 if (flags & (~( 0x00000004 )))
8649                         proto_item_append_text(item, ", ");
8650         }
8651         flags&=(~( 0x00000004 ));
8652
8653         proto_tree_add_boolean(tree, hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_BAD_PASSWORD_COUNT, tvb, offset-4, 4, flags);
8654         if (flags&( 0x00000008 )){
8655                 proto_item_append_text(item, "SAMR_VALIDATE_FIELD_BAD_PASSWORD_COUNT");
8656                 if (flags & (~( 0x00000008 )))
8657                         proto_item_append_text(item, ", ");
8658         }
8659         flags&=(~( 0x00000008 ));
8660
8661         proto_tree_add_boolean(tree, hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_LENGTH, tvb, offset-4, 4, flags);
8662         if (flags&( 0x00000010 )){
8663                 proto_item_append_text(item, "SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_LENGTH");
8664                 if (flags & (~( 0x00000010 )))
8665                         proto_item_append_text(item, ", ");
8666         }
8667         flags&=(~( 0x00000010 ));
8668
8669         proto_tree_add_boolean(tree, hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_HISTORY, tvb, offset-4, 4, flags);
8670         if (flags&( 0x00000020 )){
8671                 proto_item_append_text(item, "SAMR_VALIDATE_FIELD_PASSWORD_HISTORY");
8672                 if (flags & (~( 0x00000020 )))
8673                         proto_item_append_text(item, ", ");
8674         }
8675         flags&=(~( 0x00000020 ));
8676
8677         if (flags) {
8678                 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
8679         }
8680
8681         return offset;
8682 }
8683
8684
8685 /* IDL: enum { */
8686 /* IDL:         NetValidateAuthentication=1, */
8687 /* IDL:         NetValidatePasswordChange=2, */
8688 /* IDL:         NetValidatePasswordReset=3, */
8689 /* IDL: } */
8690
8691 int
8692 samr_dissect_enum_ValidatePasswordLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
8693 {
8694         guint1632 parameter=0;
8695         if(param){
8696                 parameter=(guint1632)*param;
8697         }
8698         offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
8699         if(param){
8700                 *param=(guint32)parameter;
8701         }
8702         return offset;
8703 }
8704
8705
8706 /* IDL: enum { */
8707 /* IDL:         SAMR_VALIDATION_STATUS_SUCCESS=0, */
8708 /* IDL:         SAMR_VALIDATION_STATUS_PASSWORD_MUST_CHANGE=1, */
8709 /* IDL:         SAMR_VALIDATION_STATUS_ACCOUNT_LOCKED_OUT=2, */
8710 /* IDL:         SAMR_VALIDATION_STATUS_PASSWORD_EXPIRED=3, */
8711 /* IDL:         SAMR_VALIDATION_STATUS_BAD_PASSWORD=4, */
8712 /* IDL:         SAMR_VALIDATION_STATUS_PWD_HISTORY_CONFLICT=5, */
8713 /* IDL:         SAMR_VALIDATION_STATUS_PWD_TOO_SHORT=6, */
8714 /* IDL:         SAMR_VALIDATION_STATUS_PWD_TOO_LONG=7, */
8715 /* IDL:         SAMR_VALIDATION_STATUS_NOT_COMPLEX_ENOUGH=8, */
8716 /* IDL:         SAMR_VALIDATION_STATUS_PASSWORD_TOO_RECENT=9, */
8717 /* IDL:         SAMR_VALIDATION_STATUS_PASSWORD_FILTER_ERROR=10, */
8718 /* IDL: } */
8719
8720 int
8721 samr_dissect_enum_ValidationStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
8722 {
8723         guint1632 parameter=0;
8724         if(param){
8725                 parameter=(guint1632)*param;
8726         }
8727         offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
8728         if(param){
8729                 *param=(guint32)parameter;
8730         }
8731         return offset;
8732 }
8733
8734
8735 /* IDL: struct { */
8736 /* IDL:         uint32 length; */
8737 /* IDL:         [unique(1)] [size_is(length)] uint8 *data; */
8738 /* IDL: } */
8739
8740 static int
8741 samr_dissect_element_ValidationBlob_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8742 {
8743         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_ValidationBlob_length, 0);
8744
8745         return offset;
8746 }
8747
8748 static int
8749 samr_dissect_element_ValidationBlob_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8750 {
8751         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ValidationBlob_data_, NDR_POINTER_UNIQUE, "Pointer to Data (uint8)",hf_samr_samr_ValidationBlob_data);
8752
8753         return offset;
8754 }
8755
8756 static int
8757 samr_dissect_element_ValidationBlob_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8758 {
8759         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, samr_dissect_element_ValidationBlob_data__);
8760
8761         return offset;
8762 }
8763
8764 static int
8765 samr_dissect_element_ValidationBlob_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8766 {
8767         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_ValidationBlob_data, 0);
8768
8769         return offset;
8770 }
8771
8772 int
8773 samr_dissect_struct_ValidationBlob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
8774 {
8775         proto_item *item = NULL;
8776         proto_tree *tree = NULL;
8777         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
8778         int old_offset;
8779
8780         ALIGN_TO_5_BYTES;
8781
8782         old_offset = offset;
8783
8784         if (parent_tree) {
8785                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
8786                 tree = proto_item_add_subtree(item, ett_samr_samr_ValidationBlob);
8787         }
8788         
8789         offset = samr_dissect_element_ValidationBlob_length(tvb, offset, pinfo, tree, drep);
8790
8791         offset = samr_dissect_element_ValidationBlob_data(tvb, offset, pinfo, tree, drep);
8792
8793
8794         proto_item_set_len(item, offset-old_offset);
8795
8796
8797         if (di->call_data->flags & DCERPC_IS_NDR64) {
8798                 ALIGN_TO_5_BYTES;
8799         }
8800
8801         return offset;
8802 }
8803
8804
8805 /* IDL: struct { */
8806 /* IDL:         samr_ValidateFieldsPresent fields_present; */
8807 /* IDL:         NTTIME_hyper last_password_change; */
8808 /* IDL:         NTTIME_hyper bad_password_time; */
8809 /* IDL:         NTTIME_hyper lockout_time; */
8810 /* IDL:         uint32 bad_pwd_count; */
8811 /* IDL:         uint32 pwd_history_len; */
8812 /* IDL:         [unique(1)] [size_is(pwd_history_len)] samr_ValidationBlob *pwd_history; */
8813 /* IDL: } */
8814
8815 static int
8816 samr_dissect_element_ValidatePasswordInfo_fields_present(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8817 {
8818         offset = samr_dissect_bitmap_ValidateFieldsPresent(tvb, offset, pinfo, tree, drep, hf_samr_samr_ValidatePasswordInfo_fields_present, 0);
8819
8820         return offset;
8821 }
8822
8823 static int
8824 samr_dissect_element_ValidatePasswordInfo_last_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8825 {
8826         offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_ValidatePasswordInfo_last_password_change);
8827
8828         return offset;
8829 }
8830
8831 static int
8832 samr_dissect_element_ValidatePasswordInfo_bad_password_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8833 {
8834         offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_ValidatePasswordInfo_bad_password_time);
8835
8836         return offset;
8837 }
8838
8839 static int
8840 samr_dissect_element_ValidatePasswordInfo_lockout_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8841 {
8842         offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_ValidatePasswordInfo_lockout_time);
8843
8844         return offset;
8845 }
8846
8847 static int
8848 samr_dissect_element_ValidatePasswordInfo_bad_pwd_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8849 {
8850         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_ValidatePasswordInfo_bad_pwd_count, 0);
8851
8852         return offset;
8853 }
8854
8855 static int
8856 samr_dissect_element_ValidatePasswordInfo_pwd_history_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8857 {
8858         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_ValidatePasswordInfo_pwd_history_len, 0);
8859
8860         return offset;
8861 }
8862
8863 static int
8864 samr_dissect_element_ValidatePasswordInfo_pwd_history(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8865 {
8866         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ValidatePasswordInfo_pwd_history_, NDR_POINTER_UNIQUE, "Pointer to Pwd History (samr_ValidationBlob)",hf_samr_samr_ValidatePasswordInfo_pwd_history);
8867
8868         return offset;
8869 }
8870
8871 static int
8872 samr_dissect_element_ValidatePasswordInfo_pwd_history_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8873 {
8874         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, samr_dissect_element_ValidatePasswordInfo_pwd_history__);
8875
8876         return offset;
8877 }
8878
8879 static int
8880 samr_dissect_element_ValidatePasswordInfo_pwd_history__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8881 {
8882         offset = samr_dissect_struct_ValidationBlob(tvb,offset,pinfo,tree,drep,hf_samr_samr_ValidatePasswordInfo_pwd_history,0);
8883
8884         return offset;
8885 }
8886
8887 int
8888 samr_dissect_struct_ValidatePasswordInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
8889 {
8890         proto_item *item = NULL;
8891         proto_tree *tree = NULL;
8892         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
8893         int old_offset;
8894
8895         ALIGN_TO_8_BYTES;
8896
8897         old_offset = offset;
8898
8899         if (parent_tree) {
8900                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
8901                 tree = proto_item_add_subtree(item, ett_samr_samr_ValidatePasswordInfo);
8902         }
8903         
8904         offset = samr_dissect_element_ValidatePasswordInfo_fields_present(tvb, offset, pinfo, tree, drep);
8905
8906         offset = samr_dissect_element_ValidatePasswordInfo_last_password_change(tvb, offset, pinfo, tree, drep);
8907
8908         offset = samr_dissect_element_ValidatePasswordInfo_bad_password_time(tvb, offset, pinfo, tree, drep);
8909
8910         offset = samr_dissect_element_ValidatePasswordInfo_lockout_time(tvb, offset, pinfo, tree, drep);
8911
8912         offset = samr_dissect_element_ValidatePasswordInfo_bad_pwd_count(tvb, offset, pinfo, tree, drep);
8913
8914         offset = samr_dissect_element_ValidatePasswordInfo_pwd_history_len(tvb, offset, pinfo, tree, drep);
8915
8916         offset = samr_dissect_element_ValidatePasswordInfo_pwd_history(tvb, offset, pinfo, tree, drep);
8917
8918
8919         proto_item_set_len(item, offset-old_offset);
8920
8921
8922         if (di->call_data->flags & DCERPC_IS_NDR64) {
8923                 ALIGN_TO_8_BYTES;
8924         }
8925
8926         return offset;
8927 }
8928
8929
8930 /* IDL: struct { */
8931 /* IDL:         samr_ValidatePasswordInfo info; */
8932 /* IDL:         samr_ValidationStatus status; */
8933 /* IDL: } */
8934
8935 static int
8936 samr_dissect_element_ValidatePasswordRepCtr_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8937 {
8938         offset = samr_dissect_struct_ValidatePasswordInfo(tvb,offset,pinfo,tree,drep,hf_samr_samr_ValidatePasswordRepCtr_info,0);
8939
8940         return offset;
8941 }
8942
8943 static int
8944 samr_dissect_element_ValidatePasswordRepCtr_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8945 {
8946         offset = samr_dissect_enum_ValidationStatus(tvb, offset, pinfo, tree, drep, hf_samr_samr_ValidatePasswordRepCtr_status, 0);
8947
8948         return offset;
8949 }
8950
8951 int
8952 samr_dissect_struct_ValidatePasswordRepCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
8953 {
8954         proto_item *item = NULL;
8955         proto_tree *tree = NULL;
8956         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
8957         int old_offset;
8958
8959         ALIGN_TO_8_BYTES;
8960
8961         old_offset = offset;
8962
8963         if (parent_tree) {
8964                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
8965                 tree = proto_item_add_subtree(item, ett_samr_samr_ValidatePasswordRepCtr);
8966         }
8967         
8968         offset = samr_dissect_element_ValidatePasswordRepCtr_info(tvb, offset, pinfo, tree, drep);
8969
8970         offset = samr_dissect_element_ValidatePasswordRepCtr_status(tvb, offset, pinfo, tree, drep);
8971
8972
8973         proto_item_set_len(item, offset-old_offset);
8974
8975
8976         if (di->call_data->flags & DCERPC_IS_NDR64) {
8977                 ALIGN_TO_8_BYTES;
8978         }
8979
8980         return offset;
8981 }
8982
8983
8984 /* IDL: [switch_type(uint16)] union { */
8985 /* IDL: [case(1)] [case(1)] samr_ValidatePasswordRepCtr ctr1; */
8986 /* IDL: [case(2)] [case(2)] samr_ValidatePasswordRepCtr ctr2; */
8987 /* IDL: [case(3)] [case(3)] samr_ValidatePasswordRepCtr ctr3; */
8988 /* IDL: } */
8989
8990 static int
8991 samr_dissect_element_ValidatePasswordRep_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8992 {
8993         offset = samr_dissect_struct_ValidatePasswordRepCtr(tvb,offset,pinfo,tree,drep,hf_samr_samr_ValidatePasswordRep_ctr1,0);
8994
8995         return offset;
8996 }
8997
8998 static int
8999 samr_dissect_element_ValidatePasswordRep_ctr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9000 {
9001         offset = samr_dissect_struct_ValidatePasswordRepCtr(tvb,offset,pinfo,tree,drep,hf_samr_samr_ValidatePasswordRep_ctr2,0);
9002
9003         return offset;
9004 }
9005
9006 static int
9007 samr_dissect_element_ValidatePasswordRep_ctr3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9008 {
9009         offset = samr_dissect_struct_ValidatePasswordRepCtr(tvb,offset,pinfo,tree,drep,hf_samr_samr_ValidatePasswordRep_ctr3,0);
9010
9011         return offset;
9012 }
9013
9014 static int
9015 samr_dissect_ValidatePasswordRep(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
9016 {
9017         proto_item *item = NULL;
9018         proto_tree *tree = NULL;
9019         int old_offset;
9020         guint16 level;
9021
9022         old_offset = offset;
9023         if (parent_tree) {
9024                 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "samr_ValidatePasswordRep");
9025                 tree = proto_item_add_subtree(item, ett_samr_samr_ValidatePasswordRep);
9026         }
9027
9028         offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, &level);
9029         ALIGN_TO_8_BYTES;
9030
9031         switch(level) {
9032                 case 1:
9033                         offset = samr_dissect_element_ValidatePasswordRep_ctr1(tvb, offset, pinfo, tree, drep);
9034                 break;
9035
9036                 case 2:
9037                         offset = samr_dissect_element_ValidatePasswordRep_ctr2(tvb, offset, pinfo, tree, drep);
9038                 break;
9039
9040                 case 3:
9041                         offset = samr_dissect_element_ValidatePasswordRep_ctr3(tvb, offset, pinfo, tree, drep);
9042                 break;
9043         }
9044         proto_item_set_len(item, offset-old_offset);
9045
9046
9047         return offset;
9048 }
9049
9050 /* IDL: struct { */
9051 /* IDL:         samr_ValidatePasswordInfo info; */
9052 /* IDL:         lsa_StringLarge password; */
9053 /* IDL:         lsa_StringLarge account; */
9054 /* IDL:         samr_ValidationBlob hash; */
9055 /* IDL:         uint8 pwd_must_change_at_next_logon; */
9056 /* IDL:         uint8 clear_lockout; */
9057 /* IDL: } */
9058
9059 static int
9060 samr_dissect_element_ValidatePasswordReq3_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9061 {
9062         offset = samr_dissect_struct_ValidatePasswordInfo(tvb,offset,pinfo,tree,drep,hf_samr_samr_ValidatePasswordReq3_info,0);
9063
9064         return offset;
9065 }
9066
9067 static int
9068 samr_dissect_element_ValidatePasswordReq3_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9069 {
9070         offset = samr_dissect_struct_lsa_StringLarge(tvb,offset,pinfo,tree,drep,hf_samr_samr_ValidatePasswordReq3_password,0);
9071
9072         return offset;
9073 }
9074
9075 static int
9076 samr_dissect_element_ValidatePasswordReq3_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9077 {
9078         offset = samr_dissect_struct_lsa_StringLarge(tvb,offset,pinfo,tree,drep,hf_samr_samr_ValidatePasswordReq3_account,0);
9079
9080         return offset;
9081 }
9082
9083 static int
9084 samr_dissect_element_ValidatePasswordReq3_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9085 {
9086         offset = samr_dissect_struct_ValidationBlob(tvb,offset,pinfo,tree,drep,hf_samr_samr_ValidatePasswordReq3_hash,0);
9087
9088         return offset;
9089 }
9090
9091 static int
9092 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_, guint8 *drep _U_)
9093 {
9094         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_ValidatePasswordReq3_pwd_must_change_at_next_logon, 0);
9095
9096         return offset;
9097 }
9098
9099 static int
9100 samr_dissect_element_ValidatePasswordReq3_clear_lockout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9101 {
9102         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_ValidatePasswordReq3_clear_lockout, 0);
9103
9104         return offset;
9105 }
9106
9107 int
9108 samr_dissect_struct_ValidatePasswordReq3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
9109 {
9110         proto_item *item = NULL;
9111         proto_tree *tree = NULL;
9112         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
9113         int old_offset;
9114
9115         ALIGN_TO_8_BYTES;
9116
9117         old_offset = offset;
9118
9119         if (parent_tree) {
9120                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
9121                 tree = proto_item_add_subtree(item, ett_samr_samr_ValidatePasswordReq3);
9122         }
9123         
9124         offset = samr_dissect_element_ValidatePasswordReq3_info(tvb, offset, pinfo, tree, drep);
9125
9126         offset = samr_dissect_element_ValidatePasswordReq3_password(tvb, offset, pinfo, tree, drep);
9127
9128         offset = samr_dissect_element_ValidatePasswordReq3_account(tvb, offset, pinfo, tree, drep);
9129
9130         offset = samr_dissect_element_ValidatePasswordReq3_hash(tvb, offset, pinfo, tree, drep);
9131
9132         offset = samr_dissect_element_ValidatePasswordReq3_pwd_must_change_at_next_logon(tvb, offset, pinfo, tree, drep);
9133
9134         offset = samr_dissect_element_ValidatePasswordReq3_clear_lockout(tvb, offset, pinfo, tree, drep);
9135
9136
9137         proto_item_set_len(item, offset-old_offset);
9138
9139
9140         if (di->call_data->flags & DCERPC_IS_NDR64) {
9141                 ALIGN_TO_8_BYTES;
9142         }
9143
9144         return offset;
9145 }
9146
9147
9148 /* IDL: struct { */
9149 /* IDL:         samr_ValidatePasswordInfo info; */
9150 /* IDL:         lsa_StringLarge password; */
9151 /* IDL:         lsa_StringLarge account; */
9152 /* IDL:         samr_ValidationBlob hash; */
9153 /* IDL:         uint8 password_matched; */
9154 /* IDL: } */
9155
9156 static int
9157 samr_dissect_element_ValidatePasswordReq2_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9158 {
9159         offset = samr_dissect_struct_ValidatePasswordInfo(tvb,offset,pinfo,tree,drep,hf_samr_samr_ValidatePasswordReq2_info,0);
9160
9161         return offset;
9162 }
9163
9164 static int
9165 samr_dissect_element_ValidatePasswordReq2_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9166 {
9167         offset = samr_dissect_struct_lsa_StringLarge(tvb,offset,pinfo,tree,drep,hf_samr_samr_ValidatePasswordReq2_password,0);
9168
9169         return offset;
9170 }
9171
9172 static int
9173 samr_dissect_element_ValidatePasswordReq2_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9174 {
9175         offset = samr_dissect_struct_lsa_StringLarge(tvb,offset,pinfo,tree,drep,hf_samr_samr_ValidatePasswordReq2_account,0);
9176
9177         return offset;
9178 }
9179
9180 static int
9181 samr_dissect_element_ValidatePasswordReq2_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9182 {
9183         offset = samr_dissect_struct_ValidationBlob(tvb,offset,pinfo,tree,drep,hf_samr_samr_ValidatePasswordReq2_hash,0);
9184
9185         return offset;
9186 }
9187
9188 static int
9189 samr_dissect_element_ValidatePasswordReq2_password_matched(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9190 {
9191         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_ValidatePasswordReq2_password_matched, 0);
9192
9193         return offset;
9194 }
9195
9196 int
9197 samr_dissect_struct_ValidatePasswordReq2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
9198 {
9199         proto_item *item = NULL;
9200         proto_tree *tree = NULL;
9201         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
9202         int old_offset;
9203
9204         ALIGN_TO_8_BYTES;
9205
9206         old_offset = offset;
9207
9208         if (parent_tree) {
9209                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
9210                 tree = proto_item_add_subtree(item, ett_samr_samr_ValidatePasswordReq2);
9211         }
9212         
9213         offset = samr_dissect_element_ValidatePasswordReq2_info(tvb, offset, pinfo, tree, drep);
9214
9215         offset = samr_dissect_element_ValidatePasswordReq2_password(tvb, offset, pinfo, tree, drep);
9216
9217         offset = samr_dissect_element_ValidatePasswordReq2_account(tvb, offset, pinfo, tree, drep);
9218
9219         offset = samr_dissect_element_ValidatePasswordReq2_hash(tvb, offset, pinfo, tree, drep);
9220
9221         offset = samr_dissect_element_ValidatePasswordReq2_password_matched(tvb, offset, pinfo, tree, drep);
9222
9223
9224         proto_item_set_len(item, offset-old_offset);
9225
9226
9227         if (di->call_data->flags & DCERPC_IS_NDR64) {
9228                 ALIGN_TO_8_BYTES;
9229         }
9230
9231         return offset;
9232 }
9233
9234
9235 /* IDL: struct { */
9236 /* IDL:         samr_ValidatePasswordInfo info; */
9237 /* IDL:         uint8 password_matched; */
9238 /* IDL: } */
9239
9240 static int
9241 samr_dissect_element_ValidatePasswordReq1_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9242 {
9243         offset = samr_dissect_struct_ValidatePasswordInfo(tvb,offset,pinfo,tree,drep,hf_samr_samr_ValidatePasswordReq1_info,0);
9244
9245         return offset;
9246 }
9247
9248 static int
9249 samr_dissect_element_ValidatePasswordReq1_password_matched(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9250 {
9251         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_ValidatePasswordReq1_password_matched, 0);
9252
9253         return offset;
9254 }
9255
9256 int
9257 samr_dissect_struct_ValidatePasswordReq1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
9258 {
9259         proto_item *item = NULL;
9260         proto_tree *tree = NULL;
9261         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
9262         int old_offset;
9263
9264         ALIGN_TO_8_BYTES;
9265
9266         old_offset = offset;
9267
9268         if (parent_tree) {
9269                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
9270                 tree = proto_item_add_subtree(item, ett_samr_samr_ValidatePasswordReq1);
9271         }
9272         
9273         offset = samr_dissect_element_ValidatePasswordReq1_info(tvb, offset, pinfo, tree, drep);
9274
9275         offset = samr_dissect_element_ValidatePasswordReq1_password_matched(tvb, offset, pinfo, tree, drep);
9276
9277
9278         proto_item_set_len(item, offset-old_offset);
9279
9280
9281         if (di->call_data->flags & DCERPC_IS_NDR64) {
9282                 ALIGN_TO_8_BYTES;
9283         }
9284
9285         return offset;
9286 }
9287
9288
9289 /* IDL: [switch_type(uint16)] union { */
9290 /* IDL: [case(1)] [case(1)] samr_ValidatePasswordReq1 req1; */
9291 /* IDL: [case(2)] [case(2)] samr_ValidatePasswordReq2 req2; */
9292 /* IDL: [case(3)] [case(3)] samr_ValidatePasswordReq3 req3; */
9293 /* IDL: } */
9294
9295 static int
9296 samr_dissect_element_ValidatePasswordReq_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9297 {
9298         offset = samr_dissect_struct_ValidatePasswordReq1(tvb,offset,pinfo,tree,drep,hf_samr_samr_ValidatePasswordReq_req1,0);
9299
9300         return offset;
9301 }
9302
9303 static int
9304 samr_dissect_element_ValidatePasswordReq_req2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9305 {
9306         offset = samr_dissect_struct_ValidatePasswordReq2(tvb,offset,pinfo,tree,drep,hf_samr_samr_ValidatePasswordReq_req2,0);
9307
9308         return offset;
9309 }
9310
9311 static int
9312 samr_dissect_element_ValidatePasswordReq_req3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9313 {
9314         offset = samr_dissect_struct_ValidatePasswordReq3(tvb,offset,pinfo,tree,drep,hf_samr_samr_ValidatePasswordReq_req3,0);
9315
9316         return offset;
9317 }
9318
9319 static int
9320 samr_dissect_ValidatePasswordReq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
9321 {
9322         proto_item *item = NULL;
9323         proto_tree *tree = NULL;
9324         int old_offset;
9325         guint16 level;
9326
9327         old_offset = offset;
9328         if (parent_tree) {
9329                 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "samr_ValidatePasswordReq");
9330                 tree = proto_item_add_subtree(item, ett_samr_samr_ValidatePasswordReq);
9331         }
9332
9333         offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, &level);
9334         ALIGN_TO_8_BYTES;
9335
9336         switch(level) {
9337                 case 1:
9338                         offset = samr_dissect_element_ValidatePasswordReq_req1(tvb, offset, pinfo, tree, drep);
9339                 break;
9340
9341                 case 2:
9342                         offset = samr_dissect_element_ValidatePasswordReq_req2(tvb, offset, pinfo, tree, drep);
9343                 break;
9344
9345                 case 3:
9346                         offset = samr_dissect_element_ValidatePasswordReq_req3(tvb, offset, pinfo, tree, drep);
9347                 break;
9348         }
9349         proto_item_set_len(item, offset-old_offset);
9350
9351
9352         return offset;
9353 }
9354 static int
9355 samr_dissect_element_Connect_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9356 {
9357         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_Connect_system_name_, NDR_POINTER_UNIQUE, "Pointer to System Name (uint16)",hf_samr_samr_Connect_system_name);
9358
9359         return offset;
9360 }
9361
9362 static int
9363 samr_dissect_element_Connect_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9364 {
9365         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_Connect_system_name, 0);
9366
9367         return offset;
9368 }
9369
9370 static int
9371 samr_dissect_element_Connect_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9372 {
9373         offset = samr_dissect_bitmap_ConnectAccessMask(tvb, offset, pinfo, tree, drep, hf_samr_samr_Connect_access_mask, 0);
9374
9375         return offset;
9376 }
9377
9378 static int
9379 samr_dissect_element_Connect_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9380 {
9381         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_Connect_connect_handle_, NDR_POINTER_REF, "Pointer to Connect Handle (policy_handle)",hf_samr_samr_Connect_connect_handle);
9382
9383         return offset;
9384 }
9385
9386 static int
9387 samr_dissect_element_Connect_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9388 {
9389         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_Connect_connect_handle, 0);
9390
9391         return offset;
9392 }
9393
9394 /* IDL: NTSTATUS samr_Connect( */
9395 /* IDL: [unique(1)] [in] uint16 *system_name, */
9396 /* IDL: [in] samr_ConnectAccessMask access_mask, */
9397 /* IDL: [out] [ref] policy_handle *connect_handle */
9398 /* IDL: ); */
9399
9400 static int
9401 samr_dissect_Connect_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9402 {
9403         guint32 status;
9404
9405         pinfo->dcerpc_procedure_name="Connect";
9406         offset = samr_dissect_element_Connect_connect_handle(tvb, offset, pinfo, tree, drep);
9407         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
9408
9409         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
9410
9411         if (status != 0)
9412                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
9413
9414         return offset;
9415 }
9416
9417 static int
9418 samr_dissect_Connect_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9419 {
9420         pinfo->dcerpc_procedure_name="Connect";
9421         offset = samr_dissect_element_Connect_system_name(tvb, offset, pinfo, tree, drep);
9422         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
9423         offset = samr_dissect_element_Connect_access_mask(tvb, offset, pinfo, tree, drep);
9424         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
9425         return offset;
9426 }
9427
9428 static int
9429 samr_dissect_element_Close_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9430 {
9431         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_Close_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_samr_samr_Close_handle);
9432
9433         return offset;
9434 }
9435
9436 static int
9437 samr_dissect_element_Close_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9438 {
9439         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_Close_handle, 0);
9440
9441         return offset;
9442 }
9443
9444 /* IDL: NTSTATUS samr_Close( */
9445 /* IDL: [out] [in] [ref] policy_handle *handle */
9446 /* IDL: ); */
9447
9448 static int
9449 samr_dissect_Close_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9450 {
9451         guint32 status;
9452
9453         pinfo->dcerpc_procedure_name="Close";
9454         offset = samr_dissect_element_Close_handle(tvb, offset, pinfo, tree, drep);
9455         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
9456
9457         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
9458
9459         if (status != 0)
9460                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
9461
9462         return offset;
9463 }
9464
9465 static int
9466 samr_dissect_Close_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9467 {
9468         pinfo->dcerpc_procedure_name="Close";
9469         offset = samr_dissect_element_Close_handle(tvb, offset, pinfo, tree, drep);
9470         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
9471         return offset;
9472 }
9473
9474 static int
9475 samr_dissect_element_SetSecurity_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9476 {
9477         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_SetSecurity_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_samr_samr_SetSecurity_handle);
9478
9479         return offset;
9480 }
9481
9482 static int
9483 samr_dissect_element_SetSecurity_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9484 {
9485         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetSecurity_handle, 0);
9486
9487         return offset;
9488 }
9489
9490 static int
9491 samr_dissect_element_SetSecurity_sec_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9492 {
9493         offset = samr_dissect_bitmap_security_secinfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetSecurity_sec_info, 0);
9494
9495         return offset;
9496 }
9497
9498 static int
9499 samr_dissect_element_SetSecurity_sdbuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9500 {
9501         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_SetSecurity_sdbuf_, NDR_POINTER_REF, "Pointer to Sdbuf (sec_desc_buf)",hf_samr_samr_SetSecurity_sdbuf);
9502
9503         return offset;
9504 }
9505
9506 static int
9507 samr_dissect_element_SetSecurity_sdbuf_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9508 {
9509         offset = samr_dissect_struct_sec_desc_buf(tvb,offset,pinfo,tree,drep,hf_samr_samr_SetSecurity_sdbuf,0);
9510
9511         return offset;
9512 }
9513
9514 /* IDL: NTSTATUS samr_SetSecurity( */
9515 /* IDL: [in] [ref] policy_handle *handle, */
9516 /* IDL: [in] security_secinfo sec_info, */
9517 /* IDL: [in] [ref] sec_desc_buf *sdbuf */
9518 /* IDL: ); */
9519
9520 static int
9521 samr_dissect_SetSecurity_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9522 {
9523         guint32 status;
9524
9525         pinfo->dcerpc_procedure_name="SetSecurity";
9526         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
9527
9528         if (status != 0)
9529                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
9530
9531         return offset;
9532 }
9533
9534 static int
9535 samr_dissect_SetSecurity_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9536 {
9537         pinfo->dcerpc_procedure_name="SetSecurity";
9538         offset = samr_dissect_element_SetSecurity_handle(tvb, offset, pinfo, tree, drep);
9539         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
9540         offset = samr_dissect_element_SetSecurity_sec_info(tvb, offset, pinfo, tree, drep);
9541         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
9542         offset = samr_dissect_element_SetSecurity_sdbuf(tvb, offset, pinfo, tree, drep);
9543         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
9544         return offset;
9545 }
9546
9547 static int
9548 samr_dissect_element_QuerySecurity_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9549 {
9550         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QuerySecurity_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_samr_samr_QuerySecurity_handle);
9551
9552         return offset;
9553 }
9554
9555 static int
9556 samr_dissect_element_QuerySecurity_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9557 {
9558         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_QuerySecurity_handle, 0);
9559
9560         return offset;
9561 }
9562
9563 static int
9564 samr_dissect_element_QuerySecurity_sec_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9565 {
9566         offset = samr_dissect_bitmap_security_secinfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_QuerySecurity_sec_info, 0);
9567
9568         return offset;
9569 }
9570
9571 static int
9572 samr_dissect_element_QuerySecurity_sdbuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9573 {
9574         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QuerySecurity_sdbuf_, NDR_POINTER_REF, "Pointer to Sdbuf (sec_desc_buf)",hf_samr_samr_QuerySecurity_sdbuf);
9575
9576         return offset;
9577 }
9578
9579 static int
9580 samr_dissect_element_QuerySecurity_sdbuf_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9581 {
9582         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QuerySecurity_sdbuf__, NDR_POINTER_UNIQUE, "Pointer to Sdbuf (sec_desc_buf)",hf_samr_samr_QuerySecurity_sdbuf);
9583
9584         return offset;
9585 }
9586
9587 static int
9588 samr_dissect_element_QuerySecurity_sdbuf__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9589 {
9590         offset = samr_dissect_struct_sec_desc_buf(tvb,offset,pinfo,tree,drep,hf_samr_samr_QuerySecurity_sdbuf,0);
9591
9592         return offset;
9593 }
9594
9595 /* IDL: NTSTATUS samr_QuerySecurity( */
9596 /* IDL: [in] [ref] policy_handle *handle, */
9597 /* IDL: [in] security_secinfo sec_info, */
9598 /* IDL: [out] [ref] sec_desc_buf **sdbuf */
9599 /* IDL: ); */
9600
9601 static int
9602 samr_dissect_QuerySecurity_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9603 {
9604         guint32 status;
9605
9606         pinfo->dcerpc_procedure_name="QuerySecurity";
9607         offset = samr_dissect_element_QuerySecurity_sdbuf(tvb, offset, pinfo, tree, drep);
9608         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
9609
9610         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
9611
9612         if (status != 0)
9613                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
9614
9615         return offset;
9616 }
9617
9618 static int
9619 samr_dissect_QuerySecurity_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9620 {
9621         pinfo->dcerpc_procedure_name="QuerySecurity";
9622         offset = samr_dissect_element_QuerySecurity_handle(tvb, offset, pinfo, tree, drep);
9623         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
9624         offset = samr_dissect_element_QuerySecurity_sec_info(tvb, offset, pinfo, tree, drep);
9625         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
9626         return offset;
9627 }
9628
9629 static int
9630 samr_dissect_element_Shutdown_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9631 {
9632         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_Shutdown_connect_handle_, NDR_POINTER_REF, "Pointer to Connect Handle (policy_handle)",hf_samr_samr_Shutdown_connect_handle);
9633
9634         return offset;
9635 }
9636
9637 static int
9638 samr_dissect_element_Shutdown_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9639 {
9640         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_Shutdown_connect_handle, 0);
9641
9642         return offset;
9643 }
9644
9645 /* IDL: NTSTATUS samr_Shutdown( */
9646 /* IDL: [in] [ref] policy_handle *connect_handle */
9647 /* IDL: ); */
9648
9649 static int
9650 samr_dissect_Shutdown_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9651 {
9652         guint32 status;
9653
9654         pinfo->dcerpc_procedure_name="Shutdown";
9655         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
9656
9657         if (status != 0)
9658                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
9659
9660         return offset;
9661 }
9662
9663 static int
9664 samr_dissect_Shutdown_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9665 {
9666         pinfo->dcerpc_procedure_name="Shutdown";
9667         offset = samr_dissect_element_Shutdown_connect_handle(tvb, offset, pinfo, tree, drep);
9668         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
9669         return offset;
9670 }
9671
9672 static int
9673 samr_dissect_element_LookupDomain_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9674 {
9675         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_LookupDomain_connect_handle_, NDR_POINTER_REF, "Pointer to Connect Handle (policy_handle)",hf_samr_samr_LookupDomain_connect_handle);
9676
9677         return offset;
9678 }
9679
9680 static int
9681 samr_dissect_element_LookupDomain_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9682 {
9683         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_LookupDomain_connect_handle, 0);
9684
9685         return offset;
9686 }
9687
9688 static int
9689 samr_dissect_element_LookupDomain_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9690 {
9691         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_LookupDomain_domain_name_, NDR_POINTER_REF, "Pointer to Domain Name (lsa_String)",hf_samr_samr_LookupDomain_domain_name);
9692
9693         return offset;
9694 }
9695
9696 static int
9697 samr_dissect_element_LookupDomain_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9698 {
9699         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_LookupDomain_domain_name,0);
9700
9701         return offset;
9702 }
9703
9704 static int
9705 samr_dissect_element_LookupDomain_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9706 {
9707         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_LookupDomain_sid_, NDR_POINTER_REF, "Pointer to Sid (dom_sid2)",hf_samr_samr_LookupDomain_sid);
9708
9709         return offset;
9710 }
9711
9712 static int
9713 samr_dissect_element_LookupDomain_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9714 {
9715         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_LookupDomain_sid__, NDR_POINTER_UNIQUE, "Pointer to Sid (dom_sid2)",hf_samr_samr_LookupDomain_sid);
9716
9717         return offset;
9718 }
9719
9720 static int
9721 samr_dissect_element_LookupDomain_sid__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9722 {
9723         offset = samr_dissect_struct_dom_sid2(tvb,offset,pinfo,tree,drep,hf_samr_samr_LookupDomain_sid,0);
9724
9725         return offset;
9726 }
9727
9728 /* IDL: NTSTATUS samr_LookupDomain( */
9729 /* IDL: [in] [ref] policy_handle *connect_handle, */
9730 /* IDL: [in] [ref] lsa_String *domain_name, */
9731 /* IDL: [out] [ref] dom_sid2 **sid */
9732 /* IDL: ); */
9733
9734 static int
9735 samr_dissect_LookupDomain_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9736 {
9737         guint32 status;
9738
9739         pinfo->dcerpc_procedure_name="LookupDomain";
9740         offset = samr_dissect_element_LookupDomain_sid(tvb, offset, pinfo, tree, drep);
9741         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
9742
9743         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
9744
9745         if (status != 0)
9746                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
9747
9748         return offset;
9749 }
9750
9751 static int
9752 samr_dissect_LookupDomain_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9753 {
9754         pinfo->dcerpc_procedure_name="LookupDomain";
9755         offset = samr_dissect_element_LookupDomain_connect_handle(tvb, offset, pinfo, tree, drep);
9756         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
9757         offset = samr_dissect_element_LookupDomain_domain_name(tvb, offset, pinfo, tree, drep);
9758         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
9759         return offset;
9760 }
9761
9762 static int
9763 samr_dissect_element_EnumDomains_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9764 {
9765         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_EnumDomains_connect_handle_, NDR_POINTER_REF, "Pointer to Connect Handle (policy_handle)",hf_samr_samr_EnumDomains_connect_handle);
9766
9767         return offset;
9768 }
9769
9770 static int
9771 samr_dissect_element_EnumDomains_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9772 {
9773         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_EnumDomains_connect_handle, 0);
9774
9775         return offset;
9776 }
9777
9778 static int
9779 samr_dissect_element_EnumDomains_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9780 {
9781         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_EnumDomains_resume_handle_, NDR_POINTER_REF, "Pointer to Resume Handle (uint32)",hf_samr_samr_EnumDomains_resume_handle);
9782
9783         return offset;
9784 }
9785
9786 static int
9787 samr_dissect_element_EnumDomains_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9788 {
9789         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_EnumDomains_resume_handle, 0);
9790
9791         return offset;
9792 }
9793
9794 static int
9795 samr_dissect_element_EnumDomains_sam(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9796 {
9797         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_EnumDomains_sam_, NDR_POINTER_REF, "Pointer to Sam (samr_SamArray)",hf_samr_samr_EnumDomains_sam);
9798
9799         return offset;
9800 }
9801
9802 static int
9803 samr_dissect_element_EnumDomains_sam_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9804 {
9805         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_EnumDomains_sam__, NDR_POINTER_UNIQUE, "Pointer to Sam (samr_SamArray)",hf_samr_samr_EnumDomains_sam);
9806
9807         return offset;
9808 }
9809
9810 static int
9811 samr_dissect_element_EnumDomains_sam__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9812 {
9813         offset = samr_dissect_struct_SamArray(tvb,offset,pinfo,tree,drep,hf_samr_samr_EnumDomains_sam,0);
9814
9815         return offset;
9816 }
9817
9818 static int
9819 samr_dissect_element_EnumDomains_buf_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9820 {
9821         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_EnumDomains_buf_size, 0);
9822
9823         return offset;
9824 }
9825
9826 static int
9827 samr_dissect_element_EnumDomains_num_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9828 {
9829         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_EnumDomains_num_entries_, NDR_POINTER_REF, "Pointer to Num Entries (uint32)",hf_samr_samr_EnumDomains_num_entries);
9830
9831         return offset;
9832 }
9833
9834 static int
9835 samr_dissect_element_EnumDomains_num_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9836 {
9837         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_EnumDomains_num_entries, 0);
9838
9839         return offset;
9840 }
9841
9842 /* IDL: NTSTATUS samr_EnumDomains( */
9843 /* IDL: [in] [ref] policy_handle *connect_handle, */
9844 /* IDL: [out] [in] [ref] uint32 *resume_handle, */
9845 /* IDL: [out] [ref] samr_SamArray **sam, */
9846 /* IDL: [in] uint32 buf_size, */
9847 /* IDL: [out] [ref] uint32 *num_entries */
9848 /* IDL: ); */
9849
9850 static int
9851 samr_dissect_EnumDomains_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9852 {
9853         guint32 status;
9854
9855         pinfo->dcerpc_procedure_name="EnumDomains";
9856         offset = samr_dissect_element_EnumDomains_resume_handle(tvb, offset, pinfo, tree, drep);
9857         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
9858
9859         offset = samr_dissect_element_EnumDomains_sam(tvb, offset, pinfo, tree, drep);
9860         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
9861
9862         offset = samr_dissect_element_EnumDomains_num_entries(tvb, offset, pinfo, tree, drep);
9863         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
9864
9865         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
9866
9867         if (status != 0)
9868                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
9869
9870         return offset;
9871 }
9872
9873 static int
9874 samr_dissect_EnumDomains_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9875 {
9876         pinfo->dcerpc_procedure_name="EnumDomains";
9877         offset = samr_dissect_element_EnumDomains_connect_handle(tvb, offset, pinfo, tree, drep);
9878         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
9879         offset = samr_dissect_element_EnumDomains_resume_handle(tvb, offset, pinfo, tree, drep);
9880         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
9881         offset = samr_dissect_element_EnumDomains_buf_size(tvb, offset, pinfo, tree, drep);
9882         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
9883         return offset;
9884 }
9885
9886 static int
9887 samr_dissect_element_OpenDomain_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9888 {
9889         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_OpenDomain_connect_handle_, NDR_POINTER_REF, "Pointer to Connect Handle (policy_handle)",hf_samr_samr_OpenDomain_connect_handle);
9890
9891         return offset;
9892 }
9893
9894 static int
9895 samr_dissect_element_OpenDomain_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9896 {
9897         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_OpenDomain_connect_handle, 0);
9898
9899         return offset;
9900 }
9901
9902 static int
9903 samr_dissect_element_OpenDomain_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9904 {
9905         offset = samr_dissect_bitmap_DomainAccessMask(tvb, offset, pinfo, tree, drep, hf_samr_samr_OpenDomain_access_mask, 0);
9906
9907         return offset;
9908 }
9909
9910 static int
9911 samr_dissect_element_OpenDomain_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9912 {
9913         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_OpenDomain_sid_, NDR_POINTER_REF, "Pointer to Sid (dom_sid2)",hf_samr_samr_OpenDomain_sid);
9914
9915         return offset;
9916 }
9917
9918 static int
9919 samr_dissect_element_OpenDomain_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9920 {
9921         offset = samr_dissect_struct_dom_sid2(tvb,offset,pinfo,tree,drep,hf_samr_samr_OpenDomain_sid,0);
9922
9923         return offset;
9924 }
9925
9926 static int
9927 samr_dissect_element_OpenDomain_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9928 {
9929         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_OpenDomain_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_samr_OpenDomain_domain_handle);
9930
9931         return offset;
9932 }
9933
9934 static int
9935 samr_dissect_element_OpenDomain_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9936 {
9937         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_OpenDomain_domain_handle, 0);
9938
9939         return offset;
9940 }
9941
9942 /* IDL: NTSTATUS samr_OpenDomain( */
9943 /* IDL: [in] [ref] policy_handle *connect_handle, */
9944 /* IDL: [in] samr_DomainAccessMask access_mask, */
9945 /* IDL: [in] [ref] dom_sid2 *sid, */
9946 /* IDL: [out] [ref] policy_handle *domain_handle */
9947 /* IDL: ); */
9948
9949 static int
9950 samr_dissect_OpenDomain_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9951 {
9952         guint32 status;
9953
9954         pinfo->dcerpc_procedure_name="OpenDomain";
9955         offset = samr_dissect_element_OpenDomain_domain_handle(tvb, offset, pinfo, tree, drep);
9956         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
9957
9958         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
9959
9960         if (status != 0)
9961                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
9962
9963         return offset;
9964 }
9965
9966 static int
9967 samr_dissect_OpenDomain_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9968 {
9969         pinfo->dcerpc_procedure_name="OpenDomain";
9970         offset = samr_dissect_element_OpenDomain_connect_handle(tvb, offset, pinfo, tree, drep);
9971         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
9972         offset = samr_dissect_element_OpenDomain_access_mask(tvb, offset, pinfo, tree, drep);
9973         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
9974         offset = samr_dissect_element_OpenDomain_sid(tvb, offset, pinfo, tree, drep);
9975         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
9976         return offset;
9977 }
9978
9979 static int
9980 samr_dissect_element_QueryDomainInfo_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9981 {
9982         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryDomainInfo_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_samr_QueryDomainInfo_domain_handle);
9983
9984         return offset;
9985 }
9986
9987 static int
9988 samr_dissect_element_QueryDomainInfo_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9989 {
9990         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDomainInfo_domain_handle, 0);
9991
9992         return offset;
9993 }
9994
9995 static int
9996 samr_dissect_element_QueryDomainInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9997 {
9998         offset = samr_dissect_enum_DomainInfoClass(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDomainInfo_level, 0);
9999
10000         return offset;
10001 }
10002
10003 static int
10004 samr_dissect_element_QueryDomainInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10005 {
10006         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryDomainInfo_info_, NDR_POINTER_REF, "Pointer to Info (samr_DomainInfo)",hf_samr_samr_QueryDomainInfo_info);
10007
10008         return offset;
10009 }
10010
10011 static int
10012 samr_dissect_element_QueryDomainInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10013 {
10014         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryDomainInfo_info__, NDR_POINTER_UNIQUE, "Pointer to Info (samr_DomainInfo)",hf_samr_samr_QueryDomainInfo_info);
10015
10016         return offset;
10017 }
10018
10019 static int
10020 samr_dissect_element_QueryDomainInfo_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10021 {
10022         offset = samr_dissect_DomainInfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDomainInfo_info, *0);
10023
10024         return offset;
10025 }
10026
10027 /* IDL: NTSTATUS samr_QueryDomainInfo( */
10028 /* IDL: [in] [ref] policy_handle *domain_handle, */
10029 /* IDL: [in] samr_DomainInfoClass level, */
10030 /* IDL: [out] [ref] [switch_is(level)] samr_DomainInfo **info */
10031 /* IDL: ); */
10032
10033 static int
10034 samr_dissect_QueryDomainInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10035 {
10036         guint32 status;
10037
10038         pinfo->dcerpc_procedure_name="QueryDomainInfo";
10039         offset = samr_dissect_element_QueryDomainInfo_info(tvb, offset, pinfo, tree, drep);
10040         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10041
10042         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
10043
10044         if (status != 0)
10045                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
10046
10047         return offset;
10048 }
10049
10050 static int
10051 samr_dissect_QueryDomainInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10052 {
10053         pinfo->dcerpc_procedure_name="QueryDomainInfo";
10054         offset = samr_dissect_element_QueryDomainInfo_domain_handle(tvb, offset, pinfo, tree, drep);
10055         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10056         offset = samr_dissect_element_QueryDomainInfo_level(tvb, offset, pinfo, tree, drep);
10057         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10058         return offset;
10059 }
10060
10061 static int
10062 samr_dissect_element_SetDomainInfo_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10063 {
10064         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_SetDomainInfo_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_samr_SetDomainInfo_domain_handle);
10065
10066         return offset;
10067 }
10068
10069 static int
10070 samr_dissect_element_SetDomainInfo_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10071 {
10072         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetDomainInfo_domain_handle, 0);
10073
10074         return offset;
10075 }
10076
10077 static int
10078 samr_dissect_element_SetDomainInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10079 {
10080         offset = samr_dissect_enum_DomainInfoClass(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetDomainInfo_level, 0);
10081
10082         return offset;
10083 }
10084
10085 static int
10086 samr_dissect_element_SetDomainInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10087 {
10088         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_SetDomainInfo_info_, NDR_POINTER_REF, "Pointer to Info (samr_DomainInfo)",hf_samr_samr_SetDomainInfo_info);
10089
10090         return offset;
10091 }
10092
10093 static int
10094 samr_dissect_element_SetDomainInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10095 {
10096         offset = samr_dissect_DomainInfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetDomainInfo_info, *0);
10097
10098         return offset;
10099 }
10100
10101 /* IDL: NTSTATUS samr_SetDomainInfo( */
10102 /* IDL: [in] [ref] policy_handle *domain_handle, */
10103 /* IDL: [in] samr_DomainInfoClass level, */
10104 /* IDL: [in] [ref] [switch_is(level)] samr_DomainInfo *info */
10105 /* IDL: ); */
10106
10107 static int
10108 samr_dissect_SetDomainInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10109 {
10110         guint32 status;
10111
10112         pinfo->dcerpc_procedure_name="SetDomainInfo";
10113         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
10114
10115         if (status != 0)
10116                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
10117
10118         return offset;
10119 }
10120
10121 static int
10122 samr_dissect_SetDomainInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10123 {
10124         pinfo->dcerpc_procedure_name="SetDomainInfo";
10125         offset = samr_dissect_element_SetDomainInfo_domain_handle(tvb, offset, pinfo, tree, drep);
10126         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10127         offset = samr_dissect_element_SetDomainInfo_level(tvb, offset, pinfo, tree, drep);
10128         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10129         offset = samr_dissect_element_SetDomainInfo_info(tvb, offset, pinfo, tree, drep);
10130         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10131         return offset;
10132 }
10133
10134 static int
10135 samr_dissect_element_CreateDomainGroup_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10136 {
10137         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_CreateDomainGroup_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_samr_CreateDomainGroup_domain_handle);
10138
10139         return offset;
10140 }
10141
10142 static int
10143 samr_dissect_element_CreateDomainGroup_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10144 {
10145         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateDomainGroup_domain_handle, 0);
10146
10147         return offset;
10148 }
10149
10150 static int
10151 samr_dissect_element_CreateDomainGroup_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10152 {
10153         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_CreateDomainGroup_name_, NDR_POINTER_REF, "Pointer to Name (lsa_String)",hf_samr_samr_CreateDomainGroup_name);
10154
10155         return offset;
10156 }
10157
10158 static int
10159 samr_dissect_element_CreateDomainGroup_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10160 {
10161         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_CreateDomainGroup_name,0);
10162
10163         return offset;
10164 }
10165
10166 static int
10167 samr_dissect_element_CreateDomainGroup_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10168 {
10169         offset = samr_dissect_bitmap_GroupAccessMask(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateDomainGroup_access_mask, 0);
10170
10171         return offset;
10172 }
10173
10174 static int
10175 samr_dissect_element_CreateDomainGroup_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10176 {
10177         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_CreateDomainGroup_group_handle_, NDR_POINTER_REF, "Pointer to Group Handle (policy_handle)",hf_samr_samr_CreateDomainGroup_group_handle);
10178
10179         return offset;
10180 }
10181
10182 static int
10183 samr_dissect_element_CreateDomainGroup_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10184 {
10185         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateDomainGroup_group_handle, 0);
10186
10187         return offset;
10188 }
10189
10190 static int
10191 samr_dissect_element_CreateDomainGroup_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10192 {
10193         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_CreateDomainGroup_rid_, NDR_POINTER_REF, "Pointer to Rid (uint32)",hf_samr_samr_CreateDomainGroup_rid);
10194
10195         return offset;
10196 }
10197
10198 static int
10199 samr_dissect_element_CreateDomainGroup_rid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10200 {
10201         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateDomainGroup_rid, 0);
10202
10203         return offset;
10204 }
10205
10206 /* IDL: NTSTATUS samr_CreateDomainGroup( */
10207 /* IDL: [in] [ref] policy_handle *domain_handle, */
10208 /* IDL: [in] [ref] lsa_String *name, */
10209 /* IDL: [in] samr_GroupAccessMask access_mask, */
10210 /* IDL: [out] [ref] policy_handle *group_handle, */
10211 /* IDL: [out] [ref] uint32 *rid */
10212 /* IDL: ); */
10213
10214 static int
10215 samr_dissect_CreateDomainGroup_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10216 {
10217         guint32 status;
10218
10219         pinfo->dcerpc_procedure_name="CreateDomainGroup";
10220         offset = samr_dissect_element_CreateDomainGroup_group_handle(tvb, offset, pinfo, tree, drep);
10221         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10222
10223         offset = samr_dissect_element_CreateDomainGroup_rid(tvb, offset, pinfo, tree, drep);
10224         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10225
10226         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
10227
10228         if (status != 0)
10229                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
10230
10231         return offset;
10232 }
10233
10234 static int
10235 samr_dissect_CreateDomainGroup_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10236 {
10237         pinfo->dcerpc_procedure_name="CreateDomainGroup";
10238         offset = samr_dissect_element_CreateDomainGroup_domain_handle(tvb, offset, pinfo, tree, drep);
10239         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10240         offset = samr_dissect_element_CreateDomainGroup_name(tvb, offset, pinfo, tree, drep);
10241         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10242         offset = samr_dissect_element_CreateDomainGroup_access_mask(tvb, offset, pinfo, tree, drep);
10243         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10244         return offset;
10245 }
10246
10247 static int
10248 samr_dissect_element_EnumDomainGroups_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10249 {
10250         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_EnumDomainGroups_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_samr_EnumDomainGroups_domain_handle);
10251
10252         return offset;
10253 }
10254
10255 static int
10256 samr_dissect_element_EnumDomainGroups_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10257 {
10258         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_EnumDomainGroups_domain_handle, 0);
10259
10260         return offset;
10261 }
10262
10263 static int
10264 samr_dissect_element_EnumDomainGroups_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10265 {
10266         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_EnumDomainGroups_resume_handle_, NDR_POINTER_REF, "Pointer to Resume Handle (uint32)",hf_samr_samr_EnumDomainGroups_resume_handle);
10267
10268         return offset;
10269 }
10270
10271 static int
10272 samr_dissect_element_EnumDomainGroups_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10273 {
10274         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_EnumDomainGroups_resume_handle, 0);
10275
10276         return offset;
10277 }
10278
10279 static int
10280 samr_dissect_element_EnumDomainGroups_sam(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10281 {
10282         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_EnumDomainGroups_sam_, NDR_POINTER_REF, "Pointer to Sam (samr_SamArray)",hf_samr_samr_EnumDomainGroups_sam);
10283
10284         return offset;
10285 }
10286
10287 static int
10288 samr_dissect_element_EnumDomainGroups_sam_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10289 {
10290         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_EnumDomainGroups_sam__, NDR_POINTER_UNIQUE, "Pointer to Sam (samr_SamArray)",hf_samr_samr_EnumDomainGroups_sam);
10291
10292         return offset;
10293 }
10294
10295 static int
10296 samr_dissect_element_EnumDomainGroups_sam__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10297 {
10298         offset = samr_dissect_struct_SamArray(tvb,offset,pinfo,tree,drep,hf_samr_samr_EnumDomainGroups_sam,0);
10299
10300         return offset;
10301 }
10302
10303 static int
10304 samr_dissect_element_EnumDomainGroups_max_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10305 {
10306         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_EnumDomainGroups_max_size, 0);
10307
10308         return offset;
10309 }
10310
10311 static int
10312 samr_dissect_element_EnumDomainGroups_num_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10313 {
10314         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_EnumDomainGroups_num_entries_, NDR_POINTER_REF, "Pointer to Num Entries (uint32)",hf_samr_samr_EnumDomainGroups_num_entries);
10315
10316         return offset;
10317 }
10318
10319 static int
10320 samr_dissect_element_EnumDomainGroups_num_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10321 {
10322         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_EnumDomainGroups_num_entries, 0);
10323
10324         return offset;
10325 }
10326
10327 /* IDL: NTSTATUS samr_EnumDomainGroups( */
10328 /* IDL: [ref] [in] policy_handle *domain_handle, */
10329 /* IDL: [out] [in] [ref] uint32 *resume_handle, */
10330 /* IDL: [out] [ref] samr_SamArray **sam, */
10331 /* IDL: [in] uint32 max_size, */
10332 /* IDL: [out] [ref] uint32 *num_entries */
10333 /* IDL: ); */
10334
10335 static int
10336 samr_dissect_EnumDomainGroups_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10337 {
10338         guint32 status;
10339
10340         pinfo->dcerpc_procedure_name="EnumDomainGroups";
10341         offset = samr_dissect_element_EnumDomainGroups_resume_handle(tvb, offset, pinfo, tree, drep);
10342         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10343
10344         offset = samr_dissect_element_EnumDomainGroups_sam(tvb, offset, pinfo, tree, drep);
10345         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10346
10347         offset = samr_dissect_element_EnumDomainGroups_num_entries(tvb, offset, pinfo, tree, drep);
10348         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10349
10350         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
10351
10352         if (status != 0)
10353                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
10354
10355         return offset;
10356 }
10357
10358 static int
10359 samr_dissect_EnumDomainGroups_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10360 {
10361         pinfo->dcerpc_procedure_name="EnumDomainGroups";
10362         offset = samr_dissect_element_EnumDomainGroups_domain_handle(tvb, offset, pinfo, tree, drep);
10363         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10364         offset = samr_dissect_element_EnumDomainGroups_resume_handle(tvb, offset, pinfo, tree, drep);
10365         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10366         offset = samr_dissect_element_EnumDomainGroups_max_size(tvb, offset, pinfo, tree, drep);
10367         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10368         return offset;
10369 }
10370
10371 static int
10372 samr_dissect_element_CreateUser_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10373 {
10374         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_CreateUser_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_samr_CreateUser_domain_handle);
10375
10376         return offset;
10377 }
10378
10379 static int
10380 samr_dissect_element_CreateUser_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10381 {
10382         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateUser_domain_handle, 0);
10383
10384         return offset;
10385 }
10386
10387 static int
10388 samr_dissect_element_CreateUser_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10389 {
10390         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_CreateUser_account_name_, NDR_POINTER_REF, "Pointer to Account Name (lsa_String)",hf_samr_samr_CreateUser_account_name);
10391
10392         return offset;
10393 }
10394
10395 static int
10396 samr_dissect_element_CreateUser_account_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10397 {
10398         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_CreateUser_account_name,0);
10399
10400         return offset;
10401 }
10402
10403 static int
10404 samr_dissect_element_CreateUser_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10405 {
10406         offset = samr_dissect_bitmap_UserAccessMask(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateUser_access_mask, 0);
10407
10408         return offset;
10409 }
10410
10411 static int
10412 samr_dissect_element_CreateUser_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10413 {
10414         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_CreateUser_user_handle_, NDR_POINTER_REF, "Pointer to User Handle (policy_handle)",hf_samr_samr_CreateUser_user_handle);
10415
10416         return offset;
10417 }
10418
10419 static int
10420 samr_dissect_element_CreateUser_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10421 {
10422         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateUser_user_handle, 0);
10423
10424         return offset;
10425 }
10426
10427 static int
10428 samr_dissect_element_CreateUser_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10429 {
10430         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_CreateUser_rid_, NDR_POINTER_REF, "Pointer to Rid (uint32)",hf_samr_samr_CreateUser_rid);
10431
10432         return offset;
10433 }
10434
10435 static int
10436 samr_dissect_element_CreateUser_rid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10437 {
10438         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateUser_rid, 0);
10439
10440         return offset;
10441 }
10442
10443 /* IDL: NTSTATUS samr_CreateUser( */
10444 /* IDL: [in] [ref] policy_handle *domain_handle, */
10445 /* IDL: [in] [ref] lsa_String *account_name, */
10446 /* IDL: [in] samr_UserAccessMask access_mask, */
10447 /* IDL: [out] [ref] policy_handle *user_handle, */
10448 /* IDL: [out] [ref] uint32 *rid */
10449 /* IDL: ); */
10450
10451 static int
10452 samr_dissect_CreateUser_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10453 {
10454         guint32 status;
10455
10456         pinfo->dcerpc_procedure_name="CreateUser";
10457         offset = samr_dissect_element_CreateUser_user_handle(tvb, offset, pinfo, tree, drep);
10458         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10459
10460         offset = samr_dissect_element_CreateUser_rid(tvb, offset, pinfo, tree, drep);
10461         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10462
10463         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
10464
10465         if (status != 0)
10466                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
10467
10468         return offset;
10469 }
10470
10471 static int
10472 samr_dissect_CreateUser_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10473 {
10474         pinfo->dcerpc_procedure_name="CreateUser";
10475         offset = samr_dissect_element_CreateUser_domain_handle(tvb, offset, pinfo, tree, drep);
10476         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10477         offset = samr_dissect_element_CreateUser_account_name(tvb, offset, pinfo, tree, drep);
10478         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10479         offset = samr_dissect_element_CreateUser_access_mask(tvb, offset, pinfo, tree, drep);
10480         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10481         return offset;
10482 }
10483
10484 static int
10485 samr_dissect_element_EnumDomainUsers_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10486 {
10487         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_EnumDomainUsers_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_samr_EnumDomainUsers_domain_handle);
10488
10489         return offset;
10490 }
10491
10492 static int
10493 samr_dissect_element_EnumDomainUsers_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10494 {
10495         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_EnumDomainUsers_domain_handle, 0);
10496
10497         return offset;
10498 }
10499
10500 static int
10501 samr_dissect_element_EnumDomainUsers_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10502 {
10503         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_EnumDomainUsers_resume_handle_, NDR_POINTER_REF, "Pointer to Resume Handle (uint32)",hf_samr_samr_EnumDomainUsers_resume_handle);
10504
10505         return offset;
10506 }
10507
10508 static int
10509 samr_dissect_element_EnumDomainUsers_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10510 {
10511         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_EnumDomainUsers_resume_handle, 0);
10512
10513         return offset;
10514 }
10515
10516 static int
10517 samr_dissect_element_EnumDomainUsers_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10518 {
10519         offset = samr_dissect_bitmap_AcctFlags(tvb, offset, pinfo, tree, drep, hf_samr_samr_EnumDomainUsers_acct_flags, 0);
10520
10521         return offset;
10522 }
10523
10524 static int
10525 samr_dissect_element_EnumDomainUsers_sam(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10526 {
10527         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_EnumDomainUsers_sam_, NDR_POINTER_REF, "Pointer to Sam (samr_SamArray)",hf_samr_samr_EnumDomainUsers_sam);
10528
10529         return offset;
10530 }
10531
10532 static int
10533 samr_dissect_element_EnumDomainUsers_sam_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10534 {
10535         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_EnumDomainUsers_sam__, NDR_POINTER_UNIQUE, "Pointer to Sam (samr_SamArray)",hf_samr_samr_EnumDomainUsers_sam);
10536
10537         return offset;
10538 }
10539
10540 static int
10541 samr_dissect_element_EnumDomainUsers_sam__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10542 {
10543         offset = samr_dissect_struct_SamArray(tvb,offset,pinfo,tree,drep,hf_samr_samr_EnumDomainUsers_sam,0);
10544
10545         return offset;
10546 }
10547
10548 static int
10549 samr_dissect_element_EnumDomainUsers_max_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10550 {
10551         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_EnumDomainUsers_max_size, 0);
10552
10553         return offset;
10554 }
10555
10556 static int
10557 samr_dissect_element_EnumDomainUsers_num_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10558 {
10559         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_EnumDomainUsers_num_entries_, NDR_POINTER_REF, "Pointer to Num Entries (uint32)",hf_samr_samr_EnumDomainUsers_num_entries);
10560
10561         return offset;
10562 }
10563
10564 static int
10565 samr_dissect_element_EnumDomainUsers_num_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10566 {
10567         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_EnumDomainUsers_num_entries, 0);
10568
10569         return offset;
10570 }
10571
10572 /* IDL: NTSTATUS samr_EnumDomainUsers( */
10573 /* IDL: [ref] [in] policy_handle *domain_handle, */
10574 /* IDL: [out] [in] [ref] uint32 *resume_handle, */
10575 /* IDL: [in] samr_AcctFlags acct_flags, */
10576 /* IDL: [out] [ref] samr_SamArray **sam, */
10577 /* IDL: [in] uint32 max_size, */
10578 /* IDL: [out] [ref] uint32 *num_entries */
10579 /* IDL: ); */
10580
10581 static int
10582 samr_dissect_EnumDomainUsers_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10583 {
10584         guint32 status;
10585
10586         pinfo->dcerpc_procedure_name="EnumDomainUsers";
10587         offset = samr_dissect_element_EnumDomainUsers_resume_handle(tvb, offset, pinfo, tree, drep);
10588         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10589
10590         offset = samr_dissect_element_EnumDomainUsers_sam(tvb, offset, pinfo, tree, drep);
10591         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10592
10593         offset = samr_dissect_element_EnumDomainUsers_num_entries(tvb, offset, pinfo, tree, drep);
10594         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10595
10596         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
10597
10598         if (status != 0)
10599                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
10600
10601         return offset;
10602 }
10603
10604 static int
10605 samr_dissect_EnumDomainUsers_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10606 {
10607         pinfo->dcerpc_procedure_name="EnumDomainUsers";
10608         offset = samr_dissect_element_EnumDomainUsers_domain_handle(tvb, offset, pinfo, tree, drep);
10609         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10610         offset = samr_dissect_element_EnumDomainUsers_resume_handle(tvb, offset, pinfo, tree, drep);
10611         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10612         offset = samr_dissect_element_EnumDomainUsers_acct_flags(tvb, offset, pinfo, tree, drep);
10613         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10614         offset = samr_dissect_element_EnumDomainUsers_max_size(tvb, offset, pinfo, tree, drep);
10615         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10616         return offset;
10617 }
10618
10619 static int
10620 samr_dissect_element_CreateDomAlias_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10621 {
10622         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_CreateDomAlias_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_samr_CreateDomAlias_domain_handle);
10623
10624         return offset;
10625 }
10626
10627 static int
10628 samr_dissect_element_CreateDomAlias_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10629 {
10630         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateDomAlias_domain_handle, 0);
10631
10632         return offset;
10633 }
10634
10635 static int
10636 samr_dissect_element_CreateDomAlias_alias_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10637 {
10638         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_CreateDomAlias_alias_name_, NDR_POINTER_REF, "Pointer to Alias Name (lsa_String)",hf_samr_samr_CreateDomAlias_alias_name);
10639
10640         return offset;
10641 }
10642
10643 static int
10644 samr_dissect_element_CreateDomAlias_alias_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10645 {
10646         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_CreateDomAlias_alias_name,0);
10647
10648         return offset;
10649 }
10650
10651 static int
10652 samr_dissect_element_CreateDomAlias_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10653 {
10654         offset = samr_dissect_bitmap_AliasAccessMask(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateDomAlias_access_mask, 0);
10655
10656         return offset;
10657 }
10658
10659 static int
10660 samr_dissect_element_CreateDomAlias_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10661 {
10662         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_CreateDomAlias_alias_handle_, NDR_POINTER_REF, "Pointer to Alias Handle (policy_handle)",hf_samr_samr_CreateDomAlias_alias_handle);
10663
10664         return offset;
10665 }
10666
10667 static int
10668 samr_dissect_element_CreateDomAlias_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10669 {
10670         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateDomAlias_alias_handle, 0);
10671
10672         return offset;
10673 }
10674
10675 static int
10676 samr_dissect_element_CreateDomAlias_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10677 {
10678         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_CreateDomAlias_rid_, NDR_POINTER_REF, "Pointer to Rid (uint32)",hf_samr_samr_CreateDomAlias_rid);
10679
10680         return offset;
10681 }
10682
10683 static int
10684 samr_dissect_element_CreateDomAlias_rid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10685 {
10686         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateDomAlias_rid, 0);
10687
10688         return offset;
10689 }
10690
10691 /* IDL: NTSTATUS samr_CreateDomAlias( */
10692 /* IDL: [in] [ref] policy_handle *domain_handle, */
10693 /* IDL: [in] [ref] lsa_String *alias_name, */
10694 /* IDL: [in] samr_AliasAccessMask access_mask, */
10695 /* IDL: [out] [ref] policy_handle *alias_handle, */
10696 /* IDL: [out] [ref] uint32 *rid */
10697 /* IDL: ); */
10698
10699 static int
10700 samr_dissect_CreateDomAlias_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10701 {
10702         guint32 status;
10703
10704         pinfo->dcerpc_procedure_name="CreateDomAlias";
10705         offset = samr_dissect_element_CreateDomAlias_alias_handle(tvb, offset, pinfo, tree, drep);
10706         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10707
10708         offset = samr_dissect_element_CreateDomAlias_rid(tvb, offset, pinfo, tree, drep);
10709         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10710
10711         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
10712
10713         if (status != 0)
10714                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
10715
10716         return offset;
10717 }
10718
10719 static int
10720 samr_dissect_CreateDomAlias_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10721 {
10722         pinfo->dcerpc_procedure_name="CreateDomAlias";
10723         offset = samr_dissect_element_CreateDomAlias_domain_handle(tvb, offset, pinfo, tree, drep);
10724         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10725         offset = samr_dissect_element_CreateDomAlias_alias_name(tvb, offset, pinfo, tree, drep);
10726         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10727         offset = samr_dissect_element_CreateDomAlias_access_mask(tvb, offset, pinfo, tree, drep);
10728         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10729         return offset;
10730 }
10731
10732 static int
10733 samr_dissect_element_EnumDomainAliases_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10734 {
10735         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_EnumDomainAliases_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_samr_EnumDomainAliases_domain_handle);
10736
10737         return offset;
10738 }
10739
10740 static int
10741 samr_dissect_element_EnumDomainAliases_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10742 {
10743         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_EnumDomainAliases_domain_handle, 0);
10744
10745         return offset;
10746 }
10747
10748 static int
10749 samr_dissect_element_EnumDomainAliases_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10750 {
10751         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_EnumDomainAliases_resume_handle_, NDR_POINTER_REF, "Pointer to Resume Handle (uint32)",hf_samr_samr_EnumDomainAliases_resume_handle);
10752
10753         return offset;
10754 }
10755
10756 static int
10757 samr_dissect_element_EnumDomainAliases_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10758 {
10759         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_EnumDomainAliases_resume_handle, 0);
10760
10761         return offset;
10762 }
10763
10764 static int
10765 samr_dissect_element_EnumDomainAliases_sam(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10766 {
10767         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_EnumDomainAliases_sam_, NDR_POINTER_REF, "Pointer to Sam (samr_SamArray)",hf_samr_samr_EnumDomainAliases_sam);
10768
10769         return offset;
10770 }
10771
10772 static int
10773 samr_dissect_element_EnumDomainAliases_sam_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10774 {
10775         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_EnumDomainAliases_sam__, NDR_POINTER_UNIQUE, "Pointer to Sam (samr_SamArray)",hf_samr_samr_EnumDomainAliases_sam);
10776
10777         return offset;
10778 }
10779
10780 static int
10781 samr_dissect_element_EnumDomainAliases_sam__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10782 {
10783         offset = samr_dissect_struct_SamArray(tvb,offset,pinfo,tree,drep,hf_samr_samr_EnumDomainAliases_sam,0);
10784
10785         return offset;
10786 }
10787
10788 static int
10789 samr_dissect_element_EnumDomainAliases_max_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10790 {
10791         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_EnumDomainAliases_max_size, 0);
10792
10793         return offset;
10794 }
10795
10796 static int
10797 samr_dissect_element_EnumDomainAliases_num_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10798 {
10799         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_EnumDomainAliases_num_entries_, NDR_POINTER_REF, "Pointer to Num Entries (uint32)",hf_samr_samr_EnumDomainAliases_num_entries);
10800
10801         return offset;
10802 }
10803
10804 static int
10805 samr_dissect_element_EnumDomainAliases_num_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10806 {
10807         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_EnumDomainAliases_num_entries, 0);
10808
10809         return offset;
10810 }
10811
10812 /* IDL: NTSTATUS samr_EnumDomainAliases( */
10813 /* IDL: [ref] [in] policy_handle *domain_handle, */
10814 /* IDL: [out] [in] [ref] uint32 *resume_handle, */
10815 /* IDL: [out] [ref] samr_SamArray **sam, */
10816 /* IDL: [in] uint32 max_size, */
10817 /* IDL: [out] [ref] uint32 *num_entries */
10818 /* IDL: ); */
10819
10820 static int
10821 samr_dissect_EnumDomainAliases_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10822 {
10823         guint32 status;
10824
10825         pinfo->dcerpc_procedure_name="EnumDomainAliases";
10826         offset = samr_dissect_element_EnumDomainAliases_resume_handle(tvb, offset, pinfo, tree, drep);
10827         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10828
10829         offset = samr_dissect_element_EnumDomainAliases_sam(tvb, offset, pinfo, tree, drep);
10830         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10831
10832         offset = samr_dissect_element_EnumDomainAliases_num_entries(tvb, offset, pinfo, tree, drep);
10833         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10834
10835         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
10836
10837         if (status != 0)
10838                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
10839
10840         return offset;
10841 }
10842
10843 static int
10844 samr_dissect_EnumDomainAliases_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10845 {
10846         pinfo->dcerpc_procedure_name="EnumDomainAliases";
10847         offset = samr_dissect_element_EnumDomainAliases_domain_handle(tvb, offset, pinfo, tree, drep);
10848         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10849         offset = samr_dissect_element_EnumDomainAliases_resume_handle(tvb, offset, pinfo, tree, drep);
10850         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10851         offset = samr_dissect_element_EnumDomainAliases_max_size(tvb, offset, pinfo, tree, drep);
10852         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10853         return offset;
10854 }
10855
10856 static int
10857 samr_dissect_element_GetAliasMembership_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10858 {
10859         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_GetAliasMembership_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_samr_GetAliasMembership_domain_handle);
10860
10861         return offset;
10862 }
10863
10864 static int
10865 samr_dissect_element_GetAliasMembership_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10866 {
10867         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_GetAliasMembership_domain_handle, 0);
10868
10869         return offset;
10870 }
10871
10872 static int
10873 samr_dissect_element_GetAliasMembership_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10874 {
10875         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_GetAliasMembership_sids_, NDR_POINTER_REF, "Pointer to Sids (lsa_SidArray)",hf_samr_samr_GetAliasMembership_sids);
10876
10877         return offset;
10878 }
10879
10880 static int
10881 samr_dissect_element_GetAliasMembership_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10882 {
10883         offset = samr_dissect_struct_lsa_SidArray(tvb,offset,pinfo,tree,drep,hf_samr_samr_GetAliasMembership_sids,0);
10884
10885         return offset;
10886 }
10887
10888 static int
10889 samr_dissect_element_GetAliasMembership_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10890 {
10891         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_GetAliasMembership_rids_, NDR_POINTER_REF, "Pointer to Rids (samr_Ids)",hf_samr_samr_GetAliasMembership_rids);
10892
10893         return offset;
10894 }
10895
10896 static int
10897 samr_dissect_element_GetAliasMembership_rids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10898 {
10899         offset = samr_dissect_struct_Ids(tvb,offset,pinfo,tree,drep,hf_samr_samr_GetAliasMembership_rids,0);
10900
10901         return offset;
10902 }
10903
10904 /* IDL: NTSTATUS samr_GetAliasMembership( */
10905 /* IDL: [in] [ref] policy_handle *domain_handle, */
10906 /* IDL: [in] [ref] lsa_SidArray *sids, */
10907 /* IDL: [out] [ref] samr_Ids *rids */
10908 /* IDL: ); */
10909
10910 static int
10911 samr_dissect_GetAliasMembership_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10912 {
10913         guint32 status;
10914
10915         pinfo->dcerpc_procedure_name="GetAliasMembership";
10916         offset = samr_dissect_element_GetAliasMembership_rids(tvb, offset, pinfo, tree, drep);
10917         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10918
10919         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
10920
10921         if (status != 0)
10922                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
10923
10924         return offset;
10925 }
10926
10927 static int
10928 samr_dissect_GetAliasMembership_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10929 {
10930         pinfo->dcerpc_procedure_name="GetAliasMembership";
10931         offset = samr_dissect_element_GetAliasMembership_domain_handle(tvb, offset, pinfo, tree, drep);
10932         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10933         offset = samr_dissect_element_GetAliasMembership_sids(tvb, offset, pinfo, tree, drep);
10934         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10935         return offset;
10936 }
10937
10938 static int
10939 samr_dissect_element_LookupNames_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10940 {
10941         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_LookupNames_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_samr_LookupNames_domain_handle);
10942
10943         return offset;
10944 }
10945
10946 static int
10947 samr_dissect_element_LookupNames_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10948 {
10949         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_LookupNames_domain_handle, 0);
10950
10951         return offset;
10952 }
10953
10954 static int
10955 samr_dissect_element_LookupNames_num_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10956 {
10957         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_LookupNames_num_names, 0);
10958
10959         return offset;
10960 }
10961
10962 static int
10963 samr_dissect_element_LookupNames_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10964 {
10965         offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, samr_dissect_element_LookupNames_names_);
10966
10967         return offset;
10968 }
10969
10970 static int
10971 samr_dissect_element_LookupNames_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10972 {
10973         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_LookupNames_names,0);
10974
10975         return offset;
10976 }
10977
10978 static int
10979 samr_dissect_element_LookupNames_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10980 {
10981         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_LookupNames_rids_, NDR_POINTER_REF, "Pointer to Rids (samr_Ids)",hf_samr_samr_LookupNames_rids);
10982
10983         return offset;
10984 }
10985
10986 static int
10987 samr_dissect_element_LookupNames_rids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10988 {
10989         offset = samr_dissect_struct_Ids(tvb,offset,pinfo,tree,drep,hf_samr_samr_LookupNames_rids,0);
10990
10991         return offset;
10992 }
10993
10994 static int
10995 samr_dissect_element_LookupNames_types(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10996 {
10997         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_LookupNames_types_, NDR_POINTER_REF, "Pointer to Types (samr_Ids)",hf_samr_samr_LookupNames_types);
10998
10999         return offset;
11000 }
11001
11002 static int
11003 samr_dissect_element_LookupNames_types_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11004 {
11005         offset = samr_dissect_struct_Ids(tvb,offset,pinfo,tree,drep,hf_samr_samr_LookupNames_types,0);
11006
11007         return offset;
11008 }
11009
11010 /* IDL: NTSTATUS samr_LookupNames( */
11011 /* IDL: [in] [ref] policy_handle *domain_handle, */
11012 /* IDL: [in] [range(0,1000)] uint32 num_names, */
11013 /* IDL: [in] [length_is(num_names)] [size_is(1000)] lsa_String names[*], */
11014 /* IDL: [out] [ref] samr_Ids *rids, */
11015 /* IDL: [out] [ref] samr_Ids *types */
11016 /* IDL: ); */
11017
11018 static int
11019 samr_dissect_LookupNames_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11020 {
11021         guint32 status;
11022
11023         pinfo->dcerpc_procedure_name="LookupNames";
11024         offset = samr_dissect_element_LookupNames_rids(tvb, offset, pinfo, tree, drep);
11025         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11026
11027         offset = samr_dissect_element_LookupNames_types(tvb, offset, pinfo, tree, drep);
11028         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11029
11030         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
11031
11032         if (status != 0)
11033                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
11034
11035         return offset;
11036 }
11037
11038 static int
11039 samr_dissect_LookupNames_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11040 {
11041         pinfo->dcerpc_procedure_name="LookupNames";
11042         offset = samr_dissect_element_LookupNames_domain_handle(tvb, offset, pinfo, tree, drep);
11043         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11044         offset = samr_dissect_element_LookupNames_num_names(tvb, offset, pinfo, tree, drep);
11045         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11046         offset = samr_dissect_element_LookupNames_names(tvb, offset, pinfo, tree, drep);
11047         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11048         return offset;
11049 }
11050
11051 static int
11052 samr_dissect_element_LookupRids_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11053 {
11054         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_LookupRids_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_samr_LookupRids_domain_handle);
11055
11056         return offset;
11057 }
11058
11059 static int
11060 samr_dissect_element_LookupRids_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11061 {
11062         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_LookupRids_domain_handle, 0);
11063
11064         return offset;
11065 }
11066
11067 static int
11068 samr_dissect_element_LookupRids_num_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11069 {
11070         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_LookupRids_num_rids, 0);
11071
11072         return offset;
11073 }
11074
11075 static int
11076 samr_dissect_element_LookupRids_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11077 {
11078         offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, samr_dissect_element_LookupRids_rids_);
11079
11080         return offset;
11081 }
11082
11083 static int
11084 samr_dissect_element_LookupRids_rids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11085 {
11086         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_LookupRids_rids, 0);
11087
11088         return offset;
11089 }
11090
11091 static int
11092 samr_dissect_element_LookupRids_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11093 {
11094         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_LookupRids_names_, NDR_POINTER_REF, "Pointer to Names (lsa_Strings)",hf_samr_samr_LookupRids_names);
11095
11096         return offset;
11097 }
11098
11099 static int
11100 samr_dissect_element_LookupRids_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11101 {
11102         offset = samr_dissect_struct_lsa_Strings(tvb,offset,pinfo,tree,drep,hf_samr_samr_LookupRids_names,0);
11103
11104         return offset;
11105 }
11106
11107 static int
11108 samr_dissect_element_LookupRids_types(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11109 {
11110         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_LookupRids_types_, NDR_POINTER_REF, "Pointer to Types (samr_Ids)",hf_samr_samr_LookupRids_types);
11111
11112         return offset;
11113 }
11114
11115 static int
11116 samr_dissect_element_LookupRids_types_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11117 {
11118         offset = samr_dissect_struct_Ids(tvb,offset,pinfo,tree,drep,hf_samr_samr_LookupRids_types,0);
11119
11120         return offset;
11121 }
11122
11123 /* IDL: NTSTATUS samr_LookupRids( */
11124 /* IDL: [in] [ref] policy_handle *domain_handle, */
11125 /* IDL: [in] [range(0,1000)] uint32 num_rids, */
11126 /* IDL: [in] [length_is(num_rids)] [size_is(1000)] uint32 rids[*], */
11127 /* IDL: [out] [ref] lsa_Strings *names, */
11128 /* IDL: [out] [ref] samr_Ids *types */
11129 /* IDL: ); */
11130
11131 static int
11132 samr_dissect_LookupRids_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11133 {
11134         guint32 status;
11135
11136         pinfo->dcerpc_procedure_name="LookupRids";
11137         offset = samr_dissect_element_LookupRids_names(tvb, offset, pinfo, tree, drep);
11138         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11139
11140         offset = samr_dissect_element_LookupRids_types(tvb, offset, pinfo, tree, drep);
11141         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11142
11143         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
11144
11145         if (status != 0)
11146                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
11147
11148         return offset;
11149 }
11150
11151 static int
11152 samr_dissect_LookupRids_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11153 {
11154         pinfo->dcerpc_procedure_name="LookupRids";
11155         offset = samr_dissect_element_LookupRids_domain_handle(tvb, offset, pinfo, tree, drep);
11156         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11157         offset = samr_dissect_element_LookupRids_num_rids(tvb, offset, pinfo, tree, drep);
11158         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11159         offset = samr_dissect_element_LookupRids_rids(tvb, offset, pinfo, tree, drep);
11160         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11161         return offset;
11162 }
11163
11164 static int
11165 samr_dissect_element_OpenGroup_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11166 {
11167         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_OpenGroup_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_samr_OpenGroup_domain_handle);
11168
11169         return offset;
11170 }
11171
11172 static int
11173 samr_dissect_element_OpenGroup_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11174 {
11175         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_OpenGroup_domain_handle, 0);
11176
11177         return offset;
11178 }
11179
11180 static int
11181 samr_dissect_element_OpenGroup_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11182 {
11183         offset = samr_dissect_bitmap_GroupAccessMask(tvb, offset, pinfo, tree, drep, hf_samr_samr_OpenGroup_access_mask, 0);
11184
11185         return offset;
11186 }
11187
11188 static int
11189 samr_dissect_element_OpenGroup_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11190 {
11191         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_OpenGroup_rid, 0);
11192
11193         return offset;
11194 }
11195
11196 static int
11197 samr_dissect_element_OpenGroup_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11198 {
11199         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_OpenGroup_group_handle_, NDR_POINTER_REF, "Pointer to Group Handle (policy_handle)",hf_samr_samr_OpenGroup_group_handle);
11200
11201         return offset;
11202 }
11203
11204 static int
11205 samr_dissect_element_OpenGroup_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11206 {
11207         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_OpenGroup_group_handle, 0);
11208
11209         return offset;
11210 }
11211
11212 /* IDL: NTSTATUS samr_OpenGroup( */
11213 /* IDL: [in] [ref] policy_handle *domain_handle, */
11214 /* IDL: [in] samr_GroupAccessMask access_mask, */
11215 /* IDL: [in] uint32 rid, */
11216 /* IDL: [out] [ref] policy_handle *group_handle */
11217 /* IDL: ); */
11218
11219 static int
11220 samr_dissect_OpenGroup_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11221 {
11222         guint32 status;
11223
11224         pinfo->dcerpc_procedure_name="OpenGroup";
11225         offset = samr_dissect_element_OpenGroup_group_handle(tvb, offset, pinfo, tree, drep);
11226         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11227
11228         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
11229
11230         if (status != 0)
11231                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
11232
11233         return offset;
11234 }
11235
11236 static int
11237 samr_dissect_OpenGroup_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11238 {
11239         pinfo->dcerpc_procedure_name="OpenGroup";
11240         offset = samr_dissect_element_OpenGroup_domain_handle(tvb, offset, pinfo, tree, drep);
11241         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11242         offset = samr_dissect_element_OpenGroup_access_mask(tvb, offset, pinfo, tree, drep);
11243         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11244         offset = samr_dissect_element_OpenGroup_rid(tvb, offset, pinfo, tree, drep);
11245         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11246         return offset;
11247 }
11248
11249 static int
11250 samr_dissect_element_QueryGroupInfo_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11251 {
11252         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryGroupInfo_group_handle_, NDR_POINTER_REF, "Pointer to Group Handle (policy_handle)",hf_samr_samr_QueryGroupInfo_group_handle);
11253
11254         return offset;
11255 }
11256
11257 static int
11258 samr_dissect_element_QueryGroupInfo_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11259 {
11260         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryGroupInfo_group_handle, 0);
11261
11262         return offset;
11263 }
11264
11265 static int
11266 samr_dissect_element_QueryGroupInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11267 {
11268         offset = samr_dissect_enum_GroupInfoEnum(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryGroupInfo_level, 0);
11269
11270         return offset;
11271 }
11272
11273 static int
11274 samr_dissect_element_QueryGroupInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11275 {
11276         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryGroupInfo_info_, NDR_POINTER_REF, "Pointer to Info (samr_GroupInfo)",hf_samr_samr_QueryGroupInfo_info);
11277
11278         return offset;
11279 }
11280
11281 static int
11282 samr_dissect_element_QueryGroupInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11283 {
11284         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryGroupInfo_info__, NDR_POINTER_UNIQUE, "Pointer to Info (samr_GroupInfo)",hf_samr_samr_QueryGroupInfo_info);
11285
11286         return offset;
11287 }
11288
11289 static int
11290 samr_dissect_element_QueryGroupInfo_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11291 {
11292         offset = samr_dissect_GroupInfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryGroupInfo_info, *0);
11293
11294         return offset;
11295 }
11296
11297 /* IDL: NTSTATUS samr_QueryGroupInfo( */
11298 /* IDL: [in] [ref] policy_handle *group_handle, */
11299 /* IDL: [in] samr_GroupInfoEnum level, */
11300 /* IDL: [out] [ref] [switch_is(level)] samr_GroupInfo **info */
11301 /* IDL: ); */
11302
11303 static int
11304 samr_dissect_QueryGroupInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11305 {
11306         guint32 status;
11307
11308         pinfo->dcerpc_procedure_name="QueryGroupInfo";
11309         offset = samr_dissect_element_QueryGroupInfo_info(tvb, offset, pinfo, tree, drep);
11310         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11311
11312         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
11313
11314         if (status != 0)
11315                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
11316
11317         return offset;
11318 }
11319
11320 static int
11321 samr_dissect_QueryGroupInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11322 {
11323         pinfo->dcerpc_procedure_name="QueryGroupInfo";
11324         offset = samr_dissect_element_QueryGroupInfo_group_handle(tvb, offset, pinfo, tree, drep);
11325         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11326         offset = samr_dissect_element_QueryGroupInfo_level(tvb, offset, pinfo, tree, drep);
11327         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11328         return offset;
11329 }
11330
11331 static int
11332 samr_dissect_element_SetGroupInfo_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11333 {
11334         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_SetGroupInfo_group_handle_, NDR_POINTER_REF, "Pointer to Group Handle (policy_handle)",hf_samr_samr_SetGroupInfo_group_handle);
11335
11336         return offset;
11337 }
11338
11339 static int
11340 samr_dissect_element_SetGroupInfo_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11341 {
11342         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetGroupInfo_group_handle, 0);
11343
11344         return offset;
11345 }
11346
11347 static int
11348 samr_dissect_element_SetGroupInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11349 {
11350         offset = samr_dissect_enum_GroupInfoEnum(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetGroupInfo_level, 0);
11351
11352         return offset;
11353 }
11354
11355 static int
11356 samr_dissect_element_SetGroupInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11357 {
11358         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_SetGroupInfo_info_, NDR_POINTER_REF, "Pointer to Info (samr_GroupInfo)",hf_samr_samr_SetGroupInfo_info);
11359
11360         return offset;
11361 }
11362
11363 static int
11364 samr_dissect_element_SetGroupInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11365 {
11366         offset = samr_dissect_GroupInfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetGroupInfo_info, *0);
11367
11368         return offset;
11369 }
11370
11371 /* IDL: NTSTATUS samr_SetGroupInfo( */
11372 /* IDL: [in] [ref] policy_handle *group_handle, */
11373 /* IDL: [in] samr_GroupInfoEnum level, */
11374 /* IDL: [in] [ref] [switch_is(level)] samr_GroupInfo *info */
11375 /* IDL: ); */
11376
11377 static int
11378 samr_dissect_SetGroupInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11379 {
11380         guint32 status;
11381
11382         pinfo->dcerpc_procedure_name="SetGroupInfo";
11383         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
11384
11385         if (status != 0)
11386                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
11387
11388         return offset;
11389 }
11390
11391 static int
11392 samr_dissect_SetGroupInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11393 {
11394         pinfo->dcerpc_procedure_name="SetGroupInfo";
11395         offset = samr_dissect_element_SetGroupInfo_group_handle(tvb, offset, pinfo, tree, drep);
11396         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11397         offset = samr_dissect_element_SetGroupInfo_level(tvb, offset, pinfo, tree, drep);
11398         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11399         offset = samr_dissect_element_SetGroupInfo_info(tvb, offset, pinfo, tree, drep);
11400         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11401         return offset;
11402 }
11403
11404 static int
11405 samr_dissect_element_AddGroupMember_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11406 {
11407         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_AddGroupMember_group_handle_, NDR_POINTER_REF, "Pointer to Group Handle (policy_handle)",hf_samr_samr_AddGroupMember_group_handle);
11408
11409         return offset;
11410 }
11411
11412 static int
11413 samr_dissect_element_AddGroupMember_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11414 {
11415         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_AddGroupMember_group_handle, 0);
11416
11417         return offset;
11418 }
11419
11420 static int
11421 samr_dissect_element_AddGroupMember_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11422 {
11423         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_AddGroupMember_rid, 0);
11424
11425         return offset;
11426 }
11427
11428 static int
11429 samr_dissect_element_AddGroupMember_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11430 {
11431         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_AddGroupMember_flags, 0);
11432
11433         return offset;
11434 }
11435
11436 /* IDL: NTSTATUS samr_AddGroupMember( */
11437 /* IDL: [in] [ref] policy_handle *group_handle, */
11438 /* IDL: [in] uint32 rid, */
11439 /* IDL: [in] uint32 flags */
11440 /* IDL: ); */
11441
11442 static int
11443 samr_dissect_AddGroupMember_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11444 {
11445         guint32 status;
11446
11447         pinfo->dcerpc_procedure_name="AddGroupMember";
11448         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
11449
11450         if (status != 0)
11451                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
11452
11453         return offset;
11454 }
11455
11456 static int
11457 samr_dissect_AddGroupMember_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11458 {
11459         pinfo->dcerpc_procedure_name="AddGroupMember";
11460         offset = samr_dissect_element_AddGroupMember_group_handle(tvb, offset, pinfo, tree, drep);
11461         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11462         offset = samr_dissect_element_AddGroupMember_rid(tvb, offset, pinfo, tree, drep);
11463         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11464         offset = samr_dissect_element_AddGroupMember_flags(tvb, offset, pinfo, tree, drep);
11465         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11466         return offset;
11467 }
11468
11469 static int
11470 samr_dissect_element_DeleteDomainGroup_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11471 {
11472         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_DeleteDomainGroup_group_handle_, NDR_POINTER_REF, "Pointer to Group Handle (policy_handle)",hf_samr_samr_DeleteDomainGroup_group_handle);
11473
11474         return offset;
11475 }
11476
11477 static int
11478 samr_dissect_element_DeleteDomainGroup_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11479 {
11480         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_DeleteDomainGroup_group_handle, 0);
11481
11482         return offset;
11483 }
11484
11485 /* IDL: NTSTATUS samr_DeleteDomainGroup( */
11486 /* IDL: [out] [in] [ref] policy_handle *group_handle */
11487 /* IDL: ); */
11488
11489 static int
11490 samr_dissect_DeleteDomainGroup_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11491 {
11492         guint32 status;
11493
11494         pinfo->dcerpc_procedure_name="DeleteDomainGroup";
11495         offset = samr_dissect_element_DeleteDomainGroup_group_handle(tvb, offset, pinfo, tree, drep);
11496         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11497
11498         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
11499
11500         if (status != 0)
11501                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
11502
11503         return offset;
11504 }
11505
11506 static int
11507 samr_dissect_DeleteDomainGroup_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11508 {
11509         pinfo->dcerpc_procedure_name="DeleteDomainGroup";
11510         offset = samr_dissect_element_DeleteDomainGroup_group_handle(tvb, offset, pinfo, tree, drep);
11511         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11512         return offset;
11513 }
11514
11515 static int
11516 samr_dissect_element_DeleteGroupMember_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11517 {
11518         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_DeleteGroupMember_group_handle_, NDR_POINTER_REF, "Pointer to Group Handle (policy_handle)",hf_samr_samr_DeleteGroupMember_group_handle);
11519
11520         return offset;
11521 }
11522
11523 static int
11524 samr_dissect_element_DeleteGroupMember_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11525 {
11526         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_DeleteGroupMember_group_handle, 0);
11527
11528         return offset;
11529 }
11530
11531 static int
11532 samr_dissect_element_DeleteGroupMember_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11533 {
11534         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_DeleteGroupMember_rid, 0);
11535
11536         return offset;
11537 }
11538
11539 /* IDL: NTSTATUS samr_DeleteGroupMember( */
11540 /* IDL: [in] [ref] policy_handle *group_handle, */
11541 /* IDL: [in] uint32 rid */
11542 /* IDL: ); */
11543
11544 static int
11545 samr_dissect_DeleteGroupMember_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11546 {
11547         guint32 status;
11548
11549         pinfo->dcerpc_procedure_name="DeleteGroupMember";
11550         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
11551
11552         if (status != 0)
11553                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
11554
11555         return offset;
11556 }
11557
11558 static int
11559 samr_dissect_DeleteGroupMember_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11560 {
11561         pinfo->dcerpc_procedure_name="DeleteGroupMember";
11562         offset = samr_dissect_element_DeleteGroupMember_group_handle(tvb, offset, pinfo, tree, drep);
11563         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11564         offset = samr_dissect_element_DeleteGroupMember_rid(tvb, offset, pinfo, tree, drep);
11565         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11566         return offset;
11567 }
11568
11569 static int
11570 samr_dissect_element_QueryGroupMember_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11571 {
11572         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryGroupMember_group_handle_, NDR_POINTER_REF, "Pointer to Group Handle (policy_handle)",hf_samr_samr_QueryGroupMember_group_handle);
11573
11574         return offset;
11575 }
11576
11577 static int
11578 samr_dissect_element_QueryGroupMember_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11579 {
11580         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryGroupMember_group_handle, 0);
11581
11582         return offset;
11583 }
11584
11585 static int
11586 samr_dissect_element_QueryGroupMember_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11587 {
11588         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryGroupMember_rids_, NDR_POINTER_REF, "Pointer to Rids (samr_RidAttrArray)",hf_samr_samr_QueryGroupMember_rids);
11589
11590         return offset;
11591 }
11592
11593 static int
11594 samr_dissect_element_QueryGroupMember_rids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11595 {
11596         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryGroupMember_rids__, NDR_POINTER_UNIQUE, "Pointer to Rids (samr_RidAttrArray)",hf_samr_samr_QueryGroupMember_rids);
11597
11598         return offset;
11599 }
11600
11601 static int
11602 samr_dissect_element_QueryGroupMember_rids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11603 {
11604         offset = samr_dissect_struct_RidAttrArray(tvb,offset,pinfo,tree,drep,hf_samr_samr_QueryGroupMember_rids,0);
11605
11606         return offset;
11607 }
11608
11609 /* IDL: NTSTATUS samr_QueryGroupMember( */
11610 /* IDL: [in] [ref] policy_handle *group_handle, */
11611 /* IDL: [out] [ref] samr_RidAttrArray **rids */
11612 /* IDL: ); */
11613
11614 static int
11615 samr_dissect_QueryGroupMember_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11616 {
11617         guint32 status;
11618
11619         pinfo->dcerpc_procedure_name="QueryGroupMember";
11620         offset = samr_dissect_element_QueryGroupMember_rids(tvb, offset, pinfo, tree, drep);
11621         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11622
11623         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
11624
11625         if (status != 0)
11626                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
11627
11628         return offset;
11629 }
11630
11631 static int
11632 samr_dissect_QueryGroupMember_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11633 {
11634         pinfo->dcerpc_procedure_name="QueryGroupMember";
11635         offset = samr_dissect_element_QueryGroupMember_group_handle(tvb, offset, pinfo, tree, drep);
11636         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11637         return offset;
11638 }
11639
11640 static int
11641 samr_dissect_element_SetMemberAttributesOfGroup_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11642 {
11643         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_SetMemberAttributesOfGroup_group_handle_, NDR_POINTER_REF, "Pointer to Group Handle (policy_handle)",hf_samr_samr_SetMemberAttributesOfGroup_group_handle);
11644
11645         return offset;
11646 }
11647
11648 static int
11649 samr_dissect_element_SetMemberAttributesOfGroup_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11650 {
11651         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetMemberAttributesOfGroup_group_handle, 0);
11652
11653         return offset;
11654 }
11655
11656 static int
11657 samr_dissect_element_SetMemberAttributesOfGroup_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11658 {
11659         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetMemberAttributesOfGroup_unknown1, 0);
11660
11661         return offset;
11662 }
11663
11664 static int
11665 samr_dissect_element_SetMemberAttributesOfGroup_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11666 {
11667         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetMemberAttributesOfGroup_unknown2, 0);
11668
11669         return offset;
11670 }
11671
11672 /* IDL: NTSTATUS samr_SetMemberAttributesOfGroup( */
11673 /* IDL: [in] [ref] policy_handle *group_handle, */
11674 /* IDL: [in] uint32 unknown1, */
11675 /* IDL: [in] uint32 unknown2 */
11676 /* IDL: ); */
11677
11678 static int
11679 samr_dissect_SetMemberAttributesOfGroup_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11680 {
11681         guint32 status;
11682
11683         pinfo->dcerpc_procedure_name="SetMemberAttributesOfGroup";
11684         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
11685
11686         if (status != 0)
11687                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
11688
11689         return offset;
11690 }
11691
11692 static int
11693 samr_dissect_SetMemberAttributesOfGroup_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11694 {
11695         pinfo->dcerpc_procedure_name="SetMemberAttributesOfGroup";
11696         offset = samr_dissect_element_SetMemberAttributesOfGroup_group_handle(tvb, offset, pinfo, tree, drep);
11697         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11698         offset = samr_dissect_element_SetMemberAttributesOfGroup_unknown1(tvb, offset, pinfo, tree, drep);
11699         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11700         offset = samr_dissect_element_SetMemberAttributesOfGroup_unknown2(tvb, offset, pinfo, tree, drep);
11701         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11702         return offset;
11703 }
11704
11705 static int
11706 samr_dissect_element_OpenAlias_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11707 {
11708         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_OpenAlias_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_samr_OpenAlias_domain_handle);
11709
11710         return offset;
11711 }
11712
11713 static int
11714 samr_dissect_element_OpenAlias_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11715 {
11716         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_OpenAlias_domain_handle, 0);
11717
11718         return offset;
11719 }
11720
11721 static int
11722 samr_dissect_element_OpenAlias_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11723 {
11724         offset = samr_dissect_bitmap_AliasAccessMask(tvb, offset, pinfo, tree, drep, hf_samr_samr_OpenAlias_access_mask, 0);
11725
11726         return offset;
11727 }
11728
11729 static int
11730 samr_dissect_element_OpenAlias_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11731 {
11732         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_OpenAlias_rid, 0);
11733
11734         return offset;
11735 }
11736
11737 static int
11738 samr_dissect_element_OpenAlias_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11739 {
11740         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_OpenAlias_alias_handle_, NDR_POINTER_REF, "Pointer to Alias Handle (policy_handle)",hf_samr_samr_OpenAlias_alias_handle);
11741
11742         return offset;
11743 }
11744
11745 static int
11746 samr_dissect_element_OpenAlias_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11747 {
11748         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_OpenAlias_alias_handle, 0);
11749
11750         return offset;
11751 }
11752
11753 /* IDL: NTSTATUS samr_OpenAlias( */
11754 /* IDL: [in] [ref] policy_handle *domain_handle, */
11755 /* IDL: [in] samr_AliasAccessMask access_mask, */
11756 /* IDL: [in] uint32 rid, */
11757 /* IDL: [out] [ref] policy_handle *alias_handle */
11758 /* IDL: ); */
11759
11760 static int
11761 samr_dissect_OpenAlias_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11762 {
11763         guint32 status;
11764
11765         pinfo->dcerpc_procedure_name="OpenAlias";
11766         offset = samr_dissect_element_OpenAlias_alias_handle(tvb, offset, pinfo, tree, drep);
11767         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11768
11769         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
11770
11771         if (status != 0)
11772                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
11773
11774         return offset;
11775 }
11776
11777 static int
11778 samr_dissect_OpenAlias_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11779 {
11780         pinfo->dcerpc_procedure_name="OpenAlias";
11781         offset = samr_dissect_element_OpenAlias_domain_handle(tvb, offset, pinfo, tree, drep);
11782         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11783         offset = samr_dissect_element_OpenAlias_access_mask(tvb, offset, pinfo, tree, drep);
11784         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11785         offset = samr_dissect_element_OpenAlias_rid(tvb, offset, pinfo, tree, drep);
11786         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11787         return offset;
11788 }
11789
11790 static int
11791 samr_dissect_element_QueryAliasInfo_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11792 {
11793         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryAliasInfo_alias_handle_, NDR_POINTER_REF, "Pointer to Alias Handle (policy_handle)",hf_samr_samr_QueryAliasInfo_alias_handle);
11794
11795         return offset;
11796 }
11797
11798 static int
11799 samr_dissect_element_QueryAliasInfo_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11800 {
11801         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryAliasInfo_alias_handle, 0);
11802
11803         return offset;
11804 }
11805
11806 static int
11807 samr_dissect_element_QueryAliasInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11808 {
11809         offset = samr_dissect_enum_AliasInfoEnum(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryAliasInfo_level, 0);
11810
11811         return offset;
11812 }
11813
11814 static int
11815 samr_dissect_element_QueryAliasInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11816 {
11817         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryAliasInfo_info_, NDR_POINTER_REF, "Pointer to Info (samr_AliasInfo)",hf_samr_samr_QueryAliasInfo_info);
11818
11819         return offset;
11820 }
11821
11822 static int
11823 samr_dissect_element_QueryAliasInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11824 {
11825         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryAliasInfo_info__, NDR_POINTER_UNIQUE, "Pointer to Info (samr_AliasInfo)",hf_samr_samr_QueryAliasInfo_info);
11826
11827         return offset;
11828 }
11829
11830 static int
11831 samr_dissect_element_QueryAliasInfo_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11832 {
11833         offset = samr_dissect_AliasInfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryAliasInfo_info, *0);
11834
11835         return offset;
11836 }
11837
11838 /* IDL: NTSTATUS samr_QueryAliasInfo( */
11839 /* IDL: [in] [ref] policy_handle *alias_handle, */
11840 /* IDL: [in] samr_AliasInfoEnum level, */
11841 /* IDL: [out] [ref] [switch_is(level)] samr_AliasInfo **info */
11842 /* IDL: ); */
11843
11844 static int
11845 samr_dissect_QueryAliasInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11846 {
11847         guint32 status;
11848
11849         pinfo->dcerpc_procedure_name="QueryAliasInfo";
11850         offset = samr_dissect_element_QueryAliasInfo_info(tvb, offset, pinfo, tree, drep);
11851         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11852
11853         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
11854
11855         if (status != 0)
11856                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
11857
11858         return offset;
11859 }
11860
11861 static int
11862 samr_dissect_QueryAliasInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11863 {
11864         pinfo->dcerpc_procedure_name="QueryAliasInfo";
11865         offset = samr_dissect_element_QueryAliasInfo_alias_handle(tvb, offset, pinfo, tree, drep);
11866         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11867         offset = samr_dissect_element_QueryAliasInfo_level(tvb, offset, pinfo, tree, drep);
11868         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11869         return offset;
11870 }
11871
11872 static int
11873 samr_dissect_element_SetAliasInfo_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11874 {
11875         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_SetAliasInfo_alias_handle_, NDR_POINTER_REF, "Pointer to Alias Handle (policy_handle)",hf_samr_samr_SetAliasInfo_alias_handle);
11876
11877         return offset;
11878 }
11879
11880 static int
11881 samr_dissect_element_SetAliasInfo_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11882 {
11883         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetAliasInfo_alias_handle, 0);
11884
11885         return offset;
11886 }
11887
11888 static int
11889 samr_dissect_element_SetAliasInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11890 {
11891         offset = samr_dissect_enum_AliasInfoEnum(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetAliasInfo_level, 0);
11892
11893         return offset;
11894 }
11895
11896 static int
11897 samr_dissect_element_SetAliasInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11898 {
11899         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_SetAliasInfo_info_, NDR_POINTER_REF, "Pointer to Info (samr_AliasInfo)",hf_samr_samr_SetAliasInfo_info);
11900
11901         return offset;
11902 }
11903
11904 static int
11905 samr_dissect_element_SetAliasInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11906 {
11907         offset = samr_dissect_AliasInfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetAliasInfo_info, *0);
11908
11909         return offset;
11910 }
11911
11912 /* IDL: NTSTATUS samr_SetAliasInfo( */
11913 /* IDL: [in] [ref] policy_handle *alias_handle, */
11914 /* IDL: [in] samr_AliasInfoEnum level, */
11915 /* IDL: [in] [ref] [switch_is(level)] samr_AliasInfo *info */
11916 /* IDL: ); */
11917
11918 static int
11919 samr_dissect_SetAliasInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11920 {
11921         guint32 status;
11922
11923         pinfo->dcerpc_procedure_name="SetAliasInfo";
11924         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
11925
11926         if (status != 0)
11927                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
11928
11929         return offset;
11930 }
11931
11932 static int
11933 samr_dissect_SetAliasInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11934 {
11935         pinfo->dcerpc_procedure_name="SetAliasInfo";
11936         offset = samr_dissect_element_SetAliasInfo_alias_handle(tvb, offset, pinfo, tree, drep);
11937         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11938         offset = samr_dissect_element_SetAliasInfo_level(tvb, offset, pinfo, tree, drep);
11939         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11940         offset = samr_dissect_element_SetAliasInfo_info(tvb, offset, pinfo, tree, drep);
11941         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11942         return offset;
11943 }
11944
11945 static int
11946 samr_dissect_element_DeleteDomAlias_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11947 {
11948         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_DeleteDomAlias_alias_handle_, NDR_POINTER_REF, "Pointer to Alias Handle (policy_handle)",hf_samr_samr_DeleteDomAlias_alias_handle);
11949
11950         return offset;
11951 }
11952
11953 static int
11954 samr_dissect_element_DeleteDomAlias_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11955 {
11956         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_DeleteDomAlias_alias_handle, 0);
11957
11958         return offset;
11959 }
11960
11961 /* IDL: NTSTATUS samr_DeleteDomAlias( */
11962 /* IDL: [out] [in] [ref] policy_handle *alias_handle */
11963 /* IDL: ); */
11964
11965 static int
11966 samr_dissect_DeleteDomAlias_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11967 {
11968         guint32 status;
11969
11970         pinfo->dcerpc_procedure_name="DeleteDomAlias";
11971         offset = samr_dissect_element_DeleteDomAlias_alias_handle(tvb, offset, pinfo, tree, drep);
11972         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11973
11974         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
11975
11976         if (status != 0)
11977                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
11978
11979         return offset;
11980 }
11981
11982 static int
11983 samr_dissect_DeleteDomAlias_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11984 {
11985         pinfo->dcerpc_procedure_name="DeleteDomAlias";
11986         offset = samr_dissect_element_DeleteDomAlias_alias_handle(tvb, offset, pinfo, tree, drep);
11987         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11988         return offset;
11989 }
11990
11991 static int
11992 samr_dissect_element_AddAliasMember_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11993 {
11994         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_AddAliasMember_alias_handle_, NDR_POINTER_REF, "Pointer to Alias Handle (policy_handle)",hf_samr_samr_AddAliasMember_alias_handle);
11995
11996         return offset;
11997 }
11998
11999 static int
12000 samr_dissect_element_AddAliasMember_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12001 {
12002         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_AddAliasMember_alias_handle, 0);
12003
12004         return offset;
12005 }
12006
12007 static int
12008 samr_dissect_element_AddAliasMember_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12009 {
12010         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_AddAliasMember_sid_, NDR_POINTER_REF, "Pointer to Sid (dom_sid2)",hf_samr_samr_AddAliasMember_sid);
12011
12012         return offset;
12013 }
12014
12015 static int
12016 samr_dissect_element_AddAliasMember_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12017 {
12018         offset = samr_dissect_struct_dom_sid2(tvb,offset,pinfo,tree,drep,hf_samr_samr_AddAliasMember_sid,0);
12019
12020         return offset;
12021 }
12022
12023 /* IDL: NTSTATUS samr_AddAliasMember( */
12024 /* IDL: [in] [ref] policy_handle *alias_handle, */
12025 /* IDL: [in] [ref] dom_sid2 *sid */
12026 /* IDL: ); */
12027
12028 static int
12029 samr_dissect_AddAliasMember_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12030 {
12031         guint32 status;
12032
12033         pinfo->dcerpc_procedure_name="AddAliasMember";
12034         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
12035
12036         if (status != 0)
12037                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
12038
12039         return offset;
12040 }
12041
12042 static int
12043 samr_dissect_AddAliasMember_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12044 {
12045         pinfo->dcerpc_procedure_name="AddAliasMember";
12046         offset = samr_dissect_element_AddAliasMember_alias_handle(tvb, offset, pinfo, tree, drep);
12047         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12048         offset = samr_dissect_element_AddAliasMember_sid(tvb, offset, pinfo, tree, drep);
12049         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12050         return offset;
12051 }
12052
12053 static int
12054 samr_dissect_element_DeleteAliasMember_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12055 {
12056         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_DeleteAliasMember_alias_handle_, NDR_POINTER_REF, "Pointer to Alias Handle (policy_handle)",hf_samr_samr_DeleteAliasMember_alias_handle);
12057
12058         return offset;
12059 }
12060
12061 static int
12062 samr_dissect_element_DeleteAliasMember_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12063 {
12064         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_DeleteAliasMember_alias_handle, 0);
12065
12066         return offset;
12067 }
12068
12069 static int
12070 samr_dissect_element_DeleteAliasMember_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12071 {
12072         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_DeleteAliasMember_sid_, NDR_POINTER_REF, "Pointer to Sid (dom_sid2)",hf_samr_samr_DeleteAliasMember_sid);
12073
12074         return offset;
12075 }
12076
12077 static int
12078 samr_dissect_element_DeleteAliasMember_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12079 {
12080         offset = samr_dissect_struct_dom_sid2(tvb,offset,pinfo,tree,drep,hf_samr_samr_DeleteAliasMember_sid,0);
12081
12082         return offset;
12083 }
12084
12085 /* IDL: NTSTATUS samr_DeleteAliasMember( */
12086 /* IDL: [in] [ref] policy_handle *alias_handle, */
12087 /* IDL: [in] [ref] dom_sid2 *sid */
12088 /* IDL: ); */
12089
12090 static int
12091 samr_dissect_DeleteAliasMember_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12092 {
12093         guint32 status;
12094
12095         pinfo->dcerpc_procedure_name="DeleteAliasMember";
12096         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
12097
12098         if (status != 0)
12099                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
12100
12101         return offset;
12102 }
12103
12104 static int
12105 samr_dissect_DeleteAliasMember_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12106 {
12107         pinfo->dcerpc_procedure_name="DeleteAliasMember";
12108         offset = samr_dissect_element_DeleteAliasMember_alias_handle(tvb, offset, pinfo, tree, drep);
12109         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12110         offset = samr_dissect_element_DeleteAliasMember_sid(tvb, offset, pinfo, tree, drep);
12111         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12112         return offset;
12113 }
12114
12115 static int
12116 samr_dissect_element_GetMembersInAlias_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12117 {
12118         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_GetMembersInAlias_alias_handle_, NDR_POINTER_REF, "Pointer to Alias Handle (policy_handle)",hf_samr_samr_GetMembersInAlias_alias_handle);
12119
12120         return offset;
12121 }
12122
12123 static int
12124 samr_dissect_element_GetMembersInAlias_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12125 {
12126         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_GetMembersInAlias_alias_handle, 0);
12127
12128         return offset;
12129 }
12130
12131 static int
12132 samr_dissect_element_GetMembersInAlias_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12133 {
12134         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_GetMembersInAlias_sids_, NDR_POINTER_REF, "Pointer to Sids (lsa_SidArray)",hf_samr_samr_GetMembersInAlias_sids);
12135
12136         return offset;
12137 }
12138
12139 static int
12140 samr_dissect_element_GetMembersInAlias_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12141 {
12142         offset = samr_dissect_struct_lsa_SidArray(tvb,offset,pinfo,tree,drep,hf_samr_samr_GetMembersInAlias_sids,0);
12143
12144         return offset;
12145 }
12146
12147 /* IDL: NTSTATUS samr_GetMembersInAlias( */
12148 /* IDL: [in] [ref] policy_handle *alias_handle, */
12149 /* IDL: [out] [ref] lsa_SidArray *sids */
12150 /* IDL: ); */
12151
12152 static int
12153 samr_dissect_GetMembersInAlias_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12154 {
12155         guint32 status;
12156
12157         pinfo->dcerpc_procedure_name="GetMembersInAlias";
12158         offset = samr_dissect_element_GetMembersInAlias_sids(tvb, offset, pinfo, tree, drep);
12159         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12160
12161         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
12162
12163         if (status != 0)
12164                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
12165
12166         return offset;
12167 }
12168
12169 static int
12170 samr_dissect_GetMembersInAlias_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12171 {
12172         pinfo->dcerpc_procedure_name="GetMembersInAlias";
12173         offset = samr_dissect_element_GetMembersInAlias_alias_handle(tvb, offset, pinfo, tree, drep);
12174         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12175         return offset;
12176 }
12177
12178 static int
12179 samr_dissect_element_OpenUser_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12180 {
12181         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_OpenUser_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_samr_OpenUser_domain_handle);
12182
12183         return offset;
12184 }
12185
12186 static int
12187 samr_dissect_element_OpenUser_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12188 {
12189         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_OpenUser_domain_handle, 0);
12190
12191         return offset;
12192 }
12193
12194 static int
12195 samr_dissect_element_OpenUser_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12196 {
12197         offset = samr_dissect_bitmap_UserAccessMask(tvb, offset, pinfo, tree, drep, hf_samr_samr_OpenUser_access_mask, 0);
12198
12199         return offset;
12200 }
12201
12202 static int
12203 samr_dissect_element_OpenUser_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12204 {
12205         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_OpenUser_rid, 0);
12206
12207         return offset;
12208 }
12209
12210 static int
12211 samr_dissect_element_OpenUser_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12212 {
12213         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_OpenUser_user_handle_, NDR_POINTER_REF, "Pointer to User Handle (policy_handle)",hf_samr_samr_OpenUser_user_handle);
12214
12215         return offset;
12216 }
12217
12218 static int
12219 samr_dissect_element_OpenUser_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12220 {
12221         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_OpenUser_user_handle, 0);
12222
12223         return offset;
12224 }
12225
12226 /* IDL: NTSTATUS samr_OpenUser( */
12227 /* IDL: [in] [ref] policy_handle *domain_handle, */
12228 /* IDL: [in] samr_UserAccessMask access_mask, */
12229 /* IDL: [in] uint32 rid, */
12230 /* IDL: [out] [ref] policy_handle *user_handle */
12231 /* IDL: ); */
12232
12233 static int
12234 samr_dissect_OpenUser_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12235 {
12236         guint32 status;
12237
12238         pinfo->dcerpc_procedure_name="OpenUser";
12239         offset = samr_dissect_element_OpenUser_user_handle(tvb, offset, pinfo, tree, drep);
12240         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12241
12242         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
12243
12244         if (status != 0)
12245                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
12246
12247         return offset;
12248 }
12249
12250 static int
12251 samr_dissect_OpenUser_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12252 {
12253         pinfo->dcerpc_procedure_name="OpenUser";
12254         offset = samr_dissect_element_OpenUser_domain_handle(tvb, offset, pinfo, tree, drep);
12255         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12256         offset = samr_dissect_element_OpenUser_access_mask(tvb, offset, pinfo, tree, drep);
12257         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12258         offset = samr_dissect_element_OpenUser_rid(tvb, offset, pinfo, tree, drep);
12259         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12260         return offset;
12261 }
12262
12263 static int
12264 samr_dissect_element_DeleteUser_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12265 {
12266         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_DeleteUser_user_handle_, NDR_POINTER_REF, "Pointer to User Handle (policy_handle)",hf_samr_samr_DeleteUser_user_handle);
12267
12268         return offset;
12269 }
12270
12271 static int
12272 samr_dissect_element_DeleteUser_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12273 {
12274         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_DeleteUser_user_handle, 0);
12275
12276         return offset;
12277 }
12278
12279 /* IDL: NTSTATUS samr_DeleteUser( */
12280 /* IDL: [out] [in] [ref] policy_handle *user_handle */
12281 /* IDL: ); */
12282
12283 static int
12284 samr_dissect_DeleteUser_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12285 {
12286         guint32 status;
12287
12288         pinfo->dcerpc_procedure_name="DeleteUser";
12289         offset = samr_dissect_element_DeleteUser_user_handle(tvb, offset, pinfo, tree, drep);
12290         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12291
12292         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
12293
12294         if (status != 0)
12295                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
12296
12297         return offset;
12298 }
12299
12300 static int
12301 samr_dissect_DeleteUser_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12302 {
12303         pinfo->dcerpc_procedure_name="DeleteUser";
12304         offset = samr_dissect_element_DeleteUser_user_handle(tvb, offset, pinfo, tree, drep);
12305         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12306         return offset;
12307 }
12308
12309 static int
12310 samr_dissect_element_QueryUserInfo_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12311 {
12312         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryUserInfo_user_handle_, NDR_POINTER_REF, "Pointer to User Handle (policy_handle)",hf_samr_samr_QueryUserInfo_user_handle);
12313
12314         return offset;
12315 }
12316
12317 static int
12318 samr_dissect_element_QueryUserInfo_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12319 {
12320         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryUserInfo_user_handle, 0);
12321
12322         return offset;
12323 }
12324
12325 static int
12326 samr_dissect_element_QueryUserInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12327 {
12328         offset = samr_dissect_enum_UserInfoLevel(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryUserInfo_level, 0);
12329
12330         return offset;
12331 }
12332
12333 static int
12334 samr_dissect_element_QueryUserInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12335 {
12336         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryUserInfo_info_, NDR_POINTER_REF, "Pointer to Info (samr_UserInfo)",hf_samr_samr_QueryUserInfo_info);
12337
12338         return offset;
12339 }
12340
12341 static int
12342 samr_dissect_element_QueryUserInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12343 {
12344         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryUserInfo_info__, NDR_POINTER_UNIQUE, "Pointer to Info (samr_UserInfo)",hf_samr_samr_QueryUserInfo_info);
12345
12346         return offset;
12347 }
12348
12349 static int
12350 samr_dissect_element_QueryUserInfo_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12351 {
12352         offset = samr_dissect_UserInfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryUserInfo_info, *0);
12353
12354         return offset;
12355 }
12356
12357 /* IDL: NTSTATUS samr_QueryUserInfo( */
12358 /* IDL: [in] [ref] policy_handle *user_handle, */
12359 /* IDL: [in] samr_UserInfoLevel level, */
12360 /* IDL: [out] [ref] [switch_is(level)] samr_UserInfo **info */
12361 /* IDL: ); */
12362
12363 static int
12364 samr_dissect_QueryUserInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12365 {
12366         guint32 status;
12367
12368         pinfo->dcerpc_procedure_name="QueryUserInfo";
12369         offset = samr_dissect_element_QueryUserInfo_info(tvb, offset, pinfo, tree, drep);
12370         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12371
12372         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
12373
12374         if (status != 0)
12375                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
12376
12377         return offset;
12378 }
12379
12380 static int
12381 samr_dissect_QueryUserInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12382 {
12383         pinfo->dcerpc_procedure_name="QueryUserInfo";
12384         offset = samr_dissect_element_QueryUserInfo_user_handle(tvb, offset, pinfo, tree, drep);
12385         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12386         offset = samr_dissect_element_QueryUserInfo_level(tvb, offset, pinfo, tree, drep);
12387         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12388         return offset;
12389 }
12390
12391 static int
12392 samr_dissect_element_SetUserInfo_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12393 {
12394         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_SetUserInfo_user_handle_, NDR_POINTER_REF, "Pointer to User Handle (policy_handle)",hf_samr_samr_SetUserInfo_user_handle);
12395
12396         return offset;
12397 }
12398
12399 static int
12400 samr_dissect_element_SetUserInfo_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12401 {
12402         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetUserInfo_user_handle, 0);
12403
12404         return offset;
12405 }
12406
12407 static int
12408 samr_dissect_element_SetUserInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12409 {
12410         offset = samr_dissect_enum_UserInfoLevel(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetUserInfo_level, 0);
12411
12412         return offset;
12413 }
12414
12415 static int
12416 samr_dissect_element_SetUserInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12417 {
12418         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_SetUserInfo_info_, NDR_POINTER_REF, "Pointer to Info (samr_UserInfo)",hf_samr_samr_SetUserInfo_info);
12419
12420         return offset;
12421 }
12422
12423 static int
12424 samr_dissect_element_SetUserInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12425 {
12426         offset = samr_dissect_UserInfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetUserInfo_info, *0);
12427
12428         return offset;
12429 }
12430
12431 /* IDL: NTSTATUS samr_SetUserInfo( */
12432 /* IDL: [in] [ref] policy_handle *user_handle, */
12433 /* IDL: [in] samr_UserInfoLevel level, */
12434 /* IDL: [ref] [in] [switch_is(level)] samr_UserInfo *info */
12435 /* IDL: ); */
12436
12437 static int
12438 samr_dissect_SetUserInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12439 {
12440         guint32 status;
12441
12442         pinfo->dcerpc_procedure_name="SetUserInfo";
12443         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
12444
12445         if (status != 0)
12446                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
12447
12448         return offset;
12449 }
12450
12451 static int
12452 samr_dissect_SetUserInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12453 {
12454         pinfo->dcerpc_procedure_name="SetUserInfo";
12455         offset = samr_dissect_element_SetUserInfo_user_handle(tvb, offset, pinfo, tree, drep);
12456         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12457         offset = samr_dissect_element_SetUserInfo_level(tvb, offset, pinfo, tree, drep);
12458         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12459         offset = samr_dissect_element_SetUserInfo_info(tvb, offset, pinfo, tree, drep);
12460         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12461         return offset;
12462 }
12463
12464 static int
12465 samr_dissect_element_ChangePasswordUser_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12466 {
12467         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ChangePasswordUser_user_handle_, NDR_POINTER_REF, "Pointer to User Handle (policy_handle)",hf_samr_samr_ChangePasswordUser_user_handle);
12468
12469         return offset;
12470 }
12471
12472 static int
12473 samr_dissect_element_ChangePasswordUser_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12474 {
12475         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_ChangePasswordUser_user_handle, 0);
12476
12477         return offset;
12478 }
12479
12480 static int
12481 samr_dissect_element_ChangePasswordUser_lm_present(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12482 {
12483         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_ChangePasswordUser_lm_present, 0);
12484
12485         return offset;
12486 }
12487
12488 static int
12489 samr_dissect_element_ChangePasswordUser_old_lm_crypted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12490 {
12491         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, 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);
12492
12493         return offset;
12494 }
12495
12496 static int
12497 samr_dissect_element_ChangePasswordUser_old_lm_crypted_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12498 {
12499         offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser_old_lm_crypted,0);
12500
12501         return offset;
12502 }
12503
12504 static int
12505 samr_dissect_element_ChangePasswordUser_new_lm_crypted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12506 {
12507         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, 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);
12508
12509         return offset;
12510 }
12511
12512 static int
12513 samr_dissect_element_ChangePasswordUser_new_lm_crypted_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12514 {
12515         offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser_new_lm_crypted,0);
12516
12517         return offset;
12518 }
12519
12520 static int
12521 samr_dissect_element_ChangePasswordUser_nt_present(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12522 {
12523         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_ChangePasswordUser_nt_present, 0);
12524
12525         return offset;
12526 }
12527
12528 static int
12529 samr_dissect_element_ChangePasswordUser_old_nt_crypted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12530 {
12531         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, 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);
12532
12533         return offset;
12534 }
12535
12536 static int
12537 samr_dissect_element_ChangePasswordUser_old_nt_crypted_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12538 {
12539         offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser_old_nt_crypted,0);
12540
12541         return offset;
12542 }
12543
12544 static int
12545 samr_dissect_element_ChangePasswordUser_new_nt_crypted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12546 {
12547         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, 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);
12548
12549         return offset;
12550 }
12551
12552 static int
12553 samr_dissect_element_ChangePasswordUser_new_nt_crypted_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12554 {
12555         offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser_new_nt_crypted,0);
12556
12557         return offset;
12558 }
12559
12560 static int
12561 samr_dissect_element_ChangePasswordUser_cross1_present(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12562 {
12563         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_ChangePasswordUser_cross1_present, 0);
12564
12565         return offset;
12566 }
12567
12568 static int
12569 samr_dissect_element_ChangePasswordUser_nt_cross(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12570 {
12571         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ChangePasswordUser_nt_cross_, NDR_POINTER_UNIQUE, "Pointer to Nt Cross (samr_Password)",hf_samr_samr_ChangePasswordUser_nt_cross);
12572
12573         return offset;
12574 }
12575
12576 static int
12577 samr_dissect_element_ChangePasswordUser_nt_cross_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12578 {
12579         offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser_nt_cross,0);
12580
12581         return offset;
12582 }
12583
12584 static int
12585 samr_dissect_element_ChangePasswordUser_cross2_present(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12586 {
12587         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_ChangePasswordUser_cross2_present, 0);
12588
12589         return offset;
12590 }
12591
12592 static int
12593 samr_dissect_element_ChangePasswordUser_lm_cross(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12594 {
12595         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ChangePasswordUser_lm_cross_, NDR_POINTER_UNIQUE, "Pointer to Lm Cross (samr_Password)",hf_samr_samr_ChangePasswordUser_lm_cross);
12596
12597         return offset;
12598 }
12599
12600 static int
12601 samr_dissect_element_ChangePasswordUser_lm_cross_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12602 {
12603         offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser_lm_cross,0);
12604
12605         return offset;
12606 }
12607
12608 /* IDL: NTSTATUS samr_ChangePasswordUser( */
12609 /* IDL: [in] [ref] policy_handle *user_handle, */
12610 /* IDL: [in] uint8 lm_present, */
12611 /* IDL: [unique(1)] [in] samr_Password *old_lm_crypted, */
12612 /* IDL: [unique(1)] [in] samr_Password *new_lm_crypted, */
12613 /* IDL: [in] uint8 nt_present, */
12614 /* IDL: [unique(1)] [in] samr_Password *old_nt_crypted, */
12615 /* IDL: [unique(1)] [in] samr_Password *new_nt_crypted, */
12616 /* IDL: [in] uint8 cross1_present, */
12617 /* IDL: [unique(1)] [in] samr_Password *nt_cross, */
12618 /* IDL: [in] uint8 cross2_present, */
12619 /* IDL: [unique(1)] [in] samr_Password *lm_cross */
12620 /* IDL: ); */
12621
12622 static int
12623 samr_dissect_ChangePasswordUser_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12624 {
12625         guint32 status;
12626
12627         pinfo->dcerpc_procedure_name="ChangePasswordUser";
12628         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
12629
12630         if (status != 0)
12631                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
12632
12633         return offset;
12634 }
12635
12636 static int
12637 samr_dissect_ChangePasswordUser_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12638 {
12639         pinfo->dcerpc_procedure_name="ChangePasswordUser";
12640         offset = samr_dissect_element_ChangePasswordUser_user_handle(tvb, offset, pinfo, tree, drep);
12641         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12642         offset = samr_dissect_element_ChangePasswordUser_lm_present(tvb, offset, pinfo, tree, drep);
12643         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12644         offset = samr_dissect_element_ChangePasswordUser_old_lm_crypted(tvb, offset, pinfo, tree, drep);
12645         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12646         offset = samr_dissect_element_ChangePasswordUser_new_lm_crypted(tvb, offset, pinfo, tree, drep);
12647         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12648         offset = samr_dissect_element_ChangePasswordUser_nt_present(tvb, offset, pinfo, tree, drep);
12649         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12650         offset = samr_dissect_element_ChangePasswordUser_old_nt_crypted(tvb, offset, pinfo, tree, drep);
12651         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12652         offset = samr_dissect_element_ChangePasswordUser_new_nt_crypted(tvb, offset, pinfo, tree, drep);
12653         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12654         offset = samr_dissect_element_ChangePasswordUser_cross1_present(tvb, offset, pinfo, tree, drep);
12655         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12656         offset = samr_dissect_element_ChangePasswordUser_nt_cross(tvb, offset, pinfo, tree, drep);
12657         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12658         offset = samr_dissect_element_ChangePasswordUser_cross2_present(tvb, offset, pinfo, tree, drep);
12659         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12660         offset = samr_dissect_element_ChangePasswordUser_lm_cross(tvb, offset, pinfo, tree, drep);
12661         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12662         return offset;
12663 }
12664
12665 static int
12666 samr_dissect_element_GetGroupsForUser_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12667 {
12668         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_GetGroupsForUser_user_handle_, NDR_POINTER_REF, "Pointer to User Handle (policy_handle)",hf_samr_samr_GetGroupsForUser_user_handle);
12669
12670         return offset;
12671 }
12672
12673 static int
12674 samr_dissect_element_GetGroupsForUser_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12675 {
12676         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_GetGroupsForUser_user_handle, 0);
12677
12678         return offset;
12679 }
12680
12681 static int
12682 samr_dissect_element_GetGroupsForUser_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12683 {
12684         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_GetGroupsForUser_rids_, NDR_POINTER_REF, "Pointer to Rids (samr_RidWithAttributeArray)",hf_samr_samr_GetGroupsForUser_rids);
12685
12686         return offset;
12687 }
12688
12689 static int
12690 samr_dissect_element_GetGroupsForUser_rids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12691 {
12692         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_GetGroupsForUser_rids__, NDR_POINTER_UNIQUE, "Pointer to Rids (samr_RidWithAttributeArray)",hf_samr_samr_GetGroupsForUser_rids);
12693
12694         return offset;
12695 }
12696
12697 static int
12698 samr_dissect_element_GetGroupsForUser_rids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12699 {
12700         offset = samr_dissect_struct_RidWithAttributeArray(tvb,offset,pinfo,tree,drep,hf_samr_samr_GetGroupsForUser_rids,0);
12701
12702         return offset;
12703 }
12704
12705 /* IDL: NTSTATUS samr_GetGroupsForUser( */
12706 /* IDL: [in] [ref] policy_handle *user_handle, */
12707 /* IDL: [out] [ref] samr_RidWithAttributeArray **rids */
12708 /* IDL: ); */
12709
12710 static int
12711 samr_dissect_GetGroupsForUser_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12712 {
12713         guint32 status;
12714
12715         pinfo->dcerpc_procedure_name="GetGroupsForUser";
12716         offset = samr_dissect_element_GetGroupsForUser_rids(tvb, offset, pinfo, tree, drep);
12717         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12718
12719         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
12720
12721         if (status != 0)
12722                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
12723
12724         return offset;
12725 }
12726
12727 static int
12728 samr_dissect_GetGroupsForUser_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12729 {
12730         pinfo->dcerpc_procedure_name="GetGroupsForUser";
12731         offset = samr_dissect_element_GetGroupsForUser_user_handle(tvb, offset, pinfo, tree, drep);
12732         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12733         return offset;
12734 }
12735
12736 static int
12737 samr_dissect_element_QueryDisplayInfo_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12738 {
12739         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryDisplayInfo_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_samr_QueryDisplayInfo_domain_handle);
12740
12741         return offset;
12742 }
12743
12744 static int
12745 samr_dissect_element_QueryDisplayInfo_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12746 {
12747         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo_domain_handle, 0);
12748
12749         return offset;
12750 }
12751
12752 static int
12753 samr_dissect_element_QueryDisplayInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12754 {
12755         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo_level, 0);
12756
12757         return offset;
12758 }
12759
12760 static int
12761 samr_dissect_element_QueryDisplayInfo_start_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12762 {
12763         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo_start_idx, 0);
12764
12765         return offset;
12766 }
12767
12768 static int
12769 samr_dissect_element_QueryDisplayInfo_max_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12770 {
12771         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo_max_entries, 0);
12772
12773         return offset;
12774 }
12775
12776 static int
12777 samr_dissect_element_QueryDisplayInfo_buf_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12778 {
12779         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo_buf_size, 0);
12780
12781         return offset;
12782 }
12783
12784 static int
12785 samr_dissect_element_QueryDisplayInfo_total_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12786 {
12787         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryDisplayInfo_total_size_, NDR_POINTER_REF, "Pointer to Total Size (uint32)",hf_samr_samr_QueryDisplayInfo_total_size);
12788
12789         return offset;
12790 }
12791
12792 static int
12793 samr_dissect_element_QueryDisplayInfo_total_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12794 {
12795         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo_total_size, 0);
12796
12797         return offset;
12798 }
12799
12800 static int
12801 samr_dissect_element_QueryDisplayInfo_returned_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12802 {
12803         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryDisplayInfo_returned_size_, NDR_POINTER_REF, "Pointer to Returned Size (uint32)",hf_samr_samr_QueryDisplayInfo_returned_size);
12804
12805         return offset;
12806 }
12807
12808 static int
12809 samr_dissect_element_QueryDisplayInfo_returned_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12810 {
12811         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo_returned_size, 0);
12812
12813         return offset;
12814 }
12815
12816 static int
12817 samr_dissect_element_QueryDisplayInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12818 {
12819         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryDisplayInfo_info_, NDR_POINTER_REF, "Pointer to Info (samr_DispInfo)",hf_samr_samr_QueryDisplayInfo_info);
12820
12821         return offset;
12822 }
12823
12824 static int
12825 samr_dissect_element_QueryDisplayInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12826 {
12827         offset = samr_dissect_DispInfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo_info, *0);
12828
12829         return offset;
12830 }
12831
12832 /* IDL: NTSTATUS samr_QueryDisplayInfo( */
12833 /* IDL: [in] [ref] policy_handle *domain_handle, */
12834 /* IDL: [in] uint16 level, */
12835 /* IDL: [in] uint32 start_idx, */
12836 /* IDL: [in] uint32 max_entries, */
12837 /* IDL: [in] uint32 buf_size, */
12838 /* IDL: [out] [ref] uint32 *total_size, */
12839 /* IDL: [out] [ref] uint32 *returned_size, */
12840 /* IDL: [out] [ref] [switch_is(level)] samr_DispInfo *info */
12841 /* IDL: ); */
12842
12843 static int
12844 samr_dissect_QueryDisplayInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12845 {
12846         guint32 status;
12847
12848         pinfo->dcerpc_procedure_name="QueryDisplayInfo";
12849         offset = samr_dissect_element_QueryDisplayInfo_total_size(tvb, offset, pinfo, tree, drep);
12850         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12851
12852         offset = samr_dissect_element_QueryDisplayInfo_returned_size(tvb, offset, pinfo, tree, drep);
12853         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12854
12855         offset = samr_dissect_element_QueryDisplayInfo_info(tvb, offset, pinfo, tree, drep);
12856         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12857
12858         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
12859
12860         if (status != 0)
12861                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
12862
12863         return offset;
12864 }
12865
12866 static int
12867 samr_dissect_QueryDisplayInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12868 {
12869         pinfo->dcerpc_procedure_name="QueryDisplayInfo";
12870         offset = samr_dissect_element_QueryDisplayInfo_domain_handle(tvb, offset, pinfo, tree, drep);
12871         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12872         offset = samr_dissect_element_QueryDisplayInfo_level(tvb, offset, pinfo, tree, drep);
12873         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12874         offset = samr_dissect_element_QueryDisplayInfo_start_idx(tvb, offset, pinfo, tree, drep);
12875         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12876         offset = samr_dissect_element_QueryDisplayInfo_max_entries(tvb, offset, pinfo, tree, drep);
12877         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12878         offset = samr_dissect_element_QueryDisplayInfo_buf_size(tvb, offset, pinfo, tree, drep);
12879         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12880         return offset;
12881 }
12882
12883 static int
12884 samr_dissect_element_GetDisplayEnumerationIndex_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12885 {
12886         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_GetDisplayEnumerationIndex_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_samr_GetDisplayEnumerationIndex_domain_handle);
12887
12888         return offset;
12889 }
12890
12891 static int
12892 samr_dissect_element_GetDisplayEnumerationIndex_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12893 {
12894         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_GetDisplayEnumerationIndex_domain_handle, 0);
12895
12896         return offset;
12897 }
12898
12899 static int
12900 samr_dissect_element_GetDisplayEnumerationIndex_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12901 {
12902         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_GetDisplayEnumerationIndex_level, 0);
12903
12904         return offset;
12905 }
12906
12907 static int
12908 samr_dissect_element_GetDisplayEnumerationIndex_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12909 {
12910         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_GetDisplayEnumerationIndex_name_, NDR_POINTER_REF, "Pointer to Name (lsa_String)",hf_samr_samr_GetDisplayEnumerationIndex_name);
12911
12912         return offset;
12913 }
12914
12915 static int
12916 samr_dissect_element_GetDisplayEnumerationIndex_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12917 {
12918         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_GetDisplayEnumerationIndex_name,0);
12919
12920         return offset;
12921 }
12922
12923 static int
12924 samr_dissect_element_GetDisplayEnumerationIndex_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12925 {
12926         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_GetDisplayEnumerationIndex_idx_, NDR_POINTER_REF, "Pointer to Idx (uint32)",hf_samr_samr_GetDisplayEnumerationIndex_idx);
12927
12928         return offset;
12929 }
12930
12931 static int
12932 samr_dissect_element_GetDisplayEnumerationIndex_idx_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12933 {
12934         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_GetDisplayEnumerationIndex_idx, 0);
12935
12936         return offset;
12937 }
12938
12939 /* IDL: NTSTATUS samr_GetDisplayEnumerationIndex( */
12940 /* IDL: [in] [ref] policy_handle *domain_handle, */
12941 /* IDL: [in] uint16 level, */
12942 /* IDL: [in] [ref] lsa_String *name, */
12943 /* IDL: [out] [ref] uint32 *idx */
12944 /* IDL: ); */
12945
12946 static int
12947 samr_dissect_GetDisplayEnumerationIndex_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12948 {
12949         guint32 status;
12950
12951         pinfo->dcerpc_procedure_name="GetDisplayEnumerationIndex";
12952         offset = samr_dissect_element_GetDisplayEnumerationIndex_idx(tvb, offset, pinfo, tree, drep);
12953         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12954
12955         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
12956
12957         if (status != 0)
12958                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
12959
12960         return offset;
12961 }
12962
12963 static int
12964 samr_dissect_GetDisplayEnumerationIndex_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12965 {
12966         pinfo->dcerpc_procedure_name="GetDisplayEnumerationIndex";
12967         offset = samr_dissect_element_GetDisplayEnumerationIndex_domain_handle(tvb, offset, pinfo, tree, drep);
12968         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12969         offset = samr_dissect_element_GetDisplayEnumerationIndex_level(tvb, offset, pinfo, tree, drep);
12970         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12971         offset = samr_dissect_element_GetDisplayEnumerationIndex_name(tvb, offset, pinfo, tree, drep);
12972         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12973         return offset;
12974 }
12975
12976 static int
12977 samr_dissect_element_TestPrivateFunctionsDomain_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12978 {
12979         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_TestPrivateFunctionsDomain_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_samr_TestPrivateFunctionsDomain_domain_handle);
12980
12981         return offset;
12982 }
12983
12984 static int
12985 samr_dissect_element_TestPrivateFunctionsDomain_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12986 {
12987         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_TestPrivateFunctionsDomain_domain_handle, 0);
12988
12989         return offset;
12990 }
12991
12992 /* IDL: NTSTATUS samr_TestPrivateFunctionsDomain( */
12993 /* IDL: [in] [ref] policy_handle *domain_handle */
12994 /* IDL: ); */
12995
12996 static int
12997 samr_dissect_TestPrivateFunctionsDomain_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12998 {
12999         guint32 status;
13000
13001         pinfo->dcerpc_procedure_name="TestPrivateFunctionsDomain";
13002         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
13003
13004         if (status != 0)
13005                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
13006
13007         return offset;
13008 }
13009
13010 static int
13011 samr_dissect_TestPrivateFunctionsDomain_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13012 {
13013         pinfo->dcerpc_procedure_name="TestPrivateFunctionsDomain";
13014         offset = samr_dissect_element_TestPrivateFunctionsDomain_domain_handle(tvb, offset, pinfo, tree, drep);
13015         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13016         return offset;
13017 }
13018
13019 static int
13020 samr_dissect_element_TestPrivateFunctionsUser_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13021 {
13022         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_TestPrivateFunctionsUser_user_handle_, NDR_POINTER_REF, "Pointer to User Handle (policy_handle)",hf_samr_samr_TestPrivateFunctionsUser_user_handle);
13023
13024         return offset;
13025 }
13026
13027 static int
13028 samr_dissect_element_TestPrivateFunctionsUser_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13029 {
13030         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_TestPrivateFunctionsUser_user_handle, 0);
13031
13032         return offset;
13033 }
13034
13035 /* IDL: NTSTATUS samr_TestPrivateFunctionsUser( */
13036 /* IDL: [in] [ref] policy_handle *user_handle */
13037 /* IDL: ); */
13038
13039 static int
13040 samr_dissect_TestPrivateFunctionsUser_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13041 {
13042         guint32 status;
13043
13044         pinfo->dcerpc_procedure_name="TestPrivateFunctionsUser";
13045         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
13046
13047         if (status != 0)
13048                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
13049
13050         return offset;
13051 }
13052
13053 static int
13054 samr_dissect_TestPrivateFunctionsUser_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13055 {
13056         pinfo->dcerpc_procedure_name="TestPrivateFunctionsUser";
13057         offset = samr_dissect_element_TestPrivateFunctionsUser_user_handle(tvb, offset, pinfo, tree, drep);
13058         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13059         return offset;
13060 }
13061
13062 static int
13063 samr_dissect_element_GetUserPwInfo_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13064 {
13065         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_GetUserPwInfo_user_handle_, NDR_POINTER_REF, "Pointer to User Handle (policy_handle)",hf_samr_samr_GetUserPwInfo_user_handle);
13066
13067         return offset;
13068 }
13069
13070 static int
13071 samr_dissect_element_GetUserPwInfo_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13072 {
13073         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_GetUserPwInfo_user_handle, 0);
13074
13075         return offset;
13076 }
13077
13078 static int
13079 samr_dissect_element_GetUserPwInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13080 {
13081         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_GetUserPwInfo_info_, NDR_POINTER_REF, "Pointer to Info (samr_PwInfo)",hf_samr_samr_GetUserPwInfo_info);
13082
13083         return offset;
13084 }
13085
13086 static int
13087 samr_dissect_element_GetUserPwInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13088 {
13089         offset = samr_dissect_struct_PwInfo(tvb,offset,pinfo,tree,drep,hf_samr_samr_GetUserPwInfo_info,0);
13090
13091         return offset;
13092 }
13093
13094 /* IDL: NTSTATUS samr_GetUserPwInfo( */
13095 /* IDL: [in] [ref] policy_handle *user_handle, */
13096 /* IDL: [out] [ref] samr_PwInfo *info */
13097 /* IDL: ); */
13098
13099 static int
13100 samr_dissect_GetUserPwInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13101 {
13102         guint32 status;
13103
13104         pinfo->dcerpc_procedure_name="GetUserPwInfo";
13105         offset = samr_dissect_element_GetUserPwInfo_info(tvb, offset, pinfo, tree, drep);
13106         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13107
13108         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
13109
13110         if (status != 0)
13111                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
13112
13113         return offset;
13114 }
13115
13116 static int
13117 samr_dissect_GetUserPwInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13118 {
13119         pinfo->dcerpc_procedure_name="GetUserPwInfo";
13120         offset = samr_dissect_element_GetUserPwInfo_user_handle(tvb, offset, pinfo, tree, drep);
13121         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13122         return offset;
13123 }
13124
13125 static int
13126 samr_dissect_element_RemoveMemberFromForeignDomain_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13127 {
13128         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_RemoveMemberFromForeignDomain_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_samr_RemoveMemberFromForeignDomain_domain_handle);
13129
13130         return offset;
13131 }
13132
13133 static int
13134 samr_dissect_element_RemoveMemberFromForeignDomain_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13135 {
13136         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_RemoveMemberFromForeignDomain_domain_handle, 0);
13137
13138         return offset;
13139 }
13140
13141 static int
13142 samr_dissect_element_RemoveMemberFromForeignDomain_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13143 {
13144         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_RemoveMemberFromForeignDomain_sid_, NDR_POINTER_REF, "Pointer to Sid (dom_sid2)",hf_samr_samr_RemoveMemberFromForeignDomain_sid);
13145
13146         return offset;
13147 }
13148
13149 static int
13150 samr_dissect_element_RemoveMemberFromForeignDomain_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13151 {
13152         offset = samr_dissect_struct_dom_sid2(tvb,offset,pinfo,tree,drep,hf_samr_samr_RemoveMemberFromForeignDomain_sid,0);
13153
13154         return offset;
13155 }
13156
13157 /* IDL: NTSTATUS samr_RemoveMemberFromForeignDomain( */
13158 /* IDL: [in] [ref] policy_handle *domain_handle, */
13159 /* IDL: [in] [ref] dom_sid2 *sid */
13160 /* IDL: ); */
13161
13162 static int
13163 samr_dissect_RemoveMemberFromForeignDomain_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13164 {
13165         guint32 status;
13166
13167         pinfo->dcerpc_procedure_name="RemoveMemberFromForeignDomain";
13168         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
13169
13170         if (status != 0)
13171                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
13172
13173         return offset;
13174 }
13175
13176 static int
13177 samr_dissect_RemoveMemberFromForeignDomain_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13178 {
13179         pinfo->dcerpc_procedure_name="RemoveMemberFromForeignDomain";
13180         offset = samr_dissect_element_RemoveMemberFromForeignDomain_domain_handle(tvb, offset, pinfo, tree, drep);
13181         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13182         offset = samr_dissect_element_RemoveMemberFromForeignDomain_sid(tvb, offset, pinfo, tree, drep);
13183         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13184         return offset;
13185 }
13186
13187 static int
13188 samr_dissect_element_QueryDomainInfo2_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13189 {
13190         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryDomainInfo2_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_samr_QueryDomainInfo2_domain_handle);
13191
13192         return offset;
13193 }
13194
13195 static int
13196 samr_dissect_element_QueryDomainInfo2_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13197 {
13198         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDomainInfo2_domain_handle, 0);
13199
13200         return offset;
13201 }
13202
13203 static int
13204 samr_dissect_element_QueryDomainInfo2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13205 {
13206         offset = samr_dissect_enum_DomainInfoClass(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDomainInfo2_level, 0);
13207
13208         return offset;
13209 }
13210
13211 static int
13212 samr_dissect_element_QueryDomainInfo2_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13213 {
13214         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryDomainInfo2_info_, NDR_POINTER_REF, "Pointer to Info (samr_DomainInfo)",hf_samr_samr_QueryDomainInfo2_info);
13215
13216         return offset;
13217 }
13218
13219 static int
13220 samr_dissect_element_QueryDomainInfo2_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13221 {
13222         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryDomainInfo2_info__, NDR_POINTER_UNIQUE, "Pointer to Info (samr_DomainInfo)",hf_samr_samr_QueryDomainInfo2_info);
13223
13224         return offset;
13225 }
13226
13227 static int
13228 samr_dissect_element_QueryDomainInfo2_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13229 {
13230         offset = samr_dissect_DomainInfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDomainInfo2_info, *0);
13231
13232         return offset;
13233 }
13234
13235 /* IDL: NTSTATUS samr_QueryDomainInfo2( */
13236 /* IDL: [in] [ref] policy_handle *domain_handle, */
13237 /* IDL: [in] samr_DomainInfoClass level, */
13238 /* IDL: [out] [ref] [switch_is(level)] samr_DomainInfo **info */
13239 /* IDL: ); */
13240
13241 static int
13242 samr_dissect_QueryDomainInfo2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13243 {
13244         guint32 status;
13245
13246         pinfo->dcerpc_procedure_name="QueryDomainInfo2";
13247         offset = samr_dissect_element_QueryDomainInfo2_info(tvb, offset, pinfo, tree, drep);
13248         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13249
13250         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
13251
13252         if (status != 0)
13253                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
13254
13255         return offset;
13256 }
13257
13258 static int
13259 samr_dissect_QueryDomainInfo2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13260 {
13261         pinfo->dcerpc_procedure_name="QueryDomainInfo2";
13262         offset = samr_dissect_element_QueryDomainInfo2_domain_handle(tvb, offset, pinfo, tree, drep);
13263         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13264         offset = samr_dissect_element_QueryDomainInfo2_level(tvb, offset, pinfo, tree, drep);
13265         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13266         return offset;
13267 }
13268
13269 static int
13270 samr_dissect_element_QueryUserInfo2_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13271 {
13272         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryUserInfo2_user_handle_, NDR_POINTER_REF, "Pointer to User Handle (policy_handle)",hf_samr_samr_QueryUserInfo2_user_handle);
13273
13274         return offset;
13275 }
13276
13277 static int
13278 samr_dissect_element_QueryUserInfo2_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13279 {
13280         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryUserInfo2_user_handle, 0);
13281
13282         return offset;
13283 }
13284
13285 static int
13286 samr_dissect_element_QueryUserInfo2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13287 {
13288         offset = samr_dissect_enum_UserInfoLevel(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryUserInfo2_level, 0);
13289
13290         return offset;
13291 }
13292
13293 static int
13294 samr_dissect_element_QueryUserInfo2_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13295 {
13296         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryUserInfo2_info_, NDR_POINTER_REF, "Pointer to Info (samr_UserInfo)",hf_samr_samr_QueryUserInfo2_info);
13297
13298         return offset;
13299 }
13300
13301 static int
13302 samr_dissect_element_QueryUserInfo2_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13303 {
13304         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryUserInfo2_info__, NDR_POINTER_UNIQUE, "Pointer to Info (samr_UserInfo)",hf_samr_samr_QueryUserInfo2_info);
13305
13306         return offset;
13307 }
13308
13309 static int
13310 samr_dissect_element_QueryUserInfo2_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13311 {
13312         offset = samr_dissect_UserInfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryUserInfo2_info, *0);
13313
13314         return offset;
13315 }
13316
13317 /* IDL: NTSTATUS samr_QueryUserInfo2( */
13318 /* IDL: [in] [ref] policy_handle *user_handle, */
13319 /* IDL: [in] samr_UserInfoLevel level, */
13320 /* IDL: [out] [ref] [switch_is(level)] samr_UserInfo **info */
13321 /* IDL: ); */
13322
13323 static int
13324 samr_dissect_QueryUserInfo2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13325 {
13326         guint32 status;
13327
13328         pinfo->dcerpc_procedure_name="QueryUserInfo2";
13329         offset = samr_dissect_element_QueryUserInfo2_info(tvb, offset, pinfo, tree, drep);
13330         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13331
13332         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
13333
13334         if (status != 0)
13335                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
13336
13337         return offset;
13338 }
13339
13340 static int
13341 samr_dissect_QueryUserInfo2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13342 {
13343         pinfo->dcerpc_procedure_name="QueryUserInfo2";
13344         offset = samr_dissect_element_QueryUserInfo2_user_handle(tvb, offset, pinfo, tree, drep);
13345         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13346         offset = samr_dissect_element_QueryUserInfo2_level(tvb, offset, pinfo, tree, drep);
13347         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13348         return offset;
13349 }
13350
13351 static int
13352 samr_dissect_element_QueryDisplayInfo2_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13353 {
13354         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryDisplayInfo2_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_samr_QueryDisplayInfo2_domain_handle);
13355
13356         return offset;
13357 }
13358
13359 static int
13360 samr_dissect_element_QueryDisplayInfo2_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13361 {
13362         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo2_domain_handle, 0);
13363
13364         return offset;
13365 }
13366
13367 static int
13368 samr_dissect_element_QueryDisplayInfo2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13369 {
13370         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo2_level, 0);
13371
13372         return offset;
13373 }
13374
13375 static int
13376 samr_dissect_element_QueryDisplayInfo2_start_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13377 {
13378         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo2_start_idx, 0);
13379
13380         return offset;
13381 }
13382
13383 static int
13384 samr_dissect_element_QueryDisplayInfo2_max_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13385 {
13386         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo2_max_entries, 0);
13387
13388         return offset;
13389 }
13390
13391 static int
13392 samr_dissect_element_QueryDisplayInfo2_buf_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13393 {
13394         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo2_buf_size, 0);
13395
13396         return offset;
13397 }
13398
13399 static int
13400 samr_dissect_element_QueryDisplayInfo2_total_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13401 {
13402         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryDisplayInfo2_total_size_, NDR_POINTER_REF, "Pointer to Total Size (uint32)",hf_samr_samr_QueryDisplayInfo2_total_size);
13403
13404         return offset;
13405 }
13406
13407 static int
13408 samr_dissect_element_QueryDisplayInfo2_total_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13409 {
13410         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo2_total_size, 0);
13411
13412         return offset;
13413 }
13414
13415 static int
13416 samr_dissect_element_QueryDisplayInfo2_returned_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13417 {
13418         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryDisplayInfo2_returned_size_, NDR_POINTER_REF, "Pointer to Returned Size (uint32)",hf_samr_samr_QueryDisplayInfo2_returned_size);
13419
13420         return offset;
13421 }
13422
13423 static int
13424 samr_dissect_element_QueryDisplayInfo2_returned_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13425 {
13426         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo2_returned_size, 0);
13427
13428         return offset;
13429 }
13430
13431 static int
13432 samr_dissect_element_QueryDisplayInfo2_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13433 {
13434         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryDisplayInfo2_info_, NDR_POINTER_REF, "Pointer to Info (samr_DispInfo)",hf_samr_samr_QueryDisplayInfo2_info);
13435
13436         return offset;
13437 }
13438
13439 static int
13440 samr_dissect_element_QueryDisplayInfo2_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13441 {
13442         offset = samr_dissect_DispInfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo2_info, *0);
13443
13444         return offset;
13445 }
13446
13447 /* IDL: NTSTATUS samr_QueryDisplayInfo2( */
13448 /* IDL: [in] [ref] policy_handle *domain_handle, */
13449 /* IDL: [in] uint16 level, */
13450 /* IDL: [in] uint32 start_idx, */
13451 /* IDL: [in] uint32 max_entries, */
13452 /* IDL: [in] uint32 buf_size, */
13453 /* IDL: [out] [ref] uint32 *total_size, */
13454 /* IDL: [out] [ref] uint32 *returned_size, */
13455 /* IDL: [out] [ref] [switch_is(level)] samr_DispInfo *info */
13456 /* IDL: ); */
13457
13458 static int
13459 samr_dissect_QueryDisplayInfo2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13460 {
13461         guint32 status;
13462
13463         pinfo->dcerpc_procedure_name="QueryDisplayInfo2";
13464         offset = samr_dissect_element_QueryDisplayInfo2_total_size(tvb, offset, pinfo, tree, drep);
13465         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13466
13467         offset = samr_dissect_element_QueryDisplayInfo2_returned_size(tvb, offset, pinfo, tree, drep);
13468         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13469
13470         offset = samr_dissect_element_QueryDisplayInfo2_info(tvb, offset, pinfo, tree, drep);
13471         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13472
13473         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
13474
13475         if (status != 0)
13476                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
13477
13478         return offset;
13479 }
13480
13481 static int
13482 samr_dissect_QueryDisplayInfo2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13483 {
13484         pinfo->dcerpc_procedure_name="QueryDisplayInfo2";
13485         offset = samr_dissect_element_QueryDisplayInfo2_domain_handle(tvb, offset, pinfo, tree, drep);
13486         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13487         offset = samr_dissect_element_QueryDisplayInfo2_level(tvb, offset, pinfo, tree, drep);
13488         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13489         offset = samr_dissect_element_QueryDisplayInfo2_start_idx(tvb, offset, pinfo, tree, drep);
13490         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13491         offset = samr_dissect_element_QueryDisplayInfo2_max_entries(tvb, offset, pinfo, tree, drep);
13492         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13493         offset = samr_dissect_element_QueryDisplayInfo2_buf_size(tvb, offset, pinfo, tree, drep);
13494         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13495         return offset;
13496 }
13497
13498 static int
13499 samr_dissect_element_GetDisplayEnumerationIndex2_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13500 {
13501         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_GetDisplayEnumerationIndex2_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_samr_GetDisplayEnumerationIndex2_domain_handle);
13502
13503         return offset;
13504 }
13505
13506 static int
13507 samr_dissect_element_GetDisplayEnumerationIndex2_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13508 {
13509         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_GetDisplayEnumerationIndex2_domain_handle, 0);
13510
13511         return offset;
13512 }
13513
13514 static int
13515 samr_dissect_element_GetDisplayEnumerationIndex2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13516 {
13517         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_GetDisplayEnumerationIndex2_level, 0);
13518
13519         return offset;
13520 }
13521
13522 static int
13523 samr_dissect_element_GetDisplayEnumerationIndex2_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13524 {
13525         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_GetDisplayEnumerationIndex2_name_, NDR_POINTER_REF, "Pointer to Name (lsa_String)",hf_samr_samr_GetDisplayEnumerationIndex2_name);
13526
13527         return offset;
13528 }
13529
13530 static int
13531 samr_dissect_element_GetDisplayEnumerationIndex2_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13532 {
13533         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_GetDisplayEnumerationIndex2_name,0);
13534
13535         return offset;
13536 }
13537
13538 static int
13539 samr_dissect_element_GetDisplayEnumerationIndex2_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13540 {
13541         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_GetDisplayEnumerationIndex2_idx_, NDR_POINTER_REF, "Pointer to Idx (uint32)",hf_samr_samr_GetDisplayEnumerationIndex2_idx);
13542
13543         return offset;
13544 }
13545
13546 static int
13547 samr_dissect_element_GetDisplayEnumerationIndex2_idx_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13548 {
13549         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_GetDisplayEnumerationIndex2_idx, 0);
13550
13551         return offset;
13552 }
13553
13554 /* IDL: NTSTATUS samr_GetDisplayEnumerationIndex2( */
13555 /* IDL: [in] [ref] policy_handle *domain_handle, */
13556 /* IDL: [in] uint16 level, */
13557 /* IDL: [in] [ref] lsa_String *name, */
13558 /* IDL: [out] [ref] uint32 *idx */
13559 /* IDL: ); */
13560
13561 static int
13562 samr_dissect_GetDisplayEnumerationIndex2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13563 {
13564         guint32 status;
13565
13566         pinfo->dcerpc_procedure_name="GetDisplayEnumerationIndex2";
13567         offset = samr_dissect_element_GetDisplayEnumerationIndex2_idx(tvb, offset, pinfo, tree, drep);
13568         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13569
13570         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
13571
13572         if (status != 0)
13573                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
13574
13575         return offset;
13576 }
13577
13578 static int
13579 samr_dissect_GetDisplayEnumerationIndex2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13580 {
13581         pinfo->dcerpc_procedure_name="GetDisplayEnumerationIndex2";
13582         offset = samr_dissect_element_GetDisplayEnumerationIndex2_domain_handle(tvb, offset, pinfo, tree, drep);
13583         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13584         offset = samr_dissect_element_GetDisplayEnumerationIndex2_level(tvb, offset, pinfo, tree, drep);
13585         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13586         offset = samr_dissect_element_GetDisplayEnumerationIndex2_name(tvb, offset, pinfo, tree, drep);
13587         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13588         return offset;
13589 }
13590
13591 static int
13592 samr_dissect_element_CreateUser2_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13593 {
13594         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_CreateUser2_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_samr_CreateUser2_domain_handle);
13595
13596         return offset;
13597 }
13598
13599 static int
13600 samr_dissect_element_CreateUser2_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13601 {
13602         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateUser2_domain_handle, 0);
13603
13604         return offset;
13605 }
13606
13607 static int
13608 samr_dissect_element_CreateUser2_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13609 {
13610         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_CreateUser2_account_name_, NDR_POINTER_REF, "Pointer to Account Name (lsa_String)",hf_samr_samr_CreateUser2_account_name);
13611
13612         return offset;
13613 }
13614
13615 static int
13616 samr_dissect_element_CreateUser2_account_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13617 {
13618         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_CreateUser2_account_name,0);
13619
13620         return offset;
13621 }
13622
13623 static int
13624 samr_dissect_element_CreateUser2_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13625 {
13626         offset = samr_dissect_bitmap_AcctFlags(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateUser2_acct_flags, 0);
13627
13628         return offset;
13629 }
13630
13631 static int
13632 samr_dissect_element_CreateUser2_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13633 {
13634         offset = samr_dissect_bitmap_UserAccessMask(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateUser2_access_mask, 0);
13635
13636         return offset;
13637 }
13638
13639 static int
13640 samr_dissect_element_CreateUser2_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13641 {
13642         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_CreateUser2_user_handle_, NDR_POINTER_REF, "Pointer to User Handle (policy_handle)",hf_samr_samr_CreateUser2_user_handle);
13643
13644         return offset;
13645 }
13646
13647 static int
13648 samr_dissect_element_CreateUser2_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13649 {
13650         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateUser2_user_handle, 0);
13651
13652         return offset;
13653 }
13654
13655 static int
13656 samr_dissect_element_CreateUser2_access_granted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13657 {
13658         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_CreateUser2_access_granted_, NDR_POINTER_REF, "Pointer to Access Granted (uint32)",hf_samr_samr_CreateUser2_access_granted);
13659
13660         return offset;
13661 }
13662
13663 static int
13664 samr_dissect_element_CreateUser2_access_granted_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13665 {
13666         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateUser2_access_granted, 0);
13667
13668         return offset;
13669 }
13670
13671 static int
13672 samr_dissect_element_CreateUser2_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13673 {
13674         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_CreateUser2_rid_, NDR_POINTER_REF, "Pointer to Rid (uint32)",hf_samr_samr_CreateUser2_rid);
13675
13676         return offset;
13677 }
13678
13679 static int
13680 samr_dissect_element_CreateUser2_rid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13681 {
13682         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateUser2_rid, 0);
13683
13684         return offset;
13685 }
13686
13687 /* IDL: NTSTATUS samr_CreateUser2( */
13688 /* IDL: [in] [ref] policy_handle *domain_handle, */
13689 /* IDL: [in] [ref] lsa_String *account_name, */
13690 /* IDL: [in] samr_AcctFlags acct_flags, */
13691 /* IDL: [in] samr_UserAccessMask access_mask, */
13692 /* IDL: [out] [ref] policy_handle *user_handle, */
13693 /* IDL: [out] [ref] uint32 *access_granted, */
13694 /* IDL: [out] [ref] uint32 *rid */
13695 /* IDL: ); */
13696
13697 static int
13698 samr_dissect_CreateUser2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13699 {
13700         guint32 status;
13701
13702         pinfo->dcerpc_procedure_name="CreateUser2";
13703         offset = samr_dissect_element_CreateUser2_user_handle(tvb, offset, pinfo, tree, drep);
13704         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13705
13706         offset = samr_dissect_element_CreateUser2_access_granted(tvb, offset, pinfo, tree, drep);
13707         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13708
13709         offset = samr_dissect_element_CreateUser2_rid(tvb, offset, pinfo, tree, drep);
13710         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13711
13712         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
13713
13714         if (status != 0)
13715                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
13716
13717         return offset;
13718 }
13719
13720 static int
13721 samr_dissect_CreateUser2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13722 {
13723         pinfo->dcerpc_procedure_name="CreateUser2";
13724         offset = samr_dissect_element_CreateUser2_domain_handle(tvb, offset, pinfo, tree, drep);
13725         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13726         offset = samr_dissect_element_CreateUser2_account_name(tvb, offset, pinfo, tree, drep);
13727         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13728         offset = samr_dissect_element_CreateUser2_acct_flags(tvb, offset, pinfo, tree, drep);
13729         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13730         offset = samr_dissect_element_CreateUser2_access_mask(tvb, offset, pinfo, tree, drep);
13731         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13732         return offset;
13733 }
13734
13735 static int
13736 samr_dissect_element_QueryDisplayInfo3_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13737 {
13738         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryDisplayInfo3_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_samr_QueryDisplayInfo3_domain_handle);
13739
13740         return offset;
13741 }
13742
13743 static int
13744 samr_dissect_element_QueryDisplayInfo3_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13745 {
13746         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo3_domain_handle, 0);
13747
13748         return offset;
13749 }
13750
13751 static int
13752 samr_dissect_element_QueryDisplayInfo3_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13753 {
13754         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo3_level, 0);
13755
13756         return offset;
13757 }
13758
13759 static int
13760 samr_dissect_element_QueryDisplayInfo3_start_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13761 {
13762         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo3_start_idx, 0);
13763
13764         return offset;
13765 }
13766
13767 static int
13768 samr_dissect_element_QueryDisplayInfo3_max_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13769 {
13770         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo3_max_entries, 0);
13771
13772         return offset;
13773 }
13774
13775 static int
13776 samr_dissect_element_QueryDisplayInfo3_buf_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13777 {
13778         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo3_buf_size, 0);
13779
13780         return offset;
13781 }
13782
13783 static int
13784 samr_dissect_element_QueryDisplayInfo3_total_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13785 {
13786         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryDisplayInfo3_total_size_, NDR_POINTER_REF, "Pointer to Total Size (uint32)",hf_samr_samr_QueryDisplayInfo3_total_size);
13787
13788         return offset;
13789 }
13790
13791 static int
13792 samr_dissect_element_QueryDisplayInfo3_total_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13793 {
13794         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo3_total_size, 0);
13795
13796         return offset;
13797 }
13798
13799 static int
13800 samr_dissect_element_QueryDisplayInfo3_returned_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13801 {
13802         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryDisplayInfo3_returned_size_, NDR_POINTER_REF, "Pointer to Returned Size (uint32)",hf_samr_samr_QueryDisplayInfo3_returned_size);
13803
13804         return offset;
13805 }
13806
13807 static int
13808 samr_dissect_element_QueryDisplayInfo3_returned_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13809 {
13810         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo3_returned_size, 0);
13811
13812         return offset;
13813 }
13814
13815 static int
13816 samr_dissect_element_QueryDisplayInfo3_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13817 {
13818         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryDisplayInfo3_info_, NDR_POINTER_REF, "Pointer to Info (samr_DispInfo)",hf_samr_samr_QueryDisplayInfo3_info);
13819
13820         return offset;
13821 }
13822
13823 static int
13824 samr_dissect_element_QueryDisplayInfo3_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13825 {
13826         offset = samr_dissect_DispInfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo3_info, *0);
13827
13828         return offset;
13829 }
13830
13831 /* IDL: NTSTATUS samr_QueryDisplayInfo3( */
13832 /* IDL: [in] [ref] policy_handle *domain_handle, */
13833 /* IDL: [in] uint16 level, */
13834 /* IDL: [in] uint32 start_idx, */
13835 /* IDL: [in] uint32 max_entries, */
13836 /* IDL: [in] uint32 buf_size, */
13837 /* IDL: [out] [ref] uint32 *total_size, */
13838 /* IDL: [out] [ref] uint32 *returned_size, */
13839 /* IDL: [out] [ref] [switch_is(level)] samr_DispInfo *info */
13840 /* IDL: ); */
13841
13842 static int
13843 samr_dissect_QueryDisplayInfo3_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13844 {
13845         guint32 status;
13846
13847         pinfo->dcerpc_procedure_name="QueryDisplayInfo3";
13848         offset = samr_dissect_element_QueryDisplayInfo3_total_size(tvb, offset, pinfo, tree, drep);
13849         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13850
13851         offset = samr_dissect_element_QueryDisplayInfo3_returned_size(tvb, offset, pinfo, tree, drep);
13852         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13853
13854         offset = samr_dissect_element_QueryDisplayInfo3_info(tvb, offset, pinfo, tree, drep);
13855         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13856
13857         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
13858
13859         if (status != 0)
13860                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
13861
13862         return offset;
13863 }
13864
13865 static int
13866 samr_dissect_QueryDisplayInfo3_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13867 {
13868         pinfo->dcerpc_procedure_name="QueryDisplayInfo3";
13869         offset = samr_dissect_element_QueryDisplayInfo3_domain_handle(tvb, offset, pinfo, tree, drep);
13870         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13871         offset = samr_dissect_element_QueryDisplayInfo3_level(tvb, offset, pinfo, tree, drep);
13872         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13873         offset = samr_dissect_element_QueryDisplayInfo3_start_idx(tvb, offset, pinfo, tree, drep);
13874         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13875         offset = samr_dissect_element_QueryDisplayInfo3_max_entries(tvb, offset, pinfo, tree, drep);
13876         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13877         offset = samr_dissect_element_QueryDisplayInfo3_buf_size(tvb, offset, pinfo, tree, drep);
13878         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13879         return offset;
13880 }
13881
13882 static int
13883 samr_dissect_element_AddMultipleMembersToAlias_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13884 {
13885         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_AddMultipleMembersToAlias_alias_handle_, NDR_POINTER_REF, "Pointer to Alias Handle (policy_handle)",hf_samr_samr_AddMultipleMembersToAlias_alias_handle);
13886
13887         return offset;
13888 }
13889
13890 static int
13891 samr_dissect_element_AddMultipleMembersToAlias_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13892 {
13893         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_AddMultipleMembersToAlias_alias_handle, 0);
13894
13895         return offset;
13896 }
13897
13898 static int
13899 samr_dissect_element_AddMultipleMembersToAlias_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13900 {
13901         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_AddMultipleMembersToAlias_sids_, NDR_POINTER_REF, "Pointer to Sids (lsa_SidArray)",hf_samr_samr_AddMultipleMembersToAlias_sids);
13902
13903         return offset;
13904 }
13905
13906 static int
13907 samr_dissect_element_AddMultipleMembersToAlias_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13908 {
13909         offset = samr_dissect_struct_lsa_SidArray(tvb,offset,pinfo,tree,drep,hf_samr_samr_AddMultipleMembersToAlias_sids,0);
13910
13911         return offset;
13912 }
13913
13914 /* IDL: NTSTATUS samr_AddMultipleMembersToAlias( */
13915 /* IDL: [in] [ref] policy_handle *alias_handle, */
13916 /* IDL: [in] [ref] lsa_SidArray *sids */
13917 /* IDL: ); */
13918
13919 static int
13920 samr_dissect_AddMultipleMembersToAlias_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13921 {
13922         guint32 status;
13923
13924         pinfo->dcerpc_procedure_name="AddMultipleMembersToAlias";
13925         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
13926
13927         if (status != 0)
13928                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
13929
13930         return offset;
13931 }
13932
13933 static int
13934 samr_dissect_AddMultipleMembersToAlias_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13935 {
13936         pinfo->dcerpc_procedure_name="AddMultipleMembersToAlias";
13937         offset = samr_dissect_element_AddMultipleMembersToAlias_alias_handle(tvb, offset, pinfo, tree, drep);
13938         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13939         offset = samr_dissect_element_AddMultipleMembersToAlias_sids(tvb, offset, pinfo, tree, drep);
13940         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13941         return offset;
13942 }
13943
13944 static int
13945 samr_dissect_element_RemoveMultipleMembersFromAlias_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13946 {
13947         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_RemoveMultipleMembersFromAlias_alias_handle_, NDR_POINTER_REF, "Pointer to Alias Handle (policy_handle)",hf_samr_samr_RemoveMultipleMembersFromAlias_alias_handle);
13948
13949         return offset;
13950 }
13951
13952 static int
13953 samr_dissect_element_RemoveMultipleMembersFromAlias_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13954 {
13955         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_RemoveMultipleMembersFromAlias_alias_handle, 0);
13956
13957         return offset;
13958 }
13959
13960 static int
13961 samr_dissect_element_RemoveMultipleMembersFromAlias_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13962 {
13963         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_RemoveMultipleMembersFromAlias_sids_, NDR_POINTER_REF, "Pointer to Sids (lsa_SidArray)",hf_samr_samr_RemoveMultipleMembersFromAlias_sids);
13964
13965         return offset;
13966 }
13967
13968 static int
13969 samr_dissect_element_RemoveMultipleMembersFromAlias_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13970 {
13971         offset = samr_dissect_struct_lsa_SidArray(tvb,offset,pinfo,tree,drep,hf_samr_samr_RemoveMultipleMembersFromAlias_sids,0);
13972
13973         return offset;
13974 }
13975
13976 /* IDL: NTSTATUS samr_RemoveMultipleMembersFromAlias( */
13977 /* IDL: [in] [ref] policy_handle *alias_handle, */
13978 /* IDL: [in] [ref] lsa_SidArray *sids */
13979 /* IDL: ); */
13980
13981 static int
13982 samr_dissect_RemoveMultipleMembersFromAlias_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13983 {
13984         guint32 status;
13985
13986         pinfo->dcerpc_procedure_name="RemoveMultipleMembersFromAlias";
13987         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
13988
13989         if (status != 0)
13990                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
13991
13992         return offset;
13993 }
13994
13995 static int
13996 samr_dissect_RemoveMultipleMembersFromAlias_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13997 {
13998         pinfo->dcerpc_procedure_name="RemoveMultipleMembersFromAlias";
13999         offset = samr_dissect_element_RemoveMultipleMembersFromAlias_alias_handle(tvb, offset, pinfo, tree, drep);
14000         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14001         offset = samr_dissect_element_RemoveMultipleMembersFromAlias_sids(tvb, offset, pinfo, tree, drep);
14002         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14003         return offset;
14004 }
14005
14006 static int
14007 samr_dissect_element_OemChangePasswordUser2_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14008 {
14009         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_OemChangePasswordUser2_server_, NDR_POINTER_UNIQUE, "Pointer to Server (lsa_AsciiString)",hf_samr_samr_OemChangePasswordUser2_server);
14010
14011         return offset;
14012 }
14013
14014 static int
14015 samr_dissect_element_OemChangePasswordUser2_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14016 {
14017         offset = samr_dissect_struct_lsa_AsciiString(tvb,offset,pinfo,tree,drep,hf_samr_samr_OemChangePasswordUser2_server,0);
14018
14019         return offset;
14020 }
14021
14022 static int
14023 samr_dissect_element_OemChangePasswordUser2_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14024 {
14025         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_OemChangePasswordUser2_account_, NDR_POINTER_REF, "Pointer to Account (lsa_AsciiString)",hf_samr_samr_OemChangePasswordUser2_account);
14026
14027         return offset;
14028 }
14029
14030 static int
14031 samr_dissect_element_OemChangePasswordUser2_account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14032 {
14033         offset = samr_dissect_struct_lsa_AsciiString(tvb,offset,pinfo,tree,drep,hf_samr_samr_OemChangePasswordUser2_account,0);
14034
14035         return offset;
14036 }
14037
14038 static int
14039 samr_dissect_element_OemChangePasswordUser2_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14040 {
14041         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_OemChangePasswordUser2_password_, NDR_POINTER_UNIQUE, "Pointer to Password (samr_CryptPassword)",hf_samr_samr_OemChangePasswordUser2_password);
14042
14043         return offset;
14044 }
14045
14046 static int
14047 samr_dissect_element_OemChangePasswordUser2_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14048 {
14049         offset = samr_dissect_struct_CryptPassword(tvb,offset,pinfo,tree,drep,hf_samr_samr_OemChangePasswordUser2_password,0);
14050
14051         return offset;
14052 }
14053
14054 static int
14055 samr_dissect_element_OemChangePasswordUser2_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14056 {
14057         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_OemChangePasswordUser2_hash_, NDR_POINTER_UNIQUE, "Pointer to Hash (samr_Password)",hf_samr_samr_OemChangePasswordUser2_hash);
14058
14059         return offset;
14060 }
14061
14062 static int
14063 samr_dissect_element_OemChangePasswordUser2_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14064 {
14065         offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,drep,hf_samr_samr_OemChangePasswordUser2_hash,0);
14066
14067         return offset;
14068 }
14069
14070 /* IDL: NTSTATUS samr_OemChangePasswordUser2( */
14071 /* IDL: [unique(1)] [in] lsa_AsciiString *server, */
14072 /* IDL: [in] [ref] lsa_AsciiString *account, */
14073 /* IDL: [unique(1)] [in] samr_CryptPassword *password, */
14074 /* IDL: [unique(1)] [in] samr_Password *hash */
14075 /* IDL: ); */
14076
14077 static int
14078 samr_dissect_OemChangePasswordUser2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14079 {
14080         guint32 status;
14081
14082         pinfo->dcerpc_procedure_name="OemChangePasswordUser2";
14083         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
14084
14085         if (status != 0)
14086                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
14087
14088         return offset;
14089 }
14090
14091 static int
14092 samr_dissect_OemChangePasswordUser2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14093 {
14094         pinfo->dcerpc_procedure_name="OemChangePasswordUser2";
14095         offset = samr_dissect_element_OemChangePasswordUser2_server(tvb, offset, pinfo, tree, drep);
14096         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14097         offset = samr_dissect_element_OemChangePasswordUser2_account(tvb, offset, pinfo, tree, drep);
14098         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14099         offset = samr_dissect_element_OemChangePasswordUser2_password(tvb, offset, pinfo, tree, drep);
14100         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14101         offset = samr_dissect_element_OemChangePasswordUser2_hash(tvb, offset, pinfo, tree, drep);
14102         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14103         return offset;
14104 }
14105
14106 static int
14107 samr_dissect_element_ChangePasswordUser2_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14108 {
14109         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ChangePasswordUser2_server_, NDR_POINTER_UNIQUE, "Pointer to Server (lsa_String)",hf_samr_samr_ChangePasswordUser2_server);
14110
14111         return offset;
14112 }
14113
14114 static int
14115 samr_dissect_element_ChangePasswordUser2_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14116 {
14117         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser2_server,0);
14118
14119         return offset;
14120 }
14121
14122 static int
14123 samr_dissect_element_ChangePasswordUser2_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14124 {
14125         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ChangePasswordUser2_account_, NDR_POINTER_REF, "Pointer to Account (lsa_String)",hf_samr_samr_ChangePasswordUser2_account);
14126
14127         return offset;
14128 }
14129
14130 static int
14131 samr_dissect_element_ChangePasswordUser2_account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14132 {
14133         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser2_account,0);
14134
14135         return offset;
14136 }
14137
14138 static int
14139 samr_dissect_element_ChangePasswordUser2_nt_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14140 {
14141         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ChangePasswordUser2_nt_password_, NDR_POINTER_UNIQUE, "Pointer to Nt Password (samr_CryptPassword)",hf_samr_samr_ChangePasswordUser2_nt_password);
14142
14143         return offset;
14144 }
14145
14146 static int
14147 samr_dissect_element_ChangePasswordUser2_nt_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14148 {
14149         offset = samr_dissect_struct_CryptPassword(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser2_nt_password,0);
14150
14151         return offset;
14152 }
14153
14154 static int
14155 samr_dissect_element_ChangePasswordUser2_nt_verifier(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14156 {
14157         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ChangePasswordUser2_nt_verifier_, NDR_POINTER_UNIQUE, "Pointer to Nt Verifier (samr_Password)",hf_samr_samr_ChangePasswordUser2_nt_verifier);
14158
14159         return offset;
14160 }
14161
14162 static int
14163 samr_dissect_element_ChangePasswordUser2_nt_verifier_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14164 {
14165         offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser2_nt_verifier,0);
14166
14167         return offset;
14168 }
14169
14170 static int
14171 samr_dissect_element_ChangePasswordUser2_lm_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14172 {
14173         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_ChangePasswordUser2_lm_change, 0);
14174
14175         return offset;
14176 }
14177
14178 static int
14179 samr_dissect_element_ChangePasswordUser2_lm_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14180 {
14181         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ChangePasswordUser2_lm_password_, NDR_POINTER_UNIQUE, "Pointer to Lm Password (samr_CryptPassword)",hf_samr_samr_ChangePasswordUser2_lm_password);
14182
14183         return offset;
14184 }
14185
14186 static int
14187 samr_dissect_element_ChangePasswordUser2_lm_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14188 {
14189         offset = samr_dissect_struct_CryptPassword(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser2_lm_password,0);
14190
14191         return offset;
14192 }
14193
14194 static int
14195 samr_dissect_element_ChangePasswordUser2_lm_verifier(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14196 {
14197         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ChangePasswordUser2_lm_verifier_, NDR_POINTER_UNIQUE, "Pointer to Lm Verifier (samr_Password)",hf_samr_samr_ChangePasswordUser2_lm_verifier);
14198
14199         return offset;
14200 }
14201
14202 static int
14203 samr_dissect_element_ChangePasswordUser2_lm_verifier_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14204 {
14205         offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser2_lm_verifier,0);
14206
14207         return offset;
14208 }
14209
14210 /* IDL: NTSTATUS samr_ChangePasswordUser2( */
14211 /* IDL: [unique(1)] [in] lsa_String *server, */
14212 /* IDL: [in] [ref] lsa_String *account, */
14213 /* IDL: [unique(1)] [in] samr_CryptPassword *nt_password, */
14214 /* IDL: [unique(1)] [in] samr_Password *nt_verifier, */
14215 /* IDL: [in] uint8 lm_change, */
14216 /* IDL: [unique(1)] [in] samr_CryptPassword *lm_password, */
14217 /* IDL: [unique(1)] [in] samr_Password *lm_verifier */
14218 /* IDL: ); */
14219
14220 static int
14221 samr_dissect_ChangePasswordUser2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14222 {
14223         guint32 status;
14224
14225         pinfo->dcerpc_procedure_name="ChangePasswordUser2";
14226         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
14227
14228         if (status != 0)
14229                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
14230
14231         return offset;
14232 }
14233
14234 static int
14235 samr_dissect_ChangePasswordUser2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14236 {
14237         pinfo->dcerpc_procedure_name="ChangePasswordUser2";
14238         offset = samr_dissect_element_ChangePasswordUser2_server(tvb, offset, pinfo, tree, drep);
14239         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14240         offset = samr_dissect_element_ChangePasswordUser2_account(tvb, offset, pinfo, tree, drep);
14241         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14242         offset = samr_dissect_element_ChangePasswordUser2_nt_password(tvb, offset, pinfo, tree, drep);
14243         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14244         offset = samr_dissect_element_ChangePasswordUser2_nt_verifier(tvb, offset, pinfo, tree, drep);
14245         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14246         offset = samr_dissect_element_ChangePasswordUser2_lm_change(tvb, offset, pinfo, tree, drep);
14247         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14248         offset = samr_dissect_element_ChangePasswordUser2_lm_password(tvb, offset, pinfo, tree, drep);
14249         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14250         offset = samr_dissect_element_ChangePasswordUser2_lm_verifier(tvb, offset, pinfo, tree, drep);
14251         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14252         return offset;
14253 }
14254
14255 static int
14256 samr_dissect_element_GetDomPwInfo_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14257 {
14258         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_GetDomPwInfo_domain_name_, NDR_POINTER_UNIQUE, "Pointer to Domain Name (lsa_String)",hf_samr_samr_GetDomPwInfo_domain_name);
14259
14260         return offset;
14261 }
14262
14263 static int
14264 samr_dissect_element_GetDomPwInfo_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14265 {
14266         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_GetDomPwInfo_domain_name,0);
14267
14268         return offset;
14269 }
14270
14271 static int
14272 samr_dissect_element_GetDomPwInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14273 {
14274         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_GetDomPwInfo_info_, NDR_POINTER_REF, "Pointer to Info (samr_PwInfo)",hf_samr_samr_GetDomPwInfo_info);
14275
14276         return offset;
14277 }
14278
14279 static int
14280 samr_dissect_element_GetDomPwInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14281 {
14282         offset = samr_dissect_struct_PwInfo(tvb,offset,pinfo,tree,drep,hf_samr_samr_GetDomPwInfo_info,0);
14283
14284         return offset;
14285 }
14286
14287 /* IDL: NTSTATUS samr_GetDomPwInfo( */
14288 /* IDL: [unique(1)] [in] lsa_String *domain_name, */
14289 /* IDL: [out] [ref] samr_PwInfo *info */
14290 /* IDL: ); */
14291
14292 static int
14293 samr_dissect_GetDomPwInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14294 {
14295         guint32 status;
14296
14297         pinfo->dcerpc_procedure_name="GetDomPwInfo";
14298         offset = samr_dissect_element_GetDomPwInfo_info(tvb, offset, pinfo, tree, drep);
14299         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14300
14301         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
14302
14303         if (status != 0)
14304                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
14305
14306         return offset;
14307 }
14308
14309 static int
14310 samr_dissect_GetDomPwInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14311 {
14312         pinfo->dcerpc_procedure_name="GetDomPwInfo";
14313         offset = samr_dissect_element_GetDomPwInfo_domain_name(tvb, offset, pinfo, tree, drep);
14314         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14315         return offset;
14316 }
14317
14318 static int
14319 samr_dissect_element_Connect2_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14320 {
14321         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_Connect2_system_name_, NDR_POINTER_UNIQUE, "Pointer to System Name (uint16)",hf_samr_samr_Connect2_system_name);
14322
14323         return offset;
14324 }
14325
14326 static int
14327 samr_dissect_element_Connect2_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14328 {
14329         char *data;
14330
14331         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_samr_samr_Connect2_system_name, FALSE, &data);
14332         proto_item_append_text(tree, ": %s", data);
14333
14334         return offset;
14335 }
14336
14337 static int
14338 samr_dissect_element_Connect2_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14339 {
14340         offset = samr_dissect_bitmap_ConnectAccessMask(tvb, offset, pinfo, tree, drep, hf_samr_samr_Connect2_access_mask, 0);
14341
14342         return offset;
14343 }
14344
14345 static int
14346 samr_dissect_element_Connect2_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14347 {
14348         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_Connect2_connect_handle_, NDR_POINTER_REF, "Pointer to Connect Handle (policy_handle)",hf_samr_samr_Connect2_connect_handle);
14349
14350         return offset;
14351 }
14352
14353 static int
14354 samr_dissect_element_Connect2_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14355 {
14356         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_Connect2_connect_handle, 0);
14357
14358         return offset;
14359 }
14360
14361 /* IDL: NTSTATUS samr_Connect2( */
14362 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *system_name, */
14363 /* IDL: [in] samr_ConnectAccessMask access_mask, */
14364 /* IDL: [out] [ref] policy_handle *connect_handle */
14365 /* IDL: ); */
14366
14367 static int
14368 samr_dissect_Connect2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14369 {
14370         guint32 status;
14371
14372         pinfo->dcerpc_procedure_name="Connect2";
14373         offset = samr_dissect_element_Connect2_connect_handle(tvb, offset, pinfo, tree, drep);
14374         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14375
14376         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
14377
14378         if (status != 0)
14379                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
14380
14381         return offset;
14382 }
14383
14384 static int
14385 samr_dissect_Connect2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14386 {
14387         pinfo->dcerpc_procedure_name="Connect2";
14388         offset = samr_dissect_element_Connect2_system_name(tvb, offset, pinfo, tree, drep);
14389         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14390         offset = samr_dissect_element_Connect2_access_mask(tvb, offset, pinfo, tree, drep);
14391         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14392         return offset;
14393 }
14394
14395 static int
14396 samr_dissect_element_SetUserInfo2_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14397 {
14398         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_SetUserInfo2_user_handle_, NDR_POINTER_REF, "Pointer to User Handle (policy_handle)",hf_samr_samr_SetUserInfo2_user_handle);
14399
14400         return offset;
14401 }
14402
14403 static int
14404 samr_dissect_element_SetUserInfo2_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14405 {
14406         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetUserInfo2_user_handle, 0);
14407
14408         return offset;
14409 }
14410
14411 static int
14412 samr_dissect_element_SetUserInfo2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14413 {
14414         offset = samr_dissect_enum_UserInfoLevel(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetUserInfo2_level, 0);
14415
14416         return offset;
14417 }
14418
14419 static int
14420 samr_dissect_element_SetUserInfo2_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14421 {
14422         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_SetUserInfo2_info_, NDR_POINTER_REF, "Pointer to Info (samr_UserInfo)",hf_samr_samr_SetUserInfo2_info);
14423
14424         return offset;
14425 }
14426
14427 static int
14428 samr_dissect_element_SetUserInfo2_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14429 {
14430         offset = samr_dissect_UserInfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetUserInfo2_info, *0);
14431
14432         return offset;
14433 }
14434
14435 /* IDL: NTSTATUS samr_SetUserInfo2( */
14436 /* IDL: [in] [ref] policy_handle *user_handle, */
14437 /* IDL: [in] samr_UserInfoLevel level, */
14438 /* IDL: [ref] [in] [switch_is(level)] samr_UserInfo *info */
14439 /* IDL: ); */
14440
14441 static int
14442 samr_dissect_SetUserInfo2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14443 {
14444         guint32 status;
14445
14446         pinfo->dcerpc_procedure_name="SetUserInfo2";
14447         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
14448
14449         if (status != 0)
14450                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
14451
14452         return offset;
14453 }
14454
14455 static int
14456 samr_dissect_SetUserInfo2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14457 {
14458         pinfo->dcerpc_procedure_name="SetUserInfo2";
14459         offset = samr_dissect_element_SetUserInfo2_user_handle(tvb, offset, pinfo, tree, drep);
14460         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14461         offset = samr_dissect_element_SetUserInfo2_level(tvb, offset, pinfo, tree, drep);
14462         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14463         offset = samr_dissect_element_SetUserInfo2_info(tvb, offset, pinfo, tree, drep);
14464         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14465         return offset;
14466 }
14467
14468 static int
14469 samr_dissect_element_SetBootKeyInformation_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14470 {
14471         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_SetBootKeyInformation_connect_handle_, NDR_POINTER_REF, "Pointer to Connect Handle (policy_handle)",hf_samr_samr_SetBootKeyInformation_connect_handle);
14472
14473         return offset;
14474 }
14475
14476 static int
14477 samr_dissect_element_SetBootKeyInformation_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14478 {
14479         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetBootKeyInformation_connect_handle, 0);
14480
14481         return offset;
14482 }
14483
14484 static int
14485 samr_dissect_element_SetBootKeyInformation_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14486 {
14487         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetBootKeyInformation_unknown1, 0);
14488
14489         return offset;
14490 }
14491
14492 static int
14493 samr_dissect_element_SetBootKeyInformation_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14494 {
14495         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetBootKeyInformation_unknown2, 0);
14496
14497         return offset;
14498 }
14499
14500 static int
14501 samr_dissect_element_SetBootKeyInformation_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14502 {
14503         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetBootKeyInformation_unknown3, 0);
14504
14505         return offset;
14506 }
14507
14508 /* IDL: NTSTATUS samr_SetBootKeyInformation( */
14509 /* IDL: [in] [ref] policy_handle *connect_handle, */
14510 /* IDL: [in] uint32 unknown1, */
14511 /* IDL: [in] uint32 unknown2, */
14512 /* IDL: [in] uint32 unknown3 */
14513 /* IDL: ); */
14514
14515 static int
14516 samr_dissect_SetBootKeyInformation_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14517 {
14518         guint32 status;
14519
14520         pinfo->dcerpc_procedure_name="SetBootKeyInformation";
14521         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
14522
14523         if (status != 0)
14524                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
14525
14526         return offset;
14527 }
14528
14529 static int
14530 samr_dissect_SetBootKeyInformation_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14531 {
14532         pinfo->dcerpc_procedure_name="SetBootKeyInformation";
14533         offset = samr_dissect_element_SetBootKeyInformation_connect_handle(tvb, offset, pinfo, tree, drep);
14534         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14535         offset = samr_dissect_element_SetBootKeyInformation_unknown1(tvb, offset, pinfo, tree, drep);
14536         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14537         offset = samr_dissect_element_SetBootKeyInformation_unknown2(tvb, offset, pinfo, tree, drep);
14538         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14539         offset = samr_dissect_element_SetBootKeyInformation_unknown3(tvb, offset, pinfo, tree, drep);
14540         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14541         return offset;
14542 }
14543
14544 static int
14545 samr_dissect_element_GetBootKeyInformation_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14546 {
14547         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_GetBootKeyInformation_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_samr_GetBootKeyInformation_domain_handle);
14548
14549         return offset;
14550 }
14551
14552 static int
14553 samr_dissect_element_GetBootKeyInformation_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14554 {
14555         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_GetBootKeyInformation_domain_handle, 0);
14556
14557         return offset;
14558 }
14559
14560 static int
14561 samr_dissect_element_GetBootKeyInformation_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14562 {
14563         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_GetBootKeyInformation_unknown_, NDR_POINTER_REF, "Pointer to Unknown (uint32)",hf_samr_samr_GetBootKeyInformation_unknown);
14564
14565         return offset;
14566 }
14567
14568 static int
14569 samr_dissect_element_GetBootKeyInformation_unknown_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14570 {
14571         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_GetBootKeyInformation_unknown, 0);
14572
14573         return offset;
14574 }
14575
14576 /* IDL: NTSTATUS samr_GetBootKeyInformation( */
14577 /* IDL: [in] [ref] policy_handle *domain_handle, */
14578 /* IDL: [out] [ref] uint32 *unknown */
14579 /* IDL: ); */
14580
14581 static int
14582 samr_dissect_GetBootKeyInformation_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14583 {
14584         guint32 status;
14585
14586         pinfo->dcerpc_procedure_name="GetBootKeyInformation";
14587         offset = samr_dissect_element_GetBootKeyInformation_unknown(tvb, offset, pinfo, tree, drep);
14588         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14589
14590         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
14591
14592         if (status != 0)
14593                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
14594
14595         return offset;
14596 }
14597
14598 static int
14599 samr_dissect_GetBootKeyInformation_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14600 {
14601         pinfo->dcerpc_procedure_name="GetBootKeyInformation";
14602         offset = samr_dissect_element_GetBootKeyInformation_domain_handle(tvb, offset, pinfo, tree, drep);
14603         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14604         return offset;
14605 }
14606
14607 static int
14608 samr_dissect_element_Connect3_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14609 {
14610         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_Connect3_system_name_, NDR_POINTER_UNIQUE, "Pointer to System Name (uint16)",hf_samr_samr_Connect3_system_name);
14611
14612         return offset;
14613 }
14614
14615 static int
14616 samr_dissect_element_Connect3_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14617 {
14618         char *data;
14619
14620         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_samr_samr_Connect3_system_name, FALSE, &data);
14621         proto_item_append_text(tree, ": %s", data);
14622
14623         return offset;
14624 }
14625
14626 static int
14627 samr_dissect_element_Connect3_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14628 {
14629         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_Connect3_unknown, 0);
14630
14631         return offset;
14632 }
14633
14634 static int
14635 samr_dissect_element_Connect3_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14636 {
14637         offset = samr_dissect_bitmap_ConnectAccessMask(tvb, offset, pinfo, tree, drep, hf_samr_samr_Connect3_access_mask, 0);
14638
14639         return offset;
14640 }
14641
14642 static int
14643 samr_dissect_element_Connect3_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14644 {
14645         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_Connect3_connect_handle_, NDR_POINTER_REF, "Pointer to Connect Handle (policy_handle)",hf_samr_samr_Connect3_connect_handle);
14646
14647         return offset;
14648 }
14649
14650 static int
14651 samr_dissect_element_Connect3_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14652 {
14653         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_Connect3_connect_handle, 0);
14654
14655         return offset;
14656 }
14657
14658 /* IDL: NTSTATUS samr_Connect3( */
14659 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *system_name, */
14660 /* IDL: [in] uint32 unknown, */
14661 /* IDL: [in] samr_ConnectAccessMask access_mask, */
14662 /* IDL: [out] [ref] policy_handle *connect_handle */
14663 /* IDL: ); */
14664
14665 static int
14666 samr_dissect_Connect3_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14667 {
14668         guint32 status;
14669
14670         pinfo->dcerpc_procedure_name="Connect3";
14671         offset = samr_dissect_element_Connect3_connect_handle(tvb, offset, pinfo, tree, drep);
14672         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14673
14674         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
14675
14676         if (status != 0)
14677                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
14678
14679         return offset;
14680 }
14681
14682 static int
14683 samr_dissect_Connect3_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14684 {
14685         pinfo->dcerpc_procedure_name="Connect3";
14686         offset = samr_dissect_element_Connect3_system_name(tvb, offset, pinfo, tree, drep);
14687         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14688         offset = samr_dissect_element_Connect3_unknown(tvb, offset, pinfo, tree, drep);
14689         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14690         offset = samr_dissect_element_Connect3_access_mask(tvb, offset, pinfo, tree, drep);
14691         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14692         return offset;
14693 }
14694
14695 static int
14696 samr_dissect_element_Connect4_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14697 {
14698         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_Connect4_system_name_, NDR_POINTER_UNIQUE, "Pointer to System Name (uint16)",hf_samr_samr_Connect4_system_name);
14699
14700         return offset;
14701 }
14702
14703 static int
14704 samr_dissect_element_Connect4_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14705 {
14706         char *data;
14707
14708         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_samr_samr_Connect4_system_name, FALSE, &data);
14709         proto_item_append_text(tree, ": %s", data);
14710
14711         return offset;
14712 }
14713
14714 static int
14715 samr_dissect_element_Connect4_client_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14716 {
14717         offset = samr_dissect_enum_ConnectVersion(tvb, offset, pinfo, tree, drep, hf_samr_samr_Connect4_client_version, 0);
14718
14719         return offset;
14720 }
14721
14722 static int
14723 samr_dissect_element_Connect4_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14724 {
14725         offset = samr_dissect_bitmap_ConnectAccessMask(tvb, offset, pinfo, tree, drep, hf_samr_samr_Connect4_access_mask, 0);
14726
14727         return offset;
14728 }
14729
14730 static int
14731 samr_dissect_element_Connect4_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14732 {
14733         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_Connect4_connect_handle_, NDR_POINTER_REF, "Pointer to Connect Handle (policy_handle)",hf_samr_samr_Connect4_connect_handle);
14734
14735         return offset;
14736 }
14737
14738 static int
14739 samr_dissect_element_Connect4_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14740 {
14741         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_Connect4_connect_handle, 0);
14742
14743         return offset;
14744 }
14745
14746 /* IDL: NTSTATUS samr_Connect4( */
14747 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *system_name, */
14748 /* IDL: [in] samr_ConnectVersion client_version, */
14749 /* IDL: [in] samr_ConnectAccessMask access_mask, */
14750 /* IDL: [out] [ref] policy_handle *connect_handle */
14751 /* IDL: ); */
14752
14753 static int
14754 samr_dissect_Connect4_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14755 {
14756         guint32 status;
14757
14758         pinfo->dcerpc_procedure_name="Connect4";
14759         offset = samr_dissect_element_Connect4_connect_handle(tvb, offset, pinfo, tree, drep);
14760         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14761
14762         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
14763
14764         if (status != 0)
14765                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
14766
14767         return offset;
14768 }
14769
14770 static int
14771 samr_dissect_Connect4_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14772 {
14773         pinfo->dcerpc_procedure_name="Connect4";
14774         offset = samr_dissect_element_Connect4_system_name(tvb, offset, pinfo, tree, drep);
14775         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14776         offset = samr_dissect_element_Connect4_client_version(tvb, offset, pinfo, tree, drep);
14777         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14778         offset = samr_dissect_element_Connect4_access_mask(tvb, offset, pinfo, tree, drep);
14779         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14780         return offset;
14781 }
14782
14783 static int
14784 samr_dissect_element_ChangePasswordUser3_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14785 {
14786         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ChangePasswordUser3_server_, NDR_POINTER_UNIQUE, "Pointer to Server (lsa_String)",hf_samr_samr_ChangePasswordUser3_server);
14787
14788         return offset;
14789 }
14790
14791 static int
14792 samr_dissect_element_ChangePasswordUser3_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14793 {
14794         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser3_server,0);
14795
14796         return offset;
14797 }
14798
14799 static int
14800 samr_dissect_element_ChangePasswordUser3_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14801 {
14802         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ChangePasswordUser3_account_, NDR_POINTER_REF, "Pointer to Account (lsa_String)",hf_samr_samr_ChangePasswordUser3_account);
14803
14804         return offset;
14805 }
14806
14807 static int
14808 samr_dissect_element_ChangePasswordUser3_account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14809 {
14810         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser3_account,0);
14811
14812         return offset;
14813 }
14814
14815 static int
14816 samr_dissect_element_ChangePasswordUser3_nt_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14817 {
14818         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ChangePasswordUser3_nt_password_, NDR_POINTER_UNIQUE, "Pointer to Nt Password (samr_CryptPassword)",hf_samr_samr_ChangePasswordUser3_nt_password);
14819
14820         return offset;
14821 }
14822
14823 static int
14824 samr_dissect_element_ChangePasswordUser3_nt_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14825 {
14826         offset = samr_dissect_struct_CryptPassword(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser3_nt_password,0);
14827
14828         return offset;
14829 }
14830
14831 static int
14832 samr_dissect_element_ChangePasswordUser3_nt_verifier(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14833 {
14834         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ChangePasswordUser3_nt_verifier_, NDR_POINTER_UNIQUE, "Pointer to Nt Verifier (samr_Password)",hf_samr_samr_ChangePasswordUser3_nt_verifier);
14835
14836         return offset;
14837 }
14838
14839 static int
14840 samr_dissect_element_ChangePasswordUser3_nt_verifier_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14841 {
14842         offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser3_nt_verifier,0);
14843
14844         return offset;
14845 }
14846
14847 static int
14848 samr_dissect_element_ChangePasswordUser3_lm_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14849 {
14850         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_ChangePasswordUser3_lm_change, 0);
14851
14852         return offset;
14853 }
14854
14855 static int
14856 samr_dissect_element_ChangePasswordUser3_lm_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14857 {
14858         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ChangePasswordUser3_lm_password_, NDR_POINTER_UNIQUE, "Pointer to Lm Password (samr_CryptPassword)",hf_samr_samr_ChangePasswordUser3_lm_password);
14859
14860         return offset;
14861 }
14862
14863 static int
14864 samr_dissect_element_ChangePasswordUser3_lm_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14865 {
14866         offset = samr_dissect_struct_CryptPassword(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser3_lm_password,0);
14867
14868         return offset;
14869 }
14870
14871 static int
14872 samr_dissect_element_ChangePasswordUser3_lm_verifier(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14873 {
14874         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ChangePasswordUser3_lm_verifier_, NDR_POINTER_UNIQUE, "Pointer to Lm Verifier (samr_Password)",hf_samr_samr_ChangePasswordUser3_lm_verifier);
14875
14876         return offset;
14877 }
14878
14879 static int
14880 samr_dissect_element_ChangePasswordUser3_lm_verifier_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14881 {
14882         offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser3_lm_verifier,0);
14883
14884         return offset;
14885 }
14886
14887 static int
14888 samr_dissect_element_ChangePasswordUser3_password3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14889 {
14890         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ChangePasswordUser3_password3_, NDR_POINTER_UNIQUE, "Pointer to Password3 (samr_CryptPassword)",hf_samr_samr_ChangePasswordUser3_password3);
14891
14892         return offset;
14893 }
14894
14895 static int
14896 samr_dissect_element_ChangePasswordUser3_password3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14897 {
14898         offset = samr_dissect_struct_CryptPassword(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser3_password3,0);
14899
14900         return offset;
14901 }
14902
14903 static int
14904 samr_dissect_element_ChangePasswordUser3_dominfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14905 {
14906         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ChangePasswordUser3_dominfo_, NDR_POINTER_REF, "Pointer to Dominfo (samr_DomInfo1)",hf_samr_samr_ChangePasswordUser3_dominfo);
14907
14908         return offset;
14909 }
14910
14911 static int
14912 samr_dissect_element_ChangePasswordUser3_dominfo_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14913 {
14914         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ChangePasswordUser3_dominfo__, NDR_POINTER_UNIQUE, "Pointer to Dominfo (samr_DomInfo1)",hf_samr_samr_ChangePasswordUser3_dominfo);
14915
14916         return offset;
14917 }
14918
14919 static int
14920 samr_dissect_element_ChangePasswordUser3_dominfo__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14921 {
14922         offset = samr_dissect_struct_DomInfo1(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser3_dominfo,0);
14923
14924         return offset;
14925 }
14926
14927 static int
14928 samr_dissect_element_ChangePasswordUser3_reject(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14929 {
14930         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ChangePasswordUser3_reject_, NDR_POINTER_REF, "Pointer to Reject (userPwdChangeFailureInformation)",hf_samr_samr_ChangePasswordUser3_reject);
14931
14932         return offset;
14933 }
14934
14935 static int
14936 samr_dissect_element_ChangePasswordUser3_reject_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14937 {
14938         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ChangePasswordUser3_reject__, NDR_POINTER_UNIQUE, "Pointer to Reject (userPwdChangeFailureInformation)",hf_samr_samr_ChangePasswordUser3_reject);
14939
14940         return offset;
14941 }
14942
14943 static int
14944 samr_dissect_element_ChangePasswordUser3_reject__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14945 {
14946         offset = samr_dissect_struct_userPwdChangeFailureInformation(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser3_reject,0);
14947
14948         return offset;
14949 }
14950
14951 /* IDL: NTSTATUS samr_ChangePasswordUser3( */
14952 /* IDL: [unique(1)] [in] lsa_String *server, */
14953 /* IDL: [in] [ref] lsa_String *account, */
14954 /* IDL: [unique(1)] [in] samr_CryptPassword *nt_password, */
14955 /* IDL: [unique(1)] [in] samr_Password *nt_verifier, */
14956 /* IDL: [in] uint8 lm_change, */
14957 /* IDL: [unique(1)] [in] samr_CryptPassword *lm_password, */
14958 /* IDL: [unique(1)] [in] samr_Password *lm_verifier, */
14959 /* IDL: [unique(1)] [in] samr_CryptPassword *password3, */
14960 /* IDL: [out] [ref] samr_DomInfo1 **dominfo, */
14961 /* IDL: [out] [ref] userPwdChangeFailureInformation **reject */
14962 /* IDL: ); */
14963
14964 static int
14965 samr_dissect_ChangePasswordUser3_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14966 {
14967         guint32 status;
14968
14969         pinfo->dcerpc_procedure_name="ChangePasswordUser3";
14970         offset = samr_dissect_element_ChangePasswordUser3_dominfo(tvb, offset, pinfo, tree, drep);
14971         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14972
14973         offset = samr_dissect_element_ChangePasswordUser3_reject(tvb, offset, pinfo, tree, drep);
14974         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14975
14976         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
14977
14978         if (status != 0)
14979                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
14980
14981         return offset;
14982 }
14983
14984 static int
14985 samr_dissect_ChangePasswordUser3_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14986 {
14987         pinfo->dcerpc_procedure_name="ChangePasswordUser3";
14988         offset = samr_dissect_element_ChangePasswordUser3_server(tvb, offset, pinfo, tree, drep);
14989         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14990         offset = samr_dissect_element_ChangePasswordUser3_account(tvb, offset, pinfo, tree, drep);
14991         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14992         offset = samr_dissect_element_ChangePasswordUser3_nt_password(tvb, offset, pinfo, tree, drep);
14993         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14994         offset = samr_dissect_element_ChangePasswordUser3_nt_verifier(tvb, offset, pinfo, tree, drep);
14995         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14996         offset = samr_dissect_element_ChangePasswordUser3_lm_change(tvb, offset, pinfo, tree, drep);
14997         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14998         offset = samr_dissect_element_ChangePasswordUser3_lm_password(tvb, offset, pinfo, tree, drep);
14999         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
15000         offset = samr_dissect_element_ChangePasswordUser3_lm_verifier(tvb, offset, pinfo, tree, drep);
15001         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
15002         offset = samr_dissect_element_ChangePasswordUser3_password3(tvb, offset, pinfo, tree, drep);
15003         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
15004         return offset;
15005 }
15006
15007 static int
15008 samr_dissect_element_Connect5_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15009 {
15010         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_Connect5_system_name_, NDR_POINTER_UNIQUE, "Pointer to System Name (uint16)",hf_samr_samr_Connect5_system_name);
15011
15012         return offset;
15013 }
15014
15015 static int
15016 samr_dissect_element_Connect5_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15017 {
15018         char *data;
15019
15020         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_samr_samr_Connect5_system_name, FALSE, &data);
15021         proto_item_append_text(tree, ": %s", data);
15022
15023         return offset;
15024 }
15025
15026 static int
15027 samr_dissect_element_Connect5_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15028 {
15029         offset = samr_dissect_bitmap_ConnectAccessMask(tvb, offset, pinfo, tree, drep, hf_samr_samr_Connect5_access_mask, 0);
15030
15031         return offset;
15032 }
15033
15034 static int
15035 samr_dissect_element_Connect5_level_in(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15036 {
15037         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_Connect5_level_in, 0);
15038
15039         return offset;
15040 }
15041
15042 static int
15043 samr_dissect_element_Connect5_info_in(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15044 {
15045         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_Connect5_info_in_, NDR_POINTER_REF, "Pointer to Info In (samr_ConnectInfo)",hf_samr_samr_Connect5_info_in);
15046
15047         return offset;
15048 }
15049
15050 static int
15051 samr_dissect_element_Connect5_info_in_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15052 {
15053         offset = samr_dissect_ConnectInfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_Connect5_info_in, *0);
15054
15055         return offset;
15056 }
15057
15058 static int
15059 samr_dissect_element_Connect5_level_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15060 {
15061         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_Connect5_level_out_, NDR_POINTER_REF, "Pointer to Level Out (uint32)",hf_samr_samr_Connect5_level_out);
15062
15063         return offset;
15064 }
15065
15066 static int
15067 samr_dissect_element_Connect5_level_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15068 {
15069         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_Connect5_level_out, 0);
15070
15071         return offset;
15072 }
15073
15074 static int
15075 samr_dissect_element_Connect5_info_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15076 {
15077         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_Connect5_info_out_, NDR_POINTER_REF, "Pointer to Info Out (samr_ConnectInfo)",hf_samr_samr_Connect5_info_out);
15078
15079         return offset;
15080 }
15081
15082 static int
15083 samr_dissect_element_Connect5_info_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15084 {
15085         offset = samr_dissect_ConnectInfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_Connect5_info_out, *0);
15086
15087         return offset;
15088 }
15089
15090 static int
15091 samr_dissect_element_Connect5_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15092 {
15093         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_Connect5_connect_handle_, NDR_POINTER_REF, "Pointer to Connect Handle (policy_handle)",hf_samr_samr_Connect5_connect_handle);
15094
15095         return offset;
15096 }
15097
15098 static int
15099 samr_dissect_element_Connect5_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15100 {
15101         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_Connect5_connect_handle, 0);
15102
15103         return offset;
15104 }
15105
15106 /* IDL: NTSTATUS samr_Connect5( */
15107 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *system_name, */
15108 /* IDL: [in] samr_ConnectAccessMask access_mask, */
15109 /* IDL: [in] uint32 level_in, */
15110 /* IDL: [ref] [in] [switch_is(level_in)] samr_ConnectInfo *info_in, */
15111 /* IDL: [out] [ref] uint32 *level_out, */
15112 /* IDL: [out] [ref] [switch_is(*level_out)] samr_ConnectInfo *info_out, */
15113 /* IDL: [out] [ref] policy_handle *connect_handle */
15114 /* IDL: ); */
15115
15116 static int
15117 samr_dissect_Connect5_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15118 {
15119         guint32 status;
15120
15121         pinfo->dcerpc_procedure_name="Connect5";
15122         offset = samr_dissect_element_Connect5_level_out(tvb, offset, pinfo, tree, drep);
15123         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
15124
15125         offset = samr_dissect_element_Connect5_info_out(tvb, offset, pinfo, tree, drep);
15126         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
15127
15128         offset = samr_dissect_element_Connect5_connect_handle(tvb, offset, pinfo, tree, drep);
15129         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
15130
15131         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
15132
15133         if (status != 0)
15134                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
15135
15136         return offset;
15137 }
15138
15139 static int
15140 samr_dissect_Connect5_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15141 {
15142         pinfo->dcerpc_procedure_name="Connect5";
15143         offset = samr_dissect_element_Connect5_system_name(tvb, offset, pinfo, tree, drep);
15144         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
15145         offset = samr_dissect_element_Connect5_access_mask(tvb, offset, pinfo, tree, drep);
15146         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
15147         offset = samr_dissect_element_Connect5_level_in(tvb, offset, pinfo, tree, drep);
15148         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
15149         offset = samr_dissect_element_Connect5_info_in(tvb, offset, pinfo, tree, drep);
15150         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
15151         return offset;
15152 }
15153
15154 static int
15155 samr_dissect_element_RidToSid_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15156 {
15157         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_RidToSid_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_samr_RidToSid_domain_handle);
15158
15159         return offset;
15160 }
15161
15162 static int
15163 samr_dissect_element_RidToSid_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15164 {
15165         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_RidToSid_domain_handle, 0);
15166
15167         return offset;
15168 }
15169
15170 static int
15171 samr_dissect_element_RidToSid_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15172 {
15173         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_RidToSid_rid, 0);
15174
15175         return offset;
15176 }
15177
15178 static int
15179 samr_dissect_element_RidToSid_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15180 {
15181         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_RidToSid_sid_, NDR_POINTER_REF, "Pointer to Sid (dom_sid2)",hf_samr_samr_RidToSid_sid);
15182
15183         return offset;
15184 }
15185
15186 static int
15187 samr_dissect_element_RidToSid_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15188 {
15189         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_RidToSid_sid__, NDR_POINTER_UNIQUE, "Pointer to Sid (dom_sid2)",hf_samr_samr_RidToSid_sid);
15190
15191         return offset;
15192 }
15193
15194 static int
15195 samr_dissect_element_RidToSid_sid__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15196 {
15197         offset = samr_dissect_struct_dom_sid2(tvb,offset,pinfo,tree,drep,hf_samr_samr_RidToSid_sid,0);
15198
15199         return offset;
15200 }
15201
15202 /* IDL: NTSTATUS samr_RidToSid( */
15203 /* IDL: [in] [ref] policy_handle *domain_handle, */
15204 /* IDL: [in] uint32 rid, */
15205 /* IDL: [out] [ref] dom_sid2 **sid */
15206 /* IDL: ); */
15207
15208 static int
15209 samr_dissect_RidToSid_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15210 {
15211         guint32 status;
15212
15213         pinfo->dcerpc_procedure_name="RidToSid";
15214         offset = samr_dissect_element_RidToSid_sid(tvb, offset, pinfo, tree, drep);
15215         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
15216
15217         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
15218
15219         if (status != 0)
15220                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
15221
15222         return offset;
15223 }
15224
15225 static int
15226 samr_dissect_RidToSid_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15227 {
15228         pinfo->dcerpc_procedure_name="RidToSid";
15229         offset = samr_dissect_element_RidToSid_domain_handle(tvb, offset, pinfo, tree, drep);
15230         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
15231         offset = samr_dissect_element_RidToSid_rid(tvb, offset, pinfo, tree, drep);
15232         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
15233         return offset;
15234 }
15235
15236 static int
15237 samr_dissect_element_SetDsrmPassword_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15238 {
15239         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_SetDsrmPassword_name_, NDR_POINTER_UNIQUE, "Pointer to Name (lsa_String)",hf_samr_samr_SetDsrmPassword_name);
15240
15241         return offset;
15242 }
15243
15244 static int
15245 samr_dissect_element_SetDsrmPassword_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15246 {
15247         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_SetDsrmPassword_name,0);
15248
15249         return offset;
15250 }
15251
15252 static int
15253 samr_dissect_element_SetDsrmPassword_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15254 {
15255         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetDsrmPassword_unknown, 0);
15256
15257         return offset;
15258 }
15259
15260 static int
15261 samr_dissect_element_SetDsrmPassword_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15262 {
15263         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_SetDsrmPassword_hash_, NDR_POINTER_UNIQUE, "Pointer to Hash (samr_Password)",hf_samr_samr_SetDsrmPassword_hash);
15264
15265         return offset;
15266 }
15267
15268 static int
15269 samr_dissect_element_SetDsrmPassword_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15270 {
15271         offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,drep,hf_samr_samr_SetDsrmPassword_hash,0);
15272
15273         return offset;
15274 }
15275
15276 /* IDL: NTSTATUS samr_SetDsrmPassword( */
15277 /* IDL: [unique(1)] [in] lsa_String *name, */
15278 /* IDL: [in] uint32 unknown, */
15279 /* IDL: [unique(1)] [in] samr_Password *hash */
15280 /* IDL: ); */
15281
15282 static int
15283 samr_dissect_SetDsrmPassword_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15284 {
15285         guint32 status;
15286
15287         pinfo->dcerpc_procedure_name="SetDsrmPassword";
15288         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
15289
15290         if (status != 0)
15291                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
15292
15293         return offset;
15294 }
15295
15296 static int
15297 samr_dissect_SetDsrmPassword_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15298 {
15299         pinfo->dcerpc_procedure_name="SetDsrmPassword";
15300         offset = samr_dissect_element_SetDsrmPassword_name(tvb, offset, pinfo, tree, drep);
15301         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
15302         offset = samr_dissect_element_SetDsrmPassword_unknown(tvb, offset, pinfo, tree, drep);
15303         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
15304         offset = samr_dissect_element_SetDsrmPassword_hash(tvb, offset, pinfo, tree, drep);
15305         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
15306         return offset;
15307 }
15308
15309 static int
15310 samr_dissect_element_ValidatePassword_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15311 {
15312         offset = samr_dissect_enum_ValidatePasswordLevel(tvb, offset, pinfo, tree, drep, hf_samr_samr_ValidatePassword_level, 0);
15313
15314         return offset;
15315 }
15316
15317 static int
15318 samr_dissect_element_ValidatePassword_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15319 {
15320         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ValidatePassword_req_, NDR_POINTER_REF, "Pointer to Req (samr_ValidatePasswordReq)",hf_samr_samr_ValidatePassword_req);
15321
15322         return offset;
15323 }
15324
15325 static int
15326 samr_dissect_element_ValidatePassword_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15327 {
15328         offset = samr_dissect_ValidatePasswordReq(tvb, offset, pinfo, tree, drep, hf_samr_samr_ValidatePassword_req, *0);
15329
15330         return offset;
15331 }
15332
15333 static int
15334 samr_dissect_element_ValidatePassword_rep(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15335 {
15336         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ValidatePassword_rep_, NDR_POINTER_REF, "Pointer to Rep (samr_ValidatePasswordRep)",hf_samr_samr_ValidatePassword_rep);
15337
15338         return offset;
15339 }
15340
15341 static int
15342 samr_dissect_element_ValidatePassword_rep_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15343 {
15344         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ValidatePassword_rep__, NDR_POINTER_UNIQUE, "Pointer to Rep (samr_ValidatePasswordRep)",hf_samr_samr_ValidatePassword_rep);
15345
15346         return offset;
15347 }
15348
15349 static int
15350 samr_dissect_element_ValidatePassword_rep__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15351 {
15352         offset = samr_dissect_ValidatePasswordRep(tvb, offset, pinfo, tree, drep, hf_samr_samr_ValidatePassword_rep, *0);
15353
15354         return offset;
15355 }
15356
15357 /* IDL: NTSTATUS samr_ValidatePassword( */
15358 /* IDL: [in] samr_ValidatePasswordLevel level, */
15359 /* IDL: [ref] [in] [switch_is(level)] samr_ValidatePasswordReq *req, */
15360 /* IDL: [out] [ref] [switch_is(level)] samr_ValidatePasswordRep **rep */
15361 /* IDL: ); */
15362
15363 static int
15364 samr_dissect_ValidatePassword_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15365 {
15366         guint32 status;
15367
15368         pinfo->dcerpc_procedure_name="ValidatePassword";
15369         offset = samr_dissect_element_ValidatePassword_rep(tvb, offset, pinfo, tree, drep);
15370         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
15371
15372         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
15373
15374         if (status != 0)
15375                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
15376
15377         return offset;
15378 }
15379
15380 static int
15381 samr_dissect_ValidatePassword_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15382 {
15383         pinfo->dcerpc_procedure_name="ValidatePassword";
15384         offset = samr_dissect_element_ValidatePassword_level(tvb, offset, pinfo, tree, drep);
15385         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
15386         offset = samr_dissect_element_ValidatePassword_req(tvb, offset, pinfo, tree, drep);
15387         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
15388         return offset;
15389 }
15390
15391
15392 static dcerpc_sub_dissector samr_dissectors[] = {
15393         { 0, "Connect",
15394            samr_dissect_Connect_request, samr_dissect_Connect_response},
15395         { 1, "Close",
15396            samr_dissect_Close_request, samr_dissect_Close_response},
15397         { 2, "SetSecurity",
15398            samr_dissect_SetSecurity_request, samr_dissect_SetSecurity_response},
15399         { 3, "QuerySecurity",
15400            samr_dissect_QuerySecurity_request, samr_dissect_QuerySecurity_response},
15401         { 4, "Shutdown",
15402            samr_dissect_Shutdown_request, samr_dissect_Shutdown_response},
15403         { 5, "LookupDomain",
15404            samr_dissect_LookupDomain_request, samr_dissect_LookupDomain_response},
15405         { 6, "EnumDomains",
15406            samr_dissect_EnumDomains_request, samr_dissect_EnumDomains_response},
15407         { 7, "OpenDomain",
15408            samr_dissect_OpenDomain_request, samr_dissect_OpenDomain_response},
15409         { 8, "QueryDomainInfo",
15410            samr_dissect_QueryDomainInfo_request, samr_dissect_QueryDomainInfo_response},
15411         { 9, "SetDomainInfo",
15412            samr_dissect_SetDomainInfo_request, samr_dissect_SetDomainInfo_response},
15413         { 10, "CreateDomainGroup",
15414            samr_dissect_CreateDomainGroup_request, samr_dissect_CreateDomainGroup_response},
15415         { 11, "EnumDomainGroups",
15416            samr_dissect_EnumDomainGroups_request, samr_dissect_EnumDomainGroups_response},
15417         { 12, "CreateUser",
15418            samr_dissect_CreateUser_request, samr_dissect_CreateUser_response},
15419         { 13, "EnumDomainUsers",
15420            samr_dissect_EnumDomainUsers_request, samr_dissect_EnumDomainUsers_response},
15421         { 14, "CreateDomAlias",
15422            samr_dissect_CreateDomAlias_request, samr_dissect_CreateDomAlias_response},
15423         { 15, "EnumDomainAliases",
15424            samr_dissect_EnumDomainAliases_request, samr_dissect_EnumDomainAliases_response},
15425         { 16, "GetAliasMembership",
15426            samr_dissect_GetAliasMembership_request, samr_dissect_GetAliasMembership_response},
15427         { 17, "LookupNames",
15428            samr_dissect_LookupNames_request, samr_dissect_LookupNames_response},
15429         { 18, "LookupRids",
15430            samr_dissect_LookupRids_request, samr_dissect_LookupRids_response},
15431         { 19, "OpenGroup",
15432            samr_dissect_OpenGroup_request, samr_dissect_OpenGroup_response},
15433         { 20, "QueryGroupInfo",
15434            samr_dissect_QueryGroupInfo_request, samr_dissect_QueryGroupInfo_response},
15435         { 21, "SetGroupInfo",
15436            samr_dissect_SetGroupInfo_request, samr_dissect_SetGroupInfo_response},
15437         { 22, "AddGroupMember",
15438            samr_dissect_AddGroupMember_request, samr_dissect_AddGroupMember_response},
15439         { 23, "DeleteDomainGroup",
15440            samr_dissect_DeleteDomainGroup_request, samr_dissect_DeleteDomainGroup_response},
15441         { 24, "DeleteGroupMember",
15442            samr_dissect_DeleteGroupMember_request, samr_dissect_DeleteGroupMember_response},
15443         { 25, "QueryGroupMember",
15444            samr_dissect_QueryGroupMember_request, samr_dissect_QueryGroupMember_response},
15445         { 26, "SetMemberAttributesOfGroup",
15446            samr_dissect_SetMemberAttributesOfGroup_request, samr_dissect_SetMemberAttributesOfGroup_response},
15447         { 27, "OpenAlias",
15448            samr_dissect_OpenAlias_request, samr_dissect_OpenAlias_response},
15449         { 28, "QueryAliasInfo",
15450            samr_dissect_QueryAliasInfo_request, samr_dissect_QueryAliasInfo_response},
15451         { 29, "SetAliasInfo",
15452            samr_dissect_SetAliasInfo_request, samr_dissect_SetAliasInfo_response},
15453         { 30, "DeleteDomAlias",
15454            samr_dissect_DeleteDomAlias_request, samr_dissect_DeleteDomAlias_response},
15455         { 31, "AddAliasMember",
15456            samr_dissect_AddAliasMember_request, samr_dissect_AddAliasMember_response},
15457         { 32, "DeleteAliasMember",
15458            samr_dissect_DeleteAliasMember_request, samr_dissect_DeleteAliasMember_response},
15459         { 33, "GetMembersInAlias",
15460            samr_dissect_GetMembersInAlias_request, samr_dissect_GetMembersInAlias_response},
15461         { 34, "OpenUser",
15462            samr_dissect_OpenUser_request, samr_dissect_OpenUser_response},
15463         { 35, "DeleteUser",
15464            samr_dissect_DeleteUser_request, samr_dissect_DeleteUser_response},
15465         { 36, "QueryUserInfo",
15466            samr_dissect_QueryUserInfo_request, samr_dissect_QueryUserInfo_response},
15467         { 37, "SetUserInfo",
15468            samr_dissect_SetUserInfo_request, samr_dissect_SetUserInfo_response},
15469         { 38, "ChangePasswordUser",
15470            samr_dissect_ChangePasswordUser_request, samr_dissect_ChangePasswordUser_response},
15471         { 39, "GetGroupsForUser",
15472            samr_dissect_GetGroupsForUser_request, samr_dissect_GetGroupsForUser_response},
15473         { 40, "QueryDisplayInfo",
15474            samr_dissect_QueryDisplayInfo_request, samr_dissect_QueryDisplayInfo_response},
15475         { 41, "GetDisplayEnumerationIndex",
15476            samr_dissect_GetDisplayEnumerationIndex_request, samr_dissect_GetDisplayEnumerationIndex_response},
15477         { 42, "TestPrivateFunctionsDomain",
15478            samr_dissect_TestPrivateFunctionsDomain_request, samr_dissect_TestPrivateFunctionsDomain_response},
15479         { 43, "TestPrivateFunctionsUser",
15480            samr_dissect_TestPrivateFunctionsUser_request, samr_dissect_TestPrivateFunctionsUser_response},
15481         { 44, "GetUserPwInfo",
15482            samr_dissect_GetUserPwInfo_request, samr_dissect_GetUserPwInfo_response},
15483         { 45, "RemoveMemberFromForeignDomain",
15484            samr_dissect_RemoveMemberFromForeignDomain_request, samr_dissect_RemoveMemberFromForeignDomain_response},
15485         { 46, "QueryDomainInfo2",
15486            samr_dissect_QueryDomainInfo2_request, samr_dissect_QueryDomainInfo2_response},
15487         { 47, "QueryUserInfo2",
15488            samr_dissect_QueryUserInfo2_request, samr_dissect_QueryUserInfo2_response},
15489         { 48, "QueryDisplayInfo2",
15490            samr_dissect_QueryDisplayInfo2_request, samr_dissect_QueryDisplayInfo2_response},
15491         { 49, "GetDisplayEnumerationIndex2",
15492            samr_dissect_GetDisplayEnumerationIndex2_request, samr_dissect_GetDisplayEnumerationIndex2_response},
15493         { 50, "CreateUser2",
15494            samr_dissect_CreateUser2_request, samr_dissect_CreateUser2_response},
15495         { 51, "QueryDisplayInfo3",
15496            samr_dissect_QueryDisplayInfo3_request, samr_dissect_QueryDisplayInfo3_response},
15497         { 52, "AddMultipleMembersToAlias",
15498            samr_dissect_AddMultipleMembersToAlias_request, samr_dissect_AddMultipleMembersToAlias_response},
15499         { 53, "RemoveMultipleMembersFromAlias",
15500            samr_dissect_RemoveMultipleMembersFromAlias_request, samr_dissect_RemoveMultipleMembersFromAlias_response},
15501         { 54, "OemChangePasswordUser2",
15502            samr_dissect_OemChangePasswordUser2_request, samr_dissect_OemChangePasswordUser2_response},
15503         { 55, "ChangePasswordUser2",
15504            samr_dissect_ChangePasswordUser2_request, samr_dissect_ChangePasswordUser2_response},
15505         { 56, "GetDomPwInfo",
15506            samr_dissect_GetDomPwInfo_request, samr_dissect_GetDomPwInfo_response},
15507         { 57, "Connect2",
15508            samr_dissect_Connect2_request, samr_dissect_Connect2_response},
15509         { 58, "SetUserInfo2",
15510            samr_dissect_SetUserInfo2_request, samr_dissect_SetUserInfo2_response},
15511         { 59, "SetBootKeyInformation",
15512            samr_dissect_SetBootKeyInformation_request, samr_dissect_SetBootKeyInformation_response},
15513         { 60, "GetBootKeyInformation",
15514            samr_dissect_GetBootKeyInformation_request, samr_dissect_GetBootKeyInformation_response},
15515         { 61, "Connect3",
15516            samr_dissect_Connect3_request, samr_dissect_Connect3_response},
15517         { 62, "Connect4",
15518            samr_dissect_Connect4_request, samr_dissect_Connect4_response},
15519         { 63, "ChangePasswordUser3",
15520            samr_dissect_ChangePasswordUser3_request, samr_dissect_ChangePasswordUser3_response},
15521         { 64, "Connect5",
15522            samr_dissect_Connect5_request, samr_dissect_Connect5_response},
15523         { 65, "RidToSid",
15524            samr_dissect_RidToSid_request, samr_dissect_RidToSid_response},
15525         { 66, "SetDsrmPassword",
15526            samr_dissect_SetDsrmPassword_request, samr_dissect_SetDsrmPassword_response},
15527         { 67, "ValidatePassword",
15528            samr_dissect_ValidatePassword_request, samr_dissect_ValidatePassword_response},
15529         { 0, NULL, NULL, NULL }
15530 };
15531
15532 void proto_register_dcerpc_samr(void)
15533 {
15534         static hf_register_info hf[] = {
15535         { &hf_samr_samr_QueryDisplayInfo2_level,
15536           { "Level", "samr.samr_QueryDisplayInfo2.level", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
15537         { &hf_samr_samr_Connect5_connect_handle,
15538           { "Connect Handle", "samr.samr_Connect5.connect_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15539         { &hf_samr_samr_Connect2_system_name,
15540           { "System Name", "samr.samr_Connect2.system_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15541         { &hf_samr_samr_AcctFlags_ACB_DONT_REQUIRE_PREAUTH,
15542           { "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 }},
15543         { &hf_samr_samr_DomainInfo_oem,
15544           { "Oem", "samr.samr_DomainInfo.oem", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15545         { &hf_samr_samr_DispInfoAscii_entries,
15546           { "Entries", "samr.samr_DispInfoAscii.entries", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15547         { &hf_samr_samr_QueryAliasInfo_level,
15548           { "Level", "samr.samr_QueryAliasInfo.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_AliasInfoEnum_vals), 0, NULL, HFILL }},
15549         { &hf_samr_samr_DispEntryFullGroup_idx,
15550           { "Idx", "samr.samr_DispEntryFullGroup.idx", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15551         { &hf_samr_samr_QueryGroupInfo_info,
15552           { "Info", "samr.samr_QueryGroupInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15553         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_LOGON_SCRIPT,
15554           { "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 }},
15555         { &hf_samr_samr_UserInfo21_primary_gid,
15556           { "Primary Gid", "samr.samr_UserInfo21.primary_gid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15557         { &hf_samr_samr_DomGeneralInformation2_lockout_duration,
15558           { "Lockout Duration", "samr.samr_DomGeneralInformation2.lockout_duration", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
15559         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_ACCT_EXPIRY,
15560           { "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 }},
15561         { &hf_samr_samr_DispInfoGeneral_count,
15562           { "Count", "samr.samr_DispInfoGeneral.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15563         { &hf_samr_samr_CreateUser_rid,
15564           { "Rid", "samr.samr_CreateUser.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15565         { &hf_samr_samr_QueryDisplayInfo3_total_size,
15566           { "Total Size", "samr.samr_QueryDisplayInfo3.total_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15567         { &hf_samr_samr_GetDomPwInfo_info,
15568           { "Info", "samr.samr_GetDomPwInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15569         { &hf_samr_samr_QuerySecurity_sdbuf,
15570           { "Sdbuf", "samr.samr_QuerySecurity.sdbuf", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15571         { &hf_samr_samr_UserInfo3_workstations,
15572           { "Workstations", "samr.samr_UserInfo3.workstations", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15573         { &hf_samr_samr_QueryUserInfo2_info,
15574           { "Info", "samr.samr_QueryUserInfo2.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15575         { &hf_samr_samr_QueryDisplayInfo3_start_idx,
15576           { "Start Idx", "samr.samr_QueryDisplayInfo3.start_idx", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15577         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_PARAMETERS,
15578           { "Samr Field Parameters", "samr.samr_FieldsPresent.SAMR_FIELD_PARAMETERS", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_PARAMETERS_tfs), ( 0x00200000 ), NULL, HFILL }},
15579         { &hf_samr_samr_DomGeneralInformation_num_users,
15580           { "Num Users", "samr.samr_DomGeneralInformation.num_users", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15581         { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_ALIAS,
15582           { "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 }},
15583         { &hf_samr_samr_UserInfo21_acct_flags,
15584           { "Acct Flags", "samr.samr_UserInfo21.acct_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
15585         { &hf_samr_samr_CreateDomainGroup_access_mask,
15586           { "Access Mask", "samr.samr_CreateDomainGroup.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
15587         { &hf_samr_samr_UserInfo5_profile_path,
15588           { "Profile Path", "samr.samr_UserInfo5.profile_path", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15589         { &hf_samr_samr_AcctFlags_ACB_PW_EXPIRED,
15590           { "Acb Pw Expired", "samr.samr_AcctFlags.ACB_PW_EXPIRED", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_PW_EXPIRED_tfs), ( 0x00020000 ), NULL, HFILL }},
15591         { &hf_samr_samr_OpenUser_rid,
15592           { "Rid", "samr.samr_OpenUser.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15593         { &hf_samr_samr_ValidatePasswordReq3_hash,
15594           { "Hash", "samr.samr_ValidatePasswordReq3.hash", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15595         { &hf_samr_samr_Connect2_access_mask,
15596           { "Access Mask", "samr.samr_Connect2.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
15597         { &hf_samr_samr_SetUserInfo_user_handle,
15598           { "User Handle", "samr.samr_SetUserInfo.user_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15599         { &hf_samr_samr_QueryDomainInfo_info,
15600           { "Info", "samr.samr_QueryDomainInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15601         { &hf_samr_samr_UserInfo_info16,
15602           { "Info16", "samr.samr_UserInfo.info16", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15603         { &hf_samr_samr_SetBootKeyInformation_unknown1,
15604           { "Unknown1", "samr.samr_SetBootKeyInformation.unknown1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15605         { &hf_samr_samr_GroupInfo_attributes,
15606           { "Attributes", "samr.samr_GroupInfo.attributes", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15607         { &hf_samr_samr_DomInfo3_force_logoff_time,
15608           { "Force Logoff Time", "samr.samr_DomInfo3.force_logoff_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
15609         { &hf_samr_samr_ChangePasswordUser_new_nt_crypted,
15610           { "New Nt Crypted", "samr.samr_ChangePasswordUser.new_nt_crypted", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15611         { &hf_samr_samr_ChangePasswordUser3_reject,
15612           { "Reject", "samr.samr_ChangePasswordUser3.reject", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15613         { &hf_samr_samr_QueryDomainInfo2_info,
15614           { "Info", "samr.samr_QueryDomainInfo2.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15615         { &hf_samr_samr_UserInfo1_description,
15616           { "Description", "samr.samr_UserInfo1.description", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15617         { &hf_samr_samr_SetAliasInfo_info,
15618           { "Info", "samr.samr_SetAliasInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15619         { &hf_samr_samr_ChangePasswordUser_cross1_present,
15620           { "Cross1 Present", "samr.samr_ChangePasswordUser.cross1_present", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
15621         { &hf_samr_samr_UserInfo5_primary_gid,
15622           { "Primary Gid", "samr.samr_UserInfo5.primary_gid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15623         { &hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_NO_CLEAR_CHANGE,
15624           { "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 }},
15625         { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT,
15626           { "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 }},
15627         { &hf_samr_samr_Connect4_system_name,
15628           { "System Name", "samr.samr_Connect4.system_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15629         { &hf_samr_samr_QueryDisplayInfo3_buf_size,
15630           { "Buf Size", "samr.samr_QueryDisplayInfo3.buf_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15631         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_NUM_LOGONS,
15632           { "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 }},
15633         { &hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_BAD_PASSWORD_COUNT,
15634           { "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 }},
15635         { &hf_samr_samr_Connect5_access_mask,
15636           { "Access Mask", "samr.samr_Connect5.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
15637         { &hf_samr_samr_Ids_ids,
15638           { "Ids", "samr.samr_Ids.ids", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15639         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_LAST_PWD_CHANGE,
15640           { "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 }},
15641         { &hf_samr_samr_UserInfo20_parameters,
15642           { "Parameters", "samr.samr_UserInfo20.parameters", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15643         { &hf_samr_samr_UserInfo18_lm_pwd,
15644           { "Lm Pwd", "samr.samr_UserInfo18.lm_pwd", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15645         { &hf_samr_samr_UserInfo1_account_name,
15646           { "Account Name", "samr.samr_UserInfo1.account_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15647         { &hf_samr_samr_ChangePasswordUser2_lm_change,
15648           { "Lm Change", "samr.samr_ChangePasswordUser2.lm_change", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
15649         { &hf_samr_samr_UserInfo21_description,
15650           { "Description", "samr.samr_UserInfo21.description", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15651         { &hf_samr_samr_UserInfo21_profile_path,
15652           { "Profile Path", "samr.samr_UserInfo21.profile_path", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15653         { &hf_samr_samr_ValidatePassword_req,
15654           { "Req", "samr.samr_ValidatePassword.req", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15655         { &hf_samr_samr_AcctFlags_ACB_DISABLED,
15656           { "Acb Disabled", "samr.samr_AcctFlags.ACB_DISABLED", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_DISABLED_tfs), ( 0x00000001 ), NULL, HFILL }},
15657         { &hf_samr_samr_UserInfo21_private_data_sensitive,
15658           { "Private Data Sensitive", "samr.samr_UserInfo21.private_data_sensitive", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
15659         { &hf_samr_samr_ChangePasswordUser_nt_cross,
15660           { "Nt Cross", "samr.samr_ChangePasswordUser.nt_cross", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15661         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_ACCOUNT_NAME,
15662           { "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 }},
15663         { &hf_samr_samr_UserInfo21_rid,
15664           { "Rid", "samr.samr_UserInfo21.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15665         { &hf_samr_samr_OpenGroup_access_mask,
15666           { "Access Mask", "samr.samr_OpenGroup.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
15667         { &hf_samr_samr_ValidatePasswordReq3_password,
15668           { "Password", "samr.samr_ValidatePasswordReq3.password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15669         { &hf_samr_samr_UserInfo5_logon_script,
15670           { "Logon Script", "samr.samr_UserInfo5.logon_script", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15671         { &hf_samr_samr_RidWithAttributeArray_count,
15672           { "Count", "samr.samr_RidWithAttributeArray.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15673         { &hf_samr_samr_AddGroupMember_group_handle,
15674           { "Group Handle", "samr.samr_AddGroupMember.group_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15675         { &hf_samr_samr_ValidatePasswordInfo_pwd_history_len,
15676           { "Pwd History Len", "samr.samr_ValidatePasswordInfo.pwd_history_len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15677         { &hf_samr_samr_DispInfoFullGroups_entries,
15678           { "Entries", "samr.samr_DispInfoFullGroups.entries", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15679         { &hf_samr_samr_UserInfo5_bad_password_count,
15680           { "Bad Password Count", "samr.samr_UserInfo5.bad_password_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
15681         { &hf_samr_samr_DomainInfo_info5,
15682           { "Info5", "samr.samr_DomainInfo.info5", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15683         { &hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_ADD_MEMBER,
15684           { "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 }},
15685         { &hf_samr_samr_UserInfo_info6,
15686           { "Info6", "samr.samr_UserInfo.info6", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15687         { &hf_samr_samr_Connect5_info_out,
15688           { "Info Out", "samr.samr_Connect5.info_out", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15689         { &hf_samr_samr_Connect_connect_handle,
15690           { "Connect Handle", "samr.samr_Connect.connect_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15691         { &hf_samr_samr_UserInfo3_logon_script,
15692           { "Logon Script", "samr.samr_UserInfo3.logon_script", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15693         { &hf_samr_samr_SetUserInfo_level,
15694           { "Level", "samr.samr_SetUserInfo.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_UserInfoLevel_vals), 0, NULL, HFILL }},
15695         { &hf_samr_samr_UserInfo21_last_logon,
15696           { "Last Logon", "samr.samr_UserInfo21.last_logon", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
15697         { &hf_samr_samr_GetBootKeyInformation_domain_handle,
15698           { "Domain Handle", "samr.samr_GetBootKeyInformation.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15699         { &hf_samr_samr_QueryDisplayInfo3_returned_size,
15700           { "Returned Size", "samr.samr_QueryDisplayInfo3.returned_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15701         { &hf_samr_samr_ValidatePasswordReq3_account,
15702           { "Account", "samr.samr_ValidatePasswordReq3.account", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15703         { &hf_samr_samr_UserInfo7_account_name,
15704           { "Account Name", "samr.samr_UserInfo7.account_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15705         { &hf_samr_samr_UserInfo23_info,
15706           { "Info", "samr.samr_UserInfo23.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15707         { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_1,
15708           { "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 }},
15709         { &hf_samr_samr_UserInfo3_last_logon,
15710           { "Last Logon", "samr.samr_UserInfo3.last_logon", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
15711         { &hf_samr_samr_UserInfo_info10,
15712           { "Info10", "samr.samr_UserInfo.info10", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15713         { &hf_samr_samr_EnumDomainGroups_max_size,
15714           { "Max Size", "samr.samr_EnumDomainGroups.max_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15715         { &hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_NO_ANON_CHANGE,
15716           { "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 }},
15717         { &hf_samr_samr_UserInfo3_full_name,
15718           { "Full Name", "samr.samr_UserInfo3.full_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15719         { &hf_samr_samr_SetUserInfo2_user_handle,
15720           { "User Handle", "samr.samr_SetUserInfo2.user_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15721         { &hf_samr_samr_DispEntryAscii_account_name,
15722           { "Account Name", "samr.samr_DispEntryAscii.account_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15723         { &hf_samr_samr_UserInfo11_logon_script,
15724           { "Logon Script", "samr.samr_UserInfo11.logon_script", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15725         { &hf_samr_samr_ChangePasswordUser_lm_present,
15726           { "Lm Present", "samr.samr_ChangePasswordUser.lm_present", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
15727         { &hf_samr_samr_AddMultipleMembersToAlias_sids,
15728           { "Sids", "samr.samr_AddMultipleMembersToAlias.sids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15729         { &hf_samr_samr_OpenDomain_domain_handle,
15730           { "Domain Handle", "samr.samr_OpenDomain.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15731         { &hf_samr_samr_DomInfo13_sequence_num,
15732           { "Sequence Num", "samr.samr_DomInfo13.sequence_num", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
15733         { &hf_samr_samr_UserInfo_info21,
15734           { "Info21", "samr.samr_UserInfo.info21", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15735         { &hf_samr_samr_ValidatePasswordReq_req1,
15736           { "Req1", "samr.samr_ValidatePasswordReq.req1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15737         { &hf_samr_samr_GetAliasMembership_domain_handle,
15738           { "Domain Handle", "samr.samr_GetAliasMembership.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15739         { &hf_samr_samr_AcctFlags_ACB_MNS,
15740           { "Acb Mns", "samr.samr_AcctFlags.ACB_MNS", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_MNS_tfs), ( 0x00000020 ), NULL, HFILL }},
15741         { &hf_samr_samr_DispEntryFullGroup_description,
15742           { "Description", "samr.samr_DispEntryFullGroup.description", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15743         { &hf_samr_samr_SetSecurity_sdbuf,
15744           { "Sdbuf", "samr.samr_SetSecurity.sdbuf", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15745         { &hf_samr_samr_ValidatePasswordReq2_account,
15746           { "Account", "samr.samr_ValidatePasswordReq2.account", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15747         { &hf_samr_samr_LookupNames_names,
15748           { "Names", "samr.samr_LookupNames.names", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15749         { &hf_samr_samr_PasswordProperties_DOMAIN_REFUSE_PASSWORD_CHANGE,
15750           { "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 }},
15751         { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_CHANGE_GROUP_MEMBERSHIP,
15752           { "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 }},
15753         { &hf_samr_samr_PwInfo_password_properties,
15754           { "Password Properties", "samr.samr_PwInfo.password_properties", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
15755         { &hf_samr_samr_ValidatePasswordReq_req2,
15756           { "Req2", "samr.samr_ValidatePasswordReq.req2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15757         { &hf_samr_samr_DomGeneralInformation2_lockout_window,
15758           { "Lockout Window", "samr.samr_DomGeneralInformation2.lockout_window", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
15759         { &hf_samr_samr_QueryDisplayInfo2_returned_size,
15760           { "Returned Size", "samr.samr_QueryDisplayInfo2.returned_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15761         { &hf_samr_samr_SetBootKeyInformation_unknown2,
15762           { "Unknown2", "samr.samr_SetBootKeyInformation.unknown2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15763         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_LAST_LOGON,
15764           { "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 }},
15765         { &hf_samr_samr_RidToSid_rid,
15766           { "Rid", "samr.samr_RidToSid.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15767         { &hf_samr_samr_Ids_count,
15768           { "Count", "samr.samr_Ids.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15769         { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_SET_LOC_COM,
15770           { "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 }},
15771         { &hf_samr_samr_AcctFlags_ACB_SMARTCARD_REQUIRED,
15772           { "Acb Smartcard Required", "samr.samr_AcctFlags.ACB_SMARTCARD_REQUIRED", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_SMARTCARD_REQUIRED_tfs), ( 0x00001000 ), NULL, HFILL }},
15773         { &hf_samr_samr_ChangePasswordUser3_nt_verifier,
15774           { "Nt Verifier", "samr.samr_ChangePasswordUser3.nt_verifier", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15775         { &hf_samr_samr_UserInfo_info17,
15776           { "Info17", "samr.samr_UserInfo.info17", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15777         { &hf_samr_samr_LookupRids_types,
15778           { "Types", "samr.samr_LookupRids.types", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15779         { &hf_samr_samr_DeleteGroupMember_rid,
15780           { "Rid", "samr.samr_DeleteGroupMember.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15781         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_PROFILE_PATH,
15782           { "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 }},
15783         { &hf_samr_samr_ChangePasswordUser3_lm_change,
15784           { "Lm Change", "samr.samr_ChangePasswordUser3.lm_change", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
15785         { &hf_samr_samr_CreateUser2_rid,
15786           { "Rid", "samr.samr_CreateUser2.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15787         { &hf_samr_samr_LookupRids_rids,
15788           { "Rids", "samr.samr_LookupRids.rids", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15789         { &hf_samr_samr_UserInfo1_primary_gid,
15790           { "Primary Gid", "samr.samr_UserInfo1.primary_gid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15791         { &hf_samr_samr_GetMembersInAlias_alias_handle,
15792           { "Alias Handle", "samr.samr_GetMembersInAlias.alias_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15793         { &hf_samr_samr_ValidatePasswordReq1_info,
15794           { "Info", "samr.samr_ValidatePasswordReq1.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15795         { &hf_samr_samr_UserInfo21_home_drive,
15796           { "Home Drive", "samr.samr_UserInfo21.home_drive", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15797         { &hf_samr_samr_AcctFlags_ACB_PWNOEXP,
15798           { "Acb Pwnoexp", "samr.samr_AcctFlags.ACB_PWNOEXP", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_PWNOEXP_tfs), ( 0x00000200 ), NULL, HFILL }},
15799         { &hf_samr_samr_DomOEMInformation_oem_information,
15800           { "Oem Information", "samr.samr_DomOEMInformation.oem_information", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15801         { &hf_samr_samr_SetBootKeyInformation_connect_handle,
15802           { "Connect Handle", "samr.samr_SetBootKeyInformation.connect_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15803         { &hf_samr_samr_EnumDomainAliases_num_entries,
15804           { "Num Entries", "samr.samr_EnumDomainAliases.num_entries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15805         { &hf_samr_samr_AcctFlags_ACB_SVRTRUST,
15806           { "Acb Svrtrust", "samr.samr_AcctFlags.ACB_SVRTRUST", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_SVRTRUST_tfs), ( 0x00000100 ), NULL, HFILL }},
15807         { &hf_samr_samr_OpenAlias_domain_handle,
15808           { "Domain Handle", "samr.samr_OpenAlias.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15809         { &hf_samr_samr_DomGeneralInformation_oem_information,
15810           { "Oem Information", "samr.samr_DomGeneralInformation.oem_information", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15811         { &hf_samr_samr_UserInfo_info8,
15812           { "Info8", "samr.samr_UserInfo.info8", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15813         { &hf_samr_samr_UserInfo25_info,
15814           { "Info", "samr.samr_UserInfo25.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15815         { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_GROUP_MEMBERSHIP,
15816           { "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 }},
15817         { &hf_samr_samr_CreateDomainGroup_name,
15818           { "Name", "samr.samr_CreateDomainGroup.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15819         { &hf_samr_samr_DomGeneralInformation_num_groups,
15820           { "Num Groups", "samr.samr_DomGeneralInformation.num_groups", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15821         { &hf_samr_samr_SetGroupInfo_info,
15822           { "Info", "samr.samr_SetGroupInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15823         { &hf_samr_samr_EnumDomainAliases_resume_handle,
15824           { "Resume Handle", "samr.samr_EnumDomainAliases.resume_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15825         { &hf_samr_samr_DomGeneralInformation_num_aliases,
15826           { "Num Aliases", "samr.samr_DomGeneralInformation.num_aliases", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15827         { &hf_samr_samr_EnumDomainAliases_max_size,
15828           { "Max Size", "samr.samr_EnumDomainAliases.max_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15829         { &hf_samr_samr_UserInfo21_full_name,
15830           { "Full Name", "samr.samr_UserInfo21.full_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15831         { &hf_samr_samr_GetDomPwInfo_domain_name,
15832           { "Domain Name", "samr.samr_GetDomPwInfo.domain_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15833         { &hf_samr_samr_UserInfo3_primary_gid,
15834           { "Primary Gid", "samr.samr_UserInfo3.primary_gid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15835         { &hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_LOOKUP_INFO,
15836           { "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 }},
15837         { &hf_samr_samr_UserInfo_info5,
15838           { "Info5", "samr.samr_UserInfo.info5", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15839         { &hf_samr_samr_RidWithAttribute_rid,
15840           { "Rid", "samr.samr_RidWithAttribute.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15841         { &hf_samr_samr_UserInfo3_home_directory,
15842           { "Home Directory", "samr.samr_UserInfo3.home_directory", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15843         { &hf_samr_samr_ChangePasswordUser_cross2_present,
15844           { "Cross2 Present", "samr.samr_ChangePasswordUser.cross2_present", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
15845         { &hf_samr_samr_DeleteAliasMember_sid,
15846           { "Sid", "samr.samr_DeleteAliasMember.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15847         { &hf_samr_samr_ValidatePassword_rep,
15848           { "Rep", "samr.samr_ValidatePassword.rep", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15849         { &hf_samr_samr_ValidatePasswordInfo_fields_present,
15850           { "Fields Present", "samr.samr_ValidatePasswordInfo.fields_present", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
15851         { &hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_REMOVE_MEMBER,
15852           { "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 }},
15853         { &hf_samr_samr_SetMemberAttributesOfGroup_unknown1,
15854           { "Unknown1", "samr.samr_SetMemberAttributesOfGroup.unknown1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15855         { &hf_samr_samr_GetDisplayEnumerationIndex2_level,
15856           { "Level", "samr.samr_GetDisplayEnumerationIndex2.level", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
15857         { &hf_samr_samr_AcctFlags_ACB_ENC_TXT_PWD_ALLOWED,
15858           { "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 }},
15859         { &hf_samr_samr_AliasInfo_description,
15860           { "Description", "samr.samr_AliasInfo.description", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15861         { &hf_samr_samr_QueryDisplayInfo_info,
15862           { "Info", "samr.samr_QueryDisplayInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15863         { &hf_samr_samr_GroupInfoAll_num_members,
15864           { "Num Members", "samr.samr_GroupInfoAll.num_members", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15865         { &hf_samr_samr_SetGroupInfo_group_handle,
15866           { "Group Handle", "samr.samr_SetGroupInfo.group_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15867         { &hf_samr_status,
15868           { "NT Error", "samr.status", FT_UINT32, BASE_HEX, VALS(NT_errors), 0, NULL, HFILL }},
15869         { &hf_samr_samr_UserInfo5_rid,
15870           { "Rid", "samr.samr_UserInfo5.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15871         { &hf_samr_samr_UserInfo12_profile_path,
15872           { "Profile Path", "samr.samr_UserInfo12.profile_path", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15873         { &hf_samr_samr_LookupDomain_connect_handle,
15874           { "Connect Handle", "samr.samr_LookupDomain.connect_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15875         { &hf_samr_samr_UserInfo21_comment,
15876           { "Comment", "samr.samr_UserInfo21.comment", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15877         { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_2,
15878           { "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 }},
15879         { &hf_samr_samr_UserInfo_info14,
15880           { "Info14", "samr.samr_UserInfo.info14", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15881         { &hf_samr_samr_CreateUser2_access_granted,
15882           { "Access Granted", "samr.samr_CreateUser2.access_granted", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15883         { &hf_samr_samr_ConnectInfo1_client_version,
15884           { "Client Version", "samr.samr_ConnectInfo1.client_version", FT_UINT32, BASE_DEC, VALS(samr_samr_ConnectVersion_vals), 0, NULL, HFILL }},
15885         { &hf_samr_samr_UserInfo5_acct_flags,
15886           { "Acct Flags", "samr.samr_UserInfo5.acct_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
15887         { &hf_samr_samr_UserInfo24_password_expired,
15888           { "Password Expired", "samr.samr_UserInfo24.password_expired", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
15889         { &hf_samr_samr_AcctFlags_ACB_NOT_DELEGATED,
15890           { "Acb Not Delegated", "samr.samr_AcctFlags.ACB_NOT_DELEGATED", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_NOT_DELEGATED_tfs), ( 0x00004000 ), NULL, HFILL }},
15891         { &hf_samr_samr_SetDsrmPassword_name,
15892           { "Name", "samr.samr_SetDsrmPassword.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15893         { &hf_samr_samr_Connect_system_name,
15894           { "System Name", "samr.samr_Connect.system_name", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
15895         { &hf_samr_samr_DomInfo1_min_password_age,
15896           { "Min Password Age", "samr.samr_DomInfo1.min_password_age", FT_INT64, BASE_DEC, NULL, 0, NULL, HFILL }},
15897         { &hf_samr_samr_LookupNames_domain_handle,
15898           { "Domain Handle", "samr.samr_LookupNames.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15899         { &hf_samr_samr_LookupRids_num_rids,
15900           { "Num Rids", "samr.samr_LookupRids.num_rids", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15901         { &hf_samr_samr_GroupInfoDescription_description,
15902           { "Description", "samr.samr_GroupInfoDescription.description", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15903         { &hf_samr_samr_RidAttrArray_count,
15904           { "Count", "samr.samr_RidAttrArray.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15905         { &hf_samr_samr_QueryUserInfo_level,
15906           { "Level", "samr.samr_QueryUserInfo.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_UserInfoLevel_vals), 0, NULL, HFILL }},
15907         { &hf_samr_samr_GroupAttrs_SE_GROUP_LOGON_ID,
15908           { "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 }},
15909         { &hf_samr_samr_DispEntryGeneral_account_name,
15910           { "Account Name", "samr.samr_DispEntryGeneral.account_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15911         { &hf_samr_samr_QueryAliasInfo_alias_handle,
15912           { "Alias Handle", "samr.samr_QueryAliasInfo.alias_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15913         { &hf_samr_samr_AcctFlags_ACB_HOMDIRREQ,
15914           { "Acb Homdirreq", "samr.samr_AcctFlags.ACB_HOMDIRREQ", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_HOMDIRREQ_tfs), ( 0x00000002 ), NULL, HFILL }},
15915         { &hf_samr_samr_CryptPasswordEx_data,
15916           { "Data", "samr.samr_CryptPasswordEx.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
15917         { &hf_samr_samr_SetAliasInfo_alias_handle,
15918           { "Alias Handle", "samr.samr_SetAliasInfo.alias_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15919         { &hf_samr_samr_ValidatePasswordInfo_bad_password_time,
15920           { "Bad Password Time", "samr.samr_ValidatePasswordInfo.bad_password_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
15921         { &hf_samr_samr_AcctFlags_ACB_USE_DES_KEY_ONLY,
15922           { "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 }},
15923         { &hf_samr_samr_DispInfo_info1,
15924           { "Info1", "samr.samr_DispInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15925         { &hf_samr_samr_SetDomainInfo_level,
15926           { "Level", "samr.samr_SetDomainInfo.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_DomainInfoClass_vals), 0, NULL, HFILL }},
15927         { &hf_samr_samr_DispInfo_info4,
15928           { "Info4", "samr.samr_DispInfo.info4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15929         { &hf_samr_samr_DomInfo8_domain_create_time,
15930           { "Domain Create Time", "samr.samr_DomInfo8.domain_create_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
15931         { &hf_samr_samr_ChangePasswordUser_old_nt_crypted,
15932           { "Old Nt Crypted", "samr.samr_ChangePasswordUser.old_nt_crypted", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15933         { &hf_samr_samr_DomGeneralInformation_force_logoff_time,
15934           { "Force Logoff Time", "samr.samr_DomGeneralInformation.force_logoff_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
15935         { &hf_samr_samr_DomInfo12_lockout_threshold,
15936           { "Lockout Threshold", "samr.samr_DomInfo12.lockout_threshold", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
15937         { &hf_samr_samr_GroupInfoAttributes_attributes,
15938           { "Attributes", "samr.samr_GroupInfoAttributes.attributes", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
15939         { &hf_samr_samr_CreateDomainGroup_domain_handle,
15940           { "Domain Handle", "samr.samr_CreateDomainGroup.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15941         { &hf_samr_samr_SamArray_entries,
15942           { "Entries", "samr.samr_SamArray.entries", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15943         { &hf_samr_samr_UserInfo_info9,
15944           { "Info9", "samr.samr_UserInfo.info9", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15945         { &hf_samr_samr_Connect3_access_mask,
15946           { "Access Mask", "samr.samr_Connect3.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
15947         { &hf_samr_samr_ChangePasswordUser2_lm_password,
15948           { "Lm Password", "samr.samr_ChangePasswordUser2.lm_password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15949         { &hf_samr_samr_DispEntryGeneral_full_name,
15950           { "Full Name", "samr.samr_DispEntryGeneral.full_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15951         { &hf_samr_samr_DomGeneralInformation2_general,
15952           { "General", "samr.samr_DomGeneralInformation2.general", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15953         { &hf_samr_samr_AliasInfoAll_num_members,
15954           { "Num Members", "samr.samr_AliasInfoAll.num_members", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15955         { &hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_SET_INFO,
15956           { "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 }},
15957         { &hf_samr_samr_DispEntryFull_description,
15958           { "Description", "samr.samr_DispEntryFull.description", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15959         { &hf_samr_samr_LookupDomain_domain_name,
15960           { "Domain Name", "samr.samr_LookupDomain.domain_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15961         { &hf_samr_samr_ValidatePasswordRep_ctr3,
15962           { "Ctr3", "samr.samr_ValidatePasswordRep.ctr3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15963         { &hf_samr_samr_QueryDisplayInfo3_max_entries,
15964           { "Max Entries", "samr.samr_QueryDisplayInfo3.max_entries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15965         { &hf_samr_samr_DomInfo6_primary,
15966           { "Primary", "samr.samr_DomInfo6.primary", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15967         { &hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_COMPLEX,
15968           { "Domain Password Complex", "samr.samr_PasswordProperties.DOMAIN_PASSWORD_COMPLEX", FT_BOOLEAN, 32, TFS(&samr_PasswordProperties_DOMAIN_PASSWORD_COMPLEX_tfs), ( 0x00000001 ), NULL, HFILL }},
15969         { &hf_samr_samr_DeleteGroupMember_group_handle,
15970           { "Group Handle", "samr.samr_DeleteGroupMember.group_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15971         { &hf_samr_samr_Connect5_system_name,
15972           { "System Name", "samr.samr_Connect5.system_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15973         { &hf_samr_samr_UserInfo21_bad_password_count,
15974           { "Bad Password Count", "samr.samr_UserInfo21.bad_password_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
15975         { &hf_samr_samr_UserInfo21_acct_expiry,
15976           { "Acct Expiry", "samr.samr_UserInfo21.acct_expiry", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
15977         { &hf_samr_samr_EnumDomainUsers_max_size,
15978           { "Max Size", "samr.samr_EnumDomainUsers.max_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15979         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_ALLOW_PWD_CHANGE,
15980           { "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 }},
15981         { &hf_samr_samr_LookupNames_rids,
15982           { "Rids", "samr.samr_LookupNames.rids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15983         { &hf_samr_samr_DomInfo1_min_password_length,
15984           { "Min Password Length", "samr.samr_DomInfo1.min_password_length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
15985         { &hf_samr_samr_ValidatePasswordReq3_pwd_must_change_at_next_logon,
15986           { "Pwd Must Change At Next Logon", "samr.samr_ValidatePasswordReq3.pwd_must_change_at_next_logon", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
15987         { &hf_samr_samr_QuerySecurity_handle,
15988           { "Handle", "samr.samr_QuerySecurity.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15989         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_WORKSTATIONS,
15990           { "Samr Field Workstations", "samr.samr_FieldsPresent.SAMR_FIELD_WORKSTATIONS", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_WORKSTATIONS_tfs), ( 0x00000400 ), NULL, HFILL }},
15991         { &hf_samr_samr_GetDisplayEnumerationIndex_idx,
15992           { "Idx", "samr.samr_GetDisplayEnumerationIndex.idx", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15993         { &hf_samr_samr_DomInfo9_domain_server_state,
15994           { "Domain Server State", "samr.samr_DomInfo9.domain_server_state", FT_UINT32, BASE_DEC, VALS(samr_samr_DomainServerState_vals), 0, NULL, HFILL }},
15995         { &hf_samr_samr_Connect5_level_out,
15996           { "Level Out", "samr.samr_Connect5.level_out", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15997         { &hf_samr_samr_CreateUser2_user_handle,
15998           { "User Handle", "samr.samr_CreateUser2.user_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15999         { &hf_samr_samr_UserInfo5_last_logon,
16000           { "Last Logon", "samr.samr_UserInfo5.last_logon", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16001         { &hf_samr_samr_ChangePasswordUser2_server,
16002           { "Server", "samr.samr_ChangePasswordUser2.server", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16003         { &hf_samr_samr_SetDomainInfo_info,
16004           { "Info", "samr.samr_SetDomainInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16005         { &hf_samr_samr_SamArray_count,
16006           { "Count", "samr.samr_SamArray.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16007         { &hf_samr_samr_UserInfo24_password,
16008           { "Password", "samr.samr_UserInfo24.password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16009         { &hf_samr_samr_DispEntryFull_idx,
16010           { "Idx", "samr.samr_DispEntryFull.idx", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16011         { &hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_INITIALIZE_SERVER,
16012           { "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 }},
16013         { &hf_samr_samr_DispEntryFull_acct_flags,
16014           { "Acct Flags", "samr.samr_DispEntryFull.acct_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16015         { &hf_samr_samr_DomInfo13_modified_count_at_last_promotion,
16016           { "Modified Count At Last Promotion", "samr.samr_DomInfo13.modified_count_at_last_promotion", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
16017         { &hf_samr_samr_GetAliasMembership_sids,
16018           { "Sids", "samr.samr_GetAliasMembership.sids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16019         { &hf_samr_samr_UserInfo_info1,
16020           { "Info1", "samr.samr_UserInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16021         { &hf_samr_samr_GroupAttrs_SE_GROUP_RESOURCE,
16022           { "Se Group Resource", "samr.samr_GroupAttrs.SE_GROUP_RESOURCE", FT_BOOLEAN, 32, TFS(&samr_GroupAttrs_SE_GROUP_RESOURCE_tfs), ( 0x20000000 ), NULL, HFILL }},
16023         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_DESCRIPTION,
16024           { "Samr Field Description", "samr.samr_FieldsPresent.SAMR_FIELD_DESCRIPTION", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_DESCRIPTION_tfs), ( 0x00000010 ), NULL, HFILL }},
16025         { &hf_samr_samr_UserInfo18_nt_pwd,
16026           { "Nt Pwd", "samr.samr_UserInfo18.nt_pwd", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16027         { &hf_samr_samr_UserInfo21_nt_owf_password,
16028           { "Nt Owf Password", "samr.samr_UserInfo21.nt_owf_password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16029         { &hf_samr_samr_OpenAlias_alias_handle,
16030           { "Alias Handle", "samr.samr_OpenAlias.alias_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16031         { &hf_samr_samr_SetMemberAttributesOfGroup_group_handle,
16032           { "Group Handle", "samr.samr_SetMemberAttributesOfGroup.group_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16033         { &hf_samr_samr_UserInfo23_password,
16034           { "Password", "samr.samr_UserInfo23.password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16035         { &hf_samr_samr_UserInfo21_last_logoff,
16036           { "Last Logoff", "samr.samr_UserInfo21.last_logoff", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16037         { &hf_samr_samr_DispInfo_info2,
16038           { "Info2", "samr.samr_DispInfo.info2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16039         { &hf_samr_samr_EnumDomainUsers_resume_handle,
16040           { "Resume Handle", "samr.samr_EnumDomainUsers.resume_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16041         { &hf_samr_samr_ValidatePasswordRepCtr_status,
16042           { "Status", "samr.samr_ValidatePasswordRepCtr.status", FT_UINT1632, BASE_DEC, VALS(samr_samr_ValidationStatus_vals), 0, NULL, HFILL }},
16043         { &hf_samr_samr_SetMemberAttributesOfGroup_unknown2,
16044           { "Unknown2", "samr.samr_SetMemberAttributesOfGroup.unknown2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16045         { &hf_samr_samr_DomainInfo_general2,
16046           { "General2", "samr.samr_DomainInfo.general2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16047         { &hf_samr_samr_UserInfo2_reserved,
16048           { "Reserved", "samr.samr_UserInfo2.reserved", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16049         { &hf_samr_samr_DispInfoFull_count,
16050           { "Count", "samr.samr_DispInfoFull.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16051         { &hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_GET_MEMBERS,
16052           { "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 }},
16053         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_COUNTRY_CODE,
16054           { "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 }},
16055         { &hf_samr_samr_ValidatePasswordReq2_password,
16056           { "Password", "samr.samr_ValidatePasswordReq2.password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16057         { &hf_samr_samr_UserInfo5_logon_hours,
16058           { "Logon Hours", "samr.samr_UserInfo5.logon_hours", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16059         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_HOME_DIRECTORY,
16060           { "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 }},
16061         { &hf_samr_samr_AcctFlags_ACB_NO_AUTH_DATA_REQD,
16062           { "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 }},
16063         { &hf_samr_samr_DeleteUser_user_handle,
16064           { "User Handle", "samr.samr_DeleteUser.user_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16065         { &hf_samr_samr_QueryDomainInfo_level,
16066           { "Level", "samr.samr_QueryDomainInfo.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_DomainInfoClass_vals), 0, NULL, HFILL }},
16067         { &hf_samr_samr_UserInfo26_password,
16068           { "Password", "samr.samr_UserInfo26.password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16069         { &hf_samr_samr_ValidatePasswordReq1_password_matched,
16070           { "Password Matched", "samr.samr_ValidatePasswordReq1.password_matched", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16071         { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_ATTRIBUTES,
16072           { "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 }},
16073         { &hf_samr_samr_UserInfo21_account_name,
16074           { "Account Name", "samr.samr_UserInfo21.account_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16075         { &hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_SET_INFO,
16076           { "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 }},
16077         { &hf_samr_samr_UserInfo2_comment,
16078           { "Comment", "samr.samr_UserInfo2.comment", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16079         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_RID,
16080           { "Samr Field Rid", "samr.samr_FieldsPresent.SAMR_FIELD_RID", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_RID_tfs), ( 0x00000004 ), NULL, HFILL }},
16081         { &hf_samr_samr_UserInfo_info23,
16082           { "Info23", "samr.samr_UserInfo.info23", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16083         { &hf_samr_samr_UserInfo18_password_expired,
16084           { "Password Expired", "samr.samr_UserInfo18.password_expired", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16085         { &hf_samr_samr_QueryDisplayInfo2_total_size,
16086           { "Total Size", "samr.samr_QueryDisplayInfo2.total_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16087         { &hf_samr_samr_UserInfo25_password,
16088           { "Password", "samr.samr_UserInfo25.password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16089         { &hf_samr_samr_ChangePasswordUser2_lm_verifier,
16090           { "Lm Verifier", "samr.samr_ChangePasswordUser2.lm_verifier", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16091         { &hf_samr_samr_SetDomainInfo_domain_handle,
16092           { "Domain Handle", "samr.samr_SetDomainInfo.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16093         { &hf_samr_samr_UserInfo4_logon_hours,
16094           { "Logon Hours", "samr.samr_UserInfo4.logon_hours", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16095         { &hf_samr_samr_UserInfo5_home_directory,
16096           { "Home Directory", "samr.samr_UserInfo5.home_directory", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16097         { &hf_samr_samr_DomInfo12_lockout_duration,
16098           { "Lockout Duration", "samr.samr_DomInfo12.lockout_duration", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
16099         { &hf_samr_samr_CreateUser_account_name,
16100           { "Account Name", "samr.samr_CreateUser.account_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16101         { &hf_samr_samr_UserInfo9_primary_gid,
16102           { "Primary Gid", "samr.samr_UserInfo9.primary_gid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16103         { &hf_samr_samr_Connect4_connect_handle,
16104           { "Connect Handle", "samr.samr_Connect4.connect_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16105         { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_LOGONINFO,
16106           { "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 }},
16107         { &hf_samr_samr_RidToSid_domain_handle,
16108           { "Domain Handle", "samr.samr_RidToSid.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16109         { &hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_LAST_SET,
16110           { "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 }},
16111         { &hf_samr_samr_DomGeneralInformation_domain_name,
16112           { "Domain Name", "samr.samr_DomGeneralInformation.domain_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16113         { &hf_samr_samr_CreateUser2_account_name,
16114           { "Account Name", "samr.samr_CreateUser2.account_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16115         { &hf_samr_samr_QueryGroupMember_group_handle,
16116           { "Group Handle", "samr.samr_QueryGroupMember.group_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16117         { &hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_CREATE_DOMAIN,
16118           { "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 }},
16119         { &hf_samr_samr_DispEntryGeneral_rid,
16120           { "Rid", "samr.samr_DispEntryGeneral.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16121         { &hf_samr_samr_LookupDomain_sid,
16122           { "Sid", "samr.samr_LookupDomain.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16123         { &hf_samr_samr_AddAliasMember_sid,
16124           { "Sid", "samr.samr_AddAliasMember.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16125         { &hf_samr_samr_QueryAliasInfo_info,
16126           { "Info", "samr.samr_QueryAliasInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16127         { &hf_samr_samr_ValidatePasswordReq2_hash,
16128           { "Hash", "samr.samr_ValidatePasswordReq2.hash", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16129         { &hf_samr_samr_UserInfo21_fields_present,
16130           { "Fields Present", "samr.samr_UserInfo21.fields_present", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16131         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_EXPIRED_FLAG,
16132           { "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 }},
16133         { &hf_samr_samr_ValidatePasswordReq2_password_matched,
16134           { "Password Matched", "samr.samr_ValidatePasswordReq2.password_matched", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16135         { &hf_samr_samr_CreateUser2_domain_handle,
16136           { "Domain Handle", "samr.samr_CreateUser2.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16137         { &hf_samr_samr_QuerySecurity_sec_info,
16138           { "Sec Info", "samr.samr_QuerySecurity.sec_info", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16139         { &hf_samr_samr_AddGroupMember_rid,
16140           { "Rid", "samr.samr_AddGroupMember.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16141         { &hf_samr_samr_DomainInfo_info12,
16142           { "Info12", "samr.samr_DomainInfo.info12", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16143         { &hf_samr_samr_OpenGroup_domain_handle,
16144           { "Domain Handle", "samr.samr_OpenGroup.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16145         { &hf_samr_samr_QueryDisplayInfo_max_entries,
16146           { "Max Entries", "samr.samr_QueryDisplayInfo.max_entries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16147         { &hf_samr_samr_EnumDomains_resume_handle,
16148           { "Resume Handle", "samr.samr_EnumDomains.resume_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16149         { &hf_samr_samr_UserInfo_info7,
16150           { "Info7", "samr.samr_UserInfo.info7", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16151         { &hf_samr_samr_GroupInfo_all2,
16152           { "All2", "samr.samr_GroupInfo.all2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16153         { &hf_samr_samr_UserInfo1_full_name,
16154           { "Full Name", "samr.samr_UserInfo1.full_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16155         { &hf_samr_samr_QueryDisplayInfo3_domain_handle,
16156           { "Domain Handle", "samr.samr_QueryDisplayInfo3.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16157         { &hf_samr_samr_RemoveMemberFromForeignDomain_domain_handle,
16158           { "Domain Handle", "samr.samr_RemoveMemberFromForeignDomain.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16159         { &hf_samr_samr_OpenGroup_group_handle,
16160           { "Group Handle", "samr.samr_OpenGroup.group_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16161         { &hf_samr_samr_EnumDomainGroups_resume_handle,
16162           { "Resume Handle", "samr.samr_EnumDomainGroups.resume_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16163         { &hf_samr_samr_SetUserInfo2_info,
16164           { "Info", "samr.samr_SetUserInfo2.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16165         { &hf_samr_samr_QueryGroupInfo_group_handle,
16166           { "Group Handle", "samr.samr_QueryGroupInfo.group_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16167         { &hf_samr_samr_ChangePasswordUser3_nt_password,
16168           { "Nt Password", "samr.samr_ChangePasswordUser3.nt_password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16169         { &hf_samr_samr_UserInfo21_buf_count,
16170           { "Buf Count", "samr.samr_UserInfo21.buf_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16171         { &hf_samr_samr_PwInfo_min_password_length,
16172           { "Min Password Length", "samr.samr_PwInfo.min_password_length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16173         { &hf_samr_samr_UserInfo21_lm_owf_password,
16174           { "Lm Owf Password", "samr.samr_UserInfo21.lm_owf_password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16175         { &hf_samr_samr_DomGeneralInformation_sequence_num,
16176           { "Sequence Num", "samr.samr_DomGeneralInformation.sequence_num", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
16177         { &hf_samr_samr_UserInfo26_password_expired,
16178           { "Password Expired", "samr.samr_UserInfo26.password_expired", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16179         { &hf_samr_samr_ChangePasswordUser_old_lm_crypted,
16180           { "Old Lm Crypted", "samr.samr_ChangePasswordUser.old_lm_crypted", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16181         { &hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_GET_MEMBERS,
16182           { "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 }},
16183         { &hf_samr_samr_AcctFlags_ACB_NORMAL,
16184           { "Acb Normal", "samr.samr_AcctFlags.ACB_NORMAL", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_NORMAL_tfs), ( 0x00000010 ), NULL, HFILL }},
16185         { &hf_samr_samr_GroupInfo_all,
16186           { "All", "samr.samr_GroupInfo.all", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16187         { &hf_samr_samr_UserInfo16_acct_flags,
16188           { "Acct Flags", "samr.samr_UserInfo16.acct_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16189         { &hf_samr_samr_UserInfo2_country_code,
16190           { "Country Code", "samr.samr_UserInfo2.country_code", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16191         { &hf_samr_samr_AddGroupMember_flags,
16192           { "Flags", "samr.samr_AddGroupMember.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16193         { &hf_samr_samr_UserInfo10_home_directory,
16194           { "Home Directory", "samr.samr_UserInfo10.home_directory", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16195         { &hf_samr_samr_CreateDomainGroup_group_handle,
16196           { "Group Handle", "samr.samr_CreateDomainGroup.group_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16197         { &hf_samr_samr_QueryUserInfo2_user_handle,
16198           { "User Handle", "samr.samr_QueryUserInfo2.user_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16199         { &hf_samr_samr_OemChangePasswordUser2_server,
16200           { "Server", "samr.samr_OemChangePasswordUser2.server", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16201         { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_CHANGE_PASSWORD,
16202           { "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 }},
16203         { &hf_samr_samr_AliasInfo_all,
16204           { "All", "samr.samr_AliasInfo.all", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16205         { &hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_BAD_PASSWORD_TIME,
16206           { "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 }},
16207         { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_NAME_ETC,
16208           { "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 }},
16209         { &hf_samr_samr_ChangePasswordUser3_password3,
16210           { "Password3", "samr.samr_ChangePasswordUser3.password3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16211         { &hf_samr_samr_UserInfo13_description,
16212           { "Description", "samr.samr_UserInfo13.description", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16213         { &hf_samr_samr_UserInfo21_lm_password_set,
16214           { "Lm Password Set", "samr.samr_UserInfo21.lm_password_set", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16215         { &hf_samr_samr_UserInfo_info2,
16216           { "Info2", "samr.samr_UserInfo.info2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16217         { &hf_samr_samr_EnumDomainUsers_domain_handle,
16218           { "Domain Handle", "samr.samr_EnumDomainUsers.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16219         { &hf_samr_samr_LookupRids_domain_handle,
16220           { "Domain Handle", "samr.samr_LookupRids.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16221         { &hf_samr_samr_LogonHours_bits,
16222           { "Bits", "samr.samr_LogonHours.bits", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16223         { &hf_samr_samr_OpenUser_domain_handle,
16224           { "Domain Handle", "samr.samr_OpenUser.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16225         { &hf_samr_samr_CreateUser2_access_mask,
16226           { "Access Mask", "samr.samr_CreateUser2.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16227         { &hf_samr_samr_GroupAttrs_SE_GROUP_ENABLED_BY_DEFAULT,
16228           { "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 }},
16229         { &hf_samr_samr_EnumDomainGroups_sam,
16230           { "Sam", "samr.samr_EnumDomainGroups.sam", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16231         { &hf_samr_samr_GroupInfoAll_name,
16232           { "Name", "samr.samr_GroupInfoAll.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16233         { &hf_samr_samr_ValidatePasswordRep_ctr2,
16234           { "Ctr2", "samr.samr_ValidatePasswordRep.ctr2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16235         { &hf_samr_samr_UserInfo_info24,
16236           { "Info24", "samr.samr_UserInfo.info24", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16237         { &hf_samr_samr_DomainInfo_info3,
16238           { "Info3", "samr.samr_DomainInfo.info3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16239         { &hf_samr_samr_EnumDomainGroups_num_entries,
16240           { "Num Entries", "samr.samr_EnumDomainGroups.num_entries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16241         { &hf_samr_samr_AcctFlags_ACB_PWNOTREQ,
16242           { "Acb Pwnotreq", "samr.samr_AcctFlags.ACB_PWNOTREQ", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_PWNOTREQ_tfs), ( 0x00000004 ), NULL, HFILL }},
16243         { &hf_samr_samr_UserInfo3_bad_password_count,
16244           { "Bad Password Count", "samr.samr_UserInfo3.bad_password_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16245         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_CODE_PAGE,
16246           { "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 }},
16247         { &hf_samr_samr_ChangePasswordUser_new_lm_crypted,
16248           { "New Lm Crypted", "samr.samr_ChangePasswordUser.new_lm_crypted", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16249         { &hf_samr_samr_LookupNames_types,
16250           { "Types", "samr.samr_LookupNames.types", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16251         { &hf_samr_samr_SamEntry_idx,
16252           { "Idx", "samr.samr_SamEntry.idx", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16253         { &hf_samr_samr_UserInfo3_logon_hours,
16254           { "Logon Hours", "samr.samr_UserInfo3.logon_hours", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16255         { &hf_samr_samr_ChangePasswordUser3_account,
16256           { "Account", "samr.samr_ChangePasswordUser3.account", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16257         { &hf_samr_samr_DomInfo8_sequence_num,
16258           { "Sequence Num", "samr.samr_DomInfo8.sequence_num", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
16259         { &hf_samr_samr_ValidatePasswordInfo_pwd_history,
16260           { "Pwd History", "samr.samr_ValidatePasswordInfo.pwd_history", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16261         { &hf_samr_samr_Connect3_unknown,
16262           { "Unknown", "samr.samr_Connect3.unknown", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16263         { &hf_samr_samr_GetDisplayEnumerationIndex2_idx,
16264           { "Idx", "samr.samr_GetDisplayEnumerationIndex2.idx", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16265         { &hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_LOOKUP_DOMAIN,
16266           { "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 }},
16267         { &hf_samr_samr_ConnectInfo1_unknown2,
16268           { "Unknown2", "samr.samr_ConnectInfo1.unknown2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16269         { &hf_samr_samr_TestPrivateFunctionsUser_user_handle,
16270           { "User Handle", "samr.samr_TestPrivateFunctionsUser.user_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16271         { &hf_samr_samr_QueryDisplayInfo2_domain_handle,
16272           { "Domain Handle", "samr.samr_QueryDisplayInfo2.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16273         { &hf_samr_samr_AliasInfoAll_name,
16274           { "Name", "samr.samr_AliasInfoAll.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16275         { &hf_samr_samr_Connect_access_mask,
16276           { "Access Mask", "samr.samr_Connect.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16277         { &hf_samr_samr_GetUserPwInfo_user_handle,
16278           { "User Handle", "samr.samr_GetUserPwInfo.user_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16279         { &hf_samr_samr_DispEntryFull_rid,
16280           { "Rid", "samr.samr_DispEntryFull.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16281         { &hf_samr_samr_OpenAlias_access_mask,
16282           { "Access Mask", "samr.samr_OpenAlias.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16283         { &hf_samr_samr_GroupInfo_description,
16284           { "Description", "samr.samr_GroupInfo.description", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16285         { &hf_samr_samr_OpenGroup_rid,
16286           { "Rid", "samr.samr_OpenGroup.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16287         { &hf_samr_samr_GroupAttrs_SE_GROUP_OWNER,
16288           { "Se Group Owner", "samr.samr_GroupAttrs.SE_GROUP_OWNER", FT_BOOLEAN, 32, TFS(&samr_GroupAttrs_SE_GROUP_OWNER_tfs), ( 0x00000008 ), NULL, HFILL }},
16289         { &hf_samr_samr_EnumDomainAliases_sam,
16290           { "Sam", "samr.samr_EnumDomainAliases.sam", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16291         { &hf_samr_samr_LogonHours_units_per_week,
16292           { "Units Per Week", "samr.samr_LogonHours.units_per_week", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16293         { &hf_samr_samr_DomGeneralInformation_role,
16294           { "Role", "samr.samr_DomGeneralInformation.role", FT_UINT32, BASE_DEC, VALS(samr_samr_Role_vals), 0, NULL, HFILL }},
16295         { &hf_samr_samr_QueryDisplayInfo2_buf_size,
16296           { "Buf Size", "samr.samr_QueryDisplayInfo2.buf_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16297         { &hf_samr_samr_DomainInfo_info13,
16298           { "Info13", "samr.samr_DomainInfo.info13", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16299         { &hf_samr_samr_SetSecurity_sec_info,
16300           { "Sec Info", "samr.samr_SetSecurity.sec_info", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16301         { &hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_STORE_CLEARTEXT,
16302           { "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 }},
16303         { &hf_samr_samr_DomGeneralInformation2_lockout_threshold,
16304           { "Lockout Threshold", "samr.samr_DomGeneralInformation2.lockout_threshold", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16305         { &hf_samr_samr_UserInfo21_last_password_change,
16306           { "Last Password Change", "samr.samr_UserInfo21.last_password_change", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16307         { &hf_samr_samr_ChangePasswordUser2_account,
16308           { "Account", "samr.samr_ChangePasswordUser2.account", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16309         { &hf_samr_samr_ChangePasswordUser3_lm_password,
16310           { "Lm Password", "samr.samr_ChangePasswordUser3.lm_password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16311         { &hf_samr_samr_UserInfo3_account_name,
16312           { "Account Name", "samr.samr_UserInfo3.account_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16313         { &hf_samr_samr_Connect3_system_name,
16314           { "System Name", "samr.samr_Connect3.system_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16315         { &hf_samr_samr_UserInfo_info11,
16316           { "Info11", "samr.samr_UserInfo.info11", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16317         { &hf_samr_samr_DomainInfo_info9,
16318           { "Info9", "samr.samr_DomainInfo.info9", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16319         { &hf_samr_samr_SamEntry_name,
16320           { "Name", "samr.samr_SamEntry.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16321         { &hf_samr_samr_UserInfo3_acct_flags,
16322           { "Acct Flags", "samr.samr_UserInfo3.acct_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16323         { &hf_samr_samr_UserInfo3_allow_password_change,
16324           { "Allow Password Change", "samr.samr_UserInfo3.allow_password_change", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16325         { &hf_samr_samr_QueryDomainInfo2_level,
16326           { "Level", "samr.samr_QueryDomainInfo2.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_DomainInfoClass_vals), 0, NULL, HFILL }},
16327         { &hf_samr_samr_GetDisplayEnumerationIndex_name,
16328           { "Name", "samr.samr_GetDisplayEnumerationIndex.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16329         { &hf_samr_samr_ValidatePasswordReq3_info,
16330           { "Info", "samr.samr_ValidatePasswordReq3.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16331         { &hf_samr_samr_ValidatePasswordInfo_lockout_time,
16332           { "Lockout Time", "samr.samr_ValidatePasswordInfo.lockout_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16333         { &hf_samr_samr_Connect4_access_mask,
16334           { "Access Mask", "samr.samr_Connect4.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16335         { &hf_samr_samr_UserInfo17_acct_expiry,
16336           { "Acct Expiry", "samr.samr_UserInfo17.acct_expiry", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16337         { &hf_samr_samr_DomInfo1_password_history_length,
16338           { "Password History Length", "samr.samr_DomInfo1.password_history_length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16339         { &hf_samr_samr_AcctFlags_ACB_USE_AES_KEYS,
16340           { "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 }},
16341         { &hf_samr_samr_QueryUserInfo_info,
16342           { "Info", "samr.samr_QueryUserInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16343         { &hf_samr_samr_DomGeneralInformation_primary,
16344           { "Primary", "samr.samr_DomGeneralInformation.primary", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16345         { &hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_SHUTDOWN_SERVER,
16346           { "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 }},
16347         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_LM_PASSWORD_PRESENT,
16348           { "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 }},
16349         { &hf_samr_samr_RemoveMemberFromForeignDomain_sid,
16350           { "Sid", "samr.samr_RemoveMemberFromForeignDomain.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16351         { &hf_samr_samr_UserInfo5_home_drive,
16352           { "Home Drive", "samr.samr_UserInfo5.home_drive", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16353         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_FORCE_PWD_CHANGE,
16354           { "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 }},
16355         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_LAST_LOGOFF,
16356           { "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 }},
16357         { &hf_samr_samr_RidWithAttributeArray_rids,
16358           { "Rids", "samr.samr_RidWithAttributeArray.rids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16359         { &hf_samr_samr_DeleteDomainGroup_group_handle,
16360           { "Group Handle", "samr.samr_DeleteDomainGroup.group_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16361         { &hf_samr_samr_Password_hash,
16362           { "Hash", "samr.samr_Password.hash", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16363         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_OWF_PWD,
16364           { "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 }},
16365         { &hf_samr_samr_UserInfo_info25,
16366           { "Info25", "samr.samr_UserInfo.info25", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16367         { &hf_samr_samr_QueryDisplayInfo_start_idx,
16368           { "Start Idx", "samr.samr_QueryDisplayInfo.start_idx", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16369         { &hf_samr_samr_UserInfo3_home_drive,
16370           { "Home Drive", "samr.samr_UserInfo3.home_drive", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16371         { &hf_samr_samr_UserInfo_info13,
16372           { "Info13", "samr.samr_UserInfo.info13", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16373         { &hf_samr_samr_DeleteAliasMember_alias_handle,
16374           { "Alias Handle", "samr.samr_DeleteAliasMember.alias_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16375         { &hf_samr_samr_QueryDomainInfo_domain_handle,
16376           { "Domain Handle", "samr.samr_QueryDomainInfo.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16377         { &hf_samr_samr_ChangePasswordUser2_nt_password,
16378           { "Nt Password", "samr.samr_ChangePasswordUser2.nt_password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16379         { &hf_samr_samr_RidAttrArray_attributes,
16380           { "Attributes", "samr.samr_RidAttrArray.attributes", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16381         { &hf_samr_samr_ValidatePasswordInfo_bad_pwd_count,
16382           { "Bad Pwd Count", "samr.samr_ValidatePasswordInfo.bad_pwd_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16383         { &hf_samr_samr_QueryGroupMember_rids,
16384           { "Rids", "samr.samr_QueryGroupMember.rids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16385         { &hf_samr_samr_UserInfo21_password_expired,
16386           { "Password Expired", "samr.samr_UserInfo21.password_expired", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16387         { &hf_samr_samr_EnumDomains_buf_size,
16388           { "Buf Size", "samr.samr_EnumDomains.buf_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16389         { &hf_samr_samr_DomInfo1_max_password_age,
16390           { "Max Password Age", "samr.samr_DomInfo1.max_password_age", FT_INT64, BASE_DEC, NULL, 0, NULL, HFILL }},
16391         { &hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_ADD_MEMBER,
16392           { "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 }},
16393         { &hf_samr_samr_GroupInfoAll_description,
16394           { "Description", "samr.samr_GroupInfoAll.description", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16395         { &hf_samr_samr_UserInfo3_logon_count,
16396           { "Logon Count", "samr.samr_UserInfo3.logon_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16397         { &hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_HISTORY,
16398           { "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 }},
16399         { &hf_samr_samr_AcctFlags_ACB_PARTIAL_SECRETS_ACCOUNT,
16400           { "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 }},
16401         { &hf_samr_samr_GroupInfo_name,
16402           { "Name", "samr.samr_GroupInfo.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16403         { &hf_samr_samr_UserInfo3_force_password_change,
16404           { "Force Password Change", "samr.samr_UserInfo3.force_password_change", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16405         { &hf_samr_samr_ChangePasswordUser_nt_present,
16406           { "Nt Present", "samr.samr_ChangePasswordUser.nt_present", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16407         { &hf_samr_samr_UserInfo21_home_directory,
16408           { "Home Directory", "samr.samr_UserInfo21.home_directory", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16409         { &hf_samr_samr_UserInfo_info12,
16410           { "Info12", "samr.samr_UserInfo.info12", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16411         { &hf_samr_samr_OemChangePasswordUser2_password,
16412           { "Password", "samr.samr_OemChangePasswordUser2.password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16413         { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_ALIAS,
16414           { "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 }},
16415         { &hf_samr_samr_EnumDomainGroups_domain_handle,
16416           { "Domain Handle", "samr.samr_EnumDomainGroups.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16417         { &hf_samr_opnum,
16418           { "Operation", "samr.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16419         { &hf_samr_samr_ChangePasswordUser3_server,
16420           { "Server", "samr.samr_ChangePasswordUser3.server", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16421         { &hf_samr_samr_QueryUserInfo_user_handle,
16422           { "User Handle", "samr.samr_QueryUserInfo.user_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16423         { &hf_samr_samr_GetDisplayEnumerationIndex2_name,
16424           { "Name", "samr.samr_GetDisplayEnumerationIndex2.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16425         { &hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_LOOKUP_INFO,
16426           { "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 }},
16427         { &hf_samr_samr_GetGroupsForUser_user_handle,
16428           { "User Handle", "samr.samr_GetGroupsForUser.user_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16429         { &hf_samr_samr_QueryDomainInfo2_domain_handle,
16430           { "Domain Handle", "samr.samr_QueryDomainInfo2.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16431         { &hf_samr_samr_UserInfo14_workstations,
16432           { "Workstations", "samr.samr_UserInfo14.workstations", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16433         { &hf_samr_samr_GetDisplayEnumerationIndex_domain_handle,
16434           { "Domain Handle", "samr.samr_GetDisplayEnumerationIndex.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16435         { &hf_samr_samr_DispInfo_info3,
16436           { "Info3", "samr.samr_DispInfo.info3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16437         { &hf_samr_samr_DomainInfo_info8,
16438           { "Info8", "samr.samr_DomainInfo.info8", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16439         { &hf_samr_samr_DispInfoGeneral_entries,
16440           { "Entries", "samr.samr_DispInfoGeneral.entries", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16441         { &hf_samr_samr_UserInfo8_full_name,
16442           { "Full Name", "samr.samr_UserInfo8.full_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16443         { &hf_samr_samr_UserInfo21_logon_count,
16444           { "Logon Count", "samr.samr_UserInfo21.logon_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16445         { &hf_samr_samr_UserInfo21_code_page,
16446           { "Code Page", "samr.samr_UserInfo21.code_page", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16447         { &hf_samr_samr_DispEntryFullGroup_acct_flags,
16448           { "Acct Flags", "samr.samr_DispEntryFullGroup.acct_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16449         { &hf_samr_samr_AcctFlags_ACB_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION,
16450           { "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 }},
16451         { &hf_samr_samr_SetUserInfo_info,
16452           { "Info", "samr.samr_SetUserInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16453         { &hf_samr_samr_OpenDomain_sid,
16454           { "Sid", "samr.samr_OpenDomain.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16455         { &hf_samr_samr_CreateUser2_acct_flags,
16456           { "Acct Flags", "samr.samr_CreateUser2.acct_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16457         { &hf_samr_samr_DispEntryFull_account_name,
16458           { "Account Name", "samr.samr_DispEntryFull.account_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16459         { &hf_samr_userPwdChangeFailureInformation_filterModuleName,
16460           { "Filtermodulename", "samr.userPwdChangeFailureInformation.filterModuleName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16461         { &hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_LENGTH,
16462           { "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 }},
16463         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_HOME_DRIVE,
16464           { "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 }},
16465         { &hf_samr_samr_DomainInfo_info1,
16466           { "Info1", "samr.samr_DomainInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16467         { &hf_samr_samr_RidAttrArray_rids,
16468           { "Rids", "samr.samr_RidAttrArray.rids", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16469         { &hf_samr_samr_ValidatePasswordRep_ctr1,
16470           { "Ctr1", "samr.samr_ValidatePasswordRep.ctr1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16471         { &hf_samr_samr_UserInfo18_nt_pwd_active,
16472           { "Nt Pwd Active", "samr.samr_UserInfo18.nt_pwd_active", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16473         { &hf_samr_samr_AcctFlags_ACB_DOMTRUST,
16474           { "Acb Domtrust", "samr.samr_AcctFlags.ACB_DOMTRUST", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_DOMTRUST_tfs), ( 0x00000040 ), NULL, HFILL }},
16475         { &hf_samr_samr_ChangePasswordUser_lm_cross,
16476           { "Lm Cross", "samr.samr_ChangePasswordUser.lm_cross", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16477         { &hf_samr_samr_UserInfo3_profile_path,
16478           { "Profile Path", "samr.samr_UserInfo3.profile_path", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16479         { &hf_samr_samr_DomInfo13_domain_create_time,
16480           { "Domain Create Time", "samr.samr_DomInfo13.domain_create_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16481         { &hf_samr_samr_AcctFlags_ACB_WSTRUST,
16482           { "Acb Wstrust", "samr.samr_AcctFlags.ACB_WSTRUST", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_WSTRUST_tfs), ( 0x00000080 ), NULL, HFILL }},
16483         { &hf_samr_samr_DispEntryAscii_idx,
16484           { "Idx", "samr.samr_DispEntryAscii.idx", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16485         { &hf_samr_samr_DomInfo5_domain_name,
16486           { "Domain Name", "samr.samr_DomInfo5.domain_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16487         { &hf_samr_samr_UserInfo5_logon_count,
16488           { "Logon Count", "samr.samr_UserInfo5.logon_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16489         { &hf_samr_samr_UserInfo5_last_logoff,
16490           { "Last Logoff", "samr.samr_UserInfo5.last_logoff", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16491         { &hf_samr_samr_CreateDomainGroup_rid,
16492           { "Rid", "samr.samr_CreateDomainGroup.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16493         { &hf_samr_samr_ValidatePassword_level,
16494           { "Level", "samr.samr_ValidatePassword.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_ValidatePasswordLevel_vals), 0, NULL, HFILL }},
16495         { &hf_samr_samr_UserInfo6_full_name,
16496           { "Full Name", "samr.samr_UserInfo6.full_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16497         { &hf_samr_samr_LookupRids_names,
16498           { "Names", "samr.samr_LookupRids.names", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16499         { &hf_samr_samr_UserInfo10_home_drive,
16500           { "Home Drive", "samr.samr_UserInfo10.home_drive", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16501         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_ACCT_FLAGS,
16502           { "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 }},
16503         { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_GROUPS,
16504           { "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 }},
16505         { &hf_samr_samr_OemChangePasswordUser2_account,
16506           { "Account", "samr.samr_OemChangePasswordUser2.account", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16507         { &hf_samr_samr_RemoveMultipleMembersFromAlias_sids,
16508           { "Sids", "samr.samr_RemoveMultipleMembersFromAlias.sids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16509         { &hf_samr_samr_QueryDisplayInfo2_info,
16510           { "Info", "samr.samr_QueryDisplayInfo2.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16511         { &hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_ENUM_DOMAINS,
16512           { "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 }},
16513         { &hf_samr_samr_UserInfo_info4,
16514           { "Info4", "samr.samr_UserInfo.info4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16515         { &hf_samr_samr_DomInfo1_password_properties,
16516           { "Password Properties", "samr.samr_DomInfo1.password_properties", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16517         { &hf_samr_samr_UserInfo21_logon_script,
16518           { "Logon Script", "samr.samr_UserInfo21.logon_script", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16519         { &hf_samr_samr_AcctFlags_ACB_AUTOLOCK,
16520           { "Acb Autolock", "samr.samr_AcctFlags.ACB_AUTOLOCK", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_AUTOLOCK_tfs), ( 0x00000400 ), NULL, HFILL }},
16521         { &hf_samr_samr_CreateUser_domain_handle,
16522           { "Domain Handle", "samr.samr_CreateUser.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16523         { &hf_samr_samr_GetBootKeyInformation_unknown,
16524           { "Unknown", "samr.samr_GetBootKeyInformation.unknown", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16525         { &hf_samr_samr_RidWithAttribute_attributes,
16526           { "Attributes", "samr.samr_RidWithAttribute.attributes", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16527         { &hf_samr_samr_CryptPassword_data,
16528           { "Data", "samr.samr_CryptPassword.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16529         { &hf_samr_samr_AliasInfo_name,
16530           { "Name", "samr.samr_AliasInfo.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16531         { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_USER,
16532           { "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 }},
16533         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_COMMENT,
16534           { "Samr Field Comment", "samr.samr_FieldsPresent.SAMR_FIELD_COMMENT", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_COMMENT_tfs), ( 0x00000020 ), NULL, HFILL }},
16535         { &hf_samr_samr_UserInfo3_last_password_change,
16536           { "Last Password Change", "samr.samr_UserInfo3.last_password_change", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16537         { &hf_samr_samr_Shutdown_connect_handle,
16538           { "Connect Handle", "samr.samr_Shutdown.connect_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16539         { &hf_samr_samr_OpenDomain_access_mask,
16540           { "Access Mask", "samr.samr_OpenDomain.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16541         { &hf_samr_samr_DispEntryFullGroup_rid,
16542           { "Rid", "samr.samr_DispEntryFullGroup.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16543         { &hf_samr_samr_Connect2_connect_handle,
16544           { "Connect Handle", "samr.samr_Connect2.connect_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16545         { &hf_samr_samr_GroupAttrs_SE_GROUP_ENABLED,
16546           { "Se Group Enabled", "samr.samr_GroupAttrs.SE_GROUP_ENABLED", FT_BOOLEAN, 32, TFS(&samr_GroupAttrs_SE_GROUP_ENABLED_tfs), ( 0x00000004 ), NULL, HFILL }},
16547         { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_INFO_2,
16548           { "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 }},
16549         { &hf_samr_samr_ValidationBlob_length,
16550           { "Length", "samr.samr_ValidationBlob.length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16551         { &hf_samr_samr_QueryDisplayInfo2_start_idx,
16552           { "Start Idx", "samr.samr_QueryDisplayInfo2.start_idx", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16553         { &hf_samr_samr_DispEntryGeneral_idx,
16554           { "Idx", "samr.samr_DispEntryGeneral.idx", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16555         { &hf_samr_samr_UserInfo21_logon_hours,
16556           { "Logon Hours", "samr.samr_UserInfo21.logon_hours", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16557         { &hf_samr_samr_UserInfo21_country_code,
16558           { "Country Code", "samr.samr_UserInfo21.country_code", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16559         { &hf_samr_samr_AddAliasMember_alias_handle,
16560           { "Alias Handle", "samr.samr_AddAliasMember.alias_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16561         { &hf_samr_samr_SetDsrmPassword_hash,
16562           { "Hash", "samr.samr_SetDsrmPassword.hash", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16563         { &hf_samr_samr_DomainInfo_general,
16564           { "General", "samr.samr_DomainInfo.general", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16565         { &hf_samr_samr_QueryDisplayInfo_domain_handle,
16566           { "Domain Handle", "samr.samr_QueryDisplayInfo.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16567         { &hf_samr_samr_GroupAttrs_SE_GROUP_MANDATORY,
16568           { "Se Group Mandatory", "samr.samr_GroupAttrs.SE_GROUP_MANDATORY", FT_BOOLEAN, 32, TFS(&samr_GroupAttrs_SE_GROUP_MANDATORY_tfs), ( 0x00000001 ), NULL, HFILL }},
16569         { &hf_samr_samr_UserInfo5_description,
16570           { "Description", "samr.samr_UserInfo5.description", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16571         { &hf_samr_samr_DomInfo7_role,
16572           { "Role", "samr.samr_DomInfo7.role", FT_UINT32, BASE_DEC, VALS(samr_samr_Role_vals), 0, NULL, HFILL }},
16573         { &hf_samr_samr_UserInfo21_workstations,
16574           { "Workstations", "samr.samr_UserInfo21.workstations", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16575         { &hf_samr_samr_DispEntryGeneral_description,
16576           { "Description", "samr.samr_DispEntryGeneral.description", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16577         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_PRIVATE_DATA,
16578           { "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 }},
16579         { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_ENUM_ACCOUNTS,
16580           { "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 }},
16581         { &hf_samr_samr_ValidatePasswordReq_req3,
16582           { "Req3", "samr.samr_ValidatePasswordReq.req3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16583         { &hf_samr_samr_ChangePasswordUser2_nt_verifier,
16584           { "Nt Verifier", "samr.samr_ChangePasswordUser2.nt_verifier", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16585         { &hf_samr_samr_AcctFlags_ACB_TRUSTED_FOR_DELEGATION,
16586           { "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 }},
16587         { &hf_samr_samr_EnumDomains_connect_handle,
16588           { "Connect Handle", "samr.samr_EnumDomains.connect_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16589         { &hf_samr_samr_UserInfo_info18,
16590           { "Info18", "samr.samr_UserInfo.info18", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16591         { &hf_samr_samr_CreateDomAlias_access_mask,
16592           { "Access Mask", "samr.samr_CreateDomAlias.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16593         { &hf_samr_samr_UserInfo21_force_password_change,
16594           { "Force Password Change", "samr.samr_UserInfo21.force_password_change", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16595         { &hf_samr_samr_GetDisplayEnumerationIndex2_domain_handle,
16596           { "Domain Handle", "samr.samr_GetDisplayEnumerationIndex2.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16597         { &hf_samr_samr_TestPrivateFunctionsDomain_domain_handle,
16598           { "Domain Handle", "samr.samr_TestPrivateFunctionsDomain.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16599         { &hf_samr_samr_DomGeneralInformation_domain_server_state,
16600           { "Domain Server State", "samr.samr_DomGeneralInformation.domain_server_state", FT_UINT32, BASE_DEC, VALS(samr_samr_DomainServerState_vals), 0, NULL, HFILL }},
16601         { &hf_samr_samr_SetBootKeyInformation_unknown3,
16602           { "Unknown3", "samr.samr_SetBootKeyInformation.unknown3", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16603         { &hf_samr_samr_Connect3_connect_handle,
16604           { "Connect Handle", "samr.samr_Connect3.connect_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16605         { &hf_samr_samr_EnumDomainUsers_num_entries,
16606           { "Num Entries", "samr.samr_EnumDomainUsers.num_entries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16607         { &hf_samr_samr_ValidatePasswordReq2_info,
16608           { "Info", "samr.samr_ValidatePasswordReq2.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16609         { &hf_samr_samr_LookupNames_num_names,
16610           { "Num Names", "samr.samr_LookupNames.num_names", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16611         { &hf_samr_samr_QueryDisplayInfo3_level,
16612           { "Level", "samr.samr_QueryDisplayInfo3.level", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16613         { &hf_samr_userPwdChangeFailureInformation_extendedFailureReason,
16614           { "Extendedfailurereason", "samr.userPwdChangeFailureInformation.extendedFailureReason", FT_UINT32, BASE_DEC, VALS(samr_samPwdChangeReason_vals), 0, NULL, HFILL }},
16615         { &hf_samr_samr_QueryDisplayInfo2_max_entries,
16616           { "Max Entries", "samr.samr_QueryDisplayInfo2.max_entries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16617         { &hf_samr_samr_ValidatePasswordInfo_last_password_change,
16618           { "Last Password Change", "samr.samr_ValidatePasswordInfo.last_password_change", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16619         { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_LOCALE,
16620           { "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 }},
16621         { &hf_samr_samr_AddMultipleMembersToAlias_alias_handle,
16622           { "Alias Handle", "samr.samr_AddMultipleMembersToAlias.alias_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16623         { &hf_samr_samr_OpenUser_access_mask,
16624           { "Access Mask", "samr.samr_OpenUser.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16625         { &hf_samr_samr_RemoveMultipleMembersFromAlias_alias_handle,
16626           { "Alias Handle", "samr.samr_RemoveMultipleMembersFromAlias.alias_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16627         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_LOGON_HOURS,
16628           { "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 }},
16629         { &hf_samr_samr_ChangePasswordUser3_dominfo,
16630           { "Dominfo", "samr.samr_ChangePasswordUser3.dominfo", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16631         { &hf_samr_samr_ValidationBlob_data,
16632           { "Data", "samr.samr_ValidationBlob.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16633         { &hf_samr_samr_UserInfo18_lm_pwd_active,
16634           { "Lm Pwd Active", "samr.samr_UserInfo18.lm_pwd_active", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16635         { &hf_samr_samr_CreateDomAlias_domain_handle,
16636           { "Domain Handle", "samr.samr_CreateDomAlias.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16637         { &hf_samr_samr_UserInfo_info26,
16638           { "Info26", "samr.samr_UserInfo.info26", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16639         { &hf_samr_samr_EnumDomainAliases_domain_handle,
16640           { "Domain Handle", "samr.samr_EnumDomainAliases.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16641         { &hf_samr_samr_GroupInfoAll_attributes,
16642           { "Attributes", "samr.samr_GroupInfoAll.attributes", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16643         { &hf_samr_samr_DomainInfo_info7,
16644           { "Info7", "samr.samr_DomainInfo.info7", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16645         { &hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_CONNECT_TO_SERVER,
16646           { "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 }},
16647         { &hf_samr_samr_EnumDomains_num_entries,
16648           { "Num Entries", "samr.samr_EnumDomains.num_entries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16649         { &hf_samr_samr_UserInfo21_parameters,
16650           { "Parameters", "samr.samr_UserInfo21.parameters", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16651         { &hf_samr_samr_DispEntryGeneral_acct_flags,
16652           { "Acct Flags", "samr.samr_DispEntryGeneral.acct_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16653         { &hf_samr_samr_AcctFlags_ACB_TEMPDUP,
16654           { "Acb Tempdup", "samr.samr_AcctFlags.ACB_TEMPDUP", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_TEMPDUP_tfs), ( 0x00000008 ), NULL, HFILL }},
16655         { &hf_samr_samr_DispInfoFullGroups_count,
16656           { "Count", "samr.samr_DispInfoFullGroups.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16657         { &hf_samr_samr_OpenUser_user_handle,
16658           { "User Handle", "samr.samr_OpenUser.user_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16659         { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_INFO_1,
16660           { "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 }},
16661         { &hf_samr_samr_GetAliasMembership_rids,
16662           { "Rids", "samr.samr_GetAliasMembership.rids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16663         { &hf_samr_samr_CreateDomAlias_alias_handle,
16664           { "Alias Handle", "samr.samr_CreateDomAlias.alias_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16665         { &hf_samr_samr_UserInfo6_account_name,
16666           { "Account Name", "samr.samr_UserInfo6.account_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16667         { &hf_samr_samr_UserInfo_info3,
16668           { "Info3", "samr.samr_UserInfo.info3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16669         { &hf_samr_samr_Connect5_level_in,
16670           { "Level In", "samr.samr_Connect5.level_in", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16671         { &hf_samr_samr_DomInfo12_lockout_window,
16672           { "Lockout Window", "samr.samr_DomInfo12.lockout_window", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
16673         { &hf_samr_samr_CreateUser_user_handle,
16674           { "User Handle", "samr.samr_CreateUser.user_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16675         { &hf_samr_samr_RidToSid_sid,
16676           { "Sid", "samr.samr_RidToSid.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16677         { &hf_samr_samr_GetUserPwInfo_info,
16678           { "Info", "samr.samr_GetUserPwInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16679         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_SEC_DESC,
16680           { "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 }},
16681         { &hf_samr_samr_EnumDomainUsers_acct_flags,
16682           { "Acct Flags", "samr.samr_EnumDomainUsers.acct_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16683         { &hf_samr_samr_UserInfo3_rid,
16684           { "Rid", "samr.samr_UserInfo3.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16685         { &hf_samr_samr_DomainInfo_info6,
16686           { "Info6", "samr.samr_DomainInfo.info6", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16687         { &hf_samr_samr_CreateDomAlias_alias_name,
16688           { "Alias Name", "samr.samr_CreateDomAlias.alias_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16689         { &hf_samr_samr_EnumDomainUsers_sam,
16690           { "Sam", "samr.samr_EnumDomainUsers.sam", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16691         { &hf_samr_samr_DispInfo_info5,
16692           { "Info5", "samr.samr_DispInfo.info5", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16693         { &hf_samr_samr_GetGroupsForUser_rids,
16694           { "Rids", "samr.samr_GetGroupsForUser.rids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16695         { &hf_samr_samr_UserInfo3_last_logoff,
16696           { "Last Logoff", "samr.samr_UserInfo3.last_logoff", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16697         { &hf_samr_samr_ValidatePasswordRepCtr_info,
16698           { "Info", "samr.samr_ValidatePasswordRepCtr.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16699         { &hf_samr_samr_CreateDomAlias_rid,
16700           { "Rid", "samr.samr_CreateDomAlias.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16701         { &hf_samr_samr_SetGroupInfo_level,
16702           { "Level", "samr.samr_SetGroupInfo.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_GroupInfoEnum_vals), 0, NULL, HFILL }},
16703         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_NT_PASSWORD_PRESENT,
16704           { "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 }},
16705         { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_SET_PASSWORD,
16706           { "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 }},
16707         { &hf_samr_samr_SetUserInfo2_level,
16708           { "Level", "samr.samr_SetUserInfo2.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_UserInfoLevel_vals), 0, NULL, HFILL }},
16709         { &hf_samr_samr_UserInfo5_acct_expiry,
16710           { "Acct Expiry", "samr.samr_UserInfo5.acct_expiry", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16711         { &hf_samr_samr_OpenAlias_rid,
16712           { "Rid", "samr.samr_OpenAlias.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16713         { &hf_samr_samr_Close_handle,
16714           { "Handle", "samr.samr_Close.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16715         { &hf_samr_samr_Connect5_info_in,
16716           { "Info In", "samr.samr_Connect5.info_in", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16717         { &hf_samr_samr_UserInfo21_nt_password_set,
16718           { "Nt Password Set", "samr.samr_UserInfo21.nt_password_set", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16719         { &hf_samr_samr_UserInfo_info20,
16720           { "Info20", "samr.samr_UserInfo.info20", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16721         { &hf_samr_samr_UserInfo21_private_data,
16722           { "Private Data", "samr.samr_UserInfo21.private_data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16723         { &hf_samr_samr_CreateUser_access_mask,
16724           { "Access Mask", "samr.samr_CreateUser.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16725         { &hf_samr_samr_UserInfo5_account_name,
16726           { "Account Name", "samr.samr_UserInfo5.account_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16727         { &hf_samr_samr_DispInfoFull_entries,
16728           { "Entries", "samr.samr_DispInfoFull.entries", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16729         { &hf_samr_samr_UserInfo5_full_name,
16730           { "Full Name", "samr.samr_UserInfo5.full_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16731         { &hf_samr_samr_ChangePasswordUser3_lm_verifier,
16732           { "Lm Verifier", "samr.samr_ChangePasswordUser3.lm_verifier", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16733         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_PRIMARY_GID,
16734           { "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 }},
16735         { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_3,
16736           { "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 }},
16737         { &hf_samr_samr_GroupAttrs_SE_GROUP_USE_FOR_DENY_ONLY,
16738           { "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 }},
16739         { &hf_samr_samr_DispInfoAscii_count,
16740           { "Count", "samr.samr_DispInfoAscii.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16741         { &hf_samr_samr_GetMembersInAlias_sids,
16742           { "Sids", "samr.samr_GetMembersInAlias.sids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16743         { &hf_samr_samr_QueryDisplayInfo3_info,
16744           { "Info", "samr.samr_QueryDisplayInfo3.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16745         { &hf_samr_samr_OemChangePasswordUser2_hash,
16746           { "Hash", "samr.samr_OemChangePasswordUser2.hash", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16747         { &hf_samr_samr_ChangePasswordUser_user_handle,
16748           { "User Handle", "samr.samr_ChangePasswordUser.user_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16749         { &hf_samr_samr_QueryUserInfo2_level,
16750           { "Level", "samr.samr_QueryUserInfo2.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_UserInfoLevel_vals), 0, NULL, HFILL }},
16751         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_BAD_PWD_COUNT,
16752           { "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 }},
16753         { &hf_samr_samr_ValidatePasswordReq3_clear_lockout,
16754           { "Clear Lockout", "samr.samr_ValidatePasswordReq3.clear_lockout", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16755         { &hf_samr_samr_Connect4_client_version,
16756           { "Client Version", "samr.samr_Connect4.client_version", FT_UINT32, BASE_DEC, VALS(samr_samr_ConnectVersion_vals), 0, NULL, HFILL }},
16757         { &hf_samr_samr_GetDisplayEnumerationIndex_level,
16758           { "Level", "samr.samr_GetDisplayEnumerationIndex.level", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16759         { &hf_samr_samr_UserInfo5_workstations,
16760           { "Workstations", "samr.samr_UserInfo5.workstations", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16761         { &hf_samr_samr_DispEntryFullGroup_account_name,
16762           { "Account Name", "samr.samr_DispEntryFullGroup.account_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16763         { &hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_LOCKOUT_TIME,
16764           { "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 }},
16765         { &hf_samr_samr_QueryDisplayInfo_total_size,
16766           { "Total Size", "samr.samr_QueryDisplayInfo.total_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16767         { &hf_samr_samr_UserInfo1_comment,
16768           { "Comment", "samr.samr_UserInfo1.comment", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16769         { &hf_samr_samr_DeleteDomAlias_alias_handle,
16770           { "Alias Handle", "samr.samr_DeleteDomAlias.alias_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16771         { &hf_samr_samr_EnumDomains_sam,
16772           { "Sam", "samr.samr_EnumDomains.sam", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16773         { &hf_samr_samr_UserInfo2_code_page,
16774           { "Code Page", "samr.samr_UserInfo2.code_page", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16775         { &hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_LOCKOUT_ADMINS,
16776           { "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 }},
16777         { &hf_samr_samr_DomGeneralInformation_unknown3,
16778           { "Unknown3", "samr.samr_DomGeneralInformation.unknown3", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16779         { &hf_samr_samr_OpenDomain_connect_handle,
16780           { "Connect Handle", "samr.samr_OpenDomain.connect_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16781         { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_SET_ATTRIBUTES,
16782           { "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 }},
16783         { &hf_samr_samr_QueryDisplayInfo_buf_size,
16784           { "Buf Size", "samr.samr_QueryDisplayInfo.buf_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16785         { &hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_REMOVE_MEMBER,
16786           { "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 }},
16787         { &hf_samr_samr_QueryGroupInfo_level,
16788           { "Level", "samr.samr_QueryGroupInfo.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_GroupInfoEnum_vals), 0, NULL, HFILL }},
16789         { &hf_samr_samr_SetAliasInfo_level,
16790           { "Level", "samr.samr_SetAliasInfo.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_AliasInfoEnum_vals), 0, NULL, HFILL }},
16791         { &hf_samr_samr_QueryDisplayInfo_level,
16792           { "Level", "samr.samr_QueryDisplayInfo.level", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16793         { &hf_samr_samr_UserInfo21_buffer,
16794           { "Buffer", "samr.samr_UserInfo21.buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16795         { &hf_samr_samr_SetDsrmPassword_unknown,
16796           { "Unknown", "samr.samr_SetDsrmPassword.unknown", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16797         { &hf_samr_samr_UserInfo5_last_password_change,
16798           { "Last Password Change", "samr.samr_UserInfo5.last_password_change", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16799         { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_GROUP,
16800           { "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 }},
16801         { &hf_samr_samr_QueryDisplayInfo_returned_size,
16802           { "Returned Size", "samr.samr_QueryDisplayInfo.returned_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16803         { &hf_samr_samr_UserInfo21_allow_password_change,
16804           { "Allow Password Change", "samr.samr_UserInfo21.allow_password_change", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16805         { &hf_samr_samr_ConnectInfo_info1,
16806           { "Info1", "samr.samr_ConnectInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16807         { &hf_samr_samr_SetSecurity_handle,
16808           { "Handle", "samr.samr_SetSecurity.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16809         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_FULL_NAME,
16810           { "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 }},
16811         { &hf_samr_samr_AliasInfoAll_description,
16812           { "Description", "samr.samr_AliasInfoAll.description", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16813         };
16814
16815
16816         static gint *ett[] = {
16817                 &ett_dcerpc_samr,
16818                 &ett_samr_security_secinfo,
16819                 &ett_samr_samr_AcctFlags,
16820                 &ett_samr_samr_ConnectAccessMask,
16821                 &ett_samr_samr_UserAccessMask,
16822                 &ett_samr_samr_DomainAccessMask,
16823                 &ett_samr_samr_GroupAccessMask,
16824                 &ett_samr_samr_AliasAccessMask,
16825                 &ett_samr_samr_SamEntry,
16826                 &ett_samr_samr_SamArray,
16827                 &ett_samr_samr_PasswordProperties,
16828                 &ett_samr_samr_DomInfo1,
16829                 &ett_samr_samr_DomGeneralInformation,
16830                 &ett_samr_samr_DomInfo3,
16831                 &ett_samr_samr_DomOEMInformation,
16832                 &ett_samr_samr_DomInfo5,
16833                 &ett_samr_samr_DomInfo6,
16834                 &ett_samr_samr_DomInfo7,
16835                 &ett_samr_samr_DomInfo8,
16836                 &ett_samr_samr_DomInfo9,
16837                 &ett_samr_samr_DomGeneralInformation2,
16838                 &ett_samr_samr_DomInfo12,
16839                 &ett_samr_samr_DomInfo13,
16840                 &ett_samr_samr_DomainInfo,
16841                 &ett_samr_samr_Ids,
16842                 &ett_samr_samr_GroupAttrs,
16843                 &ett_samr_samr_GroupInfoAll,
16844                 &ett_samr_samr_GroupInfoAttributes,
16845                 &ett_samr_samr_GroupInfoDescription,
16846                 &ett_samr_samr_GroupInfo,
16847                 &ett_samr_samr_RidAttrArray,
16848                 &ett_samr_samr_AliasInfoAll,
16849                 &ett_samr_samr_AliasInfo,
16850                 &ett_samr_samr_UserInfo1,
16851                 &ett_samr_samr_UserInfo2,
16852                 &ett_samr_samr_LogonHours,
16853                 &ett_samr_samr_UserInfo3,
16854                 &ett_samr_samr_UserInfo4,
16855                 &ett_samr_samr_UserInfo5,
16856                 &ett_samr_samr_UserInfo6,
16857                 &ett_samr_samr_UserInfo7,
16858                 &ett_samr_samr_UserInfo8,
16859                 &ett_samr_samr_UserInfo9,
16860                 &ett_samr_samr_UserInfo10,
16861                 &ett_samr_samr_UserInfo11,
16862                 &ett_samr_samr_UserInfo12,
16863                 &ett_samr_samr_UserInfo13,
16864                 &ett_samr_samr_UserInfo14,
16865                 &ett_samr_samr_UserInfo16,
16866                 &ett_samr_samr_UserInfo17,
16867                 &ett_samr_samr_Password,
16868                 &ett_samr_samr_UserInfo18,
16869                 &ett_samr_samr_UserInfo20,
16870                 &ett_samr_samr_FieldsPresent,
16871                 &ett_samr_samr_UserInfo21,
16872                 &ett_samr_samr_CryptPassword,
16873                 &ett_samr_samr_UserInfo23,
16874                 &ett_samr_samr_UserInfo24,
16875                 &ett_samr_samr_CryptPasswordEx,
16876                 &ett_samr_samr_UserInfo25,
16877                 &ett_samr_samr_UserInfo26,
16878                 &ett_samr_samr_UserInfo,
16879                 &ett_samr_samr_RidWithAttribute,
16880                 &ett_samr_samr_RidWithAttributeArray,
16881                 &ett_samr_samr_DispEntryGeneral,
16882                 &ett_samr_samr_DispInfoGeneral,
16883                 &ett_samr_samr_DispEntryFull,
16884                 &ett_samr_samr_DispInfoFull,
16885                 &ett_samr_samr_DispEntryFullGroup,
16886                 &ett_samr_samr_DispInfoFullGroups,
16887                 &ett_samr_samr_DispEntryAscii,
16888                 &ett_samr_samr_DispInfoAscii,
16889                 &ett_samr_samr_DispInfo,
16890                 &ett_samr_samr_PwInfo,
16891                 &ett_samr_userPwdChangeFailureInformation,
16892                 &ett_samr_samr_ConnectInfo1,
16893                 &ett_samr_samr_ConnectInfo,
16894                 &ett_samr_samr_ValidateFieldsPresent,
16895                 &ett_samr_samr_ValidationBlob,
16896                 &ett_samr_samr_ValidatePasswordInfo,
16897                 &ett_samr_samr_ValidatePasswordRepCtr,
16898                 &ett_samr_samr_ValidatePasswordRep,
16899                 &ett_samr_samr_ValidatePasswordReq3,
16900                 &ett_samr_samr_ValidatePasswordReq2,
16901                 &ett_samr_samr_ValidatePasswordReq1,
16902                 &ett_samr_samr_ValidatePasswordReq,
16903         };
16904
16905         proto_dcerpc_samr = proto_register_protocol("NULL", "SAMR", "samr");
16906         proto_register_field_array(proto_dcerpc_samr, hf, array_length (hf));
16907         proto_register_subtree_array(ett, array_length(ett));
16908 }
16909
16910 void proto_reg_handoff_dcerpc_samr(void)
16911 {
16912         dcerpc_init_uuid(proto_dcerpc_samr, ett_dcerpc_samr,
16913                 &uuid_dcerpc_samr, ver_dcerpc_samr,
16914                 samr_dissectors, hf_samr_opnum);
16915 }