Revert "WHY??? git add -f bin/default/librpc/gen_ndr/packet-dcerpc-*"
[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_,int length _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_,int length _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_,int length _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_,int length _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_,int length _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_,int length _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_block(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_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
4973 {
4974         proto_tree_add_bytes(tree, hf_samr_samr_LogonHours_bits, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
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         dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
6018         int conformant = di->conformant_run;
6019         if (!conformant) {
6020                 offset = samr_dissect_element_Password_hash_(tvb, offset, 16, pinfo, tree, drep);
6021         }
6022
6023         return offset;
6024 }
6025
6026 static int
6027 samr_dissect_element_Password_hash_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6028 {
6029         proto_tree_add_bytes(tree, hf_samr_samr_Password_hash, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
6030
6031         return offset;
6032 }
6033
6034 int
6035 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_)
6036 {
6037         proto_item *item = NULL;
6038         proto_tree *tree = NULL;
6039         int old_offset;
6040
6041
6042         old_offset = offset;
6043
6044         if (parent_tree) {
6045                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
6046                 tree = proto_item_add_subtree(item, ett_samr_samr_Password);
6047         }
6048         
6049         offset = samr_dissect_element_Password_hash(tvb, offset, pinfo, tree, drep);
6050
6051
6052         proto_item_set_len(item, offset-old_offset);
6053
6054
6055         return offset;
6056 }
6057
6058
6059 /* IDL: struct { */
6060 /* IDL:         samr_Password nt_pwd; */
6061 /* IDL:         samr_Password lm_pwd; */
6062 /* IDL:         uint8 nt_pwd_active; */
6063 /* IDL:         uint8 lm_pwd_active; */
6064 /* IDL:         uint8 password_expired; */
6065 /* IDL: } */
6066
6067 static int
6068 samr_dissect_element_UserInfo18_nt_pwd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6069 {
6070         offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo18_nt_pwd,0);
6071
6072         return offset;
6073 }
6074
6075 static int
6076 samr_dissect_element_UserInfo18_lm_pwd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6077 {
6078         offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo18_lm_pwd,0);
6079
6080         return offset;
6081 }
6082
6083 static int
6084 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_)
6085 {
6086         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo18_nt_pwd_active, 0);
6087
6088         return offset;
6089 }
6090
6091 static int
6092 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_)
6093 {
6094         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo18_lm_pwd_active, 0);
6095
6096         return offset;
6097 }
6098
6099 static int
6100 samr_dissect_element_UserInfo18_password_expired(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6101 {
6102         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo18_password_expired, 0);
6103
6104         return offset;
6105 }
6106
6107 int
6108 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_)
6109 {
6110         proto_item *item = NULL;
6111         proto_tree *tree = NULL;
6112         int old_offset;
6113
6114
6115         old_offset = offset;
6116
6117         if (parent_tree) {
6118                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
6119                 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo18);
6120         }
6121         
6122         offset = samr_dissect_element_UserInfo18_nt_pwd(tvb, offset, pinfo, tree, drep);
6123
6124         offset = samr_dissect_element_UserInfo18_lm_pwd(tvb, offset, pinfo, tree, drep);
6125
6126         offset = samr_dissect_element_UserInfo18_nt_pwd_active(tvb, offset, pinfo, tree, drep);
6127
6128         offset = samr_dissect_element_UserInfo18_lm_pwd_active(tvb, offset, pinfo, tree, drep);
6129
6130         offset = samr_dissect_element_UserInfo18_password_expired(tvb, offset, pinfo, tree, drep);
6131
6132
6133         proto_item_set_len(item, offset-old_offset);
6134
6135
6136         return offset;
6137 }
6138
6139
6140 /* IDL: struct { */
6141 /* IDL:         lsa_BinaryString parameters; */
6142 /* IDL: } */
6143
6144 static int
6145 samr_dissect_element_UserInfo20_parameters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6146 {
6147         offset = samr_dissect_struct_lsa_BinaryString(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo20_parameters,0);
6148
6149         return offset;
6150 }
6151
6152 int
6153 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_)
6154 {
6155         proto_item *item = NULL;
6156         proto_tree *tree = NULL;
6157         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
6158         int old_offset;
6159
6160         ALIGN_TO_5_BYTES;
6161
6162         old_offset = offset;
6163
6164         if (parent_tree) {
6165                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
6166                 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo20);
6167         }
6168         
6169         offset = samr_dissect_element_UserInfo20_parameters(tvb, offset, pinfo, tree, drep);
6170
6171
6172         proto_item_set_len(item, offset-old_offset);
6173
6174
6175         if (di->call_data->flags & DCERPC_IS_NDR64) {
6176                 ALIGN_TO_5_BYTES;
6177         }
6178
6179         return offset;
6180 }
6181
6182
6183 /* IDL: bitmap { */
6184 /* IDL:         SAMR_FIELD_ACCOUNT_NAME =  0x00000001 , */
6185 /* IDL:         SAMR_FIELD_FULL_NAME =  0x00000002 , */
6186 /* IDL:         SAMR_FIELD_RID =  0x00000004 , */
6187 /* IDL:         SAMR_FIELD_PRIMARY_GID =  0x00000008 , */
6188 /* IDL:         SAMR_FIELD_DESCRIPTION =  0x00000010 , */
6189 /* IDL:         SAMR_FIELD_COMMENT =  0x00000020 , */
6190 /* IDL:         SAMR_FIELD_HOME_DIRECTORY =  0x00000040 , */
6191 /* IDL:         SAMR_FIELD_HOME_DRIVE =  0x00000080 , */
6192 /* IDL:         SAMR_FIELD_LOGON_SCRIPT =  0x00000100 , */
6193 /* IDL:         SAMR_FIELD_PROFILE_PATH =  0x00000200 , */
6194 /* IDL:         SAMR_FIELD_WORKSTATIONS =  0x00000400 , */
6195 /* IDL:         SAMR_FIELD_LAST_LOGON =  0x00000800 , */
6196 /* IDL:         SAMR_FIELD_LAST_LOGOFF =  0x00001000 , */
6197 /* IDL:         SAMR_FIELD_LOGON_HOURS =  0x00002000 , */
6198 /* IDL:         SAMR_FIELD_BAD_PWD_COUNT =  0x00004000 , */
6199 /* IDL:         SAMR_FIELD_NUM_LOGONS =  0x00008000 , */
6200 /* IDL:         SAMR_FIELD_ALLOW_PWD_CHANGE =  0x00010000 , */
6201 /* IDL:         SAMR_FIELD_FORCE_PWD_CHANGE =  0x00020000 , */
6202 /* IDL:         SAMR_FIELD_LAST_PWD_CHANGE =  0x00040000 , */
6203 /* IDL:         SAMR_FIELD_ACCT_EXPIRY =  0x00080000 , */
6204 /* IDL:         SAMR_FIELD_ACCT_FLAGS =  0x00100000 , */
6205 /* IDL:         SAMR_FIELD_PARAMETERS =  0x00200000 , */
6206 /* IDL:         SAMR_FIELD_COUNTRY_CODE =  0x00400000 , */
6207 /* IDL:         SAMR_FIELD_CODE_PAGE =  0x00800000 , */
6208 /* IDL:         SAMR_FIELD_NT_PASSWORD_PRESENT =  0x01000000 , */
6209 /* IDL:         SAMR_FIELD_LM_PASSWORD_PRESENT =  0x02000000 , */
6210 /* IDL:         SAMR_FIELD_PRIVATE_DATA =  0x04000000 , */
6211 /* IDL:         SAMR_FIELD_EXPIRED_FLAG =  0x08000000 , */
6212 /* IDL:         SAMR_FIELD_SEC_DESC =  0x10000000 , */
6213 /* IDL:         SAMR_FIELD_OWF_PWD =  0x20000000 , */
6214 /* IDL: } */
6215
6216 int
6217 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_)
6218 {
6219         proto_item *item = NULL;
6220         proto_tree *tree = NULL;
6221
6222         guint32 flags;
6223         ALIGN_TO_4_BYTES;
6224
6225         if (parent_tree) {
6226                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
6227                 tree = proto_item_add_subtree(item,ett_samr_samr_FieldsPresent);
6228         }
6229
6230         offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
6231         proto_item_append_text(item, ": ");
6232
6233         if (!flags)
6234                 proto_item_append_text(item, "(No values set)");
6235
6236         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_ACCOUNT_NAME, tvb, offset-4, 4, flags);
6237         if (flags&( 0x00000001 )){
6238                 proto_item_append_text(item, "SAMR_FIELD_ACCOUNT_NAME");
6239                 if (flags & (~( 0x00000001 )))
6240                         proto_item_append_text(item, ", ");
6241         }
6242         flags&=(~( 0x00000001 ));
6243
6244         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_FULL_NAME, tvb, offset-4, 4, flags);
6245         if (flags&( 0x00000002 )){
6246                 proto_item_append_text(item, "SAMR_FIELD_FULL_NAME");
6247                 if (flags & (~( 0x00000002 )))
6248                         proto_item_append_text(item, ", ");
6249         }
6250         flags&=(~( 0x00000002 ));
6251
6252         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_RID, tvb, offset-4, 4, flags);
6253         if (flags&( 0x00000004 )){
6254                 proto_item_append_text(item, "SAMR_FIELD_RID");
6255                 if (flags & (~( 0x00000004 )))
6256                         proto_item_append_text(item, ", ");
6257         }
6258         flags&=(~( 0x00000004 ));
6259
6260         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_PRIMARY_GID, tvb, offset-4, 4, flags);
6261         if (flags&( 0x00000008 )){
6262                 proto_item_append_text(item, "SAMR_FIELD_PRIMARY_GID");
6263                 if (flags & (~( 0x00000008 )))
6264                         proto_item_append_text(item, ", ");
6265         }
6266         flags&=(~( 0x00000008 ));
6267
6268         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_DESCRIPTION, tvb, offset-4, 4, flags);
6269         if (flags&( 0x00000010 )){
6270                 proto_item_append_text(item, "SAMR_FIELD_DESCRIPTION");
6271                 if (flags & (~( 0x00000010 )))
6272                         proto_item_append_text(item, ", ");
6273         }
6274         flags&=(~( 0x00000010 ));
6275
6276         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_COMMENT, tvb, offset-4, 4, flags);
6277         if (flags&( 0x00000020 )){
6278                 proto_item_append_text(item, "SAMR_FIELD_COMMENT");
6279                 if (flags & (~( 0x00000020 )))
6280                         proto_item_append_text(item, ", ");
6281         }
6282         flags&=(~( 0x00000020 ));
6283
6284         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_HOME_DIRECTORY, tvb, offset-4, 4, flags);
6285         if (flags&( 0x00000040 )){
6286                 proto_item_append_text(item, "SAMR_FIELD_HOME_DIRECTORY");
6287                 if (flags & (~( 0x00000040 )))
6288                         proto_item_append_text(item, ", ");
6289         }
6290         flags&=(~( 0x00000040 ));
6291
6292         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_HOME_DRIVE, tvb, offset-4, 4, flags);
6293         if (flags&( 0x00000080 )){
6294                 proto_item_append_text(item, "SAMR_FIELD_HOME_DRIVE");
6295                 if (flags & (~( 0x00000080 )))
6296                         proto_item_append_text(item, ", ");
6297         }
6298         flags&=(~( 0x00000080 ));
6299
6300         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_LOGON_SCRIPT, tvb, offset-4, 4, flags);
6301         if (flags&( 0x00000100 )){
6302                 proto_item_append_text(item, "SAMR_FIELD_LOGON_SCRIPT");
6303                 if (flags & (~( 0x00000100 )))
6304                         proto_item_append_text(item, ", ");
6305         }
6306         flags&=(~( 0x00000100 ));
6307
6308         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_PROFILE_PATH, tvb, offset-4, 4, flags);
6309         if (flags&( 0x00000200 )){
6310                 proto_item_append_text(item, "SAMR_FIELD_PROFILE_PATH");
6311                 if (flags & (~( 0x00000200 )))
6312                         proto_item_append_text(item, ", ");
6313         }
6314         flags&=(~( 0x00000200 ));
6315
6316         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_WORKSTATIONS, tvb, offset-4, 4, flags);
6317         if (flags&( 0x00000400 )){
6318                 proto_item_append_text(item, "SAMR_FIELD_WORKSTATIONS");
6319                 if (flags & (~( 0x00000400 )))
6320                         proto_item_append_text(item, ", ");
6321         }
6322         flags&=(~( 0x00000400 ));
6323
6324         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_LAST_LOGON, tvb, offset-4, 4, flags);
6325         if (flags&( 0x00000800 )){
6326                 proto_item_append_text(item, "SAMR_FIELD_LAST_LOGON");
6327                 if (flags & (~( 0x00000800 )))
6328                         proto_item_append_text(item, ", ");
6329         }
6330         flags&=(~( 0x00000800 ));
6331
6332         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_LAST_LOGOFF, tvb, offset-4, 4, flags);
6333         if (flags&( 0x00001000 )){
6334                 proto_item_append_text(item, "SAMR_FIELD_LAST_LOGOFF");
6335                 if (flags & (~( 0x00001000 )))
6336                         proto_item_append_text(item, ", ");
6337         }
6338         flags&=(~( 0x00001000 ));
6339
6340         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_LOGON_HOURS, tvb, offset-4, 4, flags);
6341         if (flags&( 0x00002000 )){
6342                 proto_item_append_text(item, "SAMR_FIELD_LOGON_HOURS");
6343                 if (flags & (~( 0x00002000 )))
6344                         proto_item_append_text(item, ", ");
6345         }
6346         flags&=(~( 0x00002000 ));
6347
6348         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_BAD_PWD_COUNT, tvb, offset-4, 4, flags);
6349         if (flags&( 0x00004000 )){
6350                 proto_item_append_text(item, "SAMR_FIELD_BAD_PWD_COUNT");
6351                 if (flags & (~( 0x00004000 )))
6352                         proto_item_append_text(item, ", ");
6353         }
6354         flags&=(~( 0x00004000 ));
6355
6356         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_NUM_LOGONS, tvb, offset-4, 4, flags);
6357         if (flags&( 0x00008000 )){
6358                 proto_item_append_text(item, "SAMR_FIELD_NUM_LOGONS");
6359                 if (flags & (~( 0x00008000 )))
6360                         proto_item_append_text(item, ", ");
6361         }
6362         flags&=(~( 0x00008000 ));
6363
6364         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_ALLOW_PWD_CHANGE, tvb, offset-4, 4, flags);
6365         if (flags&( 0x00010000 )){
6366                 proto_item_append_text(item, "SAMR_FIELD_ALLOW_PWD_CHANGE");
6367                 if (flags & (~( 0x00010000 )))
6368                         proto_item_append_text(item, ", ");
6369         }
6370         flags&=(~( 0x00010000 ));
6371
6372         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_FORCE_PWD_CHANGE, tvb, offset-4, 4, flags);
6373         if (flags&( 0x00020000 )){
6374                 proto_item_append_text(item, "SAMR_FIELD_FORCE_PWD_CHANGE");
6375                 if (flags & (~( 0x00020000 )))
6376                         proto_item_append_text(item, ", ");
6377         }
6378         flags&=(~( 0x00020000 ));
6379
6380         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_LAST_PWD_CHANGE, tvb, offset-4, 4, flags);
6381         if (flags&( 0x00040000 )){
6382                 proto_item_append_text(item, "SAMR_FIELD_LAST_PWD_CHANGE");
6383                 if (flags & (~( 0x00040000 )))
6384                         proto_item_append_text(item, ", ");
6385         }
6386         flags&=(~( 0x00040000 ));
6387
6388         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_ACCT_EXPIRY, tvb, offset-4, 4, flags);
6389         if (flags&( 0x00080000 )){
6390                 proto_item_append_text(item, "SAMR_FIELD_ACCT_EXPIRY");
6391                 if (flags & (~( 0x00080000 )))
6392                         proto_item_append_text(item, ", ");
6393         }
6394         flags&=(~( 0x00080000 ));
6395
6396         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_ACCT_FLAGS, tvb, offset-4, 4, flags);
6397         if (flags&( 0x00100000 )){
6398                 proto_item_append_text(item, "SAMR_FIELD_ACCT_FLAGS");
6399                 if (flags & (~( 0x00100000 )))
6400                         proto_item_append_text(item, ", ");
6401         }
6402         flags&=(~( 0x00100000 ));
6403
6404         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_PARAMETERS, tvb, offset-4, 4, flags);
6405         if (flags&( 0x00200000 )){
6406                 proto_item_append_text(item, "SAMR_FIELD_PARAMETERS");
6407                 if (flags & (~( 0x00200000 )))
6408                         proto_item_append_text(item, ", ");
6409         }
6410         flags&=(~( 0x00200000 ));
6411
6412         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_COUNTRY_CODE, tvb, offset-4, 4, flags);
6413         if (flags&( 0x00400000 )){
6414                 proto_item_append_text(item, "SAMR_FIELD_COUNTRY_CODE");
6415                 if (flags & (~( 0x00400000 )))
6416                         proto_item_append_text(item, ", ");
6417         }
6418         flags&=(~( 0x00400000 ));
6419
6420         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_CODE_PAGE, tvb, offset-4, 4, flags);
6421         if (flags&( 0x00800000 )){
6422                 proto_item_append_text(item, "SAMR_FIELD_CODE_PAGE");
6423                 if (flags & (~( 0x00800000 )))
6424                         proto_item_append_text(item, ", ");
6425         }
6426         flags&=(~( 0x00800000 ));
6427
6428         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_NT_PASSWORD_PRESENT, tvb, offset-4, 4, flags);
6429         if (flags&( 0x01000000 )){
6430                 proto_item_append_text(item, "SAMR_FIELD_NT_PASSWORD_PRESENT");
6431                 if (flags & (~( 0x01000000 )))
6432                         proto_item_append_text(item, ", ");
6433         }
6434         flags&=(~( 0x01000000 ));
6435
6436         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_LM_PASSWORD_PRESENT, tvb, offset-4, 4, flags);
6437         if (flags&( 0x02000000 )){
6438                 proto_item_append_text(item, "SAMR_FIELD_LM_PASSWORD_PRESENT");
6439                 if (flags & (~( 0x02000000 )))
6440                         proto_item_append_text(item, ", ");
6441         }
6442         flags&=(~( 0x02000000 ));
6443
6444         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_PRIVATE_DATA, tvb, offset-4, 4, flags);
6445         if (flags&( 0x04000000 )){
6446                 proto_item_append_text(item, "SAMR_FIELD_PRIVATE_DATA");
6447                 if (flags & (~( 0x04000000 )))
6448                         proto_item_append_text(item, ", ");
6449         }
6450         flags&=(~( 0x04000000 ));
6451
6452         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_EXPIRED_FLAG, tvb, offset-4, 4, flags);
6453         if (flags&( 0x08000000 )){
6454                 proto_item_append_text(item, "SAMR_FIELD_EXPIRED_FLAG");
6455                 if (flags & (~( 0x08000000 )))
6456                         proto_item_append_text(item, ", ");
6457         }
6458         flags&=(~( 0x08000000 ));
6459
6460         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_SEC_DESC, tvb, offset-4, 4, flags);
6461         if (flags&( 0x10000000 )){
6462                 proto_item_append_text(item, "SAMR_FIELD_SEC_DESC");
6463                 if (flags & (~( 0x10000000 )))
6464                         proto_item_append_text(item, ", ");
6465         }
6466         flags&=(~( 0x10000000 ));
6467
6468         proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_OWF_PWD, tvb, offset-4, 4, flags);
6469         if (flags&( 0x20000000 )){
6470                 proto_item_append_text(item, "SAMR_FIELD_OWF_PWD");
6471                 if (flags & (~( 0x20000000 )))
6472                         proto_item_append_text(item, ", ");
6473         }
6474         flags&=(~( 0x20000000 ));
6475
6476         if (flags) {
6477                 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
6478         }
6479
6480         return offset;
6481 }
6482
6483
6484 /* IDL: struct { */
6485 /* IDL:         NTTIME last_logon; */
6486 /* IDL:         NTTIME last_logoff; */
6487 /* IDL:         NTTIME last_password_change; */
6488 /* IDL:         NTTIME acct_expiry; */
6489 /* IDL:         NTTIME allow_password_change; */
6490 /* IDL:         NTTIME force_password_change; */
6491 /* IDL:         lsa_String account_name; */
6492 /* IDL:         lsa_String full_name; */
6493 /* IDL:         lsa_String home_directory; */
6494 /* IDL:         lsa_String home_drive; */
6495 /* IDL:         lsa_String logon_script; */
6496 /* IDL:         lsa_String profile_path; */
6497 /* IDL:         lsa_String description; */
6498 /* IDL:         lsa_String workstations; */
6499 /* IDL:         lsa_String comment; */
6500 /* IDL:         lsa_BinaryString parameters; */
6501 /* IDL:         lsa_BinaryString lm_owf_password; */
6502 /* IDL:         lsa_BinaryString nt_owf_password; */
6503 /* IDL:         lsa_String private_data; */
6504 /* IDL:         uint32 buf_count; */
6505 /* IDL:         [unique(1)] [size_is(buf_count)] uint8 *buffer; */
6506 /* IDL:         uint32 rid; */
6507 /* IDL:         uint32 primary_gid; */
6508 /* IDL:         samr_AcctFlags acct_flags; */
6509 /* IDL:         samr_FieldsPresent fields_present; */
6510 /* IDL:         samr_LogonHours logon_hours; */
6511 /* IDL:         uint16 bad_password_count; */
6512 /* IDL:         uint16 logon_count; */
6513 /* IDL:         uint16 country_code; */
6514 /* IDL:         uint16 code_page; */
6515 /* IDL:         uint8 lm_password_set; */
6516 /* IDL:         uint8 nt_password_set; */
6517 /* IDL:         uint8 password_expired; */
6518 /* IDL:         uint8 private_data_sensitive; */
6519 /* IDL: } */
6520
6521 static int
6522 samr_dissect_element_UserInfo21_last_logon(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6523 {
6524         offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_last_logon);
6525
6526         return offset;
6527 }
6528
6529 static int
6530 samr_dissect_element_UserInfo21_last_logoff(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6531 {
6532         offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_last_logoff);
6533
6534         return offset;
6535 }
6536
6537 static int
6538 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_)
6539 {
6540         offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_last_password_change);
6541
6542         return offset;
6543 }
6544
6545 static int
6546 samr_dissect_element_UserInfo21_acct_expiry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6547 {
6548         offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_acct_expiry);
6549
6550         return offset;
6551 }
6552
6553 static int
6554 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_)
6555 {
6556         offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_allow_password_change);
6557
6558         return offset;
6559 }
6560
6561 static int
6562 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_)
6563 {
6564         offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_force_password_change);
6565
6566         return offset;
6567 }
6568
6569 static int
6570 samr_dissect_element_UserInfo21_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6571 {
6572         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo21_account_name,0);
6573
6574         return offset;
6575 }
6576
6577 static int
6578 samr_dissect_element_UserInfo21_full_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6579 {
6580         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo21_full_name,0);
6581
6582         return offset;
6583 }
6584
6585 static int
6586 samr_dissect_element_UserInfo21_home_directory(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6587 {
6588         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo21_home_directory,0);
6589
6590         return offset;
6591 }
6592
6593 static int
6594 samr_dissect_element_UserInfo21_home_drive(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6595 {
6596         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo21_home_drive,0);
6597
6598         return offset;
6599 }
6600
6601 static int
6602 samr_dissect_element_UserInfo21_logon_script(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6603 {
6604         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo21_logon_script,0);
6605
6606         return offset;
6607 }
6608
6609 static int
6610 samr_dissect_element_UserInfo21_profile_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6611 {
6612         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo21_profile_path,0);
6613
6614         return offset;
6615 }
6616
6617 static int
6618 samr_dissect_element_UserInfo21_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6619 {
6620         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo21_description,0);
6621
6622         return offset;
6623 }
6624
6625 static int
6626 samr_dissect_element_UserInfo21_workstations(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6627 {
6628         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo21_workstations,0);
6629
6630         return offset;
6631 }
6632
6633 static int
6634 samr_dissect_element_UserInfo21_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6635 {
6636         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo21_comment,0);
6637
6638         return offset;
6639 }
6640
6641 static int
6642 samr_dissect_element_UserInfo21_parameters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6643 {
6644         offset = samr_dissect_struct_lsa_BinaryString(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo21_parameters,0);
6645
6646         return offset;
6647 }
6648
6649 static int
6650 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_)
6651 {
6652         offset = samr_dissect_struct_lsa_BinaryString(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo21_lm_owf_password,0);
6653
6654         return offset;
6655 }
6656
6657 static int
6658 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_)
6659 {
6660         offset = samr_dissect_struct_lsa_BinaryString(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo21_nt_owf_password,0);
6661
6662         return offset;
6663 }
6664
6665 static int
6666 samr_dissect_element_UserInfo21_private_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6667 {
6668         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo21_private_data,0);
6669
6670         return offset;
6671 }
6672
6673 static int
6674 samr_dissect_element_UserInfo21_buf_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6675 {
6676         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_buf_count, 0);
6677
6678         return offset;
6679 }
6680
6681 static int
6682 samr_dissect_element_UserInfo21_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6683 {
6684         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);
6685
6686         return offset;
6687 }
6688
6689 static int
6690 samr_dissect_element_UserInfo21_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6691 {
6692         offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, samr_dissect_element_UserInfo21_buffer__);
6693
6694         return offset;
6695 }
6696
6697 static int
6698 samr_dissect_element_UserInfo21_buffer__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6699 {
6700         proto_tree_add_bytes(tree, hf_samr_samr_UserInfo21_buffer, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
6701
6702         return offset;
6703 }
6704
6705 static int
6706 samr_dissect_element_UserInfo21_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6707 {
6708         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_rid, 0);
6709
6710         return offset;
6711 }
6712
6713 static int
6714 samr_dissect_element_UserInfo21_primary_gid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6715 {
6716         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_primary_gid, 0);
6717
6718         return offset;
6719 }
6720
6721 static int
6722 samr_dissect_element_UserInfo21_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6723 {
6724         offset = samr_dissect_bitmap_AcctFlags(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_acct_flags, 0);
6725
6726         return offset;
6727 }
6728
6729 static int
6730 samr_dissect_element_UserInfo21_fields_present(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6731 {
6732         offset = samr_dissect_bitmap_FieldsPresent(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_fields_present, 0);
6733
6734         return offset;
6735 }
6736
6737 static int
6738 samr_dissect_element_UserInfo21_logon_hours(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6739 {
6740         offset = samr_dissect_struct_LogonHours(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo21_logon_hours,0);
6741
6742         return offset;
6743 }
6744
6745 static int
6746 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_)
6747 {
6748         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_bad_password_count, 0);
6749
6750         return offset;
6751 }
6752
6753 static int
6754 samr_dissect_element_UserInfo21_logon_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6755 {
6756         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_logon_count, 0);
6757
6758         return offset;
6759 }
6760
6761 static int
6762 samr_dissect_element_UserInfo21_country_code(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6763 {
6764         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_country_code, 0);
6765
6766         return offset;
6767 }
6768
6769 static int
6770 samr_dissect_element_UserInfo21_code_page(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6771 {
6772         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_code_page, 0);
6773
6774         return offset;
6775 }
6776
6777 static int
6778 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_)
6779 {
6780         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_lm_password_set, 0);
6781
6782         return offset;
6783 }
6784
6785 static int
6786 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_)
6787 {
6788         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_nt_password_set, 0);
6789
6790         return offset;
6791 }
6792
6793 static int
6794 samr_dissect_element_UserInfo21_password_expired(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6795 {
6796         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_password_expired, 0);
6797
6798         return offset;
6799 }
6800
6801 static int
6802 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_)
6803 {
6804         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_private_data_sensitive, 0);
6805
6806         return offset;
6807 }
6808
6809 int
6810 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_)
6811 {
6812         proto_item *item = NULL;
6813         proto_tree *tree = NULL;
6814         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
6815         int old_offset;
6816
6817         ALIGN_TO_5_BYTES;
6818
6819         old_offset = offset;
6820
6821         if (parent_tree) {
6822                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
6823                 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo21);
6824         }
6825         
6826         offset = samr_dissect_element_UserInfo21_last_logon(tvb, offset, pinfo, tree, drep);
6827
6828         offset = samr_dissect_element_UserInfo21_last_logoff(tvb, offset, pinfo, tree, drep);
6829
6830         offset = samr_dissect_element_UserInfo21_last_password_change(tvb, offset, pinfo, tree, drep);
6831
6832         offset = samr_dissect_element_UserInfo21_acct_expiry(tvb, offset, pinfo, tree, drep);
6833
6834         offset = samr_dissect_element_UserInfo21_allow_password_change(tvb, offset, pinfo, tree, drep);
6835
6836         offset = samr_dissect_element_UserInfo21_force_password_change(tvb, offset, pinfo, tree, drep);
6837
6838         offset = samr_dissect_element_UserInfo21_account_name(tvb, offset, pinfo, tree, drep);
6839
6840         offset = samr_dissect_element_UserInfo21_full_name(tvb, offset, pinfo, tree, drep);
6841
6842         offset = samr_dissect_element_UserInfo21_home_directory(tvb, offset, pinfo, tree, drep);
6843
6844         offset = samr_dissect_element_UserInfo21_home_drive(tvb, offset, pinfo, tree, drep);
6845
6846         offset = samr_dissect_element_UserInfo21_logon_script(tvb, offset, pinfo, tree, drep);
6847
6848         offset = samr_dissect_element_UserInfo21_profile_path(tvb, offset, pinfo, tree, drep);
6849
6850         offset = samr_dissect_element_UserInfo21_description(tvb, offset, pinfo, tree, drep);
6851
6852         offset = samr_dissect_element_UserInfo21_workstations(tvb, offset, pinfo, tree, drep);
6853
6854         offset = samr_dissect_element_UserInfo21_comment(tvb, offset, pinfo, tree, drep);
6855
6856         offset = samr_dissect_element_UserInfo21_parameters(tvb, offset, pinfo, tree, drep);
6857
6858         offset = samr_dissect_element_UserInfo21_lm_owf_password(tvb, offset, pinfo, tree, drep);
6859
6860         offset = samr_dissect_element_UserInfo21_nt_owf_password(tvb, offset, pinfo, tree, drep);
6861
6862         offset = samr_dissect_element_UserInfo21_private_data(tvb, offset, pinfo, tree, drep);
6863
6864         offset = samr_dissect_element_UserInfo21_buf_count(tvb, offset, pinfo, tree, drep);
6865
6866         offset = samr_dissect_element_UserInfo21_buffer(tvb, offset, pinfo, tree, drep);
6867
6868         offset = samr_dissect_element_UserInfo21_rid(tvb, offset, pinfo, tree, drep);
6869
6870         offset = samr_dissect_element_UserInfo21_primary_gid(tvb, offset, pinfo, tree, drep);
6871
6872         offset = samr_dissect_element_UserInfo21_acct_flags(tvb, offset, pinfo, tree, drep);
6873
6874         offset = samr_dissect_element_UserInfo21_fields_present(tvb, offset, pinfo, tree, drep);
6875
6876         offset = samr_dissect_element_UserInfo21_logon_hours(tvb, offset, pinfo, tree, drep);
6877
6878         offset = samr_dissect_element_UserInfo21_bad_password_count(tvb, offset, pinfo, tree, drep);
6879
6880         offset = samr_dissect_element_UserInfo21_logon_count(tvb, offset, pinfo, tree, drep);
6881
6882         offset = samr_dissect_element_UserInfo21_country_code(tvb, offset, pinfo, tree, drep);
6883
6884         offset = samr_dissect_element_UserInfo21_code_page(tvb, offset, pinfo, tree, drep);
6885
6886         offset = samr_dissect_element_UserInfo21_lm_password_set(tvb, offset, pinfo, tree, drep);
6887
6888         offset = samr_dissect_element_UserInfo21_nt_password_set(tvb, offset, pinfo, tree, drep);
6889
6890         offset = samr_dissect_element_UserInfo21_password_expired(tvb, offset, pinfo, tree, drep);
6891
6892         offset = samr_dissect_element_UserInfo21_private_data_sensitive(tvb, offset, pinfo, tree, drep);
6893
6894
6895         proto_item_set_len(item, offset-old_offset);
6896
6897
6898         if (di->call_data->flags & DCERPC_IS_NDR64) {
6899                 ALIGN_TO_5_BYTES;
6900         }
6901
6902         return offset;
6903 }
6904
6905
6906 /* IDL: struct { */
6907 /* IDL:         uint8 data[516]; */
6908 /* IDL: } */
6909
6910 static int
6911 samr_dissect_element_CryptPassword_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6912 {
6913         dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
6914         int conformant = di->conformant_run;
6915         if (!conformant) {
6916                 offset = samr_dissect_element_CryptPassword_data_(tvb, offset, 516, pinfo, tree, drep);
6917         }
6918
6919         return offset;
6920 }
6921
6922 static int
6923 samr_dissect_element_CryptPassword_data_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6924 {
6925         proto_tree_add_bytes(tree, hf_samr_samr_CryptPassword_data, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
6926
6927         return offset;
6928 }
6929
6930 int
6931 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_)
6932 {
6933         proto_item *item = NULL;
6934         proto_tree *tree = NULL;
6935         int old_offset;
6936
6937
6938         old_offset = offset;
6939
6940         if (parent_tree) {
6941                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
6942                 tree = proto_item_add_subtree(item, ett_samr_samr_CryptPassword);
6943         }
6944         
6945         offset = samr_dissect_element_CryptPassword_data(tvb, offset, pinfo, tree, drep);
6946
6947
6948         proto_item_set_len(item, offset-old_offset);
6949
6950
6951         return offset;
6952 }
6953
6954
6955 /* IDL: struct { */
6956 /* IDL:         samr_UserInfo21 info; */
6957 /* IDL:         samr_CryptPassword password; */
6958 /* IDL: } */
6959
6960 static int
6961 samr_dissect_element_UserInfo23_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6962 {
6963         offset = samr_dissect_struct_UserInfo21(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo23_info,0);
6964
6965         return offset;
6966 }
6967
6968 static int
6969 samr_dissect_element_UserInfo23_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6970 {
6971         offset = samr_dissect_struct_CryptPassword(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo23_password,0);
6972
6973         return offset;
6974 }
6975
6976 int
6977 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_)
6978 {
6979         proto_item *item = NULL;
6980         proto_tree *tree = NULL;
6981         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
6982         int old_offset;
6983
6984         ALIGN_TO_5_BYTES;
6985
6986         old_offset = offset;
6987
6988         if (parent_tree) {
6989                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
6990                 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo23);
6991         }
6992         
6993         offset = samr_dissect_element_UserInfo23_info(tvb, offset, pinfo, tree, drep);
6994
6995         offset = samr_dissect_element_UserInfo23_password(tvb, offset, pinfo, tree, drep);
6996
6997
6998         proto_item_set_len(item, offset-old_offset);
6999
7000
7001         if (di->call_data->flags & DCERPC_IS_NDR64) {
7002                 ALIGN_TO_5_BYTES;
7003         }
7004
7005         return offset;
7006 }
7007
7008
7009 /* IDL: struct { */
7010 /* IDL:         samr_CryptPassword password; */
7011 /* IDL:         uint8 password_expired; */
7012 /* IDL: } */
7013
7014 static int
7015 samr_dissect_element_UserInfo24_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7016 {
7017         offset = samr_dissect_struct_CryptPassword(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo24_password,0);
7018
7019         return offset;
7020 }
7021
7022 static int
7023 samr_dissect_element_UserInfo24_password_expired(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7024 {
7025         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo24_password_expired, 0);
7026
7027         return offset;
7028 }
7029
7030 int
7031 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_)
7032 {
7033         proto_item *item = NULL;
7034         proto_tree *tree = NULL;
7035         int old_offset;
7036
7037
7038         old_offset = offset;
7039
7040         if (parent_tree) {
7041                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
7042                 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo24);
7043         }
7044         
7045         offset = samr_dissect_element_UserInfo24_password(tvb, offset, pinfo, tree, drep);
7046
7047         offset = samr_dissect_element_UserInfo24_password_expired(tvb, offset, pinfo, tree, drep);
7048
7049
7050         proto_item_set_len(item, offset-old_offset);
7051
7052
7053         return offset;
7054 }
7055
7056
7057 /* IDL: struct { */
7058 /* IDL:         uint8 data[532]; */
7059 /* IDL: } */
7060
7061 static int
7062 samr_dissect_element_CryptPasswordEx_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7063 {
7064         dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
7065         int conformant = di->conformant_run;
7066         if (!conformant) {
7067                 offset = samr_dissect_element_CryptPasswordEx_data_(tvb, offset, 532, pinfo, tree, drep);
7068         }
7069
7070         return offset;
7071 }
7072
7073 static int
7074 samr_dissect_element_CryptPasswordEx_data_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7075 {
7076         proto_tree_add_bytes(tree, hf_samr_samr_CryptPasswordEx_data, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
7077
7078         return offset;
7079 }
7080
7081 int
7082 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_)
7083 {
7084         proto_item *item = NULL;
7085         proto_tree *tree = NULL;
7086         int old_offset;
7087
7088
7089         old_offset = offset;
7090
7091         if (parent_tree) {
7092                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
7093                 tree = proto_item_add_subtree(item, ett_samr_samr_CryptPasswordEx);
7094         }
7095         
7096         offset = samr_dissect_element_CryptPasswordEx_data(tvb, offset, pinfo, tree, drep);
7097
7098
7099         proto_item_set_len(item, offset-old_offset);
7100
7101
7102         return offset;
7103 }
7104
7105
7106 /* IDL: struct { */
7107 /* IDL:         samr_UserInfo21 info; */
7108 /* IDL:         samr_CryptPasswordEx password; */
7109 /* IDL: } */
7110
7111 static int
7112 samr_dissect_element_UserInfo25_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7113 {
7114         offset = samr_dissect_struct_UserInfo21(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo25_info,0);
7115
7116         return offset;
7117 }
7118
7119 static int
7120 samr_dissect_element_UserInfo25_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7121 {
7122         offset = samr_dissect_struct_CryptPasswordEx(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo25_password,0);
7123
7124         return offset;
7125 }
7126
7127 int
7128 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_)
7129 {
7130         proto_item *item = NULL;
7131         proto_tree *tree = NULL;
7132         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
7133         int old_offset;
7134
7135         ALIGN_TO_5_BYTES;
7136
7137         old_offset = offset;
7138
7139         if (parent_tree) {
7140                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
7141                 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo25);
7142         }
7143         
7144         offset = samr_dissect_element_UserInfo25_info(tvb, offset, pinfo, tree, drep);
7145
7146         offset = samr_dissect_element_UserInfo25_password(tvb, offset, pinfo, tree, drep);
7147
7148
7149         proto_item_set_len(item, offset-old_offset);
7150
7151
7152         if (di->call_data->flags & DCERPC_IS_NDR64) {
7153                 ALIGN_TO_5_BYTES;
7154         }
7155
7156         return offset;
7157 }
7158
7159
7160 /* IDL: struct { */
7161 /* IDL:         samr_CryptPasswordEx password; */
7162 /* IDL:         uint8 password_expired; */
7163 /* IDL: } */
7164
7165 static int
7166 samr_dissect_element_UserInfo26_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7167 {
7168         offset = samr_dissect_struct_CryptPasswordEx(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo26_password,0);
7169
7170         return offset;
7171 }
7172
7173 static int
7174 samr_dissect_element_UserInfo26_password_expired(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7175 {
7176         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo26_password_expired, 0);
7177
7178         return offset;
7179 }
7180
7181 int
7182 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_)
7183 {
7184         proto_item *item = NULL;
7185         proto_tree *tree = NULL;
7186         int old_offset;
7187
7188
7189         old_offset = offset;
7190
7191         if (parent_tree) {
7192                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
7193                 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo26);
7194         }
7195         
7196         offset = samr_dissect_element_UserInfo26_password(tvb, offset, pinfo, tree, drep);
7197
7198         offset = samr_dissect_element_UserInfo26_password_expired(tvb, offset, pinfo, tree, drep);
7199
7200
7201         proto_item_set_len(item, offset-old_offset);
7202
7203
7204         return offset;
7205 }
7206
7207
7208 /* IDL: [switch_type(uint16)] union { */
7209 /* IDL: [case(1)] [case(1)] samr_UserInfo1 info1; */
7210 /* IDL: [case(2)] [case(2)] samr_UserInfo2 info2; */
7211 /* IDL: [case(3)] [case(3)] samr_UserInfo3 info3; */
7212 /* IDL: [case(4)] [case(4)] samr_UserInfo4 info4; */
7213 /* IDL: [case(5)] [case(5)] samr_UserInfo5 info5; */
7214 /* IDL: [case(6)] [case(6)] samr_UserInfo6 info6; */
7215 /* IDL: [case(7)] [case(7)] samr_UserInfo7 info7; */
7216 /* IDL: [case(8)] [case(8)] samr_UserInfo8 info8; */
7217 /* IDL: [case(9)] [case(9)] samr_UserInfo9 info9; */
7218 /* IDL: [case(10)] [case(10)] samr_UserInfo10 info10; */
7219 /* IDL: [case(11)] [case(11)] samr_UserInfo11 info11; */
7220 /* IDL: [case(12)] [case(12)] samr_UserInfo12 info12; */
7221 /* IDL: [case(13)] [case(13)] samr_UserInfo13 info13; */
7222 /* IDL: [case(14)] [case(14)] samr_UserInfo14 info14; */
7223 /* IDL: [case(16)] [case(16)] samr_UserInfo16 info16; */
7224 /* IDL: [case(17)] [case(17)] samr_UserInfo17 info17; */
7225 /* IDL: [case(18)] [case(18)] samr_UserInfo18 info18; */
7226 /* IDL: [case(20)] [case(20)] samr_UserInfo20 info20; */
7227 /* IDL: [case(21)] [case(21)] samr_UserInfo21 info21; */
7228 /* IDL: [case(23)] [case(23)] samr_UserInfo23 info23; */
7229 /* IDL: [case(24)] [case(24)] samr_UserInfo24 info24; */
7230 /* IDL: [case(25)] [case(25)] samr_UserInfo25 info25; */
7231 /* IDL: [case(26)] [case(26)] samr_UserInfo26 info26; */
7232 /* IDL: } */
7233
7234 static int
7235 samr_dissect_element_UserInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7236 {
7237         offset = samr_dissect_struct_UserInfo1(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info1,0);
7238
7239         return offset;
7240 }
7241
7242 static int
7243 samr_dissect_element_UserInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7244 {
7245         offset = samr_dissect_struct_UserInfo2(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info2,0);
7246
7247         return offset;
7248 }
7249
7250 static int
7251 samr_dissect_element_UserInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7252 {
7253         offset = samr_dissect_struct_UserInfo3(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info3,0);
7254
7255         return offset;
7256 }
7257
7258 static int
7259 samr_dissect_element_UserInfo_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7260 {
7261         offset = samr_dissect_struct_UserInfo4(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info4,0);
7262
7263         return offset;
7264 }
7265
7266 static int
7267 samr_dissect_element_UserInfo_info5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7268 {
7269         offset = samr_dissect_struct_UserInfo5(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info5,0);
7270
7271         return offset;
7272 }
7273
7274 static int
7275 samr_dissect_element_UserInfo_info6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7276 {
7277         offset = samr_dissect_struct_UserInfo6(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info6,0);
7278
7279         return offset;
7280 }
7281
7282 static int
7283 samr_dissect_element_UserInfo_info7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7284 {
7285         offset = samr_dissect_struct_UserInfo7(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info7,0);
7286
7287         return offset;
7288 }
7289
7290 static int
7291 samr_dissect_element_UserInfo_info8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7292 {
7293         offset = samr_dissect_struct_UserInfo8(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info8,0);
7294
7295         return offset;
7296 }
7297
7298 static int
7299 samr_dissect_element_UserInfo_info9(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7300 {
7301         offset = samr_dissect_struct_UserInfo9(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info9,0);
7302
7303         return offset;
7304 }
7305
7306 static int
7307 samr_dissect_element_UserInfo_info10(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7308 {
7309         offset = samr_dissect_struct_UserInfo10(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info10,0);
7310
7311         return offset;
7312 }
7313
7314 static int
7315 samr_dissect_element_UserInfo_info11(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7316 {
7317         offset = samr_dissect_struct_UserInfo11(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info11,0);
7318
7319         return offset;
7320 }
7321
7322 static int
7323 samr_dissect_element_UserInfo_info12(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7324 {
7325         offset = samr_dissect_struct_UserInfo12(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info12,0);
7326
7327         return offset;
7328 }
7329
7330 static int
7331 samr_dissect_element_UserInfo_info13(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7332 {
7333         offset = samr_dissect_struct_UserInfo13(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info13,0);
7334
7335         return offset;
7336 }
7337
7338 static int
7339 samr_dissect_element_UserInfo_info14(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7340 {
7341         offset = samr_dissect_struct_UserInfo14(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info14,0);
7342
7343         return offset;
7344 }
7345
7346 static int
7347 samr_dissect_element_UserInfo_info16(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7348 {
7349         offset = samr_dissect_struct_UserInfo16(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info16,0);
7350
7351         return offset;
7352 }
7353
7354 static int
7355 samr_dissect_element_UserInfo_info17(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7356 {
7357         offset = samr_dissect_struct_UserInfo17(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info17,0);
7358
7359         return offset;
7360 }
7361
7362 static int
7363 samr_dissect_element_UserInfo_info18(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7364 {
7365         offset = samr_dissect_struct_UserInfo18(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info18,0);
7366
7367         return offset;
7368 }
7369
7370 static int
7371 samr_dissect_element_UserInfo_info20(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7372 {
7373         offset = samr_dissect_struct_UserInfo20(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info20,0);
7374
7375         return offset;
7376 }
7377
7378 static int
7379 samr_dissect_element_UserInfo_info21(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7380 {
7381         offset = samr_dissect_struct_UserInfo21(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info21,0);
7382
7383         return offset;
7384 }
7385
7386 static int
7387 samr_dissect_element_UserInfo_info23(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7388 {
7389         offset = samr_dissect_struct_UserInfo23(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info23,0);
7390
7391         return offset;
7392 }
7393
7394 static int
7395 samr_dissect_element_UserInfo_info24(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7396 {
7397         offset = samr_dissect_struct_UserInfo24(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info24,0);
7398
7399         return offset;
7400 }
7401
7402 static int
7403 samr_dissect_element_UserInfo_info25(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7404 {
7405         offset = samr_dissect_struct_UserInfo25(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info25,0);
7406
7407         return offset;
7408 }
7409
7410 static int
7411 samr_dissect_element_UserInfo_info26(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7412 {
7413         offset = samr_dissect_struct_UserInfo26(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info26,0);
7414
7415         return offset;
7416 }
7417
7418 static int
7419 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_)
7420 {
7421         proto_item *item = NULL;
7422         proto_tree *tree = NULL;
7423         int old_offset;
7424         guint16 level;
7425
7426         old_offset = offset;
7427         if (parent_tree) {
7428                 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "samr_UserInfo");
7429                 tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo);
7430         }
7431
7432         offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, &level);
7433         ALIGN_TO_5_BYTES;
7434
7435         switch(level) {
7436                 case 1:
7437                         offset = samr_dissect_element_UserInfo_info1(tvb, offset, pinfo, tree, drep);
7438                 break;
7439
7440                 case 2:
7441                         offset = samr_dissect_element_UserInfo_info2(tvb, offset, pinfo, tree, drep);
7442                 break;
7443
7444                 case 3:
7445                         offset = samr_dissect_element_UserInfo_info3(tvb, offset, pinfo, tree, drep);
7446                 break;
7447
7448                 case 4:
7449                         offset = samr_dissect_element_UserInfo_info4(tvb, offset, pinfo, tree, drep);
7450                 break;
7451
7452                 case 5:
7453                         offset = samr_dissect_element_UserInfo_info5(tvb, offset, pinfo, tree, drep);
7454                 break;
7455
7456                 case 6:
7457                         offset = samr_dissect_element_UserInfo_info6(tvb, offset, pinfo, tree, drep);
7458                 break;
7459
7460                 case 7:
7461                         offset = samr_dissect_element_UserInfo_info7(tvb, offset, pinfo, tree, drep);
7462                 break;
7463
7464                 case 8:
7465                         offset = samr_dissect_element_UserInfo_info8(tvb, offset, pinfo, tree, drep);
7466                 break;
7467
7468                 case 9:
7469                         offset = samr_dissect_element_UserInfo_info9(tvb, offset, pinfo, tree, drep);
7470                 break;
7471
7472                 case 10:
7473                         offset = samr_dissect_element_UserInfo_info10(tvb, offset, pinfo, tree, drep);
7474                 break;
7475
7476                 case 11:
7477                         offset = samr_dissect_element_UserInfo_info11(tvb, offset, pinfo, tree, drep);
7478                 break;
7479
7480                 case 12:
7481                         offset = samr_dissect_element_UserInfo_info12(tvb, offset, pinfo, tree, drep);
7482                 break;
7483
7484                 case 13:
7485                         offset = samr_dissect_element_UserInfo_info13(tvb, offset, pinfo, tree, drep);
7486                 break;
7487
7488                 case 14:
7489                         offset = samr_dissect_element_UserInfo_info14(tvb, offset, pinfo, tree, drep);
7490                 break;
7491
7492                 case 16:
7493                         offset = samr_dissect_element_UserInfo_info16(tvb, offset, pinfo, tree, drep);
7494                 break;
7495
7496                 case 17:
7497                         offset = samr_dissect_element_UserInfo_info17(tvb, offset, pinfo, tree, drep);
7498                 break;
7499
7500                 case 18:
7501                         offset = samr_dissect_element_UserInfo_info18(tvb, offset, pinfo, tree, drep);
7502                 break;
7503
7504                 case 20:
7505                         offset = samr_dissect_element_UserInfo_info20(tvb, offset, pinfo, tree, drep);
7506                 break;
7507
7508                 case 21:
7509                         offset = samr_dissect_element_UserInfo_info21(tvb, offset, pinfo, tree, drep);
7510                 break;
7511
7512                 case 23:
7513                         offset = samr_dissect_element_UserInfo_info23(tvb, offset, pinfo, tree, drep);
7514                 break;
7515
7516                 case 24:
7517                         offset = samr_dissect_element_UserInfo_info24(tvb, offset, pinfo, tree, drep);
7518                 break;
7519
7520                 case 25:
7521                         offset = samr_dissect_element_UserInfo_info25(tvb, offset, pinfo, tree, drep);
7522                 break;
7523
7524                 case 26:
7525                         offset = samr_dissect_element_UserInfo_info26(tvb, offset, pinfo, tree, drep);
7526                 break;
7527         }
7528         proto_item_set_len(item, offset-old_offset);
7529
7530
7531         return offset;
7532 }
7533
7534 /* IDL: struct { */
7535 /* IDL:         uint32 rid; */
7536 /* IDL:         samr_GroupAttrs attributes; */
7537 /* IDL: } */
7538
7539 static int
7540 samr_dissect_element_RidWithAttribute_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7541 {
7542         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_RidWithAttribute_rid, 0);
7543
7544         return offset;
7545 }
7546
7547 static int
7548 samr_dissect_element_RidWithAttribute_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7549 {
7550         offset = samr_dissect_bitmap_GroupAttrs(tvb, offset, pinfo, tree, drep, hf_samr_samr_RidWithAttribute_attributes, 0);
7551
7552         return offset;
7553 }
7554
7555 int
7556 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_)
7557 {
7558         proto_item *item = NULL;
7559         proto_tree *tree = NULL;
7560         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
7561         int old_offset;
7562
7563         ALIGN_TO_4_BYTES;
7564
7565         old_offset = offset;
7566
7567         if (parent_tree) {
7568                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
7569                 tree = proto_item_add_subtree(item, ett_samr_samr_RidWithAttribute);
7570         }
7571         
7572         offset = samr_dissect_element_RidWithAttribute_rid(tvb, offset, pinfo, tree, drep);
7573
7574         offset = samr_dissect_element_RidWithAttribute_attributes(tvb, offset, pinfo, tree, drep);
7575
7576
7577         proto_item_set_len(item, offset-old_offset);
7578
7579
7580         if (di->call_data->flags & DCERPC_IS_NDR64) {
7581                 ALIGN_TO_4_BYTES;
7582         }
7583
7584         return offset;
7585 }
7586
7587
7588 /* IDL: struct { */
7589 /* IDL:         uint32 count; */
7590 /* IDL:         [unique(1)] [size_is(count)] samr_RidWithAttribute *rids; */
7591 /* IDL: } */
7592
7593 static int
7594 samr_dissect_element_RidWithAttributeArray_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7595 {
7596         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_RidWithAttributeArray_count, 0);
7597
7598         return offset;
7599 }
7600
7601 static int
7602 samr_dissect_element_RidWithAttributeArray_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7603 {
7604         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);
7605
7606         return offset;
7607 }
7608
7609 static int
7610 samr_dissect_element_RidWithAttributeArray_rids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7611 {
7612         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, samr_dissect_element_RidWithAttributeArray_rids__);
7613
7614         return offset;
7615 }
7616
7617 static int
7618 samr_dissect_element_RidWithAttributeArray_rids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7619 {
7620         offset = samr_dissect_struct_RidWithAttribute(tvb,offset,pinfo,tree,drep,hf_samr_samr_RidWithAttributeArray_rids,0);
7621
7622         return offset;
7623 }
7624
7625 int
7626 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_)
7627 {
7628         proto_item *item = NULL;
7629         proto_tree *tree = NULL;
7630         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
7631         int old_offset;
7632
7633         ALIGN_TO_5_BYTES;
7634
7635         old_offset = offset;
7636
7637         if (parent_tree) {
7638                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
7639                 tree = proto_item_add_subtree(item, ett_samr_samr_RidWithAttributeArray);
7640         }
7641         
7642         offset = samr_dissect_element_RidWithAttributeArray_count(tvb, offset, pinfo, tree, drep);
7643
7644         offset = samr_dissect_element_RidWithAttributeArray_rids(tvb, offset, pinfo, tree, drep);
7645
7646
7647         proto_item_set_len(item, offset-old_offset);
7648
7649
7650         if (di->call_data->flags & DCERPC_IS_NDR64) {
7651                 ALIGN_TO_5_BYTES;
7652         }
7653
7654         return offset;
7655 }
7656
7657
7658 /* IDL: struct { */
7659 /* IDL:         uint32 idx; */
7660 /* IDL:         uint32 rid; */
7661 /* IDL:         samr_AcctFlags acct_flags; */
7662 /* IDL:         lsa_String account_name; */
7663 /* IDL:         lsa_String description; */
7664 /* IDL:         lsa_String full_name; */
7665 /* IDL: } */
7666
7667 static int
7668 samr_dissect_element_DispEntryGeneral_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7669 {
7670         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_DispEntryGeneral_idx, 0);
7671
7672         return offset;
7673 }
7674
7675 static int
7676 samr_dissect_element_DispEntryGeneral_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7677 {
7678         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_DispEntryGeneral_rid, 0);
7679
7680         return offset;
7681 }
7682
7683 static int
7684 samr_dissect_element_DispEntryGeneral_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7685 {
7686         offset = samr_dissect_bitmap_AcctFlags(tvb, offset, pinfo, tree, drep, hf_samr_samr_DispEntryGeneral_acct_flags, 0);
7687
7688         return offset;
7689 }
7690
7691 static int
7692 samr_dissect_element_DispEntryGeneral_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7693 {
7694         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_DispEntryGeneral_account_name,0);
7695
7696         return offset;
7697 }
7698
7699 static int
7700 samr_dissect_element_DispEntryGeneral_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7701 {
7702         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_DispEntryGeneral_description,0);
7703
7704         return offset;
7705 }
7706
7707 static int
7708 samr_dissect_element_DispEntryGeneral_full_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7709 {
7710         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_DispEntryGeneral_full_name,0);
7711
7712         return offset;
7713 }
7714
7715 int
7716 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_)
7717 {
7718         proto_item *item = NULL;
7719         proto_tree *tree = NULL;
7720         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
7721         int old_offset;
7722
7723         ALIGN_TO_5_BYTES;
7724
7725         old_offset = offset;
7726
7727         if (parent_tree) {
7728                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
7729                 tree = proto_item_add_subtree(item, ett_samr_samr_DispEntryGeneral);
7730         }
7731         
7732         offset = samr_dissect_element_DispEntryGeneral_idx(tvb, offset, pinfo, tree, drep);
7733
7734         offset = samr_dissect_element_DispEntryGeneral_rid(tvb, offset, pinfo, tree, drep);
7735
7736         offset = samr_dissect_element_DispEntryGeneral_acct_flags(tvb, offset, pinfo, tree, drep);
7737
7738         offset = samr_dissect_element_DispEntryGeneral_account_name(tvb, offset, pinfo, tree, drep);
7739
7740         offset = samr_dissect_element_DispEntryGeneral_description(tvb, offset, pinfo, tree, drep);
7741
7742         offset = samr_dissect_element_DispEntryGeneral_full_name(tvb, offset, pinfo, tree, drep);
7743
7744
7745         proto_item_set_len(item, offset-old_offset);
7746
7747
7748         if (di->call_data->flags & DCERPC_IS_NDR64) {
7749                 ALIGN_TO_5_BYTES;
7750         }
7751
7752         return offset;
7753 }
7754
7755
7756 /* IDL: struct { */
7757 /* IDL:         uint32 count; */
7758 /* IDL:         [unique(1)] [size_is(count)] samr_DispEntryGeneral *entries; */
7759 /* IDL: } */
7760
7761 static int
7762 samr_dissect_element_DispInfoGeneral_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7763 {
7764         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_DispInfoGeneral_count, 0);
7765
7766         return offset;
7767 }
7768
7769 static int
7770 samr_dissect_element_DispInfoGeneral_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7771 {
7772         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);
7773
7774         return offset;
7775 }
7776
7777 static int
7778 samr_dissect_element_DispInfoGeneral_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7779 {
7780         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, samr_dissect_element_DispInfoGeneral_entries__);
7781
7782         return offset;
7783 }
7784
7785 static int
7786 samr_dissect_element_DispInfoGeneral_entries__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7787 {
7788         offset = samr_dissect_struct_DispEntryGeneral(tvb,offset,pinfo,tree,drep,hf_samr_samr_DispInfoGeneral_entries,0);
7789
7790         return offset;
7791 }
7792
7793 int
7794 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_)
7795 {
7796         proto_item *item = NULL;
7797         proto_tree *tree = NULL;
7798         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
7799         int old_offset;
7800
7801         ALIGN_TO_5_BYTES;
7802
7803         old_offset = offset;
7804
7805         if (parent_tree) {
7806                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
7807                 tree = proto_item_add_subtree(item, ett_samr_samr_DispInfoGeneral);
7808         }
7809         
7810         offset = samr_dissect_element_DispInfoGeneral_count(tvb, offset, pinfo, tree, drep);
7811
7812         offset = samr_dissect_element_DispInfoGeneral_entries(tvb, offset, pinfo, tree, drep);
7813
7814
7815         proto_item_set_len(item, offset-old_offset);
7816
7817
7818         if (di->call_data->flags & DCERPC_IS_NDR64) {
7819                 ALIGN_TO_5_BYTES;
7820         }
7821
7822         return offset;
7823 }
7824
7825
7826 /* IDL: struct { */
7827 /* IDL:         uint32 idx; */
7828 /* IDL:         uint32 rid; */
7829 /* IDL:         samr_AcctFlags acct_flags; */
7830 /* IDL:         lsa_String account_name; */
7831 /* IDL:         lsa_String description; */
7832 /* IDL: } */
7833
7834 static int
7835 samr_dissect_element_DispEntryFull_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7836 {
7837         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_DispEntryFull_idx, 0);
7838
7839         return offset;
7840 }
7841
7842 static int
7843 samr_dissect_element_DispEntryFull_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7844 {
7845         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_DispEntryFull_rid, 0);
7846
7847         return offset;
7848 }
7849
7850 static int
7851 samr_dissect_element_DispEntryFull_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7852 {
7853         offset = samr_dissect_bitmap_AcctFlags(tvb, offset, pinfo, tree, drep, hf_samr_samr_DispEntryFull_acct_flags, 0);
7854
7855         return offset;
7856 }
7857
7858 static int
7859 samr_dissect_element_DispEntryFull_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7860 {
7861         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_DispEntryFull_account_name,0);
7862
7863         return offset;
7864 }
7865
7866 static int
7867 samr_dissect_element_DispEntryFull_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7868 {
7869         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_DispEntryFull_description,0);
7870
7871         return offset;
7872 }
7873
7874 int
7875 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_)
7876 {
7877         proto_item *item = NULL;
7878         proto_tree *tree = NULL;
7879         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
7880         int old_offset;
7881
7882         ALIGN_TO_5_BYTES;
7883
7884         old_offset = offset;
7885
7886         if (parent_tree) {
7887                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
7888                 tree = proto_item_add_subtree(item, ett_samr_samr_DispEntryFull);
7889         }
7890         
7891         offset = samr_dissect_element_DispEntryFull_idx(tvb, offset, pinfo, tree, drep);
7892
7893         offset = samr_dissect_element_DispEntryFull_rid(tvb, offset, pinfo, tree, drep);
7894
7895         offset = samr_dissect_element_DispEntryFull_acct_flags(tvb, offset, pinfo, tree, drep);
7896
7897         offset = samr_dissect_element_DispEntryFull_account_name(tvb, offset, pinfo, tree, drep);
7898
7899         offset = samr_dissect_element_DispEntryFull_description(tvb, offset, pinfo, tree, drep);
7900
7901
7902         proto_item_set_len(item, offset-old_offset);
7903
7904
7905         if (di->call_data->flags & DCERPC_IS_NDR64) {
7906                 ALIGN_TO_5_BYTES;
7907         }
7908
7909         return offset;
7910 }
7911
7912
7913 /* IDL: struct { */
7914 /* IDL:         uint32 count; */
7915 /* IDL:         [unique(1)] [size_is(count)] samr_DispEntryFull *entries; */
7916 /* IDL: } */
7917
7918 static int
7919 samr_dissect_element_DispInfoFull_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7920 {
7921         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_DispInfoFull_count, 0);
7922
7923         return offset;
7924 }
7925
7926 static int
7927 samr_dissect_element_DispInfoFull_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7928 {
7929         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);
7930
7931         return offset;
7932 }
7933
7934 static int
7935 samr_dissect_element_DispInfoFull_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7936 {
7937         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, samr_dissect_element_DispInfoFull_entries__);
7938
7939         return offset;
7940 }
7941
7942 static int
7943 samr_dissect_element_DispInfoFull_entries__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7944 {
7945         offset = samr_dissect_struct_DispEntryFull(tvb,offset,pinfo,tree,drep,hf_samr_samr_DispInfoFull_entries,0);
7946
7947         return offset;
7948 }
7949
7950 int
7951 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_)
7952 {
7953         proto_item *item = NULL;
7954         proto_tree *tree = NULL;
7955         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
7956         int old_offset;
7957
7958         ALIGN_TO_5_BYTES;
7959
7960         old_offset = offset;
7961
7962         if (parent_tree) {
7963                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
7964                 tree = proto_item_add_subtree(item, ett_samr_samr_DispInfoFull);
7965         }
7966         
7967         offset = samr_dissect_element_DispInfoFull_count(tvb, offset, pinfo, tree, drep);
7968
7969         offset = samr_dissect_element_DispInfoFull_entries(tvb, offset, pinfo, tree, drep);
7970
7971
7972         proto_item_set_len(item, offset-old_offset);
7973
7974
7975         if (di->call_data->flags & DCERPC_IS_NDR64) {
7976                 ALIGN_TO_5_BYTES;
7977         }
7978
7979         return offset;
7980 }
7981
7982
7983 /* IDL: struct { */
7984 /* IDL:         uint32 idx; */
7985 /* IDL:         uint32 rid; */
7986 /* IDL:         samr_GroupAttrs acct_flags; */
7987 /* IDL:         lsa_String account_name; */
7988 /* IDL:         lsa_String description; */
7989 /* IDL: } */
7990
7991 static int
7992 samr_dissect_element_DispEntryFullGroup_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7993 {
7994         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_DispEntryFullGroup_idx, 0);
7995
7996         return offset;
7997 }
7998
7999 static int
8000 samr_dissect_element_DispEntryFullGroup_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8001 {
8002         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_DispEntryFullGroup_rid, 0);
8003
8004         return offset;
8005 }
8006
8007 static int
8008 samr_dissect_element_DispEntryFullGroup_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8009 {
8010         offset = samr_dissect_bitmap_GroupAttrs(tvb, offset, pinfo, tree, drep, hf_samr_samr_DispEntryFullGroup_acct_flags, 0);
8011
8012         return offset;
8013 }
8014
8015 static int
8016 samr_dissect_element_DispEntryFullGroup_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8017 {
8018         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_DispEntryFullGroup_account_name,0);
8019
8020         return offset;
8021 }
8022
8023 static int
8024 samr_dissect_element_DispEntryFullGroup_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8025 {
8026         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_DispEntryFullGroup_description,0);
8027
8028         return offset;
8029 }
8030
8031 int
8032 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_)
8033 {
8034         proto_item *item = NULL;
8035         proto_tree *tree = NULL;
8036         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
8037         int old_offset;
8038
8039         ALIGN_TO_5_BYTES;
8040
8041         old_offset = offset;
8042
8043         if (parent_tree) {
8044                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
8045                 tree = proto_item_add_subtree(item, ett_samr_samr_DispEntryFullGroup);
8046         }
8047         
8048         offset = samr_dissect_element_DispEntryFullGroup_idx(tvb, offset, pinfo, tree, drep);
8049
8050         offset = samr_dissect_element_DispEntryFullGroup_rid(tvb, offset, pinfo, tree, drep);
8051
8052         offset = samr_dissect_element_DispEntryFullGroup_acct_flags(tvb, offset, pinfo, tree, drep);
8053
8054         offset = samr_dissect_element_DispEntryFullGroup_account_name(tvb, offset, pinfo, tree, drep);
8055
8056         offset = samr_dissect_element_DispEntryFullGroup_description(tvb, offset, pinfo, tree, drep);
8057
8058
8059         proto_item_set_len(item, offset-old_offset);
8060
8061
8062         if (di->call_data->flags & DCERPC_IS_NDR64) {
8063                 ALIGN_TO_5_BYTES;
8064         }
8065
8066         return offset;
8067 }
8068
8069
8070 /* IDL: struct { */
8071 /* IDL:         uint32 count; */
8072 /* IDL:         [unique(1)] [size_is(count)] samr_DispEntryFullGroup *entries; */
8073 /* IDL: } */
8074
8075 static int
8076 samr_dissect_element_DispInfoFullGroups_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8077 {
8078         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_DispInfoFullGroups_count, 0);
8079
8080         return offset;
8081 }
8082
8083 static int
8084 samr_dissect_element_DispInfoFullGroups_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8085 {
8086         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);
8087
8088         return offset;
8089 }
8090
8091 static int
8092 samr_dissect_element_DispInfoFullGroups_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8093 {
8094         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, samr_dissect_element_DispInfoFullGroups_entries__);
8095
8096         return offset;
8097 }
8098
8099 static int
8100 samr_dissect_element_DispInfoFullGroups_entries__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8101 {
8102         offset = samr_dissect_struct_DispEntryFullGroup(tvb,offset,pinfo,tree,drep,hf_samr_samr_DispInfoFullGroups_entries,0);
8103
8104         return offset;
8105 }
8106
8107 int
8108 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_)
8109 {
8110         proto_item *item = NULL;
8111         proto_tree *tree = NULL;
8112         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
8113         int old_offset;
8114
8115         ALIGN_TO_5_BYTES;
8116
8117         old_offset = offset;
8118
8119         if (parent_tree) {
8120                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
8121                 tree = proto_item_add_subtree(item, ett_samr_samr_DispInfoFullGroups);
8122         }
8123         
8124         offset = samr_dissect_element_DispInfoFullGroups_count(tvb, offset, pinfo, tree, drep);
8125
8126         offset = samr_dissect_element_DispInfoFullGroups_entries(tvb, offset, pinfo, tree, drep);
8127
8128
8129         proto_item_set_len(item, offset-old_offset);
8130
8131
8132         if (di->call_data->flags & DCERPC_IS_NDR64) {
8133                 ALIGN_TO_5_BYTES;
8134         }
8135
8136         return offset;
8137 }
8138
8139
8140 /* IDL: struct { */
8141 /* IDL:         uint32 idx; */
8142 /* IDL:         lsa_AsciiStringLarge account_name; */
8143 /* IDL: } */
8144
8145 static int
8146 samr_dissect_element_DispEntryAscii_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8147 {
8148         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_DispEntryAscii_idx, 0);
8149
8150         return offset;
8151 }
8152
8153 static int
8154 samr_dissect_element_DispEntryAscii_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8155 {
8156         offset = samr_dissect_struct_lsa_AsciiStringLarge(tvb,offset,pinfo,tree,drep,hf_samr_samr_DispEntryAscii_account_name,0);
8157
8158         return offset;
8159 }
8160
8161 int
8162 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_)
8163 {
8164         proto_item *item = NULL;
8165         proto_tree *tree = NULL;
8166         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
8167         int old_offset;
8168
8169         ALIGN_TO_5_BYTES;
8170
8171         old_offset = offset;
8172
8173         if (parent_tree) {
8174                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
8175                 tree = proto_item_add_subtree(item, ett_samr_samr_DispEntryAscii);
8176         }
8177         
8178         offset = samr_dissect_element_DispEntryAscii_idx(tvb, offset, pinfo, tree, drep);
8179
8180         offset = samr_dissect_element_DispEntryAscii_account_name(tvb, offset, pinfo, tree, drep);
8181
8182
8183         proto_item_set_len(item, offset-old_offset);
8184
8185
8186         if (di->call_data->flags & DCERPC_IS_NDR64) {
8187                 ALIGN_TO_5_BYTES;
8188         }
8189
8190         return offset;
8191 }
8192
8193
8194 /* IDL: struct { */
8195 /* IDL:         uint32 count; */
8196 /* IDL:         [unique(1)] [size_is(count)] samr_DispEntryAscii *entries; */
8197 /* IDL: } */
8198
8199 static int
8200 samr_dissect_element_DispInfoAscii_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8201 {
8202         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_DispInfoAscii_count, 0);
8203
8204         return offset;
8205 }
8206
8207 static int
8208 samr_dissect_element_DispInfoAscii_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8209 {
8210         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);
8211
8212         return offset;
8213 }
8214
8215 static int
8216 samr_dissect_element_DispInfoAscii_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8217 {
8218         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, samr_dissect_element_DispInfoAscii_entries__);
8219
8220         return offset;
8221 }
8222
8223 static int
8224 samr_dissect_element_DispInfoAscii_entries__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8225 {
8226         offset = samr_dissect_struct_DispEntryAscii(tvb,offset,pinfo,tree,drep,hf_samr_samr_DispInfoAscii_entries,0);
8227
8228         return offset;
8229 }
8230
8231 int
8232 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_)
8233 {
8234         proto_item *item = NULL;
8235         proto_tree *tree = NULL;
8236         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
8237         int old_offset;
8238
8239         ALIGN_TO_5_BYTES;
8240
8241         old_offset = offset;
8242
8243         if (parent_tree) {
8244                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
8245                 tree = proto_item_add_subtree(item, ett_samr_samr_DispInfoAscii);
8246         }
8247         
8248         offset = samr_dissect_element_DispInfoAscii_count(tvb, offset, pinfo, tree, drep);
8249
8250         offset = samr_dissect_element_DispInfoAscii_entries(tvb, offset, pinfo, tree, drep);
8251
8252
8253         proto_item_set_len(item, offset-old_offset);
8254
8255
8256         if (di->call_data->flags & DCERPC_IS_NDR64) {
8257                 ALIGN_TO_5_BYTES;
8258         }
8259
8260         return offset;
8261 }
8262
8263
8264 /* IDL: [switch_type(uint16)] union { */
8265 /* IDL: [case(1)] [case(1)] samr_DispInfoGeneral info1; */
8266 /* IDL: [case(2)] [case(2)] samr_DispInfoFull info2; */
8267 /* IDL: [case(3)] [case(3)] samr_DispInfoFullGroups info3; */
8268 /* IDL: [case(4)] [case(4)] samr_DispInfoAscii info4; */
8269 /* IDL: [case(5)] [case(5)] samr_DispInfoAscii info5; */
8270 /* IDL: } */
8271
8272 static int
8273 samr_dissect_element_DispInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8274 {
8275         offset = samr_dissect_struct_DispInfoGeneral(tvb,offset,pinfo,tree,drep,hf_samr_samr_DispInfo_info1,0);
8276
8277         return offset;
8278 }
8279
8280 static int
8281 samr_dissect_element_DispInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8282 {
8283         offset = samr_dissect_struct_DispInfoFull(tvb,offset,pinfo,tree,drep,hf_samr_samr_DispInfo_info2,0);
8284
8285         return offset;
8286 }
8287
8288 static int
8289 samr_dissect_element_DispInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8290 {
8291         offset = samr_dissect_struct_DispInfoFullGroups(tvb,offset,pinfo,tree,drep,hf_samr_samr_DispInfo_info3,0);
8292
8293         return offset;
8294 }
8295
8296 static int
8297 samr_dissect_element_DispInfo_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8298 {
8299         offset = samr_dissect_struct_DispInfoAscii(tvb,offset,pinfo,tree,drep,hf_samr_samr_DispInfo_info4,0);
8300
8301         return offset;
8302 }
8303
8304 static int
8305 samr_dissect_element_DispInfo_info5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8306 {
8307         offset = samr_dissect_struct_DispInfoAscii(tvb,offset,pinfo,tree,drep,hf_samr_samr_DispInfo_info5,0);
8308
8309         return offset;
8310 }
8311
8312 static int
8313 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_)
8314 {
8315         proto_item *item = NULL;
8316         proto_tree *tree = NULL;
8317         int old_offset;
8318         guint16 level;
8319
8320         old_offset = offset;
8321         if (parent_tree) {
8322                 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "samr_DispInfo");
8323                 tree = proto_item_add_subtree(item, ett_samr_samr_DispInfo);
8324         }
8325
8326         offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, &level);
8327         ALIGN_TO_5_BYTES;
8328
8329         switch(level) {
8330                 case 1:
8331                         offset = samr_dissect_element_DispInfo_info1(tvb, offset, pinfo, tree, drep);
8332                 break;
8333
8334                 case 2:
8335                         offset = samr_dissect_element_DispInfo_info2(tvb, offset, pinfo, tree, drep);
8336                 break;
8337
8338                 case 3:
8339                         offset = samr_dissect_element_DispInfo_info3(tvb, offset, pinfo, tree, drep);
8340                 break;
8341
8342                 case 4:
8343                         offset = samr_dissect_element_DispInfo_info4(tvb, offset, pinfo, tree, drep);
8344                 break;
8345
8346                 case 5:
8347                         offset = samr_dissect_element_DispInfo_info5(tvb, offset, pinfo, tree, drep);
8348                 break;
8349         }
8350         proto_item_set_len(item, offset-old_offset);
8351
8352
8353         return offset;
8354 }
8355
8356 /* IDL: struct { */
8357 /* IDL:         uint16 min_password_length; */
8358 /* IDL:         samr_PasswordProperties password_properties; */
8359 /* IDL: } */
8360
8361 static int
8362 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_)
8363 {
8364         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_PwInfo_min_password_length, 0);
8365
8366         return offset;
8367 }
8368
8369 static int
8370 samr_dissect_element_PwInfo_password_properties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8371 {
8372         offset = samr_dissect_bitmap_PasswordProperties(tvb, offset, pinfo, tree, drep, hf_samr_samr_PwInfo_password_properties, 0);
8373
8374         return offset;
8375 }
8376
8377 int
8378 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_)
8379 {
8380         proto_item *item = NULL;
8381         proto_tree *tree = NULL;
8382         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
8383         int old_offset;
8384
8385         ALIGN_TO_4_BYTES;
8386
8387         old_offset = offset;
8388
8389         if (parent_tree) {
8390                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
8391                 tree = proto_item_add_subtree(item, ett_samr_samr_PwInfo);
8392         }
8393         
8394         offset = samr_dissect_element_PwInfo_min_password_length(tvb, offset, pinfo, tree, drep);
8395
8396         offset = samr_dissect_element_PwInfo_password_properties(tvb, offset, pinfo, tree, drep);
8397
8398
8399         proto_item_set_len(item, offset-old_offset);
8400
8401
8402         if (di->call_data->flags & DCERPC_IS_NDR64) {
8403                 ALIGN_TO_4_BYTES;
8404         }
8405
8406         return offset;
8407 }
8408
8409
8410 /* IDL: enum { */
8411 /* IDL:         SAMR_CONNECT_PRE_W2K=1, */
8412 /* IDL:         SAMR_CONNECT_W2K=2, */
8413 /* IDL:         SAMR_CONNECT_AFTER_W2K=3, */
8414 /* IDL: } */
8415
8416 int
8417 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_)
8418 {
8419         guint32 parameter=0;
8420         if(param){
8421                 parameter=(guint32)*param;
8422         }
8423         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
8424         if(param){
8425                 *param=(guint32)parameter;
8426         }
8427         return offset;
8428 }
8429
8430
8431 /* IDL: enum { */
8432 /* IDL:         SAM_PWD_CHANGE_NO_ERROR=0, */
8433 /* IDL:         SAM_PWD_CHANGE_PASSWORD_TOO_SHORT=1, */
8434 /* IDL:         SAM_PWD_CHANGE_PWD_IN_HISTORY=2, */
8435 /* IDL:         SAM_PWD_CHANGE_USERNAME_IN_PASSWORD=3, */
8436 /* IDL:         SAM_PWD_CHANGE_FULLNAME_IN_PASSWORD=4, */
8437 /* IDL:         SAM_PWD_CHANGE_NOT_COMPLEX=5, */
8438 /* IDL:         SAM_PWD_CHANGE_MACHINE_NOT_DEFAULT=6, */
8439 /* IDL:         SAM_PWD_CHANGE_FAILED_BY_FILTER=7, */
8440 /* IDL:         SAM_PWD_CHANGE_PASSWORD_TOO_LONG=8, */
8441 /* IDL: } */
8442
8443 int
8444 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_)
8445 {
8446         guint32 parameter=0;
8447         if(param){
8448                 parameter=(guint32)*param;
8449         }
8450         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
8451         if(param){
8452                 *param=(guint32)parameter;
8453         }
8454         return offset;
8455 }
8456
8457
8458 /* IDL: struct { */
8459 /* IDL:         samPwdChangeReason extendedFailureReason; */
8460 /* IDL:         lsa_String filterModuleName; */
8461 /* IDL: } */
8462
8463 static int
8464 samr_dissect_element_userPwdChangeFailureInformation_extendedFailureReason(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8465 {
8466         offset = samr_dissect_enum_samPwdChangeReason(tvb, offset, pinfo, tree, drep, hf_samr_userPwdChangeFailureInformation_extendedFailureReason, 0);
8467
8468         return offset;
8469 }
8470
8471 static int
8472 samr_dissect_element_userPwdChangeFailureInformation_filterModuleName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8473 {
8474         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_userPwdChangeFailureInformation_filterModuleName,0);
8475
8476         return offset;
8477 }
8478
8479 int
8480 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_)
8481 {
8482         proto_item *item = NULL;
8483         proto_tree *tree = NULL;
8484         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
8485         int old_offset;
8486
8487         ALIGN_TO_5_BYTES;
8488
8489         old_offset = offset;
8490
8491         if (parent_tree) {
8492                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
8493                 tree = proto_item_add_subtree(item, ett_samr_userPwdChangeFailureInformation);
8494         }
8495         
8496         offset = samr_dissect_element_userPwdChangeFailureInformation_extendedFailureReason(tvb, offset, pinfo, tree, drep);
8497
8498         offset = samr_dissect_element_userPwdChangeFailureInformation_filterModuleName(tvb, offset, pinfo, tree, drep);
8499
8500
8501         proto_item_set_len(item, offset-old_offset);
8502
8503
8504         if (di->call_data->flags & DCERPC_IS_NDR64) {
8505                 ALIGN_TO_5_BYTES;
8506         }
8507
8508         return offset;
8509 }
8510
8511
8512 /* IDL: struct { */
8513 /* IDL:         samr_ConnectVersion client_version; */
8514 /* IDL:         uint32 unknown2; */
8515 /* IDL: } */
8516
8517 static int
8518 samr_dissect_element_ConnectInfo1_client_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8519 {
8520         offset = samr_dissect_enum_ConnectVersion(tvb, offset, pinfo, tree, drep, hf_samr_samr_ConnectInfo1_client_version, 0);
8521
8522         return offset;
8523 }
8524
8525 static int
8526 samr_dissect_element_ConnectInfo1_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8527 {
8528         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_ConnectInfo1_unknown2, 0);
8529
8530         return offset;
8531 }
8532
8533 int
8534 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_)
8535 {
8536         proto_item *item = NULL;
8537         proto_tree *tree = NULL;
8538         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
8539         int old_offset;
8540
8541         ALIGN_TO_4_BYTES;
8542
8543         old_offset = offset;
8544
8545         if (parent_tree) {
8546                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
8547                 tree = proto_item_add_subtree(item, ett_samr_samr_ConnectInfo1);
8548         }
8549         
8550         offset = samr_dissect_element_ConnectInfo1_client_version(tvb, offset, pinfo, tree, drep);
8551
8552         offset = samr_dissect_element_ConnectInfo1_unknown2(tvb, offset, pinfo, tree, drep);
8553
8554
8555         proto_item_set_len(item, offset-old_offset);
8556
8557
8558         if (di->call_data->flags & DCERPC_IS_NDR64) {
8559                 ALIGN_TO_4_BYTES;
8560         }
8561
8562         return offset;
8563 }
8564
8565
8566 /* IDL: union { */
8567 /* IDL: [case(1)] [case(1)] samr_ConnectInfo1 info1; */
8568 /* IDL: } */
8569
8570 static int
8571 samr_dissect_element_ConnectInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8572 {
8573         offset = samr_dissect_struct_ConnectInfo1(tvb,offset,pinfo,tree,drep,hf_samr_samr_ConnectInfo_info1,0);
8574
8575         return offset;
8576 }
8577
8578 static int
8579 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_)
8580 {
8581         proto_item *item = NULL;
8582         proto_tree *tree = NULL;
8583         int old_offset;
8584         guint32 level;
8585
8586         old_offset = offset;
8587         if (parent_tree) {
8588                 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "samr_ConnectInfo");
8589                 tree = proto_item_add_subtree(item, ett_samr_samr_ConnectInfo);
8590         }
8591
8592         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
8593         ALIGN_TO_4_BYTES;
8594
8595         switch(level) {
8596                 case 1:
8597                         offset = samr_dissect_element_ConnectInfo_info1(tvb, offset, pinfo, tree, drep);
8598                 break;
8599         }
8600         proto_item_set_len(item, offset-old_offset);
8601
8602
8603         return offset;
8604 }
8605
8606 /* IDL: bitmap { */
8607 /* IDL:         SAMR_VALIDATE_FIELD_PASSWORD_LAST_SET =  0x00000001 , */
8608 /* IDL:         SAMR_VALIDATE_FIELD_BAD_PASSWORD_TIME =  0x00000002 , */
8609 /* IDL:         SAMR_VALIDATE_FIELD_LOCKOUT_TIME =  0x00000004 , */
8610 /* IDL:         SAMR_VALIDATE_FIELD_BAD_PASSWORD_COUNT =  0x00000008 , */
8611 /* IDL:         SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_LENGTH =  0x00000010 , */
8612 /* IDL:         SAMR_VALIDATE_FIELD_PASSWORD_HISTORY =  0x00000020 , */
8613 /* IDL: } */
8614
8615 int
8616 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_)
8617 {
8618         proto_item *item = NULL;
8619         proto_tree *tree = NULL;
8620
8621         guint32 flags;
8622         ALIGN_TO_4_BYTES;
8623
8624         if (parent_tree) {
8625                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
8626                 tree = proto_item_add_subtree(item,ett_samr_samr_ValidateFieldsPresent);
8627         }
8628
8629         offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
8630         proto_item_append_text(item, ": ");
8631
8632         if (!flags)
8633                 proto_item_append_text(item, "(No values set)");
8634
8635         proto_tree_add_boolean(tree, hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_LAST_SET, tvb, offset-4, 4, flags);
8636         if (flags&( 0x00000001 )){
8637                 proto_item_append_text(item, "SAMR_VALIDATE_FIELD_PASSWORD_LAST_SET");
8638                 if (flags & (~( 0x00000001 )))
8639                         proto_item_append_text(item, ", ");
8640         }
8641         flags&=(~( 0x00000001 ));
8642
8643         proto_tree_add_boolean(tree, hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_BAD_PASSWORD_TIME, tvb, offset-4, 4, flags);
8644         if (flags&( 0x00000002 )){
8645                 proto_item_append_text(item, "SAMR_VALIDATE_FIELD_BAD_PASSWORD_TIME");
8646                 if (flags & (~( 0x00000002 )))
8647                         proto_item_append_text(item, ", ");
8648         }
8649         flags&=(~( 0x00000002 ));
8650
8651         proto_tree_add_boolean(tree, hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_LOCKOUT_TIME, tvb, offset-4, 4, flags);
8652         if (flags&( 0x00000004 )){
8653                 proto_item_append_text(item, "SAMR_VALIDATE_FIELD_LOCKOUT_TIME");
8654                 if (flags & (~( 0x00000004 )))
8655                         proto_item_append_text(item, ", ");
8656         }
8657         flags&=(~( 0x00000004 ));
8658
8659         proto_tree_add_boolean(tree, hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_BAD_PASSWORD_COUNT, tvb, offset-4, 4, flags);
8660         if (flags&( 0x00000008 )){
8661                 proto_item_append_text(item, "SAMR_VALIDATE_FIELD_BAD_PASSWORD_COUNT");
8662                 if (flags & (~( 0x00000008 )))
8663                         proto_item_append_text(item, ", ");
8664         }
8665         flags&=(~( 0x00000008 ));
8666
8667         proto_tree_add_boolean(tree, hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_LENGTH, tvb, offset-4, 4, flags);
8668         if (flags&( 0x00000010 )){
8669                 proto_item_append_text(item, "SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_LENGTH");
8670                 if (flags & (~( 0x00000010 )))
8671                         proto_item_append_text(item, ", ");
8672         }
8673         flags&=(~( 0x00000010 ));
8674
8675         proto_tree_add_boolean(tree, hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_HISTORY, tvb, offset-4, 4, flags);
8676         if (flags&( 0x00000020 )){
8677                 proto_item_append_text(item, "SAMR_VALIDATE_FIELD_PASSWORD_HISTORY");
8678                 if (flags & (~( 0x00000020 )))
8679                         proto_item_append_text(item, ", ");
8680         }
8681         flags&=(~( 0x00000020 ));
8682
8683         if (flags) {
8684                 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
8685         }
8686
8687         return offset;
8688 }
8689
8690
8691 /* IDL: enum { */
8692 /* IDL:         NetValidateAuthentication=1, */
8693 /* IDL:         NetValidatePasswordChange=2, */
8694 /* IDL:         NetValidatePasswordReset=3, */
8695 /* IDL: } */
8696
8697 int
8698 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_)
8699 {
8700         guint1632 parameter=0;
8701         if(param){
8702                 parameter=(guint1632)*param;
8703         }
8704         offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
8705         if(param){
8706                 *param=(guint32)parameter;
8707         }
8708         return offset;
8709 }
8710
8711
8712 /* IDL: enum { */
8713 /* IDL:         SAMR_VALIDATION_STATUS_SUCCESS=0, */
8714 /* IDL:         SAMR_VALIDATION_STATUS_PASSWORD_MUST_CHANGE=1, */
8715 /* IDL:         SAMR_VALIDATION_STATUS_ACCOUNT_LOCKED_OUT=2, */
8716 /* IDL:         SAMR_VALIDATION_STATUS_PASSWORD_EXPIRED=3, */
8717 /* IDL:         SAMR_VALIDATION_STATUS_BAD_PASSWORD=4, */
8718 /* IDL:         SAMR_VALIDATION_STATUS_PWD_HISTORY_CONFLICT=5, */
8719 /* IDL:         SAMR_VALIDATION_STATUS_PWD_TOO_SHORT=6, */
8720 /* IDL:         SAMR_VALIDATION_STATUS_PWD_TOO_LONG=7, */
8721 /* IDL:         SAMR_VALIDATION_STATUS_NOT_COMPLEX_ENOUGH=8, */
8722 /* IDL:         SAMR_VALIDATION_STATUS_PASSWORD_TOO_RECENT=9, */
8723 /* IDL:         SAMR_VALIDATION_STATUS_PASSWORD_FILTER_ERROR=10, */
8724 /* IDL: } */
8725
8726 int
8727 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_)
8728 {
8729         guint1632 parameter=0;
8730         if(param){
8731                 parameter=(guint1632)*param;
8732         }
8733         offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
8734         if(param){
8735                 *param=(guint32)parameter;
8736         }
8737         return offset;
8738 }
8739
8740
8741 /* IDL: struct { */
8742 /* IDL:         uint32 length; */
8743 /* IDL:         [unique(1)] [size_is(length)] uint8 *data; */
8744 /* IDL: } */
8745
8746 static int
8747 samr_dissect_element_ValidationBlob_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8748 {
8749         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_ValidationBlob_length, 0);
8750
8751         return offset;
8752 }
8753
8754 static int
8755 samr_dissect_element_ValidationBlob_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8756 {
8757         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);
8758
8759         return offset;
8760 }
8761
8762 static int
8763 samr_dissect_element_ValidationBlob_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8764 {
8765         offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, samr_dissect_element_ValidationBlob_data__);
8766
8767         return offset;
8768 }
8769
8770 static int
8771 samr_dissect_element_ValidationBlob_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8772 {
8773         proto_tree_add_bytes(tree, hf_samr_samr_ValidationBlob_data, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
8774
8775         return offset;
8776 }
8777
8778 int
8779 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_)
8780 {
8781         proto_item *item = NULL;
8782         proto_tree *tree = NULL;
8783         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
8784         int old_offset;
8785
8786         ALIGN_TO_5_BYTES;
8787
8788         old_offset = offset;
8789
8790         if (parent_tree) {
8791                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
8792                 tree = proto_item_add_subtree(item, ett_samr_samr_ValidationBlob);
8793         }
8794         
8795         offset = samr_dissect_element_ValidationBlob_length(tvb, offset, pinfo, tree, drep);
8796
8797         offset = samr_dissect_element_ValidationBlob_data(tvb, offset, pinfo, tree, drep);
8798
8799
8800         proto_item_set_len(item, offset-old_offset);
8801
8802
8803         if (di->call_data->flags & DCERPC_IS_NDR64) {
8804                 ALIGN_TO_5_BYTES;
8805         }
8806
8807         return offset;
8808 }
8809
8810
8811 /* IDL: struct { */
8812 /* IDL:         samr_ValidateFieldsPresent fields_present; */
8813 /* IDL:         NTTIME_hyper last_password_change; */
8814 /* IDL:         NTTIME_hyper bad_password_time; */
8815 /* IDL:         NTTIME_hyper lockout_time; */
8816 /* IDL:         uint32 bad_pwd_count; */
8817 /* IDL:         uint32 pwd_history_len; */
8818 /* IDL:         [unique(1)] [size_is(pwd_history_len)] samr_ValidationBlob *pwd_history; */
8819 /* IDL: } */
8820
8821 static int
8822 samr_dissect_element_ValidatePasswordInfo_fields_present(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8823 {
8824         offset = samr_dissect_bitmap_ValidateFieldsPresent(tvb, offset, pinfo, tree, drep, hf_samr_samr_ValidatePasswordInfo_fields_present, 0);
8825
8826         return offset;
8827 }
8828
8829 static int
8830 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_)
8831 {
8832         offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_ValidatePasswordInfo_last_password_change);
8833
8834         return offset;
8835 }
8836
8837 static int
8838 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_)
8839 {
8840         offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_ValidatePasswordInfo_bad_password_time);
8841
8842         return offset;
8843 }
8844
8845 static int
8846 samr_dissect_element_ValidatePasswordInfo_lockout_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8847 {
8848         offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_ValidatePasswordInfo_lockout_time);
8849
8850         return offset;
8851 }
8852
8853 static int
8854 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_)
8855 {
8856         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_ValidatePasswordInfo_bad_pwd_count, 0);
8857
8858         return offset;
8859 }
8860
8861 static int
8862 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_)
8863 {
8864         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_ValidatePasswordInfo_pwd_history_len, 0);
8865
8866         return offset;
8867 }
8868
8869 static int
8870 samr_dissect_element_ValidatePasswordInfo_pwd_history(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8871 {
8872         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);
8873
8874         return offset;
8875 }
8876
8877 static int
8878 samr_dissect_element_ValidatePasswordInfo_pwd_history_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8879 {
8880         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, samr_dissect_element_ValidatePasswordInfo_pwd_history__);
8881
8882         return offset;
8883 }
8884
8885 static int
8886 samr_dissect_element_ValidatePasswordInfo_pwd_history__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8887 {
8888         offset = samr_dissect_struct_ValidationBlob(tvb,offset,pinfo,tree,drep,hf_samr_samr_ValidatePasswordInfo_pwd_history,0);
8889
8890         return offset;
8891 }
8892
8893 int
8894 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_)
8895 {
8896         proto_item *item = NULL;
8897         proto_tree *tree = NULL;
8898         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
8899         int old_offset;
8900
8901         ALIGN_TO_8_BYTES;
8902
8903         old_offset = offset;
8904
8905         if (parent_tree) {
8906                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
8907                 tree = proto_item_add_subtree(item, ett_samr_samr_ValidatePasswordInfo);
8908         }
8909         
8910         offset = samr_dissect_element_ValidatePasswordInfo_fields_present(tvb, offset, pinfo, tree, drep);
8911
8912         offset = samr_dissect_element_ValidatePasswordInfo_last_password_change(tvb, offset, pinfo, tree, drep);
8913
8914         offset = samr_dissect_element_ValidatePasswordInfo_bad_password_time(tvb, offset, pinfo, tree, drep);
8915
8916         offset = samr_dissect_element_ValidatePasswordInfo_lockout_time(tvb, offset, pinfo, tree, drep);
8917
8918         offset = samr_dissect_element_ValidatePasswordInfo_bad_pwd_count(tvb, offset, pinfo, tree, drep);
8919
8920         offset = samr_dissect_element_ValidatePasswordInfo_pwd_history_len(tvb, offset, pinfo, tree, drep);
8921
8922         offset = samr_dissect_element_ValidatePasswordInfo_pwd_history(tvb, offset, pinfo, tree, drep);
8923
8924
8925         proto_item_set_len(item, offset-old_offset);
8926
8927
8928         if (di->call_data->flags & DCERPC_IS_NDR64) {
8929                 ALIGN_TO_8_BYTES;
8930         }
8931
8932         return offset;
8933 }
8934
8935
8936 /* IDL: struct { */
8937 /* IDL:         samr_ValidatePasswordInfo info; */
8938 /* IDL:         samr_ValidationStatus status; */
8939 /* IDL: } */
8940
8941 static int
8942 samr_dissect_element_ValidatePasswordRepCtr_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8943 {
8944         offset = samr_dissect_struct_ValidatePasswordInfo(tvb,offset,pinfo,tree,drep,hf_samr_samr_ValidatePasswordRepCtr_info,0);
8945
8946         return offset;
8947 }
8948
8949 static int
8950 samr_dissect_element_ValidatePasswordRepCtr_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8951 {
8952         offset = samr_dissect_enum_ValidationStatus(tvb, offset, pinfo, tree, drep, hf_samr_samr_ValidatePasswordRepCtr_status, 0);
8953
8954         return offset;
8955 }
8956
8957 int
8958 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_)
8959 {
8960         proto_item *item = NULL;
8961         proto_tree *tree = NULL;
8962         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
8963         int old_offset;
8964
8965         ALIGN_TO_8_BYTES;
8966
8967         old_offset = offset;
8968
8969         if (parent_tree) {
8970                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
8971                 tree = proto_item_add_subtree(item, ett_samr_samr_ValidatePasswordRepCtr);
8972         }
8973         
8974         offset = samr_dissect_element_ValidatePasswordRepCtr_info(tvb, offset, pinfo, tree, drep);
8975
8976         offset = samr_dissect_element_ValidatePasswordRepCtr_status(tvb, offset, pinfo, tree, drep);
8977
8978
8979         proto_item_set_len(item, offset-old_offset);
8980
8981
8982         if (di->call_data->flags & DCERPC_IS_NDR64) {
8983                 ALIGN_TO_8_BYTES;
8984         }
8985
8986         return offset;
8987 }
8988
8989
8990 /* IDL: [switch_type(uint16)] union { */
8991 /* IDL: [case(1)] [case(1)] samr_ValidatePasswordRepCtr ctr1; */
8992 /* IDL: [case(2)] [case(2)] samr_ValidatePasswordRepCtr ctr2; */
8993 /* IDL: [case(3)] [case(3)] samr_ValidatePasswordRepCtr ctr3; */
8994 /* IDL: } */
8995
8996 static int
8997 samr_dissect_element_ValidatePasswordRep_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8998 {
8999         offset = samr_dissect_struct_ValidatePasswordRepCtr(tvb,offset,pinfo,tree,drep,hf_samr_samr_ValidatePasswordRep_ctr1,0);
9000
9001         return offset;
9002 }
9003
9004 static int
9005 samr_dissect_element_ValidatePasswordRep_ctr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9006 {
9007         offset = samr_dissect_struct_ValidatePasswordRepCtr(tvb,offset,pinfo,tree,drep,hf_samr_samr_ValidatePasswordRep_ctr2,0);
9008
9009         return offset;
9010 }
9011
9012 static int
9013 samr_dissect_element_ValidatePasswordRep_ctr3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9014 {
9015         offset = samr_dissect_struct_ValidatePasswordRepCtr(tvb,offset,pinfo,tree,drep,hf_samr_samr_ValidatePasswordRep_ctr3,0);
9016
9017         return offset;
9018 }
9019
9020 static int
9021 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_)
9022 {
9023         proto_item *item = NULL;
9024         proto_tree *tree = NULL;
9025         int old_offset;
9026         guint16 level;
9027
9028         old_offset = offset;
9029         if (parent_tree) {
9030                 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "samr_ValidatePasswordRep");
9031                 tree = proto_item_add_subtree(item, ett_samr_samr_ValidatePasswordRep);
9032         }
9033
9034         offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, &level);
9035         ALIGN_TO_8_BYTES;
9036
9037         switch(level) {
9038                 case 1:
9039                         offset = samr_dissect_element_ValidatePasswordRep_ctr1(tvb, offset, pinfo, tree, drep);
9040                 break;
9041
9042                 case 2:
9043                         offset = samr_dissect_element_ValidatePasswordRep_ctr2(tvb, offset, pinfo, tree, drep);
9044                 break;
9045
9046                 case 3:
9047                         offset = samr_dissect_element_ValidatePasswordRep_ctr3(tvb, offset, pinfo, tree, drep);
9048                 break;
9049         }
9050         proto_item_set_len(item, offset-old_offset);
9051
9052
9053         return offset;
9054 }
9055
9056 /* IDL: struct { */
9057 /* IDL:         samr_ValidatePasswordInfo info; */
9058 /* IDL:         lsa_StringLarge password; */
9059 /* IDL:         lsa_StringLarge account; */
9060 /* IDL:         samr_ValidationBlob hash; */
9061 /* IDL:         uint8 pwd_must_change_at_next_logon; */
9062 /* IDL:         uint8 clear_lockout; */
9063 /* IDL: } */
9064
9065 static int
9066 samr_dissect_element_ValidatePasswordReq3_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9067 {
9068         offset = samr_dissect_struct_ValidatePasswordInfo(tvb,offset,pinfo,tree,drep,hf_samr_samr_ValidatePasswordReq3_info,0);
9069
9070         return offset;
9071 }
9072
9073 static int
9074 samr_dissect_element_ValidatePasswordReq3_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9075 {
9076         offset = samr_dissect_struct_lsa_StringLarge(tvb,offset,pinfo,tree,drep,hf_samr_samr_ValidatePasswordReq3_password,0);
9077
9078         return offset;
9079 }
9080
9081 static int
9082 samr_dissect_element_ValidatePasswordReq3_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9083 {
9084         offset = samr_dissect_struct_lsa_StringLarge(tvb,offset,pinfo,tree,drep,hf_samr_samr_ValidatePasswordReq3_account,0);
9085
9086         return offset;
9087 }
9088
9089 static int
9090 samr_dissect_element_ValidatePasswordReq3_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9091 {
9092         offset = samr_dissect_struct_ValidationBlob(tvb,offset,pinfo,tree,drep,hf_samr_samr_ValidatePasswordReq3_hash,0);
9093
9094         return offset;
9095 }
9096
9097 static int
9098 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_)
9099 {
9100         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_ValidatePasswordReq3_pwd_must_change_at_next_logon, 0);
9101
9102         return offset;
9103 }
9104
9105 static int
9106 samr_dissect_element_ValidatePasswordReq3_clear_lockout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9107 {
9108         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_ValidatePasswordReq3_clear_lockout, 0);
9109
9110         return offset;
9111 }
9112
9113 int
9114 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_)
9115 {
9116         proto_item *item = NULL;
9117         proto_tree *tree = NULL;
9118         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
9119         int old_offset;
9120
9121         ALIGN_TO_8_BYTES;
9122
9123         old_offset = offset;
9124
9125         if (parent_tree) {
9126                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
9127                 tree = proto_item_add_subtree(item, ett_samr_samr_ValidatePasswordReq3);
9128         }
9129         
9130         offset = samr_dissect_element_ValidatePasswordReq3_info(tvb, offset, pinfo, tree, drep);
9131
9132         offset = samr_dissect_element_ValidatePasswordReq3_password(tvb, offset, pinfo, tree, drep);
9133
9134         offset = samr_dissect_element_ValidatePasswordReq3_account(tvb, offset, pinfo, tree, drep);
9135
9136         offset = samr_dissect_element_ValidatePasswordReq3_hash(tvb, offset, pinfo, tree, drep);
9137
9138         offset = samr_dissect_element_ValidatePasswordReq3_pwd_must_change_at_next_logon(tvb, offset, pinfo, tree, drep);
9139
9140         offset = samr_dissect_element_ValidatePasswordReq3_clear_lockout(tvb, offset, pinfo, tree, drep);
9141
9142
9143         proto_item_set_len(item, offset-old_offset);
9144
9145
9146         if (di->call_data->flags & DCERPC_IS_NDR64) {
9147                 ALIGN_TO_8_BYTES;
9148         }
9149
9150         return offset;
9151 }
9152
9153
9154 /* IDL: struct { */
9155 /* IDL:         samr_ValidatePasswordInfo info; */
9156 /* IDL:         lsa_StringLarge password; */
9157 /* IDL:         lsa_StringLarge account; */
9158 /* IDL:         samr_ValidationBlob hash; */
9159 /* IDL:         uint8 password_matched; */
9160 /* IDL: } */
9161
9162 static int
9163 samr_dissect_element_ValidatePasswordReq2_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9164 {
9165         offset = samr_dissect_struct_ValidatePasswordInfo(tvb,offset,pinfo,tree,drep,hf_samr_samr_ValidatePasswordReq2_info,0);
9166
9167         return offset;
9168 }
9169
9170 static int
9171 samr_dissect_element_ValidatePasswordReq2_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9172 {
9173         offset = samr_dissect_struct_lsa_StringLarge(tvb,offset,pinfo,tree,drep,hf_samr_samr_ValidatePasswordReq2_password,0);
9174
9175         return offset;
9176 }
9177
9178 static int
9179 samr_dissect_element_ValidatePasswordReq2_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9180 {
9181         offset = samr_dissect_struct_lsa_StringLarge(tvb,offset,pinfo,tree,drep,hf_samr_samr_ValidatePasswordReq2_account,0);
9182
9183         return offset;
9184 }
9185
9186 static int
9187 samr_dissect_element_ValidatePasswordReq2_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9188 {
9189         offset = samr_dissect_struct_ValidationBlob(tvb,offset,pinfo,tree,drep,hf_samr_samr_ValidatePasswordReq2_hash,0);
9190
9191         return offset;
9192 }
9193
9194 static int
9195 samr_dissect_element_ValidatePasswordReq2_password_matched(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9196 {
9197         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_ValidatePasswordReq2_password_matched, 0);
9198
9199         return offset;
9200 }
9201
9202 int
9203 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_)
9204 {
9205         proto_item *item = NULL;
9206         proto_tree *tree = NULL;
9207         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
9208         int old_offset;
9209
9210         ALIGN_TO_8_BYTES;
9211
9212         old_offset = offset;
9213
9214         if (parent_tree) {
9215                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
9216                 tree = proto_item_add_subtree(item, ett_samr_samr_ValidatePasswordReq2);
9217         }
9218         
9219         offset = samr_dissect_element_ValidatePasswordReq2_info(tvb, offset, pinfo, tree, drep);
9220
9221         offset = samr_dissect_element_ValidatePasswordReq2_password(tvb, offset, pinfo, tree, drep);
9222
9223         offset = samr_dissect_element_ValidatePasswordReq2_account(tvb, offset, pinfo, tree, drep);
9224
9225         offset = samr_dissect_element_ValidatePasswordReq2_hash(tvb, offset, pinfo, tree, drep);
9226
9227         offset = samr_dissect_element_ValidatePasswordReq2_password_matched(tvb, offset, pinfo, tree, drep);
9228
9229
9230         proto_item_set_len(item, offset-old_offset);
9231
9232
9233         if (di->call_data->flags & DCERPC_IS_NDR64) {
9234                 ALIGN_TO_8_BYTES;
9235         }
9236
9237         return offset;
9238 }
9239
9240
9241 /* IDL: struct { */
9242 /* IDL:         samr_ValidatePasswordInfo info; */
9243 /* IDL:         uint8 password_matched; */
9244 /* IDL: } */
9245
9246 static int
9247 samr_dissect_element_ValidatePasswordReq1_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9248 {
9249         offset = samr_dissect_struct_ValidatePasswordInfo(tvb,offset,pinfo,tree,drep,hf_samr_samr_ValidatePasswordReq1_info,0);
9250
9251         return offset;
9252 }
9253
9254 static int
9255 samr_dissect_element_ValidatePasswordReq1_password_matched(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9256 {
9257         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_ValidatePasswordReq1_password_matched, 0);
9258
9259         return offset;
9260 }
9261
9262 int
9263 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_)
9264 {
9265         proto_item *item = NULL;
9266         proto_tree *tree = NULL;
9267         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
9268         int old_offset;
9269
9270         ALIGN_TO_8_BYTES;
9271
9272         old_offset = offset;
9273
9274         if (parent_tree) {
9275                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
9276                 tree = proto_item_add_subtree(item, ett_samr_samr_ValidatePasswordReq1);
9277         }
9278         
9279         offset = samr_dissect_element_ValidatePasswordReq1_info(tvb, offset, pinfo, tree, drep);
9280
9281         offset = samr_dissect_element_ValidatePasswordReq1_password_matched(tvb, offset, pinfo, tree, drep);
9282
9283
9284         proto_item_set_len(item, offset-old_offset);
9285
9286
9287         if (di->call_data->flags & DCERPC_IS_NDR64) {
9288                 ALIGN_TO_8_BYTES;
9289         }
9290
9291         return offset;
9292 }
9293
9294
9295 /* IDL: [switch_type(uint16)] union { */
9296 /* IDL: [case(1)] [case(1)] samr_ValidatePasswordReq1 req1; */
9297 /* IDL: [case(2)] [case(2)] samr_ValidatePasswordReq2 req2; */
9298 /* IDL: [case(3)] [case(3)] samr_ValidatePasswordReq3 req3; */
9299 /* IDL: } */
9300
9301 static int
9302 samr_dissect_element_ValidatePasswordReq_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9303 {
9304         offset = samr_dissect_struct_ValidatePasswordReq1(tvb,offset,pinfo,tree,drep,hf_samr_samr_ValidatePasswordReq_req1,0);
9305
9306         return offset;
9307 }
9308
9309 static int
9310 samr_dissect_element_ValidatePasswordReq_req2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9311 {
9312         offset = samr_dissect_struct_ValidatePasswordReq2(tvb,offset,pinfo,tree,drep,hf_samr_samr_ValidatePasswordReq_req2,0);
9313
9314         return offset;
9315 }
9316
9317 static int
9318 samr_dissect_element_ValidatePasswordReq_req3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9319 {
9320         offset = samr_dissect_struct_ValidatePasswordReq3(tvb,offset,pinfo,tree,drep,hf_samr_samr_ValidatePasswordReq_req3,0);
9321
9322         return offset;
9323 }
9324
9325 static int
9326 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_)
9327 {
9328         proto_item *item = NULL;
9329         proto_tree *tree = NULL;
9330         int old_offset;
9331         guint16 level;
9332
9333         old_offset = offset;
9334         if (parent_tree) {
9335                 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "samr_ValidatePasswordReq");
9336                 tree = proto_item_add_subtree(item, ett_samr_samr_ValidatePasswordReq);
9337         }
9338
9339         offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, &level);
9340         ALIGN_TO_8_BYTES;
9341
9342         switch(level) {
9343                 case 1:
9344                         offset = samr_dissect_element_ValidatePasswordReq_req1(tvb, offset, pinfo, tree, drep);
9345                 break;
9346
9347                 case 2:
9348                         offset = samr_dissect_element_ValidatePasswordReq_req2(tvb, offset, pinfo, tree, drep);
9349                 break;
9350
9351                 case 3:
9352                         offset = samr_dissect_element_ValidatePasswordReq_req3(tvb, offset, pinfo, tree, drep);
9353                 break;
9354         }
9355         proto_item_set_len(item, offset-old_offset);
9356
9357
9358         return offset;
9359 }
9360 static int
9361 samr_dissect_element_Connect_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9362 {
9363         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);
9364
9365         return offset;
9366 }
9367
9368 static int
9369 samr_dissect_element_Connect_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9370 {
9371         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_Connect_system_name, 0);
9372
9373         return offset;
9374 }
9375
9376 static int
9377 samr_dissect_element_Connect_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9378 {
9379         offset = samr_dissect_bitmap_ConnectAccessMask(tvb, offset, pinfo, tree, drep, hf_samr_samr_Connect_access_mask, 0);
9380
9381         return offset;
9382 }
9383
9384 static int
9385 samr_dissect_element_Connect_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9386 {
9387         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);
9388
9389         return offset;
9390 }
9391
9392 static int
9393 samr_dissect_element_Connect_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9394 {
9395         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_Connect_connect_handle, 0);
9396
9397         return offset;
9398 }
9399
9400 /* IDL: NTSTATUS samr_Connect( */
9401 /* IDL: [unique(1)] [in] uint16 *system_name, */
9402 /* IDL: [in] samr_ConnectAccessMask access_mask, */
9403 /* IDL: [out] [ref] policy_handle *connect_handle */
9404 /* IDL: ); */
9405
9406 static int
9407 samr_dissect_Connect_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9408 {
9409         guint32 status;
9410
9411         pinfo->dcerpc_procedure_name="Connect";
9412         offset = samr_dissect_element_Connect_connect_handle(tvb, offset, pinfo, tree, drep);
9413         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
9414
9415         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
9416
9417         if (status != 0)
9418                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
9419
9420         return offset;
9421 }
9422
9423 static int
9424 samr_dissect_Connect_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9425 {
9426         pinfo->dcerpc_procedure_name="Connect";
9427         offset = samr_dissect_element_Connect_system_name(tvb, offset, pinfo, tree, drep);
9428         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
9429         offset = samr_dissect_element_Connect_access_mask(tvb, offset, pinfo, tree, drep);
9430         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
9431         return offset;
9432 }
9433
9434 static int
9435 samr_dissect_element_Close_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9436 {
9437         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);
9438
9439         return offset;
9440 }
9441
9442 static int
9443 samr_dissect_element_Close_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9444 {
9445         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_Close_handle, 0);
9446
9447         return offset;
9448 }
9449
9450 /* IDL: NTSTATUS samr_Close( */
9451 /* IDL: [out] [in] [ref] policy_handle *handle */
9452 /* IDL: ); */
9453
9454 static int
9455 samr_dissect_Close_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9456 {
9457         guint32 status;
9458
9459         pinfo->dcerpc_procedure_name="Close";
9460         offset = samr_dissect_element_Close_handle(tvb, offset, pinfo, tree, drep);
9461         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
9462
9463         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
9464
9465         if (status != 0)
9466                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
9467
9468         return offset;
9469 }
9470
9471 static int
9472 samr_dissect_Close_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9473 {
9474         pinfo->dcerpc_procedure_name="Close";
9475         offset = samr_dissect_element_Close_handle(tvb, offset, pinfo, tree, drep);
9476         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
9477         return offset;
9478 }
9479
9480 static int
9481 samr_dissect_element_SetSecurity_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9482 {
9483         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);
9484
9485         return offset;
9486 }
9487
9488 static int
9489 samr_dissect_element_SetSecurity_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9490 {
9491         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetSecurity_handle, 0);
9492
9493         return offset;
9494 }
9495
9496 static int
9497 samr_dissect_element_SetSecurity_sec_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9498 {
9499         offset = samr_dissect_bitmap_security_secinfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetSecurity_sec_info, 0);
9500
9501         return offset;
9502 }
9503
9504 static int
9505 samr_dissect_element_SetSecurity_sdbuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9506 {
9507         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);
9508
9509         return offset;
9510 }
9511
9512 static int
9513 samr_dissect_element_SetSecurity_sdbuf_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9514 {
9515         offset = samr_dissect_struct_sec_desc_buf(tvb,offset,pinfo,tree,drep,hf_samr_samr_SetSecurity_sdbuf,0);
9516
9517         return offset;
9518 }
9519
9520 /* IDL: NTSTATUS samr_SetSecurity( */
9521 /* IDL: [in] [ref] policy_handle *handle, */
9522 /* IDL: [in] security_secinfo sec_info, */
9523 /* IDL: [in] [ref] sec_desc_buf *sdbuf */
9524 /* IDL: ); */
9525
9526 static int
9527 samr_dissect_SetSecurity_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9528 {
9529         guint32 status;
9530
9531         pinfo->dcerpc_procedure_name="SetSecurity";
9532         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
9533
9534         if (status != 0)
9535                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
9536
9537         return offset;
9538 }
9539
9540 static int
9541 samr_dissect_SetSecurity_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9542 {
9543         pinfo->dcerpc_procedure_name="SetSecurity";
9544         offset = samr_dissect_element_SetSecurity_handle(tvb, offset, pinfo, tree, drep);
9545         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
9546         offset = samr_dissect_element_SetSecurity_sec_info(tvb, offset, pinfo, tree, drep);
9547         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
9548         offset = samr_dissect_element_SetSecurity_sdbuf(tvb, offset, pinfo, tree, drep);
9549         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
9550         return offset;
9551 }
9552
9553 static int
9554 samr_dissect_element_QuerySecurity_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9555 {
9556         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);
9557
9558         return offset;
9559 }
9560
9561 static int
9562 samr_dissect_element_QuerySecurity_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9563 {
9564         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_QuerySecurity_handle, 0);
9565
9566         return offset;
9567 }
9568
9569 static int
9570 samr_dissect_element_QuerySecurity_sec_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9571 {
9572         offset = samr_dissect_bitmap_security_secinfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_QuerySecurity_sec_info, 0);
9573
9574         return offset;
9575 }
9576
9577 static int
9578 samr_dissect_element_QuerySecurity_sdbuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9579 {
9580         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);
9581
9582         return offset;
9583 }
9584
9585 static int
9586 samr_dissect_element_QuerySecurity_sdbuf_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9587 {
9588         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);
9589
9590         return offset;
9591 }
9592
9593 static int
9594 samr_dissect_element_QuerySecurity_sdbuf__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9595 {
9596         offset = samr_dissect_struct_sec_desc_buf(tvb,offset,pinfo,tree,drep,hf_samr_samr_QuerySecurity_sdbuf,0);
9597
9598         return offset;
9599 }
9600
9601 /* IDL: NTSTATUS samr_QuerySecurity( */
9602 /* IDL: [in] [ref] policy_handle *handle, */
9603 /* IDL: [in] security_secinfo sec_info, */
9604 /* IDL: [out] [ref] sec_desc_buf **sdbuf */
9605 /* IDL: ); */
9606
9607 static int
9608 samr_dissect_QuerySecurity_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9609 {
9610         guint32 status;
9611
9612         pinfo->dcerpc_procedure_name="QuerySecurity";
9613         offset = samr_dissect_element_QuerySecurity_sdbuf(tvb, offset, pinfo, tree, drep);
9614         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
9615
9616         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
9617
9618         if (status != 0)
9619                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
9620
9621         return offset;
9622 }
9623
9624 static int
9625 samr_dissect_QuerySecurity_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9626 {
9627         pinfo->dcerpc_procedure_name="QuerySecurity";
9628         offset = samr_dissect_element_QuerySecurity_handle(tvb, offset, pinfo, tree, drep);
9629         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
9630         offset = samr_dissect_element_QuerySecurity_sec_info(tvb, offset, pinfo, tree, drep);
9631         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
9632         return offset;
9633 }
9634
9635 static int
9636 samr_dissect_element_Shutdown_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9637 {
9638         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);
9639
9640         return offset;
9641 }
9642
9643 static int
9644 samr_dissect_element_Shutdown_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9645 {
9646         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_Shutdown_connect_handle, 0);
9647
9648         return offset;
9649 }
9650
9651 /* IDL: NTSTATUS samr_Shutdown( */
9652 /* IDL: [in] [ref] policy_handle *connect_handle */
9653 /* IDL: ); */
9654
9655 static int
9656 samr_dissect_Shutdown_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9657 {
9658         guint32 status;
9659
9660         pinfo->dcerpc_procedure_name="Shutdown";
9661         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
9662
9663         if (status != 0)
9664                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
9665
9666         return offset;
9667 }
9668
9669 static int
9670 samr_dissect_Shutdown_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9671 {
9672         pinfo->dcerpc_procedure_name="Shutdown";
9673         offset = samr_dissect_element_Shutdown_connect_handle(tvb, offset, pinfo, tree, drep);
9674         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
9675         return offset;
9676 }
9677
9678 static int
9679 samr_dissect_element_LookupDomain_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9680 {
9681         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);
9682
9683         return offset;
9684 }
9685
9686 static int
9687 samr_dissect_element_LookupDomain_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9688 {
9689         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_LookupDomain_connect_handle, 0);
9690
9691         return offset;
9692 }
9693
9694 static int
9695 samr_dissect_element_LookupDomain_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9696 {
9697         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);
9698
9699         return offset;
9700 }
9701
9702 static int
9703 samr_dissect_element_LookupDomain_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9704 {
9705         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_LookupDomain_domain_name,0);
9706
9707         return offset;
9708 }
9709
9710 static int
9711 samr_dissect_element_LookupDomain_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9712 {
9713         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);
9714
9715         return offset;
9716 }
9717
9718 static int
9719 samr_dissect_element_LookupDomain_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9720 {
9721         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);
9722
9723         return offset;
9724 }
9725
9726 static int
9727 samr_dissect_element_LookupDomain_sid__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9728 {
9729         offset = samr_dissect_struct_dom_sid2(tvb,offset,pinfo,tree,drep,hf_samr_samr_LookupDomain_sid,0);
9730
9731         return offset;
9732 }
9733
9734 /* IDL: NTSTATUS samr_LookupDomain( */
9735 /* IDL: [in] [ref] policy_handle *connect_handle, */
9736 /* IDL: [in] [ref] lsa_String *domain_name, */
9737 /* IDL: [out] [ref] dom_sid2 **sid */
9738 /* IDL: ); */
9739
9740 static int
9741 samr_dissect_LookupDomain_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9742 {
9743         guint32 status;
9744
9745         pinfo->dcerpc_procedure_name="LookupDomain";
9746         offset = samr_dissect_element_LookupDomain_sid(tvb, offset, pinfo, tree, drep);
9747         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
9748
9749         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
9750
9751         if (status != 0)
9752                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
9753
9754         return offset;
9755 }
9756
9757 static int
9758 samr_dissect_LookupDomain_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9759 {
9760         pinfo->dcerpc_procedure_name="LookupDomain";
9761         offset = samr_dissect_element_LookupDomain_connect_handle(tvb, offset, pinfo, tree, drep);
9762         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
9763         offset = samr_dissect_element_LookupDomain_domain_name(tvb, offset, pinfo, tree, drep);
9764         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
9765         return offset;
9766 }
9767
9768 static int
9769 samr_dissect_element_EnumDomains_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9770 {
9771         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);
9772
9773         return offset;
9774 }
9775
9776 static int
9777 samr_dissect_element_EnumDomains_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9778 {
9779         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_EnumDomains_connect_handle, 0);
9780
9781         return offset;
9782 }
9783
9784 static int
9785 samr_dissect_element_EnumDomains_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9786 {
9787         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);
9788
9789         return offset;
9790 }
9791
9792 static int
9793 samr_dissect_element_EnumDomains_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9794 {
9795         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_EnumDomains_resume_handle, 0);
9796
9797         return offset;
9798 }
9799
9800 static int
9801 samr_dissect_element_EnumDomains_sam(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9802 {
9803         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);
9804
9805         return offset;
9806 }
9807
9808 static int
9809 samr_dissect_element_EnumDomains_sam_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9810 {
9811         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);
9812
9813         return offset;
9814 }
9815
9816 static int
9817 samr_dissect_element_EnumDomains_sam__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9818 {
9819         offset = samr_dissect_struct_SamArray(tvb,offset,pinfo,tree,drep,hf_samr_samr_EnumDomains_sam,0);
9820
9821         return offset;
9822 }
9823
9824 static int
9825 samr_dissect_element_EnumDomains_buf_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9826 {
9827         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_EnumDomains_buf_size, 0);
9828
9829         return offset;
9830 }
9831
9832 static int
9833 samr_dissect_element_EnumDomains_num_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9834 {
9835         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);
9836
9837         return offset;
9838 }
9839
9840 static int
9841 samr_dissect_element_EnumDomains_num_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9842 {
9843         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_EnumDomains_num_entries, 0);
9844
9845         return offset;
9846 }
9847
9848 /* IDL: NTSTATUS samr_EnumDomains( */
9849 /* IDL: [in] [ref] policy_handle *connect_handle, */
9850 /* IDL: [out] [in] [ref] uint32 *resume_handle, */
9851 /* IDL: [out] [ref] samr_SamArray **sam, */
9852 /* IDL: [in] uint32 buf_size, */
9853 /* IDL: [out] [ref] uint32 *num_entries */
9854 /* IDL: ); */
9855
9856 static int
9857 samr_dissect_EnumDomains_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9858 {
9859         guint32 status;
9860
9861         pinfo->dcerpc_procedure_name="EnumDomains";
9862         offset = samr_dissect_element_EnumDomains_resume_handle(tvb, offset, pinfo, tree, drep);
9863         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
9864
9865         offset = samr_dissect_element_EnumDomains_sam(tvb, offset, pinfo, tree, drep);
9866         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
9867
9868         offset = samr_dissect_element_EnumDomains_num_entries(tvb, offset, pinfo, tree, drep);
9869         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
9870
9871         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
9872
9873         if (status != 0)
9874                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
9875
9876         return offset;
9877 }
9878
9879 static int
9880 samr_dissect_EnumDomains_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9881 {
9882         pinfo->dcerpc_procedure_name="EnumDomains";
9883         offset = samr_dissect_element_EnumDomains_connect_handle(tvb, offset, pinfo, tree, drep);
9884         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
9885         offset = samr_dissect_element_EnumDomains_resume_handle(tvb, offset, pinfo, tree, drep);
9886         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
9887         offset = samr_dissect_element_EnumDomains_buf_size(tvb, offset, pinfo, tree, drep);
9888         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
9889         return offset;
9890 }
9891
9892 static int
9893 samr_dissect_element_OpenDomain_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9894 {
9895         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);
9896
9897         return offset;
9898 }
9899
9900 static int
9901 samr_dissect_element_OpenDomain_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9902 {
9903         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_OpenDomain_connect_handle, 0);
9904
9905         return offset;
9906 }
9907
9908 static int
9909 samr_dissect_element_OpenDomain_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9910 {
9911         offset = samr_dissect_bitmap_DomainAccessMask(tvb, offset, pinfo, tree, drep, hf_samr_samr_OpenDomain_access_mask, 0);
9912
9913         return offset;
9914 }
9915
9916 static int
9917 samr_dissect_element_OpenDomain_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9918 {
9919         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);
9920
9921         return offset;
9922 }
9923
9924 static int
9925 samr_dissect_element_OpenDomain_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9926 {
9927         offset = samr_dissect_struct_dom_sid2(tvb,offset,pinfo,tree,drep,hf_samr_samr_OpenDomain_sid,0);
9928
9929         return offset;
9930 }
9931
9932 static int
9933 samr_dissect_element_OpenDomain_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9934 {
9935         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);
9936
9937         return offset;
9938 }
9939
9940 static int
9941 samr_dissect_element_OpenDomain_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9942 {
9943         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_OpenDomain_domain_handle, 0);
9944
9945         return offset;
9946 }
9947
9948 /* IDL: NTSTATUS samr_OpenDomain( */
9949 /* IDL: [in] [ref] policy_handle *connect_handle, */
9950 /* IDL: [in] samr_DomainAccessMask access_mask, */
9951 /* IDL: [in] [ref] dom_sid2 *sid, */
9952 /* IDL: [out] [ref] policy_handle *domain_handle */
9953 /* IDL: ); */
9954
9955 static int
9956 samr_dissect_OpenDomain_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9957 {
9958         guint32 status;
9959
9960         pinfo->dcerpc_procedure_name="OpenDomain";
9961         offset = samr_dissect_element_OpenDomain_domain_handle(tvb, offset, pinfo, tree, drep);
9962         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
9963
9964         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
9965
9966         if (status != 0)
9967                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
9968
9969         return offset;
9970 }
9971
9972 static int
9973 samr_dissect_OpenDomain_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9974 {
9975         pinfo->dcerpc_procedure_name="OpenDomain";
9976         offset = samr_dissect_element_OpenDomain_connect_handle(tvb, offset, pinfo, tree, drep);
9977         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
9978         offset = samr_dissect_element_OpenDomain_access_mask(tvb, offset, pinfo, tree, drep);
9979         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
9980         offset = samr_dissect_element_OpenDomain_sid(tvb, offset, pinfo, tree, drep);
9981         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
9982         return offset;
9983 }
9984
9985 static int
9986 samr_dissect_element_QueryDomainInfo_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9987 {
9988         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);
9989
9990         return offset;
9991 }
9992
9993 static int
9994 samr_dissect_element_QueryDomainInfo_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9995 {
9996         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDomainInfo_domain_handle, 0);
9997
9998         return offset;
9999 }
10000
10001 static int
10002 samr_dissect_element_QueryDomainInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10003 {
10004         offset = samr_dissect_enum_DomainInfoClass(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDomainInfo_level, 0);
10005
10006         return offset;
10007 }
10008
10009 static int
10010 samr_dissect_element_QueryDomainInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10011 {
10012         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);
10013
10014         return offset;
10015 }
10016
10017 static int
10018 samr_dissect_element_QueryDomainInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10019 {
10020         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);
10021
10022         return offset;
10023 }
10024
10025 static int
10026 samr_dissect_element_QueryDomainInfo_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10027 {
10028         offset = samr_dissect_DomainInfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDomainInfo_info, *0);
10029
10030         return offset;
10031 }
10032
10033 /* IDL: NTSTATUS samr_QueryDomainInfo( */
10034 /* IDL: [in] [ref] policy_handle *domain_handle, */
10035 /* IDL: [in] samr_DomainInfoClass level, */
10036 /* IDL: [out] [ref] [switch_is(level)] samr_DomainInfo **info */
10037 /* IDL: ); */
10038
10039 static int
10040 samr_dissect_QueryDomainInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10041 {
10042         guint32 status;
10043
10044         pinfo->dcerpc_procedure_name="QueryDomainInfo";
10045         offset = samr_dissect_element_QueryDomainInfo_info(tvb, offset, pinfo, tree, drep);
10046         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10047
10048         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
10049
10050         if (status != 0)
10051                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
10052
10053         return offset;
10054 }
10055
10056 static int
10057 samr_dissect_QueryDomainInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10058 {
10059         pinfo->dcerpc_procedure_name="QueryDomainInfo";
10060         offset = samr_dissect_element_QueryDomainInfo_domain_handle(tvb, offset, pinfo, tree, drep);
10061         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10062         offset = samr_dissect_element_QueryDomainInfo_level(tvb, offset, pinfo, tree, drep);
10063         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10064         return offset;
10065 }
10066
10067 static int
10068 samr_dissect_element_SetDomainInfo_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10069 {
10070         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);
10071
10072         return offset;
10073 }
10074
10075 static int
10076 samr_dissect_element_SetDomainInfo_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10077 {
10078         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetDomainInfo_domain_handle, 0);
10079
10080         return offset;
10081 }
10082
10083 static int
10084 samr_dissect_element_SetDomainInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10085 {
10086         offset = samr_dissect_enum_DomainInfoClass(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetDomainInfo_level, 0);
10087
10088         return offset;
10089 }
10090
10091 static int
10092 samr_dissect_element_SetDomainInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10093 {
10094         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);
10095
10096         return offset;
10097 }
10098
10099 static int
10100 samr_dissect_element_SetDomainInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10101 {
10102         offset = samr_dissect_DomainInfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetDomainInfo_info, *0);
10103
10104         return offset;
10105 }
10106
10107 /* IDL: NTSTATUS samr_SetDomainInfo( */
10108 /* IDL: [in] [ref] policy_handle *domain_handle, */
10109 /* IDL: [in] samr_DomainInfoClass level, */
10110 /* IDL: [in] [ref] [switch_is(level)] samr_DomainInfo *info */
10111 /* IDL: ); */
10112
10113 static int
10114 samr_dissect_SetDomainInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10115 {
10116         guint32 status;
10117
10118         pinfo->dcerpc_procedure_name="SetDomainInfo";
10119         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
10120
10121         if (status != 0)
10122                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
10123
10124         return offset;
10125 }
10126
10127 static int
10128 samr_dissect_SetDomainInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10129 {
10130         pinfo->dcerpc_procedure_name="SetDomainInfo";
10131         offset = samr_dissect_element_SetDomainInfo_domain_handle(tvb, offset, pinfo, tree, drep);
10132         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10133         offset = samr_dissect_element_SetDomainInfo_level(tvb, offset, pinfo, tree, drep);
10134         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10135         offset = samr_dissect_element_SetDomainInfo_info(tvb, offset, pinfo, tree, drep);
10136         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10137         return offset;
10138 }
10139
10140 static int
10141 samr_dissect_element_CreateDomainGroup_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10142 {
10143         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);
10144
10145         return offset;
10146 }
10147
10148 static int
10149 samr_dissect_element_CreateDomainGroup_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10150 {
10151         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateDomainGroup_domain_handle, 0);
10152
10153         return offset;
10154 }
10155
10156 static int
10157 samr_dissect_element_CreateDomainGroup_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10158 {
10159         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);
10160
10161         return offset;
10162 }
10163
10164 static int
10165 samr_dissect_element_CreateDomainGroup_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10166 {
10167         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_CreateDomainGroup_name,0);
10168
10169         return offset;
10170 }
10171
10172 static int
10173 samr_dissect_element_CreateDomainGroup_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10174 {
10175         offset = samr_dissect_bitmap_GroupAccessMask(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateDomainGroup_access_mask, 0);
10176
10177         return offset;
10178 }
10179
10180 static int
10181 samr_dissect_element_CreateDomainGroup_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10182 {
10183         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);
10184
10185         return offset;
10186 }
10187
10188 static int
10189 samr_dissect_element_CreateDomainGroup_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10190 {
10191         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateDomainGroup_group_handle, 0);
10192
10193         return offset;
10194 }
10195
10196 static int
10197 samr_dissect_element_CreateDomainGroup_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10198 {
10199         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);
10200
10201         return offset;
10202 }
10203
10204 static int
10205 samr_dissect_element_CreateDomainGroup_rid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10206 {
10207         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateDomainGroup_rid, 0);
10208
10209         return offset;
10210 }
10211
10212 /* IDL: NTSTATUS samr_CreateDomainGroup( */
10213 /* IDL: [in] [ref] policy_handle *domain_handle, */
10214 /* IDL: [in] [ref] lsa_String *name, */
10215 /* IDL: [in] samr_GroupAccessMask access_mask, */
10216 /* IDL: [out] [ref] policy_handle *group_handle, */
10217 /* IDL: [out] [ref] uint32 *rid */
10218 /* IDL: ); */
10219
10220 static int
10221 samr_dissect_CreateDomainGroup_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10222 {
10223         guint32 status;
10224
10225         pinfo->dcerpc_procedure_name="CreateDomainGroup";
10226         offset = samr_dissect_element_CreateDomainGroup_group_handle(tvb, offset, pinfo, tree, drep);
10227         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10228
10229         offset = samr_dissect_element_CreateDomainGroup_rid(tvb, offset, pinfo, tree, drep);
10230         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10231
10232         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
10233
10234         if (status != 0)
10235                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
10236
10237         return offset;
10238 }
10239
10240 static int
10241 samr_dissect_CreateDomainGroup_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10242 {
10243         pinfo->dcerpc_procedure_name="CreateDomainGroup";
10244         offset = samr_dissect_element_CreateDomainGroup_domain_handle(tvb, offset, pinfo, tree, drep);
10245         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10246         offset = samr_dissect_element_CreateDomainGroup_name(tvb, offset, pinfo, tree, drep);
10247         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10248         offset = samr_dissect_element_CreateDomainGroup_access_mask(tvb, offset, pinfo, tree, drep);
10249         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10250         return offset;
10251 }
10252
10253 static int
10254 samr_dissect_element_EnumDomainGroups_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10255 {
10256         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);
10257
10258         return offset;
10259 }
10260
10261 static int
10262 samr_dissect_element_EnumDomainGroups_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10263 {
10264         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_EnumDomainGroups_domain_handle, 0);
10265
10266         return offset;
10267 }
10268
10269 static int
10270 samr_dissect_element_EnumDomainGroups_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10271 {
10272         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);
10273
10274         return offset;
10275 }
10276
10277 static int
10278 samr_dissect_element_EnumDomainGroups_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10279 {
10280         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_EnumDomainGroups_resume_handle, 0);
10281
10282         return offset;
10283 }
10284
10285 static int
10286 samr_dissect_element_EnumDomainGroups_sam(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10287 {
10288         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);
10289
10290         return offset;
10291 }
10292
10293 static int
10294 samr_dissect_element_EnumDomainGroups_sam_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10295 {
10296         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);
10297
10298         return offset;
10299 }
10300
10301 static int
10302 samr_dissect_element_EnumDomainGroups_sam__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10303 {
10304         offset = samr_dissect_struct_SamArray(tvb,offset,pinfo,tree,drep,hf_samr_samr_EnumDomainGroups_sam,0);
10305
10306         return offset;
10307 }
10308
10309 static int
10310 samr_dissect_element_EnumDomainGroups_max_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10311 {
10312         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_EnumDomainGroups_max_size, 0);
10313
10314         return offset;
10315 }
10316
10317 static int
10318 samr_dissect_element_EnumDomainGroups_num_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10319 {
10320         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);
10321
10322         return offset;
10323 }
10324
10325 static int
10326 samr_dissect_element_EnumDomainGroups_num_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10327 {
10328         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_EnumDomainGroups_num_entries, 0);
10329
10330         return offset;
10331 }
10332
10333 /* IDL: NTSTATUS samr_EnumDomainGroups( */
10334 /* IDL: [ref] [in] policy_handle *domain_handle, */
10335 /* IDL: [out] [in] [ref] uint32 *resume_handle, */
10336 /* IDL: [out] [ref] samr_SamArray **sam, */
10337 /* IDL: [in] uint32 max_size, */
10338 /* IDL: [out] [ref] uint32 *num_entries */
10339 /* IDL: ); */
10340
10341 static int
10342 samr_dissect_EnumDomainGroups_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10343 {
10344         guint32 status;
10345
10346         pinfo->dcerpc_procedure_name="EnumDomainGroups";
10347         offset = samr_dissect_element_EnumDomainGroups_resume_handle(tvb, offset, pinfo, tree, drep);
10348         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10349
10350         offset = samr_dissect_element_EnumDomainGroups_sam(tvb, offset, pinfo, tree, drep);
10351         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10352
10353         offset = samr_dissect_element_EnumDomainGroups_num_entries(tvb, offset, pinfo, tree, drep);
10354         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10355
10356         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
10357
10358         if (status != 0)
10359                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
10360
10361         return offset;
10362 }
10363
10364 static int
10365 samr_dissect_EnumDomainGroups_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10366 {
10367         pinfo->dcerpc_procedure_name="EnumDomainGroups";
10368         offset = samr_dissect_element_EnumDomainGroups_domain_handle(tvb, offset, pinfo, tree, drep);
10369         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10370         offset = samr_dissect_element_EnumDomainGroups_resume_handle(tvb, offset, pinfo, tree, drep);
10371         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10372         offset = samr_dissect_element_EnumDomainGroups_max_size(tvb, offset, pinfo, tree, drep);
10373         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10374         return offset;
10375 }
10376
10377 static int
10378 samr_dissect_element_CreateUser_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10379 {
10380         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);
10381
10382         return offset;
10383 }
10384
10385 static int
10386 samr_dissect_element_CreateUser_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10387 {
10388         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateUser_domain_handle, 0);
10389
10390         return offset;
10391 }
10392
10393 static int
10394 samr_dissect_element_CreateUser_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10395 {
10396         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);
10397
10398         return offset;
10399 }
10400
10401 static int
10402 samr_dissect_element_CreateUser_account_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10403 {
10404         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_CreateUser_account_name,0);
10405
10406         return offset;
10407 }
10408
10409 static int
10410 samr_dissect_element_CreateUser_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10411 {
10412         offset = samr_dissect_bitmap_UserAccessMask(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateUser_access_mask, 0);
10413
10414         return offset;
10415 }
10416
10417 static int
10418 samr_dissect_element_CreateUser_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10419 {
10420         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);
10421
10422         return offset;
10423 }
10424
10425 static int
10426 samr_dissect_element_CreateUser_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10427 {
10428         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateUser_user_handle, 0);
10429
10430         return offset;
10431 }
10432
10433 static int
10434 samr_dissect_element_CreateUser_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10435 {
10436         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);
10437
10438         return offset;
10439 }
10440
10441 static int
10442 samr_dissect_element_CreateUser_rid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10443 {
10444         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateUser_rid, 0);
10445
10446         return offset;
10447 }
10448
10449 /* IDL: NTSTATUS samr_CreateUser( */
10450 /* IDL: [in] [ref] policy_handle *domain_handle, */
10451 /* IDL: [in] [ref] lsa_String *account_name, */
10452 /* IDL: [in] samr_UserAccessMask access_mask, */
10453 /* IDL: [out] [ref] policy_handle *user_handle, */
10454 /* IDL: [out] [ref] uint32 *rid */
10455 /* IDL: ); */
10456
10457 static int
10458 samr_dissect_CreateUser_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10459 {
10460         guint32 status;
10461
10462         pinfo->dcerpc_procedure_name="CreateUser";
10463         offset = samr_dissect_element_CreateUser_user_handle(tvb, offset, pinfo, tree, drep);
10464         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10465
10466         offset = samr_dissect_element_CreateUser_rid(tvb, offset, pinfo, tree, drep);
10467         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10468
10469         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
10470
10471         if (status != 0)
10472                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
10473
10474         return offset;
10475 }
10476
10477 static int
10478 samr_dissect_CreateUser_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10479 {
10480         pinfo->dcerpc_procedure_name="CreateUser";
10481         offset = samr_dissect_element_CreateUser_domain_handle(tvb, offset, pinfo, tree, drep);
10482         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10483         offset = samr_dissect_element_CreateUser_account_name(tvb, offset, pinfo, tree, drep);
10484         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10485         offset = samr_dissect_element_CreateUser_access_mask(tvb, offset, pinfo, tree, drep);
10486         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10487         return offset;
10488 }
10489
10490 static int
10491 samr_dissect_element_EnumDomainUsers_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10492 {
10493         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);
10494
10495         return offset;
10496 }
10497
10498 static int
10499 samr_dissect_element_EnumDomainUsers_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10500 {
10501         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_EnumDomainUsers_domain_handle, 0);
10502
10503         return offset;
10504 }
10505
10506 static int
10507 samr_dissect_element_EnumDomainUsers_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10508 {
10509         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);
10510
10511         return offset;
10512 }
10513
10514 static int
10515 samr_dissect_element_EnumDomainUsers_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10516 {
10517         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_EnumDomainUsers_resume_handle, 0);
10518
10519         return offset;
10520 }
10521
10522 static int
10523 samr_dissect_element_EnumDomainUsers_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10524 {
10525         offset = samr_dissect_bitmap_AcctFlags(tvb, offset, pinfo, tree, drep, hf_samr_samr_EnumDomainUsers_acct_flags, 0);
10526
10527         return offset;
10528 }
10529
10530 static int
10531 samr_dissect_element_EnumDomainUsers_sam(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10532 {
10533         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);
10534
10535         return offset;
10536 }
10537
10538 static int
10539 samr_dissect_element_EnumDomainUsers_sam_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10540 {
10541         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);
10542
10543         return offset;
10544 }
10545
10546 static int
10547 samr_dissect_element_EnumDomainUsers_sam__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10548 {
10549         offset = samr_dissect_struct_SamArray(tvb,offset,pinfo,tree,drep,hf_samr_samr_EnumDomainUsers_sam,0);
10550
10551         return offset;
10552 }
10553
10554 static int
10555 samr_dissect_element_EnumDomainUsers_max_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10556 {
10557         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_EnumDomainUsers_max_size, 0);
10558
10559         return offset;
10560 }
10561
10562 static int
10563 samr_dissect_element_EnumDomainUsers_num_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10564 {
10565         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);
10566
10567         return offset;
10568 }
10569
10570 static int
10571 samr_dissect_element_EnumDomainUsers_num_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10572 {
10573         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_EnumDomainUsers_num_entries, 0);
10574
10575         return offset;
10576 }
10577
10578 /* IDL: NTSTATUS samr_EnumDomainUsers( */
10579 /* IDL: [ref] [in] policy_handle *domain_handle, */
10580 /* IDL: [out] [in] [ref] uint32 *resume_handle, */
10581 /* IDL: [in] samr_AcctFlags acct_flags, */
10582 /* IDL: [out] [ref] samr_SamArray **sam, */
10583 /* IDL: [in] uint32 max_size, */
10584 /* IDL: [out] [ref] uint32 *num_entries */
10585 /* IDL: ); */
10586
10587 static int
10588 samr_dissect_EnumDomainUsers_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10589 {
10590         guint32 status;
10591
10592         pinfo->dcerpc_procedure_name="EnumDomainUsers";
10593         offset = samr_dissect_element_EnumDomainUsers_resume_handle(tvb, offset, pinfo, tree, drep);
10594         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10595
10596         offset = samr_dissect_element_EnumDomainUsers_sam(tvb, offset, pinfo, tree, drep);
10597         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10598
10599         offset = samr_dissect_element_EnumDomainUsers_num_entries(tvb, offset, pinfo, tree, drep);
10600         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10601
10602         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
10603
10604         if (status != 0)
10605                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
10606
10607         return offset;
10608 }
10609
10610 static int
10611 samr_dissect_EnumDomainUsers_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10612 {
10613         pinfo->dcerpc_procedure_name="EnumDomainUsers";
10614         offset = samr_dissect_element_EnumDomainUsers_domain_handle(tvb, offset, pinfo, tree, drep);
10615         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10616         offset = samr_dissect_element_EnumDomainUsers_resume_handle(tvb, offset, pinfo, tree, drep);
10617         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10618         offset = samr_dissect_element_EnumDomainUsers_acct_flags(tvb, offset, pinfo, tree, drep);
10619         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10620         offset = samr_dissect_element_EnumDomainUsers_max_size(tvb, offset, pinfo, tree, drep);
10621         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10622         return offset;
10623 }
10624
10625 static int
10626 samr_dissect_element_CreateDomAlias_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10627 {
10628         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);
10629
10630         return offset;
10631 }
10632
10633 static int
10634 samr_dissect_element_CreateDomAlias_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10635 {
10636         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateDomAlias_domain_handle, 0);
10637
10638         return offset;
10639 }
10640
10641 static int
10642 samr_dissect_element_CreateDomAlias_alias_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10643 {
10644         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);
10645
10646         return offset;
10647 }
10648
10649 static int
10650 samr_dissect_element_CreateDomAlias_alias_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10651 {
10652         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_CreateDomAlias_alias_name,0);
10653
10654         return offset;
10655 }
10656
10657 static int
10658 samr_dissect_element_CreateDomAlias_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10659 {
10660         offset = samr_dissect_bitmap_AliasAccessMask(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateDomAlias_access_mask, 0);
10661
10662         return offset;
10663 }
10664
10665 static int
10666 samr_dissect_element_CreateDomAlias_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10667 {
10668         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);
10669
10670         return offset;
10671 }
10672
10673 static int
10674 samr_dissect_element_CreateDomAlias_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10675 {
10676         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateDomAlias_alias_handle, 0);
10677
10678         return offset;
10679 }
10680
10681 static int
10682 samr_dissect_element_CreateDomAlias_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10683 {
10684         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);
10685
10686         return offset;
10687 }
10688
10689 static int
10690 samr_dissect_element_CreateDomAlias_rid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10691 {
10692         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateDomAlias_rid, 0);
10693
10694         return offset;
10695 }
10696
10697 /* IDL: NTSTATUS samr_CreateDomAlias( */
10698 /* IDL: [in] [ref] policy_handle *domain_handle, */
10699 /* IDL: [in] [ref] lsa_String *alias_name, */
10700 /* IDL: [in] samr_AliasAccessMask access_mask, */
10701 /* IDL: [out] [ref] policy_handle *alias_handle, */
10702 /* IDL: [out] [ref] uint32 *rid */
10703 /* IDL: ); */
10704
10705 static int
10706 samr_dissect_CreateDomAlias_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10707 {
10708         guint32 status;
10709
10710         pinfo->dcerpc_procedure_name="CreateDomAlias";
10711         offset = samr_dissect_element_CreateDomAlias_alias_handle(tvb, offset, pinfo, tree, drep);
10712         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10713
10714         offset = samr_dissect_element_CreateDomAlias_rid(tvb, offset, pinfo, tree, drep);
10715         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10716
10717         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
10718
10719         if (status != 0)
10720                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
10721
10722         return offset;
10723 }
10724
10725 static int
10726 samr_dissect_CreateDomAlias_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10727 {
10728         pinfo->dcerpc_procedure_name="CreateDomAlias";
10729         offset = samr_dissect_element_CreateDomAlias_domain_handle(tvb, offset, pinfo, tree, drep);
10730         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10731         offset = samr_dissect_element_CreateDomAlias_alias_name(tvb, offset, pinfo, tree, drep);
10732         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10733         offset = samr_dissect_element_CreateDomAlias_access_mask(tvb, offset, pinfo, tree, drep);
10734         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10735         return offset;
10736 }
10737
10738 static int
10739 samr_dissect_element_EnumDomainAliases_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10740 {
10741         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);
10742
10743         return offset;
10744 }
10745
10746 static int
10747 samr_dissect_element_EnumDomainAliases_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10748 {
10749         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_EnumDomainAliases_domain_handle, 0);
10750
10751         return offset;
10752 }
10753
10754 static int
10755 samr_dissect_element_EnumDomainAliases_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10756 {
10757         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);
10758
10759         return offset;
10760 }
10761
10762 static int
10763 samr_dissect_element_EnumDomainAliases_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10764 {
10765         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_EnumDomainAliases_resume_handle, 0);
10766
10767         return offset;
10768 }
10769
10770 static int
10771 samr_dissect_element_EnumDomainAliases_sam(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10772 {
10773         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);
10774
10775         return offset;
10776 }
10777
10778 static int
10779 samr_dissect_element_EnumDomainAliases_sam_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10780 {
10781         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);
10782
10783         return offset;
10784 }
10785
10786 static int
10787 samr_dissect_element_EnumDomainAliases_sam__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10788 {
10789         offset = samr_dissect_struct_SamArray(tvb,offset,pinfo,tree,drep,hf_samr_samr_EnumDomainAliases_sam,0);
10790
10791         return offset;
10792 }
10793
10794 static int
10795 samr_dissect_element_EnumDomainAliases_max_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10796 {
10797         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_EnumDomainAliases_max_size, 0);
10798
10799         return offset;
10800 }
10801
10802 static int
10803 samr_dissect_element_EnumDomainAliases_num_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10804 {
10805         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);
10806
10807         return offset;
10808 }
10809
10810 static int
10811 samr_dissect_element_EnumDomainAliases_num_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10812 {
10813         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_EnumDomainAliases_num_entries, 0);
10814
10815         return offset;
10816 }
10817
10818 /* IDL: NTSTATUS samr_EnumDomainAliases( */
10819 /* IDL: [ref] [in] policy_handle *domain_handle, */
10820 /* IDL: [out] [in] [ref] uint32 *resume_handle, */
10821 /* IDL: [out] [ref] samr_SamArray **sam, */
10822 /* IDL: [in] uint32 max_size, */
10823 /* IDL: [out] [ref] uint32 *num_entries */
10824 /* IDL: ); */
10825
10826 static int
10827 samr_dissect_EnumDomainAliases_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10828 {
10829         guint32 status;
10830
10831         pinfo->dcerpc_procedure_name="EnumDomainAliases";
10832         offset = samr_dissect_element_EnumDomainAliases_resume_handle(tvb, offset, pinfo, tree, drep);
10833         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10834
10835         offset = samr_dissect_element_EnumDomainAliases_sam(tvb, offset, pinfo, tree, drep);
10836         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10837
10838         offset = samr_dissect_element_EnumDomainAliases_num_entries(tvb, offset, pinfo, tree, drep);
10839         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10840
10841         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
10842
10843         if (status != 0)
10844                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
10845
10846         return offset;
10847 }
10848
10849 static int
10850 samr_dissect_EnumDomainAliases_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10851 {
10852         pinfo->dcerpc_procedure_name="EnumDomainAliases";
10853         offset = samr_dissect_element_EnumDomainAliases_domain_handle(tvb, offset, pinfo, tree, drep);
10854         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10855         offset = samr_dissect_element_EnumDomainAliases_resume_handle(tvb, offset, pinfo, tree, drep);
10856         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10857         offset = samr_dissect_element_EnumDomainAliases_max_size(tvb, offset, pinfo, tree, drep);
10858         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10859         return offset;
10860 }
10861
10862 static int
10863 samr_dissect_element_GetAliasMembership_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10864 {
10865         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);
10866
10867         return offset;
10868 }
10869
10870 static int
10871 samr_dissect_element_GetAliasMembership_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10872 {
10873         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_GetAliasMembership_domain_handle, 0);
10874
10875         return offset;
10876 }
10877
10878 static int
10879 samr_dissect_element_GetAliasMembership_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10880 {
10881         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);
10882
10883         return offset;
10884 }
10885
10886 static int
10887 samr_dissect_element_GetAliasMembership_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10888 {
10889         offset = samr_dissect_struct_lsa_SidArray(tvb,offset,pinfo,tree,drep,hf_samr_samr_GetAliasMembership_sids,0);
10890
10891         return offset;
10892 }
10893
10894 static int
10895 samr_dissect_element_GetAliasMembership_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10896 {
10897         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);
10898
10899         return offset;
10900 }
10901
10902 static int
10903 samr_dissect_element_GetAliasMembership_rids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10904 {
10905         offset = samr_dissect_struct_Ids(tvb,offset,pinfo,tree,drep,hf_samr_samr_GetAliasMembership_rids,0);
10906
10907         return offset;
10908 }
10909
10910 /* IDL: NTSTATUS samr_GetAliasMembership( */
10911 /* IDL: [in] [ref] policy_handle *domain_handle, */
10912 /* IDL: [in] [ref] lsa_SidArray *sids, */
10913 /* IDL: [out] [ref] samr_Ids *rids */
10914 /* IDL: ); */
10915
10916 static int
10917 samr_dissect_GetAliasMembership_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10918 {
10919         guint32 status;
10920
10921         pinfo->dcerpc_procedure_name="GetAliasMembership";
10922         offset = samr_dissect_element_GetAliasMembership_rids(tvb, offset, pinfo, tree, drep);
10923         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10924
10925         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
10926
10927         if (status != 0)
10928                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
10929
10930         return offset;
10931 }
10932
10933 static int
10934 samr_dissect_GetAliasMembership_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10935 {
10936         pinfo->dcerpc_procedure_name="GetAliasMembership";
10937         offset = samr_dissect_element_GetAliasMembership_domain_handle(tvb, offset, pinfo, tree, drep);
10938         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10939         offset = samr_dissect_element_GetAliasMembership_sids(tvb, offset, pinfo, tree, drep);
10940         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
10941         return offset;
10942 }
10943
10944 static int
10945 samr_dissect_element_LookupNames_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10946 {
10947         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);
10948
10949         return offset;
10950 }
10951
10952 static int
10953 samr_dissect_element_LookupNames_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10954 {
10955         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_LookupNames_domain_handle, 0);
10956
10957         return offset;
10958 }
10959
10960 static int
10961 samr_dissect_element_LookupNames_num_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10962 {
10963         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_LookupNames_num_names, 0);
10964
10965         return offset;
10966 }
10967
10968 static int
10969 samr_dissect_element_LookupNames_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10970 {
10971         offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, samr_dissect_element_LookupNames_names_);
10972
10973         return offset;
10974 }
10975
10976 static int
10977 samr_dissect_element_LookupNames_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10978 {
10979         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_LookupNames_names,0);
10980
10981         return offset;
10982 }
10983
10984 static int
10985 samr_dissect_element_LookupNames_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10986 {
10987         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);
10988
10989         return offset;
10990 }
10991
10992 static int
10993 samr_dissect_element_LookupNames_rids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10994 {
10995         offset = samr_dissect_struct_Ids(tvb,offset,pinfo,tree,drep,hf_samr_samr_LookupNames_rids,0);
10996
10997         return offset;
10998 }
10999
11000 static int
11001 samr_dissect_element_LookupNames_types(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11002 {
11003         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);
11004
11005         return offset;
11006 }
11007
11008 static int
11009 samr_dissect_element_LookupNames_types_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11010 {
11011         offset = samr_dissect_struct_Ids(tvb,offset,pinfo,tree,drep,hf_samr_samr_LookupNames_types,0);
11012
11013         return offset;
11014 }
11015
11016 /* IDL: NTSTATUS samr_LookupNames( */
11017 /* IDL: [in] [ref] policy_handle *domain_handle, */
11018 /* IDL: [in] [range(0,1000)] uint32 num_names, */
11019 /* IDL: [in] [length_is(num_names)] [size_is(1000)] lsa_String names[*], */
11020 /* IDL: [out] [ref] samr_Ids *rids, */
11021 /* IDL: [out] [ref] samr_Ids *types */
11022 /* IDL: ); */
11023
11024 static int
11025 samr_dissect_LookupNames_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11026 {
11027         guint32 status;
11028
11029         pinfo->dcerpc_procedure_name="LookupNames";
11030         offset = samr_dissect_element_LookupNames_rids(tvb, offset, pinfo, tree, drep);
11031         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11032
11033         offset = samr_dissect_element_LookupNames_types(tvb, offset, pinfo, tree, drep);
11034         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11035
11036         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
11037
11038         if (status != 0)
11039                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
11040
11041         return offset;
11042 }
11043
11044 static int
11045 samr_dissect_LookupNames_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11046 {
11047         pinfo->dcerpc_procedure_name="LookupNames";
11048         offset = samr_dissect_element_LookupNames_domain_handle(tvb, offset, pinfo, tree, drep);
11049         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11050         offset = samr_dissect_element_LookupNames_num_names(tvb, offset, pinfo, tree, drep);
11051         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11052         offset = samr_dissect_element_LookupNames_names(tvb, offset, pinfo, tree, drep);
11053         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11054         return offset;
11055 }
11056
11057 static int
11058 samr_dissect_element_LookupRids_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11059 {
11060         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);
11061
11062         return offset;
11063 }
11064
11065 static int
11066 samr_dissect_element_LookupRids_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11067 {
11068         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_LookupRids_domain_handle, 0);
11069
11070         return offset;
11071 }
11072
11073 static int
11074 samr_dissect_element_LookupRids_num_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11075 {
11076         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_LookupRids_num_rids, 0);
11077
11078         return offset;
11079 }
11080
11081 static int
11082 samr_dissect_element_LookupRids_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11083 {
11084         offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, samr_dissect_element_LookupRids_rids_);
11085
11086         return offset;
11087 }
11088
11089 static int
11090 samr_dissect_element_LookupRids_rids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11091 {
11092         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_LookupRids_rids, 0);
11093
11094         return offset;
11095 }
11096
11097 static int
11098 samr_dissect_element_LookupRids_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11099 {
11100         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);
11101
11102         return offset;
11103 }
11104
11105 static int
11106 samr_dissect_element_LookupRids_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11107 {
11108         offset = samr_dissect_struct_lsa_Strings(tvb,offset,pinfo,tree,drep,hf_samr_samr_LookupRids_names,0);
11109
11110         return offset;
11111 }
11112
11113 static int
11114 samr_dissect_element_LookupRids_types(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11115 {
11116         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);
11117
11118         return offset;
11119 }
11120
11121 static int
11122 samr_dissect_element_LookupRids_types_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11123 {
11124         offset = samr_dissect_struct_Ids(tvb,offset,pinfo,tree,drep,hf_samr_samr_LookupRids_types,0);
11125
11126         return offset;
11127 }
11128
11129 /* IDL: NTSTATUS samr_LookupRids( */
11130 /* IDL: [in] [ref] policy_handle *domain_handle, */
11131 /* IDL: [in] [range(0,1000)] uint32 num_rids, */
11132 /* IDL: [in] [length_is(num_rids)] [size_is(1000)] uint32 rids[*], */
11133 /* IDL: [out] [ref] lsa_Strings *names, */
11134 /* IDL: [out] [ref] samr_Ids *types */
11135 /* IDL: ); */
11136
11137 static int
11138 samr_dissect_LookupRids_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11139 {
11140         guint32 status;
11141
11142         pinfo->dcerpc_procedure_name="LookupRids";
11143         offset = samr_dissect_element_LookupRids_names(tvb, offset, pinfo, tree, drep);
11144         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11145
11146         offset = samr_dissect_element_LookupRids_types(tvb, offset, pinfo, tree, drep);
11147         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11148
11149         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
11150
11151         if (status != 0)
11152                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
11153
11154         return offset;
11155 }
11156
11157 static int
11158 samr_dissect_LookupRids_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11159 {
11160         pinfo->dcerpc_procedure_name="LookupRids";
11161         offset = samr_dissect_element_LookupRids_domain_handle(tvb, offset, pinfo, tree, drep);
11162         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11163         offset = samr_dissect_element_LookupRids_num_rids(tvb, offset, pinfo, tree, drep);
11164         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11165         offset = samr_dissect_element_LookupRids_rids(tvb, offset, pinfo, tree, drep);
11166         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11167         return offset;
11168 }
11169
11170 static int
11171 samr_dissect_element_OpenGroup_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11172 {
11173         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);
11174
11175         return offset;
11176 }
11177
11178 static int
11179 samr_dissect_element_OpenGroup_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11180 {
11181         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_OpenGroup_domain_handle, 0);
11182
11183         return offset;
11184 }
11185
11186 static int
11187 samr_dissect_element_OpenGroup_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11188 {
11189         offset = samr_dissect_bitmap_GroupAccessMask(tvb, offset, pinfo, tree, drep, hf_samr_samr_OpenGroup_access_mask, 0);
11190
11191         return offset;
11192 }
11193
11194 static int
11195 samr_dissect_element_OpenGroup_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11196 {
11197         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_OpenGroup_rid, 0);
11198
11199         return offset;
11200 }
11201
11202 static int
11203 samr_dissect_element_OpenGroup_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11204 {
11205         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);
11206
11207         return offset;
11208 }
11209
11210 static int
11211 samr_dissect_element_OpenGroup_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11212 {
11213         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_OpenGroup_group_handle, 0);
11214
11215         return offset;
11216 }
11217
11218 /* IDL: NTSTATUS samr_OpenGroup( */
11219 /* IDL: [in] [ref] policy_handle *domain_handle, */
11220 /* IDL: [in] samr_GroupAccessMask access_mask, */
11221 /* IDL: [in] uint32 rid, */
11222 /* IDL: [out] [ref] policy_handle *group_handle */
11223 /* IDL: ); */
11224
11225 static int
11226 samr_dissect_OpenGroup_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11227 {
11228         guint32 status;
11229
11230         pinfo->dcerpc_procedure_name="OpenGroup";
11231         offset = samr_dissect_element_OpenGroup_group_handle(tvb, offset, pinfo, tree, drep);
11232         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11233
11234         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
11235
11236         if (status != 0)
11237                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
11238
11239         return offset;
11240 }
11241
11242 static int
11243 samr_dissect_OpenGroup_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11244 {
11245         pinfo->dcerpc_procedure_name="OpenGroup";
11246         offset = samr_dissect_element_OpenGroup_domain_handle(tvb, offset, pinfo, tree, drep);
11247         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11248         offset = samr_dissect_element_OpenGroup_access_mask(tvb, offset, pinfo, tree, drep);
11249         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11250         offset = samr_dissect_element_OpenGroup_rid(tvb, offset, pinfo, tree, drep);
11251         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11252         return offset;
11253 }
11254
11255 static int
11256 samr_dissect_element_QueryGroupInfo_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11257 {
11258         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);
11259
11260         return offset;
11261 }
11262
11263 static int
11264 samr_dissect_element_QueryGroupInfo_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11265 {
11266         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryGroupInfo_group_handle, 0);
11267
11268         return offset;
11269 }
11270
11271 static int
11272 samr_dissect_element_QueryGroupInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11273 {
11274         offset = samr_dissect_enum_GroupInfoEnum(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryGroupInfo_level, 0);
11275
11276         return offset;
11277 }
11278
11279 static int
11280 samr_dissect_element_QueryGroupInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11281 {
11282         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);
11283
11284         return offset;
11285 }
11286
11287 static int
11288 samr_dissect_element_QueryGroupInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11289 {
11290         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);
11291
11292         return offset;
11293 }
11294
11295 static int
11296 samr_dissect_element_QueryGroupInfo_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11297 {
11298         offset = samr_dissect_GroupInfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryGroupInfo_info, *0);
11299
11300         return offset;
11301 }
11302
11303 /* IDL: NTSTATUS samr_QueryGroupInfo( */
11304 /* IDL: [in] [ref] policy_handle *group_handle, */
11305 /* IDL: [in] samr_GroupInfoEnum level, */
11306 /* IDL: [out] [ref] [switch_is(level)] samr_GroupInfo **info */
11307 /* IDL: ); */
11308
11309 static int
11310 samr_dissect_QueryGroupInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11311 {
11312         guint32 status;
11313
11314         pinfo->dcerpc_procedure_name="QueryGroupInfo";
11315         offset = samr_dissect_element_QueryGroupInfo_info(tvb, offset, pinfo, tree, drep);
11316         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11317
11318         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
11319
11320         if (status != 0)
11321                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
11322
11323         return offset;
11324 }
11325
11326 static int
11327 samr_dissect_QueryGroupInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11328 {
11329         pinfo->dcerpc_procedure_name="QueryGroupInfo";
11330         offset = samr_dissect_element_QueryGroupInfo_group_handle(tvb, offset, pinfo, tree, drep);
11331         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11332         offset = samr_dissect_element_QueryGroupInfo_level(tvb, offset, pinfo, tree, drep);
11333         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11334         return offset;
11335 }
11336
11337 static int
11338 samr_dissect_element_SetGroupInfo_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11339 {
11340         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);
11341
11342         return offset;
11343 }
11344
11345 static int
11346 samr_dissect_element_SetGroupInfo_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11347 {
11348         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetGroupInfo_group_handle, 0);
11349
11350         return offset;
11351 }
11352
11353 static int
11354 samr_dissect_element_SetGroupInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11355 {
11356         offset = samr_dissect_enum_GroupInfoEnum(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetGroupInfo_level, 0);
11357
11358         return offset;
11359 }
11360
11361 static int
11362 samr_dissect_element_SetGroupInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11363 {
11364         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);
11365
11366         return offset;
11367 }
11368
11369 static int
11370 samr_dissect_element_SetGroupInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11371 {
11372         offset = samr_dissect_GroupInfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetGroupInfo_info, *0);
11373
11374         return offset;
11375 }
11376
11377 /* IDL: NTSTATUS samr_SetGroupInfo( */
11378 /* IDL: [in] [ref] policy_handle *group_handle, */
11379 /* IDL: [in] samr_GroupInfoEnum level, */
11380 /* IDL: [in] [ref] [switch_is(level)] samr_GroupInfo *info */
11381 /* IDL: ); */
11382
11383 static int
11384 samr_dissect_SetGroupInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11385 {
11386         guint32 status;
11387
11388         pinfo->dcerpc_procedure_name="SetGroupInfo";
11389         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
11390
11391         if (status != 0)
11392                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
11393
11394         return offset;
11395 }
11396
11397 static int
11398 samr_dissect_SetGroupInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11399 {
11400         pinfo->dcerpc_procedure_name="SetGroupInfo";
11401         offset = samr_dissect_element_SetGroupInfo_group_handle(tvb, offset, pinfo, tree, drep);
11402         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11403         offset = samr_dissect_element_SetGroupInfo_level(tvb, offset, pinfo, tree, drep);
11404         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11405         offset = samr_dissect_element_SetGroupInfo_info(tvb, offset, pinfo, tree, drep);
11406         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11407         return offset;
11408 }
11409
11410 static int
11411 samr_dissect_element_AddGroupMember_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11412 {
11413         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);
11414
11415         return offset;
11416 }
11417
11418 static int
11419 samr_dissect_element_AddGroupMember_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11420 {
11421         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_AddGroupMember_group_handle, 0);
11422
11423         return offset;
11424 }
11425
11426 static int
11427 samr_dissect_element_AddGroupMember_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11428 {
11429         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_AddGroupMember_rid, 0);
11430
11431         return offset;
11432 }
11433
11434 static int
11435 samr_dissect_element_AddGroupMember_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11436 {
11437         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_AddGroupMember_flags, 0);
11438
11439         return offset;
11440 }
11441
11442 /* IDL: NTSTATUS samr_AddGroupMember( */
11443 /* IDL: [in] [ref] policy_handle *group_handle, */
11444 /* IDL: [in] uint32 rid, */
11445 /* IDL: [in] uint32 flags */
11446 /* IDL: ); */
11447
11448 static int
11449 samr_dissect_AddGroupMember_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11450 {
11451         guint32 status;
11452
11453         pinfo->dcerpc_procedure_name="AddGroupMember";
11454         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
11455
11456         if (status != 0)
11457                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
11458
11459         return offset;
11460 }
11461
11462 static int
11463 samr_dissect_AddGroupMember_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11464 {
11465         pinfo->dcerpc_procedure_name="AddGroupMember";
11466         offset = samr_dissect_element_AddGroupMember_group_handle(tvb, offset, pinfo, tree, drep);
11467         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11468         offset = samr_dissect_element_AddGroupMember_rid(tvb, offset, pinfo, tree, drep);
11469         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11470         offset = samr_dissect_element_AddGroupMember_flags(tvb, offset, pinfo, tree, drep);
11471         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11472         return offset;
11473 }
11474
11475 static int
11476 samr_dissect_element_DeleteDomainGroup_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11477 {
11478         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);
11479
11480         return offset;
11481 }
11482
11483 static int
11484 samr_dissect_element_DeleteDomainGroup_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11485 {
11486         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_DeleteDomainGroup_group_handle, 0);
11487
11488         return offset;
11489 }
11490
11491 /* IDL: NTSTATUS samr_DeleteDomainGroup( */
11492 /* IDL: [out] [in] [ref] policy_handle *group_handle */
11493 /* IDL: ); */
11494
11495 static int
11496 samr_dissect_DeleteDomainGroup_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11497 {
11498         guint32 status;
11499
11500         pinfo->dcerpc_procedure_name="DeleteDomainGroup";
11501         offset = samr_dissect_element_DeleteDomainGroup_group_handle(tvb, offset, pinfo, tree, drep);
11502         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11503
11504         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
11505
11506         if (status != 0)
11507                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
11508
11509         return offset;
11510 }
11511
11512 static int
11513 samr_dissect_DeleteDomainGroup_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11514 {
11515         pinfo->dcerpc_procedure_name="DeleteDomainGroup";
11516         offset = samr_dissect_element_DeleteDomainGroup_group_handle(tvb, offset, pinfo, tree, drep);
11517         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11518         return offset;
11519 }
11520
11521 static int
11522 samr_dissect_element_DeleteGroupMember_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11523 {
11524         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);
11525
11526         return offset;
11527 }
11528
11529 static int
11530 samr_dissect_element_DeleteGroupMember_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11531 {
11532         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_DeleteGroupMember_group_handle, 0);
11533
11534         return offset;
11535 }
11536
11537 static int
11538 samr_dissect_element_DeleteGroupMember_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11539 {
11540         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_DeleteGroupMember_rid, 0);
11541
11542         return offset;
11543 }
11544
11545 /* IDL: NTSTATUS samr_DeleteGroupMember( */
11546 /* IDL: [in] [ref] policy_handle *group_handle, */
11547 /* IDL: [in] uint32 rid */
11548 /* IDL: ); */
11549
11550 static int
11551 samr_dissect_DeleteGroupMember_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11552 {
11553         guint32 status;
11554
11555         pinfo->dcerpc_procedure_name="DeleteGroupMember";
11556         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
11557
11558         if (status != 0)
11559                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
11560
11561         return offset;
11562 }
11563
11564 static int
11565 samr_dissect_DeleteGroupMember_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11566 {
11567         pinfo->dcerpc_procedure_name="DeleteGroupMember";
11568         offset = samr_dissect_element_DeleteGroupMember_group_handle(tvb, offset, pinfo, tree, drep);
11569         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11570         offset = samr_dissect_element_DeleteGroupMember_rid(tvb, offset, pinfo, tree, drep);
11571         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11572         return offset;
11573 }
11574
11575 static int
11576 samr_dissect_element_QueryGroupMember_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11577 {
11578         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);
11579
11580         return offset;
11581 }
11582
11583 static int
11584 samr_dissect_element_QueryGroupMember_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11585 {
11586         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryGroupMember_group_handle, 0);
11587
11588         return offset;
11589 }
11590
11591 static int
11592 samr_dissect_element_QueryGroupMember_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11593 {
11594         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);
11595
11596         return offset;
11597 }
11598
11599 static int
11600 samr_dissect_element_QueryGroupMember_rids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11601 {
11602         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);
11603
11604         return offset;
11605 }
11606
11607 static int
11608 samr_dissect_element_QueryGroupMember_rids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11609 {
11610         offset = samr_dissect_struct_RidAttrArray(tvb,offset,pinfo,tree,drep,hf_samr_samr_QueryGroupMember_rids,0);
11611
11612         return offset;
11613 }
11614
11615 /* IDL: NTSTATUS samr_QueryGroupMember( */
11616 /* IDL: [in] [ref] policy_handle *group_handle, */
11617 /* IDL: [out] [ref] samr_RidAttrArray **rids */
11618 /* IDL: ); */
11619
11620 static int
11621 samr_dissect_QueryGroupMember_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11622 {
11623         guint32 status;
11624
11625         pinfo->dcerpc_procedure_name="QueryGroupMember";
11626         offset = samr_dissect_element_QueryGroupMember_rids(tvb, offset, pinfo, tree, drep);
11627         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11628
11629         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
11630
11631         if (status != 0)
11632                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
11633
11634         return offset;
11635 }
11636
11637 static int
11638 samr_dissect_QueryGroupMember_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11639 {
11640         pinfo->dcerpc_procedure_name="QueryGroupMember";
11641         offset = samr_dissect_element_QueryGroupMember_group_handle(tvb, offset, pinfo, tree, drep);
11642         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11643         return offset;
11644 }
11645
11646 static int
11647 samr_dissect_element_SetMemberAttributesOfGroup_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11648 {
11649         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);
11650
11651         return offset;
11652 }
11653
11654 static int
11655 samr_dissect_element_SetMemberAttributesOfGroup_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11656 {
11657         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetMemberAttributesOfGroup_group_handle, 0);
11658
11659         return offset;
11660 }
11661
11662 static int
11663 samr_dissect_element_SetMemberAttributesOfGroup_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11664 {
11665         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetMemberAttributesOfGroup_unknown1, 0);
11666
11667         return offset;
11668 }
11669
11670 static int
11671 samr_dissect_element_SetMemberAttributesOfGroup_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11672 {
11673         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetMemberAttributesOfGroup_unknown2, 0);
11674
11675         return offset;
11676 }
11677
11678 /* IDL: NTSTATUS samr_SetMemberAttributesOfGroup( */
11679 /* IDL: [in] [ref] policy_handle *group_handle, */
11680 /* IDL: [in] uint32 unknown1, */
11681 /* IDL: [in] uint32 unknown2 */
11682 /* IDL: ); */
11683
11684 static int
11685 samr_dissect_SetMemberAttributesOfGroup_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11686 {
11687         guint32 status;
11688
11689         pinfo->dcerpc_procedure_name="SetMemberAttributesOfGroup";
11690         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
11691
11692         if (status != 0)
11693                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
11694
11695         return offset;
11696 }
11697
11698 static int
11699 samr_dissect_SetMemberAttributesOfGroup_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11700 {
11701         pinfo->dcerpc_procedure_name="SetMemberAttributesOfGroup";
11702         offset = samr_dissect_element_SetMemberAttributesOfGroup_group_handle(tvb, offset, pinfo, tree, drep);
11703         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11704         offset = samr_dissect_element_SetMemberAttributesOfGroup_unknown1(tvb, offset, pinfo, tree, drep);
11705         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11706         offset = samr_dissect_element_SetMemberAttributesOfGroup_unknown2(tvb, offset, pinfo, tree, drep);
11707         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11708         return offset;
11709 }
11710
11711 static int
11712 samr_dissect_element_OpenAlias_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11713 {
11714         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);
11715
11716         return offset;
11717 }
11718
11719 static int
11720 samr_dissect_element_OpenAlias_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11721 {
11722         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_OpenAlias_domain_handle, 0);
11723
11724         return offset;
11725 }
11726
11727 static int
11728 samr_dissect_element_OpenAlias_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11729 {
11730         offset = samr_dissect_bitmap_AliasAccessMask(tvb, offset, pinfo, tree, drep, hf_samr_samr_OpenAlias_access_mask, 0);
11731
11732         return offset;
11733 }
11734
11735 static int
11736 samr_dissect_element_OpenAlias_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11737 {
11738         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_OpenAlias_rid, 0);
11739
11740         return offset;
11741 }
11742
11743 static int
11744 samr_dissect_element_OpenAlias_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11745 {
11746         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);
11747
11748         return offset;
11749 }
11750
11751 static int
11752 samr_dissect_element_OpenAlias_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11753 {
11754         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_OpenAlias_alias_handle, 0);
11755
11756         return offset;
11757 }
11758
11759 /* IDL: NTSTATUS samr_OpenAlias( */
11760 /* IDL: [in] [ref] policy_handle *domain_handle, */
11761 /* IDL: [in] samr_AliasAccessMask access_mask, */
11762 /* IDL: [in] uint32 rid, */
11763 /* IDL: [out] [ref] policy_handle *alias_handle */
11764 /* IDL: ); */
11765
11766 static int
11767 samr_dissect_OpenAlias_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11768 {
11769         guint32 status;
11770
11771         pinfo->dcerpc_procedure_name="OpenAlias";
11772         offset = samr_dissect_element_OpenAlias_alias_handle(tvb, offset, pinfo, tree, drep);
11773         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11774
11775         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
11776
11777         if (status != 0)
11778                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
11779
11780         return offset;
11781 }
11782
11783 static int
11784 samr_dissect_OpenAlias_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11785 {
11786         pinfo->dcerpc_procedure_name="OpenAlias";
11787         offset = samr_dissect_element_OpenAlias_domain_handle(tvb, offset, pinfo, tree, drep);
11788         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11789         offset = samr_dissect_element_OpenAlias_access_mask(tvb, offset, pinfo, tree, drep);
11790         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11791         offset = samr_dissect_element_OpenAlias_rid(tvb, offset, pinfo, tree, drep);
11792         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11793         return offset;
11794 }
11795
11796 static int
11797 samr_dissect_element_QueryAliasInfo_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11798 {
11799         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);
11800
11801         return offset;
11802 }
11803
11804 static int
11805 samr_dissect_element_QueryAliasInfo_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11806 {
11807         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryAliasInfo_alias_handle, 0);
11808
11809         return offset;
11810 }
11811
11812 static int
11813 samr_dissect_element_QueryAliasInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11814 {
11815         offset = samr_dissect_enum_AliasInfoEnum(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryAliasInfo_level, 0);
11816
11817         return offset;
11818 }
11819
11820 static int
11821 samr_dissect_element_QueryAliasInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11822 {
11823         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);
11824
11825         return offset;
11826 }
11827
11828 static int
11829 samr_dissect_element_QueryAliasInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11830 {
11831         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);
11832
11833         return offset;
11834 }
11835
11836 static int
11837 samr_dissect_element_QueryAliasInfo_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11838 {
11839         offset = samr_dissect_AliasInfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryAliasInfo_info, *0);
11840
11841         return offset;
11842 }
11843
11844 /* IDL: NTSTATUS samr_QueryAliasInfo( */
11845 /* IDL: [in] [ref] policy_handle *alias_handle, */
11846 /* IDL: [in] samr_AliasInfoEnum level, */
11847 /* IDL: [out] [ref] [switch_is(level)] samr_AliasInfo **info */
11848 /* IDL: ); */
11849
11850 static int
11851 samr_dissect_QueryAliasInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11852 {
11853         guint32 status;
11854
11855         pinfo->dcerpc_procedure_name="QueryAliasInfo";
11856         offset = samr_dissect_element_QueryAliasInfo_info(tvb, offset, pinfo, tree, drep);
11857         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11858
11859         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
11860
11861         if (status != 0)
11862                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
11863
11864         return offset;
11865 }
11866
11867 static int
11868 samr_dissect_QueryAliasInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11869 {
11870         pinfo->dcerpc_procedure_name="QueryAliasInfo";
11871         offset = samr_dissect_element_QueryAliasInfo_alias_handle(tvb, offset, pinfo, tree, drep);
11872         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11873         offset = samr_dissect_element_QueryAliasInfo_level(tvb, offset, pinfo, tree, drep);
11874         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11875         return offset;
11876 }
11877
11878 static int
11879 samr_dissect_element_SetAliasInfo_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11880 {
11881         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);
11882
11883         return offset;
11884 }
11885
11886 static int
11887 samr_dissect_element_SetAliasInfo_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11888 {
11889         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetAliasInfo_alias_handle, 0);
11890
11891         return offset;
11892 }
11893
11894 static int
11895 samr_dissect_element_SetAliasInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11896 {
11897         offset = samr_dissect_enum_AliasInfoEnum(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetAliasInfo_level, 0);
11898
11899         return offset;
11900 }
11901
11902 static int
11903 samr_dissect_element_SetAliasInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11904 {
11905         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);
11906
11907         return offset;
11908 }
11909
11910 static int
11911 samr_dissect_element_SetAliasInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11912 {
11913         offset = samr_dissect_AliasInfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetAliasInfo_info, *0);
11914
11915         return offset;
11916 }
11917
11918 /* IDL: NTSTATUS samr_SetAliasInfo( */
11919 /* IDL: [in] [ref] policy_handle *alias_handle, */
11920 /* IDL: [in] samr_AliasInfoEnum level, */
11921 /* IDL: [in] [ref] [switch_is(level)] samr_AliasInfo *info */
11922 /* IDL: ); */
11923
11924 static int
11925 samr_dissect_SetAliasInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11926 {
11927         guint32 status;
11928
11929         pinfo->dcerpc_procedure_name="SetAliasInfo";
11930         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
11931
11932         if (status != 0)
11933                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
11934
11935         return offset;
11936 }
11937
11938 static int
11939 samr_dissect_SetAliasInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11940 {
11941         pinfo->dcerpc_procedure_name="SetAliasInfo";
11942         offset = samr_dissect_element_SetAliasInfo_alias_handle(tvb, offset, pinfo, tree, drep);
11943         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11944         offset = samr_dissect_element_SetAliasInfo_level(tvb, offset, pinfo, tree, drep);
11945         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11946         offset = samr_dissect_element_SetAliasInfo_info(tvb, offset, pinfo, tree, drep);
11947         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11948         return offset;
11949 }
11950
11951 static int
11952 samr_dissect_element_DeleteDomAlias_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11953 {
11954         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);
11955
11956         return offset;
11957 }
11958
11959 static int
11960 samr_dissect_element_DeleteDomAlias_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11961 {
11962         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_DeleteDomAlias_alias_handle, 0);
11963
11964         return offset;
11965 }
11966
11967 /* IDL: NTSTATUS samr_DeleteDomAlias( */
11968 /* IDL: [out] [in] [ref] policy_handle *alias_handle */
11969 /* IDL: ); */
11970
11971 static int
11972 samr_dissect_DeleteDomAlias_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11973 {
11974         guint32 status;
11975
11976         pinfo->dcerpc_procedure_name="DeleteDomAlias";
11977         offset = samr_dissect_element_DeleteDomAlias_alias_handle(tvb, offset, pinfo, tree, drep);
11978         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11979
11980         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
11981
11982         if (status != 0)
11983                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
11984
11985         return offset;
11986 }
11987
11988 static int
11989 samr_dissect_DeleteDomAlias_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11990 {
11991         pinfo->dcerpc_procedure_name="DeleteDomAlias";
11992         offset = samr_dissect_element_DeleteDomAlias_alias_handle(tvb, offset, pinfo, tree, drep);
11993         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
11994         return offset;
11995 }
11996
11997 static int
11998 samr_dissect_element_AddAliasMember_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11999 {
12000         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);
12001
12002         return offset;
12003 }
12004
12005 static int
12006 samr_dissect_element_AddAliasMember_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12007 {
12008         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_AddAliasMember_alias_handle, 0);
12009
12010         return offset;
12011 }
12012
12013 static int
12014 samr_dissect_element_AddAliasMember_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12015 {
12016         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);
12017
12018         return offset;
12019 }
12020
12021 static int
12022 samr_dissect_element_AddAliasMember_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12023 {
12024         offset = samr_dissect_struct_dom_sid2(tvb,offset,pinfo,tree,drep,hf_samr_samr_AddAliasMember_sid,0);
12025
12026         return offset;
12027 }
12028
12029 /* IDL: NTSTATUS samr_AddAliasMember( */
12030 /* IDL: [in] [ref] policy_handle *alias_handle, */
12031 /* IDL: [in] [ref] dom_sid2 *sid */
12032 /* IDL: ); */
12033
12034 static int
12035 samr_dissect_AddAliasMember_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12036 {
12037         guint32 status;
12038
12039         pinfo->dcerpc_procedure_name="AddAliasMember";
12040         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
12041
12042         if (status != 0)
12043                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
12044
12045         return offset;
12046 }
12047
12048 static int
12049 samr_dissect_AddAliasMember_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12050 {
12051         pinfo->dcerpc_procedure_name="AddAliasMember";
12052         offset = samr_dissect_element_AddAliasMember_alias_handle(tvb, offset, pinfo, tree, drep);
12053         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12054         offset = samr_dissect_element_AddAliasMember_sid(tvb, offset, pinfo, tree, drep);
12055         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12056         return offset;
12057 }
12058
12059 static int
12060 samr_dissect_element_DeleteAliasMember_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12061 {
12062         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);
12063
12064         return offset;
12065 }
12066
12067 static int
12068 samr_dissect_element_DeleteAliasMember_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12069 {
12070         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_DeleteAliasMember_alias_handle, 0);
12071
12072         return offset;
12073 }
12074
12075 static int
12076 samr_dissect_element_DeleteAliasMember_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12077 {
12078         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);
12079
12080         return offset;
12081 }
12082
12083 static int
12084 samr_dissect_element_DeleteAliasMember_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12085 {
12086         offset = samr_dissect_struct_dom_sid2(tvb,offset,pinfo,tree,drep,hf_samr_samr_DeleteAliasMember_sid,0);
12087
12088         return offset;
12089 }
12090
12091 /* IDL: NTSTATUS samr_DeleteAliasMember( */
12092 /* IDL: [in] [ref] policy_handle *alias_handle, */
12093 /* IDL: [in] [ref] dom_sid2 *sid */
12094 /* IDL: ); */
12095
12096 static int
12097 samr_dissect_DeleteAliasMember_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12098 {
12099         guint32 status;
12100
12101         pinfo->dcerpc_procedure_name="DeleteAliasMember";
12102         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
12103
12104         if (status != 0)
12105                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
12106
12107         return offset;
12108 }
12109
12110 static int
12111 samr_dissect_DeleteAliasMember_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12112 {
12113         pinfo->dcerpc_procedure_name="DeleteAliasMember";
12114         offset = samr_dissect_element_DeleteAliasMember_alias_handle(tvb, offset, pinfo, tree, drep);
12115         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12116         offset = samr_dissect_element_DeleteAliasMember_sid(tvb, offset, pinfo, tree, drep);
12117         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12118         return offset;
12119 }
12120
12121 static int
12122 samr_dissect_element_GetMembersInAlias_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12123 {
12124         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);
12125
12126         return offset;
12127 }
12128
12129 static int
12130 samr_dissect_element_GetMembersInAlias_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12131 {
12132         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_GetMembersInAlias_alias_handle, 0);
12133
12134         return offset;
12135 }
12136
12137 static int
12138 samr_dissect_element_GetMembersInAlias_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12139 {
12140         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);
12141
12142         return offset;
12143 }
12144
12145 static int
12146 samr_dissect_element_GetMembersInAlias_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12147 {
12148         offset = samr_dissect_struct_lsa_SidArray(tvb,offset,pinfo,tree,drep,hf_samr_samr_GetMembersInAlias_sids,0);
12149
12150         return offset;
12151 }
12152
12153 /* IDL: NTSTATUS samr_GetMembersInAlias( */
12154 /* IDL: [in] [ref] policy_handle *alias_handle, */
12155 /* IDL: [out] [ref] lsa_SidArray *sids */
12156 /* IDL: ); */
12157
12158 static int
12159 samr_dissect_GetMembersInAlias_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12160 {
12161         guint32 status;
12162
12163         pinfo->dcerpc_procedure_name="GetMembersInAlias";
12164         offset = samr_dissect_element_GetMembersInAlias_sids(tvb, offset, pinfo, tree, drep);
12165         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12166
12167         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
12168
12169         if (status != 0)
12170                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
12171
12172         return offset;
12173 }
12174
12175 static int
12176 samr_dissect_GetMembersInAlias_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12177 {
12178         pinfo->dcerpc_procedure_name="GetMembersInAlias";
12179         offset = samr_dissect_element_GetMembersInAlias_alias_handle(tvb, offset, pinfo, tree, drep);
12180         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12181         return offset;
12182 }
12183
12184 static int
12185 samr_dissect_element_OpenUser_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12186 {
12187         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);
12188
12189         return offset;
12190 }
12191
12192 static int
12193 samr_dissect_element_OpenUser_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12194 {
12195         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_OpenUser_domain_handle, 0);
12196
12197         return offset;
12198 }
12199
12200 static int
12201 samr_dissect_element_OpenUser_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12202 {
12203         offset = samr_dissect_bitmap_UserAccessMask(tvb, offset, pinfo, tree, drep, hf_samr_samr_OpenUser_access_mask, 0);
12204
12205         return offset;
12206 }
12207
12208 static int
12209 samr_dissect_element_OpenUser_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12210 {
12211         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_OpenUser_rid, 0);
12212
12213         return offset;
12214 }
12215
12216 static int
12217 samr_dissect_element_OpenUser_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12218 {
12219         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);
12220
12221         return offset;
12222 }
12223
12224 static int
12225 samr_dissect_element_OpenUser_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12226 {
12227         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_OpenUser_user_handle, 0);
12228
12229         return offset;
12230 }
12231
12232 /* IDL: NTSTATUS samr_OpenUser( */
12233 /* IDL: [in] [ref] policy_handle *domain_handle, */
12234 /* IDL: [in] samr_UserAccessMask access_mask, */
12235 /* IDL: [in] uint32 rid, */
12236 /* IDL: [out] [ref] policy_handle *user_handle */
12237 /* IDL: ); */
12238
12239 static int
12240 samr_dissect_OpenUser_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12241 {
12242         guint32 status;
12243
12244         pinfo->dcerpc_procedure_name="OpenUser";
12245         offset = samr_dissect_element_OpenUser_user_handle(tvb, offset, pinfo, tree, drep);
12246         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12247
12248         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
12249
12250         if (status != 0)
12251                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
12252
12253         return offset;
12254 }
12255
12256 static int
12257 samr_dissect_OpenUser_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12258 {
12259         pinfo->dcerpc_procedure_name="OpenUser";
12260         offset = samr_dissect_element_OpenUser_domain_handle(tvb, offset, pinfo, tree, drep);
12261         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12262         offset = samr_dissect_element_OpenUser_access_mask(tvb, offset, pinfo, tree, drep);
12263         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12264         offset = samr_dissect_element_OpenUser_rid(tvb, offset, pinfo, tree, drep);
12265         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12266         return offset;
12267 }
12268
12269 static int
12270 samr_dissect_element_DeleteUser_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12271 {
12272         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);
12273
12274         return offset;
12275 }
12276
12277 static int
12278 samr_dissect_element_DeleteUser_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12279 {
12280         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_DeleteUser_user_handle, 0);
12281
12282         return offset;
12283 }
12284
12285 /* IDL: NTSTATUS samr_DeleteUser( */
12286 /* IDL: [out] [in] [ref] policy_handle *user_handle */
12287 /* IDL: ); */
12288
12289 static int
12290 samr_dissect_DeleteUser_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12291 {
12292         guint32 status;
12293
12294         pinfo->dcerpc_procedure_name="DeleteUser";
12295         offset = samr_dissect_element_DeleteUser_user_handle(tvb, offset, pinfo, tree, drep);
12296         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12297
12298         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
12299
12300         if (status != 0)
12301                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
12302
12303         return offset;
12304 }
12305
12306 static int
12307 samr_dissect_DeleteUser_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12308 {
12309         pinfo->dcerpc_procedure_name="DeleteUser";
12310         offset = samr_dissect_element_DeleteUser_user_handle(tvb, offset, pinfo, tree, drep);
12311         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12312         return offset;
12313 }
12314
12315 static int
12316 samr_dissect_element_QueryUserInfo_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12317 {
12318         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);
12319
12320         return offset;
12321 }
12322
12323 static int
12324 samr_dissect_element_QueryUserInfo_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12325 {
12326         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryUserInfo_user_handle, 0);
12327
12328         return offset;
12329 }
12330
12331 static int
12332 samr_dissect_element_QueryUserInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12333 {
12334         offset = samr_dissect_enum_UserInfoLevel(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryUserInfo_level, 0);
12335
12336         return offset;
12337 }
12338
12339 static int
12340 samr_dissect_element_QueryUserInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12341 {
12342         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);
12343
12344         return offset;
12345 }
12346
12347 static int
12348 samr_dissect_element_QueryUserInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12349 {
12350         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);
12351
12352         return offset;
12353 }
12354
12355 static int
12356 samr_dissect_element_QueryUserInfo_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12357 {
12358         offset = samr_dissect_UserInfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryUserInfo_info, *0);
12359
12360         return offset;
12361 }
12362
12363 /* IDL: NTSTATUS samr_QueryUserInfo( */
12364 /* IDL: [in] [ref] policy_handle *user_handle, */
12365 /* IDL: [in] samr_UserInfoLevel level, */
12366 /* IDL: [out] [ref] [switch_is(level)] samr_UserInfo **info */
12367 /* IDL: ); */
12368
12369 static int
12370 samr_dissect_QueryUserInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12371 {
12372         guint32 status;
12373
12374         pinfo->dcerpc_procedure_name="QueryUserInfo";
12375         offset = samr_dissect_element_QueryUserInfo_info(tvb, offset, pinfo, tree, drep);
12376         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12377
12378         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
12379
12380         if (status != 0)
12381                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
12382
12383         return offset;
12384 }
12385
12386 static int
12387 samr_dissect_QueryUserInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12388 {
12389         pinfo->dcerpc_procedure_name="QueryUserInfo";
12390         offset = samr_dissect_element_QueryUserInfo_user_handle(tvb, offset, pinfo, tree, drep);
12391         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12392         offset = samr_dissect_element_QueryUserInfo_level(tvb, offset, pinfo, tree, drep);
12393         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12394         return offset;
12395 }
12396
12397 static int
12398 samr_dissect_element_SetUserInfo_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12399 {
12400         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);
12401
12402         return offset;
12403 }
12404
12405 static int
12406 samr_dissect_element_SetUserInfo_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12407 {
12408         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetUserInfo_user_handle, 0);
12409
12410         return offset;
12411 }
12412
12413 static int
12414 samr_dissect_element_SetUserInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12415 {
12416         offset = samr_dissect_enum_UserInfoLevel(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetUserInfo_level, 0);
12417
12418         return offset;
12419 }
12420
12421 static int
12422 samr_dissect_element_SetUserInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12423 {
12424         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);
12425
12426         return offset;
12427 }
12428
12429 static int
12430 samr_dissect_element_SetUserInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12431 {
12432         offset = samr_dissect_UserInfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetUserInfo_info, *0);
12433
12434         return offset;
12435 }
12436
12437 /* IDL: NTSTATUS samr_SetUserInfo( */
12438 /* IDL: [in] [ref] policy_handle *user_handle, */
12439 /* IDL: [in] samr_UserInfoLevel level, */
12440 /* IDL: [ref] [in] [switch_is(level)] samr_UserInfo *info */
12441 /* IDL: ); */
12442
12443 static int
12444 samr_dissect_SetUserInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12445 {
12446         guint32 status;
12447
12448         pinfo->dcerpc_procedure_name="SetUserInfo";
12449         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
12450
12451         if (status != 0)
12452                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
12453
12454         return offset;
12455 }
12456
12457 static int
12458 samr_dissect_SetUserInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12459 {
12460         pinfo->dcerpc_procedure_name="SetUserInfo";
12461         offset = samr_dissect_element_SetUserInfo_user_handle(tvb, offset, pinfo, tree, drep);
12462         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12463         offset = samr_dissect_element_SetUserInfo_level(tvb, offset, pinfo, tree, drep);
12464         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12465         offset = samr_dissect_element_SetUserInfo_info(tvb, offset, pinfo, tree, drep);
12466         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12467         return offset;
12468 }
12469
12470 static int
12471 samr_dissect_element_ChangePasswordUser_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12472 {
12473         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);
12474
12475         return offset;
12476 }
12477
12478 static int
12479 samr_dissect_element_ChangePasswordUser_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12480 {
12481         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_ChangePasswordUser_user_handle, 0);
12482
12483         return offset;
12484 }
12485
12486 static int
12487 samr_dissect_element_ChangePasswordUser_lm_present(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12488 {
12489         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_ChangePasswordUser_lm_present, 0);
12490
12491         return offset;
12492 }
12493
12494 static int
12495 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_)
12496 {
12497         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);
12498
12499         return offset;
12500 }
12501
12502 static int
12503 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_)
12504 {
12505         offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser_old_lm_crypted,0);
12506
12507         return offset;
12508 }
12509
12510 static int
12511 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_)
12512 {
12513         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);
12514
12515         return offset;
12516 }
12517
12518 static int
12519 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_)
12520 {
12521         offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser_new_lm_crypted,0);
12522
12523         return offset;
12524 }
12525
12526 static int
12527 samr_dissect_element_ChangePasswordUser_nt_present(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12528 {
12529         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_ChangePasswordUser_nt_present, 0);
12530
12531         return offset;
12532 }
12533
12534 static int
12535 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_)
12536 {
12537         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);
12538
12539         return offset;
12540 }
12541
12542 static int
12543 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_)
12544 {
12545         offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser_old_nt_crypted,0);
12546
12547         return offset;
12548 }
12549
12550 static int
12551 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_)
12552 {
12553         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);
12554
12555         return offset;
12556 }
12557
12558 static int
12559 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_)
12560 {
12561         offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser_new_nt_crypted,0);
12562
12563         return offset;
12564 }
12565
12566 static int
12567 samr_dissect_element_ChangePasswordUser_cross1_present(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12568 {
12569         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_ChangePasswordUser_cross1_present, 0);
12570
12571         return offset;
12572 }
12573
12574 static int
12575 samr_dissect_element_ChangePasswordUser_nt_cross(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12576 {
12577         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);
12578
12579         return offset;
12580 }
12581
12582 static int
12583 samr_dissect_element_ChangePasswordUser_nt_cross_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12584 {
12585         offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser_nt_cross,0);
12586
12587         return offset;
12588 }
12589
12590 static int
12591 samr_dissect_element_ChangePasswordUser_cross2_present(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12592 {
12593         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_ChangePasswordUser_cross2_present, 0);
12594
12595         return offset;
12596 }
12597
12598 static int
12599 samr_dissect_element_ChangePasswordUser_lm_cross(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12600 {
12601         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);
12602
12603         return offset;
12604 }
12605
12606 static int
12607 samr_dissect_element_ChangePasswordUser_lm_cross_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12608 {
12609         offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser_lm_cross,0);
12610
12611         return offset;
12612 }
12613
12614 /* IDL: NTSTATUS samr_ChangePasswordUser( */
12615 /* IDL: [in] [ref] policy_handle *user_handle, */
12616 /* IDL: [in] uint8 lm_present, */
12617 /* IDL: [unique(1)] [in] samr_Password *old_lm_crypted, */
12618 /* IDL: [unique(1)] [in] samr_Password *new_lm_crypted, */
12619 /* IDL: [in] uint8 nt_present, */
12620 /* IDL: [unique(1)] [in] samr_Password *old_nt_crypted, */
12621 /* IDL: [unique(1)] [in] samr_Password *new_nt_crypted, */
12622 /* IDL: [in] uint8 cross1_present, */
12623 /* IDL: [unique(1)] [in] samr_Password *nt_cross, */
12624 /* IDL: [in] uint8 cross2_present, */
12625 /* IDL: [unique(1)] [in] samr_Password *lm_cross */
12626 /* IDL: ); */
12627
12628 static int
12629 samr_dissect_ChangePasswordUser_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12630 {
12631         guint32 status;
12632
12633         pinfo->dcerpc_procedure_name="ChangePasswordUser";
12634         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
12635
12636         if (status != 0)
12637                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
12638
12639         return offset;
12640 }
12641
12642 static int
12643 samr_dissect_ChangePasswordUser_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12644 {
12645         pinfo->dcerpc_procedure_name="ChangePasswordUser";
12646         offset = samr_dissect_element_ChangePasswordUser_user_handle(tvb, offset, pinfo, tree, drep);
12647         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12648         offset = samr_dissect_element_ChangePasswordUser_lm_present(tvb, offset, pinfo, tree, drep);
12649         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12650         offset = samr_dissect_element_ChangePasswordUser_old_lm_crypted(tvb, offset, pinfo, tree, drep);
12651         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12652         offset = samr_dissect_element_ChangePasswordUser_new_lm_crypted(tvb, offset, pinfo, tree, drep);
12653         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12654         offset = samr_dissect_element_ChangePasswordUser_nt_present(tvb, offset, pinfo, tree, drep);
12655         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12656         offset = samr_dissect_element_ChangePasswordUser_old_nt_crypted(tvb, offset, pinfo, tree, drep);
12657         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12658         offset = samr_dissect_element_ChangePasswordUser_new_nt_crypted(tvb, offset, pinfo, tree, drep);
12659         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12660         offset = samr_dissect_element_ChangePasswordUser_cross1_present(tvb, offset, pinfo, tree, drep);
12661         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12662         offset = samr_dissect_element_ChangePasswordUser_nt_cross(tvb, offset, pinfo, tree, drep);
12663         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12664         offset = samr_dissect_element_ChangePasswordUser_cross2_present(tvb, offset, pinfo, tree, drep);
12665         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12666         offset = samr_dissect_element_ChangePasswordUser_lm_cross(tvb, offset, pinfo, tree, drep);
12667         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12668         return offset;
12669 }
12670
12671 static int
12672 samr_dissect_element_GetGroupsForUser_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12673 {
12674         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);
12675
12676         return offset;
12677 }
12678
12679 static int
12680 samr_dissect_element_GetGroupsForUser_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12681 {
12682         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_GetGroupsForUser_user_handle, 0);
12683
12684         return offset;
12685 }
12686
12687 static int
12688 samr_dissect_element_GetGroupsForUser_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12689 {
12690         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);
12691
12692         return offset;
12693 }
12694
12695 static int
12696 samr_dissect_element_GetGroupsForUser_rids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12697 {
12698         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);
12699
12700         return offset;
12701 }
12702
12703 static int
12704 samr_dissect_element_GetGroupsForUser_rids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12705 {
12706         offset = samr_dissect_struct_RidWithAttributeArray(tvb,offset,pinfo,tree,drep,hf_samr_samr_GetGroupsForUser_rids,0);
12707
12708         return offset;
12709 }
12710
12711 /* IDL: NTSTATUS samr_GetGroupsForUser( */
12712 /* IDL: [in] [ref] policy_handle *user_handle, */
12713 /* IDL: [out] [ref] samr_RidWithAttributeArray **rids */
12714 /* IDL: ); */
12715
12716 static int
12717 samr_dissect_GetGroupsForUser_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12718 {
12719         guint32 status;
12720
12721         pinfo->dcerpc_procedure_name="GetGroupsForUser";
12722         offset = samr_dissect_element_GetGroupsForUser_rids(tvb, offset, pinfo, tree, drep);
12723         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12724
12725         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
12726
12727         if (status != 0)
12728                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
12729
12730         return offset;
12731 }
12732
12733 static int
12734 samr_dissect_GetGroupsForUser_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12735 {
12736         pinfo->dcerpc_procedure_name="GetGroupsForUser";
12737         offset = samr_dissect_element_GetGroupsForUser_user_handle(tvb, offset, pinfo, tree, drep);
12738         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12739         return offset;
12740 }
12741
12742 static int
12743 samr_dissect_element_QueryDisplayInfo_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12744 {
12745         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);
12746
12747         return offset;
12748 }
12749
12750 static int
12751 samr_dissect_element_QueryDisplayInfo_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12752 {
12753         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo_domain_handle, 0);
12754
12755         return offset;
12756 }
12757
12758 static int
12759 samr_dissect_element_QueryDisplayInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12760 {
12761         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo_level, 0);
12762
12763         return offset;
12764 }
12765
12766 static int
12767 samr_dissect_element_QueryDisplayInfo_start_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12768 {
12769         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo_start_idx, 0);
12770
12771         return offset;
12772 }
12773
12774 static int
12775 samr_dissect_element_QueryDisplayInfo_max_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12776 {
12777         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo_max_entries, 0);
12778
12779         return offset;
12780 }
12781
12782 static int
12783 samr_dissect_element_QueryDisplayInfo_buf_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12784 {
12785         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo_buf_size, 0);
12786
12787         return offset;
12788 }
12789
12790 static int
12791 samr_dissect_element_QueryDisplayInfo_total_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12792 {
12793         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);
12794
12795         return offset;
12796 }
12797
12798 static int
12799 samr_dissect_element_QueryDisplayInfo_total_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12800 {
12801         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo_total_size, 0);
12802
12803         return offset;
12804 }
12805
12806 static int
12807 samr_dissect_element_QueryDisplayInfo_returned_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12808 {
12809         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);
12810
12811         return offset;
12812 }
12813
12814 static int
12815 samr_dissect_element_QueryDisplayInfo_returned_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12816 {
12817         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo_returned_size, 0);
12818
12819         return offset;
12820 }
12821
12822 static int
12823 samr_dissect_element_QueryDisplayInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12824 {
12825         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);
12826
12827         return offset;
12828 }
12829
12830 static int
12831 samr_dissect_element_QueryDisplayInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12832 {
12833         offset = samr_dissect_DispInfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo_info, *0);
12834
12835         return offset;
12836 }
12837
12838 /* IDL: NTSTATUS samr_QueryDisplayInfo( */
12839 /* IDL: [in] [ref] policy_handle *domain_handle, */
12840 /* IDL: [in] uint16 level, */
12841 /* IDL: [in] uint32 start_idx, */
12842 /* IDL: [in] uint32 max_entries, */
12843 /* IDL: [in] uint32 buf_size, */
12844 /* IDL: [out] [ref] uint32 *total_size, */
12845 /* IDL: [out] [ref] uint32 *returned_size, */
12846 /* IDL: [out] [ref] [switch_is(level)] samr_DispInfo *info */
12847 /* IDL: ); */
12848
12849 static int
12850 samr_dissect_QueryDisplayInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12851 {
12852         guint32 status;
12853
12854         pinfo->dcerpc_procedure_name="QueryDisplayInfo";
12855         offset = samr_dissect_element_QueryDisplayInfo_total_size(tvb, offset, pinfo, tree, drep);
12856         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12857
12858         offset = samr_dissect_element_QueryDisplayInfo_returned_size(tvb, offset, pinfo, tree, drep);
12859         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12860
12861         offset = samr_dissect_element_QueryDisplayInfo_info(tvb, offset, pinfo, tree, drep);
12862         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12863
12864         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
12865
12866         if (status != 0)
12867                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
12868
12869         return offset;
12870 }
12871
12872 static int
12873 samr_dissect_QueryDisplayInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12874 {
12875         pinfo->dcerpc_procedure_name="QueryDisplayInfo";
12876         offset = samr_dissect_element_QueryDisplayInfo_domain_handle(tvb, offset, pinfo, tree, drep);
12877         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12878         offset = samr_dissect_element_QueryDisplayInfo_level(tvb, offset, pinfo, tree, drep);
12879         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12880         offset = samr_dissect_element_QueryDisplayInfo_start_idx(tvb, offset, pinfo, tree, drep);
12881         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12882         offset = samr_dissect_element_QueryDisplayInfo_max_entries(tvb, offset, pinfo, tree, drep);
12883         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12884         offset = samr_dissect_element_QueryDisplayInfo_buf_size(tvb, offset, pinfo, tree, drep);
12885         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12886         return offset;
12887 }
12888
12889 static int
12890 samr_dissect_element_GetDisplayEnumerationIndex_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12891 {
12892         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);
12893
12894         return offset;
12895 }
12896
12897 static int
12898 samr_dissect_element_GetDisplayEnumerationIndex_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12899 {
12900         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_GetDisplayEnumerationIndex_domain_handle, 0);
12901
12902         return offset;
12903 }
12904
12905 static int
12906 samr_dissect_element_GetDisplayEnumerationIndex_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12907 {
12908         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_GetDisplayEnumerationIndex_level, 0);
12909
12910         return offset;
12911 }
12912
12913 static int
12914 samr_dissect_element_GetDisplayEnumerationIndex_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12915 {
12916         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);
12917
12918         return offset;
12919 }
12920
12921 static int
12922 samr_dissect_element_GetDisplayEnumerationIndex_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12923 {
12924         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_GetDisplayEnumerationIndex_name,0);
12925
12926         return offset;
12927 }
12928
12929 static int
12930 samr_dissect_element_GetDisplayEnumerationIndex_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12931 {
12932         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);
12933
12934         return offset;
12935 }
12936
12937 static int
12938 samr_dissect_element_GetDisplayEnumerationIndex_idx_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12939 {
12940         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_GetDisplayEnumerationIndex_idx, 0);
12941
12942         return offset;
12943 }
12944
12945 /* IDL: NTSTATUS samr_GetDisplayEnumerationIndex( */
12946 /* IDL: [in] [ref] policy_handle *domain_handle, */
12947 /* IDL: [in] uint16 level, */
12948 /* IDL: [in] [ref] lsa_String *name, */
12949 /* IDL: [out] [ref] uint32 *idx */
12950 /* IDL: ); */
12951
12952 static int
12953 samr_dissect_GetDisplayEnumerationIndex_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12954 {
12955         guint32 status;
12956
12957         pinfo->dcerpc_procedure_name="GetDisplayEnumerationIndex";
12958         offset = samr_dissect_element_GetDisplayEnumerationIndex_idx(tvb, offset, pinfo, tree, drep);
12959         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12960
12961         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
12962
12963         if (status != 0)
12964                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
12965
12966         return offset;
12967 }
12968
12969 static int
12970 samr_dissect_GetDisplayEnumerationIndex_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12971 {
12972         pinfo->dcerpc_procedure_name="GetDisplayEnumerationIndex";
12973         offset = samr_dissect_element_GetDisplayEnumerationIndex_domain_handle(tvb, offset, pinfo, tree, drep);
12974         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12975         offset = samr_dissect_element_GetDisplayEnumerationIndex_level(tvb, offset, pinfo, tree, drep);
12976         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12977         offset = samr_dissect_element_GetDisplayEnumerationIndex_name(tvb, offset, pinfo, tree, drep);
12978         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
12979         return offset;
12980 }
12981
12982 static int
12983 samr_dissect_element_TestPrivateFunctionsDomain_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12984 {
12985         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);
12986
12987         return offset;
12988 }
12989
12990 static int
12991 samr_dissect_element_TestPrivateFunctionsDomain_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12992 {
12993         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_TestPrivateFunctionsDomain_domain_handle, 0);
12994
12995         return offset;
12996 }
12997
12998 /* IDL: NTSTATUS samr_TestPrivateFunctionsDomain( */
12999 /* IDL: [in] [ref] policy_handle *domain_handle */
13000 /* IDL: ); */
13001
13002 static int
13003 samr_dissect_TestPrivateFunctionsDomain_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13004 {
13005         guint32 status;
13006
13007         pinfo->dcerpc_procedure_name="TestPrivateFunctionsDomain";
13008         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
13009
13010         if (status != 0)
13011                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
13012
13013         return offset;
13014 }
13015
13016 static int
13017 samr_dissect_TestPrivateFunctionsDomain_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13018 {
13019         pinfo->dcerpc_procedure_name="TestPrivateFunctionsDomain";
13020         offset = samr_dissect_element_TestPrivateFunctionsDomain_domain_handle(tvb, offset, pinfo, tree, drep);
13021         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13022         return offset;
13023 }
13024
13025 static int
13026 samr_dissect_element_TestPrivateFunctionsUser_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13027 {
13028         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);
13029
13030         return offset;
13031 }
13032
13033 static int
13034 samr_dissect_element_TestPrivateFunctionsUser_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13035 {
13036         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_TestPrivateFunctionsUser_user_handle, 0);
13037
13038         return offset;
13039 }
13040
13041 /* IDL: NTSTATUS samr_TestPrivateFunctionsUser( */
13042 /* IDL: [in] [ref] policy_handle *user_handle */
13043 /* IDL: ); */
13044
13045 static int
13046 samr_dissect_TestPrivateFunctionsUser_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13047 {
13048         guint32 status;
13049
13050         pinfo->dcerpc_procedure_name="TestPrivateFunctionsUser";
13051         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
13052
13053         if (status != 0)
13054                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
13055
13056         return offset;
13057 }
13058
13059 static int
13060 samr_dissect_TestPrivateFunctionsUser_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13061 {
13062         pinfo->dcerpc_procedure_name="TestPrivateFunctionsUser";
13063         offset = samr_dissect_element_TestPrivateFunctionsUser_user_handle(tvb, offset, pinfo, tree, drep);
13064         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13065         return offset;
13066 }
13067
13068 static int
13069 samr_dissect_element_GetUserPwInfo_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13070 {
13071         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);
13072
13073         return offset;
13074 }
13075
13076 static int
13077 samr_dissect_element_GetUserPwInfo_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13078 {
13079         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_GetUserPwInfo_user_handle, 0);
13080
13081         return offset;
13082 }
13083
13084 static int
13085 samr_dissect_element_GetUserPwInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13086 {
13087         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);
13088
13089         return offset;
13090 }
13091
13092 static int
13093 samr_dissect_element_GetUserPwInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13094 {
13095         offset = samr_dissect_struct_PwInfo(tvb,offset,pinfo,tree,drep,hf_samr_samr_GetUserPwInfo_info,0);
13096
13097         return offset;
13098 }
13099
13100 /* IDL: NTSTATUS samr_GetUserPwInfo( */
13101 /* IDL: [in] [ref] policy_handle *user_handle, */
13102 /* IDL: [out] [ref] samr_PwInfo *info */
13103 /* IDL: ); */
13104
13105 static int
13106 samr_dissect_GetUserPwInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13107 {
13108         guint32 status;
13109
13110         pinfo->dcerpc_procedure_name="GetUserPwInfo";
13111         offset = samr_dissect_element_GetUserPwInfo_info(tvb, offset, pinfo, tree, drep);
13112         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13113
13114         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
13115
13116         if (status != 0)
13117                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
13118
13119         return offset;
13120 }
13121
13122 static int
13123 samr_dissect_GetUserPwInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13124 {
13125         pinfo->dcerpc_procedure_name="GetUserPwInfo";
13126         offset = samr_dissect_element_GetUserPwInfo_user_handle(tvb, offset, pinfo, tree, drep);
13127         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13128         return offset;
13129 }
13130
13131 static int
13132 samr_dissect_element_RemoveMemberFromForeignDomain_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13133 {
13134         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);
13135
13136         return offset;
13137 }
13138
13139 static int
13140 samr_dissect_element_RemoveMemberFromForeignDomain_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13141 {
13142         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_RemoveMemberFromForeignDomain_domain_handle, 0);
13143
13144         return offset;
13145 }
13146
13147 static int
13148 samr_dissect_element_RemoveMemberFromForeignDomain_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13149 {
13150         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);
13151
13152         return offset;
13153 }
13154
13155 static int
13156 samr_dissect_element_RemoveMemberFromForeignDomain_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13157 {
13158         offset = samr_dissect_struct_dom_sid2(tvb,offset,pinfo,tree,drep,hf_samr_samr_RemoveMemberFromForeignDomain_sid,0);
13159
13160         return offset;
13161 }
13162
13163 /* IDL: NTSTATUS samr_RemoveMemberFromForeignDomain( */
13164 /* IDL: [in] [ref] policy_handle *domain_handle, */
13165 /* IDL: [in] [ref] dom_sid2 *sid */
13166 /* IDL: ); */
13167
13168 static int
13169 samr_dissect_RemoveMemberFromForeignDomain_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13170 {
13171         guint32 status;
13172
13173         pinfo->dcerpc_procedure_name="RemoveMemberFromForeignDomain";
13174         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
13175
13176         if (status != 0)
13177                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
13178
13179         return offset;
13180 }
13181
13182 static int
13183 samr_dissect_RemoveMemberFromForeignDomain_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13184 {
13185         pinfo->dcerpc_procedure_name="RemoveMemberFromForeignDomain";
13186         offset = samr_dissect_element_RemoveMemberFromForeignDomain_domain_handle(tvb, offset, pinfo, tree, drep);
13187         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13188         offset = samr_dissect_element_RemoveMemberFromForeignDomain_sid(tvb, offset, pinfo, tree, drep);
13189         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13190         return offset;
13191 }
13192
13193 static int
13194 samr_dissect_element_QueryDomainInfo2_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13195 {
13196         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);
13197
13198         return offset;
13199 }
13200
13201 static int
13202 samr_dissect_element_QueryDomainInfo2_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13203 {
13204         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDomainInfo2_domain_handle, 0);
13205
13206         return offset;
13207 }
13208
13209 static int
13210 samr_dissect_element_QueryDomainInfo2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13211 {
13212         offset = samr_dissect_enum_DomainInfoClass(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDomainInfo2_level, 0);
13213
13214         return offset;
13215 }
13216
13217 static int
13218 samr_dissect_element_QueryDomainInfo2_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13219 {
13220         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);
13221
13222         return offset;
13223 }
13224
13225 static int
13226 samr_dissect_element_QueryDomainInfo2_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13227 {
13228         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);
13229
13230         return offset;
13231 }
13232
13233 static int
13234 samr_dissect_element_QueryDomainInfo2_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13235 {
13236         offset = samr_dissect_DomainInfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDomainInfo2_info, *0);
13237
13238         return offset;
13239 }
13240
13241 /* IDL: NTSTATUS samr_QueryDomainInfo2( */
13242 /* IDL: [in] [ref] policy_handle *domain_handle, */
13243 /* IDL: [in] samr_DomainInfoClass level, */
13244 /* IDL: [out] [ref] [switch_is(level)] samr_DomainInfo **info */
13245 /* IDL: ); */
13246
13247 static int
13248 samr_dissect_QueryDomainInfo2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13249 {
13250         guint32 status;
13251
13252         pinfo->dcerpc_procedure_name="QueryDomainInfo2";
13253         offset = samr_dissect_element_QueryDomainInfo2_info(tvb, offset, pinfo, tree, drep);
13254         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13255
13256         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
13257
13258         if (status != 0)
13259                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
13260
13261         return offset;
13262 }
13263
13264 static int
13265 samr_dissect_QueryDomainInfo2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13266 {
13267         pinfo->dcerpc_procedure_name="QueryDomainInfo2";
13268         offset = samr_dissect_element_QueryDomainInfo2_domain_handle(tvb, offset, pinfo, tree, drep);
13269         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13270         offset = samr_dissect_element_QueryDomainInfo2_level(tvb, offset, pinfo, tree, drep);
13271         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13272         return offset;
13273 }
13274
13275 static int
13276 samr_dissect_element_QueryUserInfo2_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13277 {
13278         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);
13279
13280         return offset;
13281 }
13282
13283 static int
13284 samr_dissect_element_QueryUserInfo2_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13285 {
13286         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryUserInfo2_user_handle, 0);
13287
13288         return offset;
13289 }
13290
13291 static int
13292 samr_dissect_element_QueryUserInfo2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13293 {
13294         offset = samr_dissect_enum_UserInfoLevel(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryUserInfo2_level, 0);
13295
13296         return offset;
13297 }
13298
13299 static int
13300 samr_dissect_element_QueryUserInfo2_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13301 {
13302         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);
13303
13304         return offset;
13305 }
13306
13307 static int
13308 samr_dissect_element_QueryUserInfo2_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13309 {
13310         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);
13311
13312         return offset;
13313 }
13314
13315 static int
13316 samr_dissect_element_QueryUserInfo2_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13317 {
13318         offset = samr_dissect_UserInfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryUserInfo2_info, *0);
13319
13320         return offset;
13321 }
13322
13323 /* IDL: NTSTATUS samr_QueryUserInfo2( */
13324 /* IDL: [in] [ref] policy_handle *user_handle, */
13325 /* IDL: [in] samr_UserInfoLevel level, */
13326 /* IDL: [out] [ref] [switch_is(level)] samr_UserInfo **info */
13327 /* IDL: ); */
13328
13329 static int
13330 samr_dissect_QueryUserInfo2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13331 {
13332         guint32 status;
13333
13334         pinfo->dcerpc_procedure_name="QueryUserInfo2";
13335         offset = samr_dissect_element_QueryUserInfo2_info(tvb, offset, pinfo, tree, drep);
13336         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13337
13338         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
13339
13340         if (status != 0)
13341                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
13342
13343         return offset;
13344 }
13345
13346 static int
13347 samr_dissect_QueryUserInfo2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13348 {
13349         pinfo->dcerpc_procedure_name="QueryUserInfo2";
13350         offset = samr_dissect_element_QueryUserInfo2_user_handle(tvb, offset, pinfo, tree, drep);
13351         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13352         offset = samr_dissect_element_QueryUserInfo2_level(tvb, offset, pinfo, tree, drep);
13353         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13354         return offset;
13355 }
13356
13357 static int
13358 samr_dissect_element_QueryDisplayInfo2_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13359 {
13360         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);
13361
13362         return offset;
13363 }
13364
13365 static int
13366 samr_dissect_element_QueryDisplayInfo2_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13367 {
13368         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo2_domain_handle, 0);
13369
13370         return offset;
13371 }
13372
13373 static int
13374 samr_dissect_element_QueryDisplayInfo2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13375 {
13376         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo2_level, 0);
13377
13378         return offset;
13379 }
13380
13381 static int
13382 samr_dissect_element_QueryDisplayInfo2_start_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13383 {
13384         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo2_start_idx, 0);
13385
13386         return offset;
13387 }
13388
13389 static int
13390 samr_dissect_element_QueryDisplayInfo2_max_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13391 {
13392         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo2_max_entries, 0);
13393
13394         return offset;
13395 }
13396
13397 static int
13398 samr_dissect_element_QueryDisplayInfo2_buf_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13399 {
13400         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo2_buf_size, 0);
13401
13402         return offset;
13403 }
13404
13405 static int
13406 samr_dissect_element_QueryDisplayInfo2_total_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13407 {
13408         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);
13409
13410         return offset;
13411 }
13412
13413 static int
13414 samr_dissect_element_QueryDisplayInfo2_total_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13415 {
13416         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo2_total_size, 0);
13417
13418         return offset;
13419 }
13420
13421 static int
13422 samr_dissect_element_QueryDisplayInfo2_returned_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13423 {
13424         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);
13425
13426         return offset;
13427 }
13428
13429 static int
13430 samr_dissect_element_QueryDisplayInfo2_returned_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13431 {
13432         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo2_returned_size, 0);
13433
13434         return offset;
13435 }
13436
13437 static int
13438 samr_dissect_element_QueryDisplayInfo2_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13439 {
13440         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);
13441
13442         return offset;
13443 }
13444
13445 static int
13446 samr_dissect_element_QueryDisplayInfo2_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13447 {
13448         offset = samr_dissect_DispInfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo2_info, *0);
13449
13450         return offset;
13451 }
13452
13453 /* IDL: NTSTATUS samr_QueryDisplayInfo2( */
13454 /* IDL: [in] [ref] policy_handle *domain_handle, */
13455 /* IDL: [in] uint16 level, */
13456 /* IDL: [in] uint32 start_idx, */
13457 /* IDL: [in] uint32 max_entries, */
13458 /* IDL: [in] uint32 buf_size, */
13459 /* IDL: [out] [ref] uint32 *total_size, */
13460 /* IDL: [out] [ref] uint32 *returned_size, */
13461 /* IDL: [out] [ref] [switch_is(level)] samr_DispInfo *info */
13462 /* IDL: ); */
13463
13464 static int
13465 samr_dissect_QueryDisplayInfo2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13466 {
13467         guint32 status;
13468
13469         pinfo->dcerpc_procedure_name="QueryDisplayInfo2";
13470         offset = samr_dissect_element_QueryDisplayInfo2_total_size(tvb, offset, pinfo, tree, drep);
13471         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13472
13473         offset = samr_dissect_element_QueryDisplayInfo2_returned_size(tvb, offset, pinfo, tree, drep);
13474         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13475
13476         offset = samr_dissect_element_QueryDisplayInfo2_info(tvb, offset, pinfo, tree, drep);
13477         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13478
13479         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
13480
13481         if (status != 0)
13482                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
13483
13484         return offset;
13485 }
13486
13487 static int
13488 samr_dissect_QueryDisplayInfo2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13489 {
13490         pinfo->dcerpc_procedure_name="QueryDisplayInfo2";
13491         offset = samr_dissect_element_QueryDisplayInfo2_domain_handle(tvb, offset, pinfo, tree, drep);
13492         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13493         offset = samr_dissect_element_QueryDisplayInfo2_level(tvb, offset, pinfo, tree, drep);
13494         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13495         offset = samr_dissect_element_QueryDisplayInfo2_start_idx(tvb, offset, pinfo, tree, drep);
13496         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13497         offset = samr_dissect_element_QueryDisplayInfo2_max_entries(tvb, offset, pinfo, tree, drep);
13498         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13499         offset = samr_dissect_element_QueryDisplayInfo2_buf_size(tvb, offset, pinfo, tree, drep);
13500         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13501         return offset;
13502 }
13503
13504 static int
13505 samr_dissect_element_GetDisplayEnumerationIndex2_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13506 {
13507         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);
13508
13509         return offset;
13510 }
13511
13512 static int
13513 samr_dissect_element_GetDisplayEnumerationIndex2_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13514 {
13515         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_GetDisplayEnumerationIndex2_domain_handle, 0);
13516
13517         return offset;
13518 }
13519
13520 static int
13521 samr_dissect_element_GetDisplayEnumerationIndex2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13522 {
13523         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_GetDisplayEnumerationIndex2_level, 0);
13524
13525         return offset;
13526 }
13527
13528 static int
13529 samr_dissect_element_GetDisplayEnumerationIndex2_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13530 {
13531         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);
13532
13533         return offset;
13534 }
13535
13536 static int
13537 samr_dissect_element_GetDisplayEnumerationIndex2_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13538 {
13539         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_GetDisplayEnumerationIndex2_name,0);
13540
13541         return offset;
13542 }
13543
13544 static int
13545 samr_dissect_element_GetDisplayEnumerationIndex2_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13546 {
13547         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);
13548
13549         return offset;
13550 }
13551
13552 static int
13553 samr_dissect_element_GetDisplayEnumerationIndex2_idx_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13554 {
13555         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_GetDisplayEnumerationIndex2_idx, 0);
13556
13557         return offset;
13558 }
13559
13560 /* IDL: NTSTATUS samr_GetDisplayEnumerationIndex2( */
13561 /* IDL: [in] [ref] policy_handle *domain_handle, */
13562 /* IDL: [in] uint16 level, */
13563 /* IDL: [in] [ref] lsa_String *name, */
13564 /* IDL: [out] [ref] uint32 *idx */
13565 /* IDL: ); */
13566
13567 static int
13568 samr_dissect_GetDisplayEnumerationIndex2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13569 {
13570         guint32 status;
13571
13572         pinfo->dcerpc_procedure_name="GetDisplayEnumerationIndex2";
13573         offset = samr_dissect_element_GetDisplayEnumerationIndex2_idx(tvb, offset, pinfo, tree, drep);
13574         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13575
13576         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
13577
13578         if (status != 0)
13579                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
13580
13581         return offset;
13582 }
13583
13584 static int
13585 samr_dissect_GetDisplayEnumerationIndex2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13586 {
13587         pinfo->dcerpc_procedure_name="GetDisplayEnumerationIndex2";
13588         offset = samr_dissect_element_GetDisplayEnumerationIndex2_domain_handle(tvb, offset, pinfo, tree, drep);
13589         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13590         offset = samr_dissect_element_GetDisplayEnumerationIndex2_level(tvb, offset, pinfo, tree, drep);
13591         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13592         offset = samr_dissect_element_GetDisplayEnumerationIndex2_name(tvb, offset, pinfo, tree, drep);
13593         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13594         return offset;
13595 }
13596
13597 static int
13598 samr_dissect_element_CreateUser2_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13599 {
13600         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);
13601
13602         return offset;
13603 }
13604
13605 static int
13606 samr_dissect_element_CreateUser2_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13607 {
13608         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateUser2_domain_handle, 0);
13609
13610         return offset;
13611 }
13612
13613 static int
13614 samr_dissect_element_CreateUser2_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13615 {
13616         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);
13617
13618         return offset;
13619 }
13620
13621 static int
13622 samr_dissect_element_CreateUser2_account_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13623 {
13624         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_CreateUser2_account_name,0);
13625
13626         return offset;
13627 }
13628
13629 static int
13630 samr_dissect_element_CreateUser2_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13631 {
13632         offset = samr_dissect_bitmap_AcctFlags(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateUser2_acct_flags, 0);
13633
13634         return offset;
13635 }
13636
13637 static int
13638 samr_dissect_element_CreateUser2_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13639 {
13640         offset = samr_dissect_bitmap_UserAccessMask(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateUser2_access_mask, 0);
13641
13642         return offset;
13643 }
13644
13645 static int
13646 samr_dissect_element_CreateUser2_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13647 {
13648         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);
13649
13650         return offset;
13651 }
13652
13653 static int
13654 samr_dissect_element_CreateUser2_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13655 {
13656         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateUser2_user_handle, 0);
13657
13658         return offset;
13659 }
13660
13661 static int
13662 samr_dissect_element_CreateUser2_access_granted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13663 {
13664         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);
13665
13666         return offset;
13667 }
13668
13669 static int
13670 samr_dissect_element_CreateUser2_access_granted_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13671 {
13672         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateUser2_access_granted, 0);
13673
13674         return offset;
13675 }
13676
13677 static int
13678 samr_dissect_element_CreateUser2_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13679 {
13680         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);
13681
13682         return offset;
13683 }
13684
13685 static int
13686 samr_dissect_element_CreateUser2_rid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13687 {
13688         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateUser2_rid, 0);
13689
13690         return offset;
13691 }
13692
13693 /* IDL: NTSTATUS samr_CreateUser2( */
13694 /* IDL: [in] [ref] policy_handle *domain_handle, */
13695 /* IDL: [in] [ref] lsa_String *account_name, */
13696 /* IDL: [in] samr_AcctFlags acct_flags, */
13697 /* IDL: [in] samr_UserAccessMask access_mask, */
13698 /* IDL: [out] [ref] policy_handle *user_handle, */
13699 /* IDL: [out] [ref] uint32 *access_granted, */
13700 /* IDL: [out] [ref] uint32 *rid */
13701 /* IDL: ); */
13702
13703 static int
13704 samr_dissect_CreateUser2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13705 {
13706         guint32 status;
13707
13708         pinfo->dcerpc_procedure_name="CreateUser2";
13709         offset = samr_dissect_element_CreateUser2_user_handle(tvb, offset, pinfo, tree, drep);
13710         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13711
13712         offset = samr_dissect_element_CreateUser2_access_granted(tvb, offset, pinfo, tree, drep);
13713         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13714
13715         offset = samr_dissect_element_CreateUser2_rid(tvb, offset, pinfo, tree, drep);
13716         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13717
13718         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
13719
13720         if (status != 0)
13721                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
13722
13723         return offset;
13724 }
13725
13726 static int
13727 samr_dissect_CreateUser2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13728 {
13729         pinfo->dcerpc_procedure_name="CreateUser2";
13730         offset = samr_dissect_element_CreateUser2_domain_handle(tvb, offset, pinfo, tree, drep);
13731         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13732         offset = samr_dissect_element_CreateUser2_account_name(tvb, offset, pinfo, tree, drep);
13733         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13734         offset = samr_dissect_element_CreateUser2_acct_flags(tvb, offset, pinfo, tree, drep);
13735         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13736         offset = samr_dissect_element_CreateUser2_access_mask(tvb, offset, pinfo, tree, drep);
13737         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13738         return offset;
13739 }
13740
13741 static int
13742 samr_dissect_element_QueryDisplayInfo3_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13743 {
13744         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);
13745
13746         return offset;
13747 }
13748
13749 static int
13750 samr_dissect_element_QueryDisplayInfo3_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13751 {
13752         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo3_domain_handle, 0);
13753
13754         return offset;
13755 }
13756
13757 static int
13758 samr_dissect_element_QueryDisplayInfo3_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13759 {
13760         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo3_level, 0);
13761
13762         return offset;
13763 }
13764
13765 static int
13766 samr_dissect_element_QueryDisplayInfo3_start_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13767 {
13768         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo3_start_idx, 0);
13769
13770         return offset;
13771 }
13772
13773 static int
13774 samr_dissect_element_QueryDisplayInfo3_max_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13775 {
13776         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo3_max_entries, 0);
13777
13778         return offset;
13779 }
13780
13781 static int
13782 samr_dissect_element_QueryDisplayInfo3_buf_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13783 {
13784         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo3_buf_size, 0);
13785
13786         return offset;
13787 }
13788
13789 static int
13790 samr_dissect_element_QueryDisplayInfo3_total_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13791 {
13792         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);
13793
13794         return offset;
13795 }
13796
13797 static int
13798 samr_dissect_element_QueryDisplayInfo3_total_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13799 {
13800         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo3_total_size, 0);
13801
13802         return offset;
13803 }
13804
13805 static int
13806 samr_dissect_element_QueryDisplayInfo3_returned_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13807 {
13808         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);
13809
13810         return offset;
13811 }
13812
13813 static int
13814 samr_dissect_element_QueryDisplayInfo3_returned_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13815 {
13816         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo3_returned_size, 0);
13817
13818         return offset;
13819 }
13820
13821 static int
13822 samr_dissect_element_QueryDisplayInfo3_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13823 {
13824         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);
13825
13826         return offset;
13827 }
13828
13829 static int
13830 samr_dissect_element_QueryDisplayInfo3_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13831 {
13832         offset = samr_dissect_DispInfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo3_info, *0);
13833
13834         return offset;
13835 }
13836
13837 /* IDL: NTSTATUS samr_QueryDisplayInfo3( */
13838 /* IDL: [in] [ref] policy_handle *domain_handle, */
13839 /* IDL: [in] uint16 level, */
13840 /* IDL: [in] uint32 start_idx, */
13841 /* IDL: [in] uint32 max_entries, */
13842 /* IDL: [in] uint32 buf_size, */
13843 /* IDL: [out] [ref] uint32 *total_size, */
13844 /* IDL: [out] [ref] uint32 *returned_size, */
13845 /* IDL: [out] [ref] [switch_is(level)] samr_DispInfo *info */
13846 /* IDL: ); */
13847
13848 static int
13849 samr_dissect_QueryDisplayInfo3_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13850 {
13851         guint32 status;
13852
13853         pinfo->dcerpc_procedure_name="QueryDisplayInfo3";
13854         offset = samr_dissect_element_QueryDisplayInfo3_total_size(tvb, offset, pinfo, tree, drep);
13855         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13856
13857         offset = samr_dissect_element_QueryDisplayInfo3_returned_size(tvb, offset, pinfo, tree, drep);
13858         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13859
13860         offset = samr_dissect_element_QueryDisplayInfo3_info(tvb, offset, pinfo, tree, drep);
13861         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13862
13863         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
13864
13865         if (status != 0)
13866                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
13867
13868         return offset;
13869 }
13870
13871 static int
13872 samr_dissect_QueryDisplayInfo3_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13873 {
13874         pinfo->dcerpc_procedure_name="QueryDisplayInfo3";
13875         offset = samr_dissect_element_QueryDisplayInfo3_domain_handle(tvb, offset, pinfo, tree, drep);
13876         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13877         offset = samr_dissect_element_QueryDisplayInfo3_level(tvb, offset, pinfo, tree, drep);
13878         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13879         offset = samr_dissect_element_QueryDisplayInfo3_start_idx(tvb, offset, pinfo, tree, drep);
13880         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13881         offset = samr_dissect_element_QueryDisplayInfo3_max_entries(tvb, offset, pinfo, tree, drep);
13882         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13883         offset = samr_dissect_element_QueryDisplayInfo3_buf_size(tvb, offset, pinfo, tree, drep);
13884         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13885         return offset;
13886 }
13887
13888 static int
13889 samr_dissect_element_AddMultipleMembersToAlias_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13890 {
13891         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);
13892
13893         return offset;
13894 }
13895
13896 static int
13897 samr_dissect_element_AddMultipleMembersToAlias_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13898 {
13899         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_AddMultipleMembersToAlias_alias_handle, 0);
13900
13901         return offset;
13902 }
13903
13904 static int
13905 samr_dissect_element_AddMultipleMembersToAlias_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13906 {
13907         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);
13908
13909         return offset;
13910 }
13911
13912 static int
13913 samr_dissect_element_AddMultipleMembersToAlias_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13914 {
13915         offset = samr_dissect_struct_lsa_SidArray(tvb,offset,pinfo,tree,drep,hf_samr_samr_AddMultipleMembersToAlias_sids,0);
13916
13917         return offset;
13918 }
13919
13920 /* IDL: NTSTATUS samr_AddMultipleMembersToAlias( */
13921 /* IDL: [in] [ref] policy_handle *alias_handle, */
13922 /* IDL: [in] [ref] lsa_SidArray *sids */
13923 /* IDL: ); */
13924
13925 static int
13926 samr_dissect_AddMultipleMembersToAlias_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13927 {
13928         guint32 status;
13929
13930         pinfo->dcerpc_procedure_name="AddMultipleMembersToAlias";
13931         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
13932
13933         if (status != 0)
13934                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
13935
13936         return offset;
13937 }
13938
13939 static int
13940 samr_dissect_AddMultipleMembersToAlias_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13941 {
13942         pinfo->dcerpc_procedure_name="AddMultipleMembersToAlias";
13943         offset = samr_dissect_element_AddMultipleMembersToAlias_alias_handle(tvb, offset, pinfo, tree, drep);
13944         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13945         offset = samr_dissect_element_AddMultipleMembersToAlias_sids(tvb, offset, pinfo, tree, drep);
13946         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
13947         return offset;
13948 }
13949
13950 static int
13951 samr_dissect_element_RemoveMultipleMembersFromAlias_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13952 {
13953         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);
13954
13955         return offset;
13956 }
13957
13958 static int
13959 samr_dissect_element_RemoveMultipleMembersFromAlias_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13960 {
13961         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_RemoveMultipleMembersFromAlias_alias_handle, 0);
13962
13963         return offset;
13964 }
13965
13966 static int
13967 samr_dissect_element_RemoveMultipleMembersFromAlias_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13968 {
13969         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);
13970
13971         return offset;
13972 }
13973
13974 static int
13975 samr_dissect_element_RemoveMultipleMembersFromAlias_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13976 {
13977         offset = samr_dissect_struct_lsa_SidArray(tvb,offset,pinfo,tree,drep,hf_samr_samr_RemoveMultipleMembersFromAlias_sids,0);
13978
13979         return offset;
13980 }
13981
13982 /* IDL: NTSTATUS samr_RemoveMultipleMembersFromAlias( */
13983 /* IDL: [in] [ref] policy_handle *alias_handle, */
13984 /* IDL: [in] [ref] lsa_SidArray *sids */
13985 /* IDL: ); */
13986
13987 static int
13988 samr_dissect_RemoveMultipleMembersFromAlias_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13989 {
13990         guint32 status;
13991
13992         pinfo->dcerpc_procedure_name="RemoveMultipleMembersFromAlias";
13993         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
13994
13995         if (status != 0)
13996                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
13997
13998         return offset;
13999 }
14000
14001 static int
14002 samr_dissect_RemoveMultipleMembersFromAlias_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14003 {
14004         pinfo->dcerpc_procedure_name="RemoveMultipleMembersFromAlias";
14005         offset = samr_dissect_element_RemoveMultipleMembersFromAlias_alias_handle(tvb, offset, pinfo, tree, drep);
14006         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14007         offset = samr_dissect_element_RemoveMultipleMembersFromAlias_sids(tvb, offset, pinfo, tree, drep);
14008         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14009         return offset;
14010 }
14011
14012 static int
14013 samr_dissect_element_OemChangePasswordUser2_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14014 {
14015         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);
14016
14017         return offset;
14018 }
14019
14020 static int
14021 samr_dissect_element_OemChangePasswordUser2_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14022 {
14023         offset = samr_dissect_struct_lsa_AsciiString(tvb,offset,pinfo,tree,drep,hf_samr_samr_OemChangePasswordUser2_server,0);
14024
14025         return offset;
14026 }
14027
14028 static int
14029 samr_dissect_element_OemChangePasswordUser2_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14030 {
14031         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);
14032
14033         return offset;
14034 }
14035
14036 static int
14037 samr_dissect_element_OemChangePasswordUser2_account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14038 {
14039         offset = samr_dissect_struct_lsa_AsciiString(tvb,offset,pinfo,tree,drep,hf_samr_samr_OemChangePasswordUser2_account,0);
14040
14041         return offset;
14042 }
14043
14044 static int
14045 samr_dissect_element_OemChangePasswordUser2_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14046 {
14047         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);
14048
14049         return offset;
14050 }
14051
14052 static int
14053 samr_dissect_element_OemChangePasswordUser2_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14054 {
14055         offset = samr_dissect_struct_CryptPassword(tvb,offset,pinfo,tree,drep,hf_samr_samr_OemChangePasswordUser2_password,0);
14056
14057         return offset;
14058 }
14059
14060 static int
14061 samr_dissect_element_OemChangePasswordUser2_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14062 {
14063         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);
14064
14065         return offset;
14066 }
14067
14068 static int
14069 samr_dissect_element_OemChangePasswordUser2_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14070 {
14071         offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,drep,hf_samr_samr_OemChangePasswordUser2_hash,0);
14072
14073         return offset;
14074 }
14075
14076 /* IDL: NTSTATUS samr_OemChangePasswordUser2( */
14077 /* IDL: [unique(1)] [in] lsa_AsciiString *server, */
14078 /* IDL: [in] [ref] lsa_AsciiString *account, */
14079 /* IDL: [unique(1)] [in] samr_CryptPassword *password, */
14080 /* IDL: [unique(1)] [in] samr_Password *hash */
14081 /* IDL: ); */
14082
14083 static int
14084 samr_dissect_OemChangePasswordUser2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14085 {
14086         guint32 status;
14087
14088         pinfo->dcerpc_procedure_name="OemChangePasswordUser2";
14089         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
14090
14091         if (status != 0)
14092                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
14093
14094         return offset;
14095 }
14096
14097 static int
14098 samr_dissect_OemChangePasswordUser2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14099 {
14100         pinfo->dcerpc_procedure_name="OemChangePasswordUser2";
14101         offset = samr_dissect_element_OemChangePasswordUser2_server(tvb, offset, pinfo, tree, drep);
14102         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14103         offset = samr_dissect_element_OemChangePasswordUser2_account(tvb, offset, pinfo, tree, drep);
14104         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14105         offset = samr_dissect_element_OemChangePasswordUser2_password(tvb, offset, pinfo, tree, drep);
14106         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14107         offset = samr_dissect_element_OemChangePasswordUser2_hash(tvb, offset, pinfo, tree, drep);
14108         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14109         return offset;
14110 }
14111
14112 static int
14113 samr_dissect_element_ChangePasswordUser2_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14114 {
14115         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);
14116
14117         return offset;
14118 }
14119
14120 static int
14121 samr_dissect_element_ChangePasswordUser2_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14122 {
14123         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser2_server,0);
14124
14125         return offset;
14126 }
14127
14128 static int
14129 samr_dissect_element_ChangePasswordUser2_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14130 {
14131         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);
14132
14133         return offset;
14134 }
14135
14136 static int
14137 samr_dissect_element_ChangePasswordUser2_account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14138 {
14139         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser2_account,0);
14140
14141         return offset;
14142 }
14143
14144 static int
14145 samr_dissect_element_ChangePasswordUser2_nt_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14146 {
14147         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);
14148
14149         return offset;
14150 }
14151
14152 static int
14153 samr_dissect_element_ChangePasswordUser2_nt_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14154 {
14155         offset = samr_dissect_struct_CryptPassword(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser2_nt_password,0);
14156
14157         return offset;
14158 }
14159
14160 static int
14161 samr_dissect_element_ChangePasswordUser2_nt_verifier(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14162 {
14163         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);
14164
14165         return offset;
14166 }
14167
14168 static int
14169 samr_dissect_element_ChangePasswordUser2_nt_verifier_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14170 {
14171         offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser2_nt_verifier,0);
14172
14173         return offset;
14174 }
14175
14176 static int
14177 samr_dissect_element_ChangePasswordUser2_lm_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14178 {
14179         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_ChangePasswordUser2_lm_change, 0);
14180
14181         return offset;
14182 }
14183
14184 static int
14185 samr_dissect_element_ChangePasswordUser2_lm_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14186 {
14187         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);
14188
14189         return offset;
14190 }
14191
14192 static int
14193 samr_dissect_element_ChangePasswordUser2_lm_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14194 {
14195         offset = samr_dissect_struct_CryptPassword(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser2_lm_password,0);
14196
14197         return offset;
14198 }
14199
14200 static int
14201 samr_dissect_element_ChangePasswordUser2_lm_verifier(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14202 {
14203         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);
14204
14205         return offset;
14206 }
14207
14208 static int
14209 samr_dissect_element_ChangePasswordUser2_lm_verifier_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14210 {
14211         offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser2_lm_verifier,0);
14212
14213         return offset;
14214 }
14215
14216 /* IDL: NTSTATUS samr_ChangePasswordUser2( */
14217 /* IDL: [unique(1)] [in] lsa_String *server, */
14218 /* IDL: [in] [ref] lsa_String *account, */
14219 /* IDL: [unique(1)] [in] samr_CryptPassword *nt_password, */
14220 /* IDL: [unique(1)] [in] samr_Password *nt_verifier, */
14221 /* IDL: [in] uint8 lm_change, */
14222 /* IDL: [unique(1)] [in] samr_CryptPassword *lm_password, */
14223 /* IDL: [unique(1)] [in] samr_Password *lm_verifier */
14224 /* IDL: ); */
14225
14226 static int
14227 samr_dissect_ChangePasswordUser2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14228 {
14229         guint32 status;
14230
14231         pinfo->dcerpc_procedure_name="ChangePasswordUser2";
14232         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
14233
14234         if (status != 0)
14235                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
14236
14237         return offset;
14238 }
14239
14240 static int
14241 samr_dissect_ChangePasswordUser2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14242 {
14243         pinfo->dcerpc_procedure_name="ChangePasswordUser2";
14244         offset = samr_dissect_element_ChangePasswordUser2_server(tvb, offset, pinfo, tree, drep);
14245         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14246         offset = samr_dissect_element_ChangePasswordUser2_account(tvb, offset, pinfo, tree, drep);
14247         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14248         offset = samr_dissect_element_ChangePasswordUser2_nt_password(tvb, offset, pinfo, tree, drep);
14249         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14250         offset = samr_dissect_element_ChangePasswordUser2_nt_verifier(tvb, offset, pinfo, tree, drep);
14251         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14252         offset = samr_dissect_element_ChangePasswordUser2_lm_change(tvb, offset, pinfo, tree, drep);
14253         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14254         offset = samr_dissect_element_ChangePasswordUser2_lm_password(tvb, offset, pinfo, tree, drep);
14255         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14256         offset = samr_dissect_element_ChangePasswordUser2_lm_verifier(tvb, offset, pinfo, tree, drep);
14257         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14258         return offset;
14259 }
14260
14261 static int
14262 samr_dissect_element_GetDomPwInfo_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14263 {
14264         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);
14265
14266         return offset;
14267 }
14268
14269 static int
14270 samr_dissect_element_GetDomPwInfo_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14271 {
14272         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_GetDomPwInfo_domain_name,0);
14273
14274         return offset;
14275 }
14276
14277 static int
14278 samr_dissect_element_GetDomPwInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14279 {
14280         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);
14281
14282         return offset;
14283 }
14284
14285 static int
14286 samr_dissect_element_GetDomPwInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14287 {
14288         offset = samr_dissect_struct_PwInfo(tvb,offset,pinfo,tree,drep,hf_samr_samr_GetDomPwInfo_info,0);
14289
14290         return offset;
14291 }
14292
14293 /* IDL: NTSTATUS samr_GetDomPwInfo( */
14294 /* IDL: [unique(1)] [in] lsa_String *domain_name, */
14295 /* IDL: [out] [ref] samr_PwInfo *info */
14296 /* IDL: ); */
14297
14298 static int
14299 samr_dissect_GetDomPwInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14300 {
14301         guint32 status;
14302
14303         pinfo->dcerpc_procedure_name="GetDomPwInfo";
14304         offset = samr_dissect_element_GetDomPwInfo_info(tvb, offset, pinfo, tree, drep);
14305         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14306
14307         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
14308
14309         if (status != 0)
14310                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
14311
14312         return offset;
14313 }
14314
14315 static int
14316 samr_dissect_GetDomPwInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14317 {
14318         pinfo->dcerpc_procedure_name="GetDomPwInfo";
14319         offset = samr_dissect_element_GetDomPwInfo_domain_name(tvb, offset, pinfo, tree, drep);
14320         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14321         return offset;
14322 }
14323
14324 static int
14325 samr_dissect_element_Connect2_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14326 {
14327         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);
14328
14329         return offset;
14330 }
14331
14332 static int
14333 samr_dissect_element_Connect2_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14334 {
14335         char *data;
14336
14337         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_samr_samr_Connect2_system_name, FALSE, &data);
14338         proto_item_append_text(tree, ": %s", data);
14339
14340         return offset;
14341 }
14342
14343 static int
14344 samr_dissect_element_Connect2_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14345 {
14346         offset = samr_dissect_bitmap_ConnectAccessMask(tvb, offset, pinfo, tree, drep, hf_samr_samr_Connect2_access_mask, 0);
14347
14348         return offset;
14349 }
14350
14351 static int
14352 samr_dissect_element_Connect2_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14353 {
14354         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);
14355
14356         return offset;
14357 }
14358
14359 static int
14360 samr_dissect_element_Connect2_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14361 {
14362         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_Connect2_connect_handle, 0);
14363
14364         return offset;
14365 }
14366
14367 /* IDL: NTSTATUS samr_Connect2( */
14368 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *system_name, */
14369 /* IDL: [in] samr_ConnectAccessMask access_mask, */
14370 /* IDL: [out] [ref] policy_handle *connect_handle */
14371 /* IDL: ); */
14372
14373 static int
14374 samr_dissect_Connect2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14375 {
14376         guint32 status;
14377
14378         pinfo->dcerpc_procedure_name="Connect2";
14379         offset = samr_dissect_element_Connect2_connect_handle(tvb, offset, pinfo, tree, drep);
14380         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14381
14382         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
14383
14384         if (status != 0)
14385                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
14386
14387         return offset;
14388 }
14389
14390 static int
14391 samr_dissect_Connect2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14392 {
14393         pinfo->dcerpc_procedure_name="Connect2";
14394         offset = samr_dissect_element_Connect2_system_name(tvb, offset, pinfo, tree, drep);
14395         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14396         offset = samr_dissect_element_Connect2_access_mask(tvb, offset, pinfo, tree, drep);
14397         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14398         return offset;
14399 }
14400
14401 static int
14402 samr_dissect_element_SetUserInfo2_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14403 {
14404         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);
14405
14406         return offset;
14407 }
14408
14409 static int
14410 samr_dissect_element_SetUserInfo2_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14411 {
14412         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetUserInfo2_user_handle, 0);
14413
14414         return offset;
14415 }
14416
14417 static int
14418 samr_dissect_element_SetUserInfo2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14419 {
14420         offset = samr_dissect_enum_UserInfoLevel(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetUserInfo2_level, 0);
14421
14422         return offset;
14423 }
14424
14425 static int
14426 samr_dissect_element_SetUserInfo2_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14427 {
14428         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);
14429
14430         return offset;
14431 }
14432
14433 static int
14434 samr_dissect_element_SetUserInfo2_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14435 {
14436         offset = samr_dissect_UserInfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetUserInfo2_info, *0);
14437
14438         return offset;
14439 }
14440
14441 /* IDL: NTSTATUS samr_SetUserInfo2( */
14442 /* IDL: [in] [ref] policy_handle *user_handle, */
14443 /* IDL: [in] samr_UserInfoLevel level, */
14444 /* IDL: [ref] [in] [switch_is(level)] samr_UserInfo *info */
14445 /* IDL: ); */
14446
14447 static int
14448 samr_dissect_SetUserInfo2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14449 {
14450         guint32 status;
14451
14452         pinfo->dcerpc_procedure_name="SetUserInfo2";
14453         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
14454
14455         if (status != 0)
14456                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
14457
14458         return offset;
14459 }
14460
14461 static int
14462 samr_dissect_SetUserInfo2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14463 {
14464         pinfo->dcerpc_procedure_name="SetUserInfo2";
14465         offset = samr_dissect_element_SetUserInfo2_user_handle(tvb, offset, pinfo, tree, drep);
14466         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14467         offset = samr_dissect_element_SetUserInfo2_level(tvb, offset, pinfo, tree, drep);
14468         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14469         offset = samr_dissect_element_SetUserInfo2_info(tvb, offset, pinfo, tree, drep);
14470         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14471         return offset;
14472 }
14473
14474 static int
14475 samr_dissect_element_SetBootKeyInformation_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14476 {
14477         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);
14478
14479         return offset;
14480 }
14481
14482 static int
14483 samr_dissect_element_SetBootKeyInformation_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14484 {
14485         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetBootKeyInformation_connect_handle, 0);
14486
14487         return offset;
14488 }
14489
14490 static int
14491 samr_dissect_element_SetBootKeyInformation_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14492 {
14493         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetBootKeyInformation_unknown1, 0);
14494
14495         return offset;
14496 }
14497
14498 static int
14499 samr_dissect_element_SetBootKeyInformation_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14500 {
14501         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetBootKeyInformation_unknown2, 0);
14502
14503         return offset;
14504 }
14505
14506 static int
14507 samr_dissect_element_SetBootKeyInformation_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14508 {
14509         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetBootKeyInformation_unknown3, 0);
14510
14511         return offset;
14512 }
14513
14514 /* IDL: NTSTATUS samr_SetBootKeyInformation( */
14515 /* IDL: [in] [ref] policy_handle *connect_handle, */
14516 /* IDL: [in] uint32 unknown1, */
14517 /* IDL: [in] uint32 unknown2, */
14518 /* IDL: [in] uint32 unknown3 */
14519 /* IDL: ); */
14520
14521 static int
14522 samr_dissect_SetBootKeyInformation_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14523 {
14524         guint32 status;
14525
14526         pinfo->dcerpc_procedure_name="SetBootKeyInformation";
14527         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
14528
14529         if (status != 0)
14530                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
14531
14532         return offset;
14533 }
14534
14535 static int
14536 samr_dissect_SetBootKeyInformation_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14537 {
14538         pinfo->dcerpc_procedure_name="SetBootKeyInformation";
14539         offset = samr_dissect_element_SetBootKeyInformation_connect_handle(tvb, offset, pinfo, tree, drep);
14540         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14541         offset = samr_dissect_element_SetBootKeyInformation_unknown1(tvb, offset, pinfo, tree, drep);
14542         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14543         offset = samr_dissect_element_SetBootKeyInformation_unknown2(tvb, offset, pinfo, tree, drep);
14544         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14545         offset = samr_dissect_element_SetBootKeyInformation_unknown3(tvb, offset, pinfo, tree, drep);
14546         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14547         return offset;
14548 }
14549
14550 static int
14551 samr_dissect_element_GetBootKeyInformation_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14552 {
14553         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);
14554
14555         return offset;
14556 }
14557
14558 static int
14559 samr_dissect_element_GetBootKeyInformation_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14560 {
14561         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_GetBootKeyInformation_domain_handle, 0);
14562
14563         return offset;
14564 }
14565
14566 static int
14567 samr_dissect_element_GetBootKeyInformation_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14568 {
14569         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);
14570
14571         return offset;
14572 }
14573
14574 static int
14575 samr_dissect_element_GetBootKeyInformation_unknown_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14576 {
14577         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_GetBootKeyInformation_unknown, 0);
14578
14579         return offset;
14580 }
14581
14582 /* IDL: NTSTATUS samr_GetBootKeyInformation( */
14583 /* IDL: [in] [ref] policy_handle *domain_handle, */
14584 /* IDL: [out] [ref] uint32 *unknown */
14585 /* IDL: ); */
14586
14587 static int
14588 samr_dissect_GetBootKeyInformation_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14589 {
14590         guint32 status;
14591
14592         pinfo->dcerpc_procedure_name="GetBootKeyInformation";
14593         offset = samr_dissect_element_GetBootKeyInformation_unknown(tvb, offset, pinfo, tree, drep);
14594         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14595
14596         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
14597
14598         if (status != 0)
14599                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
14600
14601         return offset;
14602 }
14603
14604 static int
14605 samr_dissect_GetBootKeyInformation_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14606 {
14607         pinfo->dcerpc_procedure_name="GetBootKeyInformation";
14608         offset = samr_dissect_element_GetBootKeyInformation_domain_handle(tvb, offset, pinfo, tree, drep);
14609         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14610         return offset;
14611 }
14612
14613 static int
14614 samr_dissect_element_Connect3_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14615 {
14616         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);
14617
14618         return offset;
14619 }
14620
14621 static int
14622 samr_dissect_element_Connect3_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14623 {
14624         char *data;
14625
14626         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_samr_samr_Connect3_system_name, FALSE, &data);
14627         proto_item_append_text(tree, ": %s", data);
14628
14629         return offset;
14630 }
14631
14632 static int
14633 samr_dissect_element_Connect3_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14634 {
14635         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_Connect3_unknown, 0);
14636
14637         return offset;
14638 }
14639
14640 static int
14641 samr_dissect_element_Connect3_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14642 {
14643         offset = samr_dissect_bitmap_ConnectAccessMask(tvb, offset, pinfo, tree, drep, hf_samr_samr_Connect3_access_mask, 0);
14644
14645         return offset;
14646 }
14647
14648 static int
14649 samr_dissect_element_Connect3_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14650 {
14651         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);
14652
14653         return offset;
14654 }
14655
14656 static int
14657 samr_dissect_element_Connect3_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14658 {
14659         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_Connect3_connect_handle, 0);
14660
14661         return offset;
14662 }
14663
14664 /* IDL: NTSTATUS samr_Connect3( */
14665 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *system_name, */
14666 /* IDL: [in] uint32 unknown, */
14667 /* IDL: [in] samr_ConnectAccessMask access_mask, */
14668 /* IDL: [out] [ref] policy_handle *connect_handle */
14669 /* IDL: ); */
14670
14671 static int
14672 samr_dissect_Connect3_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14673 {
14674         guint32 status;
14675
14676         pinfo->dcerpc_procedure_name="Connect3";
14677         offset = samr_dissect_element_Connect3_connect_handle(tvb, offset, pinfo, tree, drep);
14678         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14679
14680         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
14681
14682         if (status != 0)
14683                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
14684
14685         return offset;
14686 }
14687
14688 static int
14689 samr_dissect_Connect3_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14690 {
14691         pinfo->dcerpc_procedure_name="Connect3";
14692         offset = samr_dissect_element_Connect3_system_name(tvb, offset, pinfo, tree, drep);
14693         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14694         offset = samr_dissect_element_Connect3_unknown(tvb, offset, pinfo, tree, drep);
14695         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14696         offset = samr_dissect_element_Connect3_access_mask(tvb, offset, pinfo, tree, drep);
14697         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14698         return offset;
14699 }
14700
14701 static int
14702 samr_dissect_element_Connect4_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14703 {
14704         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);
14705
14706         return offset;
14707 }
14708
14709 static int
14710 samr_dissect_element_Connect4_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14711 {
14712         char *data;
14713
14714         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_samr_samr_Connect4_system_name, FALSE, &data);
14715         proto_item_append_text(tree, ": %s", data);
14716
14717         return offset;
14718 }
14719
14720 static int
14721 samr_dissect_element_Connect4_client_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14722 {
14723         offset = samr_dissect_enum_ConnectVersion(tvb, offset, pinfo, tree, drep, hf_samr_samr_Connect4_client_version, 0);
14724
14725         return offset;
14726 }
14727
14728 static int
14729 samr_dissect_element_Connect4_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14730 {
14731         offset = samr_dissect_bitmap_ConnectAccessMask(tvb, offset, pinfo, tree, drep, hf_samr_samr_Connect4_access_mask, 0);
14732
14733         return offset;
14734 }
14735
14736 static int
14737 samr_dissect_element_Connect4_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14738 {
14739         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);
14740
14741         return offset;
14742 }
14743
14744 static int
14745 samr_dissect_element_Connect4_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14746 {
14747         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_Connect4_connect_handle, 0);
14748
14749         return offset;
14750 }
14751
14752 /* IDL: NTSTATUS samr_Connect4( */
14753 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *system_name, */
14754 /* IDL: [in] samr_ConnectVersion client_version, */
14755 /* IDL: [in] samr_ConnectAccessMask access_mask, */
14756 /* IDL: [out] [ref] policy_handle *connect_handle */
14757 /* IDL: ); */
14758
14759 static int
14760 samr_dissect_Connect4_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14761 {
14762         guint32 status;
14763
14764         pinfo->dcerpc_procedure_name="Connect4";
14765         offset = samr_dissect_element_Connect4_connect_handle(tvb, offset, pinfo, tree, drep);
14766         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14767
14768         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
14769
14770         if (status != 0)
14771                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
14772
14773         return offset;
14774 }
14775
14776 static int
14777 samr_dissect_Connect4_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14778 {
14779         pinfo->dcerpc_procedure_name="Connect4";
14780         offset = samr_dissect_element_Connect4_system_name(tvb, offset, pinfo, tree, drep);
14781         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14782         offset = samr_dissect_element_Connect4_client_version(tvb, offset, pinfo, tree, drep);
14783         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14784         offset = samr_dissect_element_Connect4_access_mask(tvb, offset, pinfo, tree, drep);
14785         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14786         return offset;
14787 }
14788
14789 static int
14790 samr_dissect_element_ChangePasswordUser3_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14791 {
14792         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);
14793
14794         return offset;
14795 }
14796
14797 static int
14798 samr_dissect_element_ChangePasswordUser3_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14799 {
14800         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser3_server,0);
14801
14802         return offset;
14803 }
14804
14805 static int
14806 samr_dissect_element_ChangePasswordUser3_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14807 {
14808         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);
14809
14810         return offset;
14811 }
14812
14813 static int
14814 samr_dissect_element_ChangePasswordUser3_account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14815 {
14816         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser3_account,0);
14817
14818         return offset;
14819 }
14820
14821 static int
14822 samr_dissect_element_ChangePasswordUser3_nt_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14823 {
14824         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);
14825
14826         return offset;
14827 }
14828
14829 static int
14830 samr_dissect_element_ChangePasswordUser3_nt_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14831 {
14832         offset = samr_dissect_struct_CryptPassword(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser3_nt_password,0);
14833
14834         return offset;
14835 }
14836
14837 static int
14838 samr_dissect_element_ChangePasswordUser3_nt_verifier(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14839 {
14840         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);
14841
14842         return offset;
14843 }
14844
14845 static int
14846 samr_dissect_element_ChangePasswordUser3_nt_verifier_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14847 {
14848         offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser3_nt_verifier,0);
14849
14850         return offset;
14851 }
14852
14853 static int
14854 samr_dissect_element_ChangePasswordUser3_lm_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14855 {
14856         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_ChangePasswordUser3_lm_change, 0);
14857
14858         return offset;
14859 }
14860
14861 static int
14862 samr_dissect_element_ChangePasswordUser3_lm_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14863 {
14864         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);
14865
14866         return offset;
14867 }
14868
14869 static int
14870 samr_dissect_element_ChangePasswordUser3_lm_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14871 {
14872         offset = samr_dissect_struct_CryptPassword(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser3_lm_password,0);
14873
14874         return offset;
14875 }
14876
14877 static int
14878 samr_dissect_element_ChangePasswordUser3_lm_verifier(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14879 {
14880         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);
14881
14882         return offset;
14883 }
14884
14885 static int
14886 samr_dissect_element_ChangePasswordUser3_lm_verifier_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14887 {
14888         offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser3_lm_verifier,0);
14889
14890         return offset;
14891 }
14892
14893 static int
14894 samr_dissect_element_ChangePasswordUser3_password3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14895 {
14896         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);
14897
14898         return offset;
14899 }
14900
14901 static int
14902 samr_dissect_element_ChangePasswordUser3_password3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14903 {
14904         offset = samr_dissect_struct_CryptPassword(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser3_password3,0);
14905
14906         return offset;
14907 }
14908
14909 static int
14910 samr_dissect_element_ChangePasswordUser3_dominfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14911 {
14912         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);
14913
14914         return offset;
14915 }
14916
14917 static int
14918 samr_dissect_element_ChangePasswordUser3_dominfo_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14919 {
14920         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);
14921
14922         return offset;
14923 }
14924
14925 static int
14926 samr_dissect_element_ChangePasswordUser3_dominfo__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14927 {
14928         offset = samr_dissect_struct_DomInfo1(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser3_dominfo,0);
14929
14930         return offset;
14931 }
14932
14933 static int
14934 samr_dissect_element_ChangePasswordUser3_reject(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14935 {
14936         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);
14937
14938         return offset;
14939 }
14940
14941 static int
14942 samr_dissect_element_ChangePasswordUser3_reject_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14943 {
14944         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);
14945
14946         return offset;
14947 }
14948
14949 static int
14950 samr_dissect_element_ChangePasswordUser3_reject__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14951 {
14952         offset = samr_dissect_struct_userPwdChangeFailureInformation(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser3_reject,0);
14953
14954         return offset;
14955 }
14956
14957 /* IDL: NTSTATUS samr_ChangePasswordUser3( */
14958 /* IDL: [unique(1)] [in] lsa_String *server, */
14959 /* IDL: [in] [ref] lsa_String *account, */
14960 /* IDL: [unique(1)] [in] samr_CryptPassword *nt_password, */
14961 /* IDL: [unique(1)] [in] samr_Password *nt_verifier, */
14962 /* IDL: [in] uint8 lm_change, */
14963 /* IDL: [unique(1)] [in] samr_CryptPassword *lm_password, */
14964 /* IDL: [unique(1)] [in] samr_Password *lm_verifier, */
14965 /* IDL: [unique(1)] [in] samr_CryptPassword *password3, */
14966 /* IDL: [out] [ref] samr_DomInfo1 **dominfo, */
14967 /* IDL: [out] [ref] userPwdChangeFailureInformation **reject */
14968 /* IDL: ); */
14969
14970 static int
14971 samr_dissect_ChangePasswordUser3_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14972 {
14973         guint32 status;
14974
14975         pinfo->dcerpc_procedure_name="ChangePasswordUser3";
14976         offset = samr_dissect_element_ChangePasswordUser3_dominfo(tvb, offset, pinfo, tree, drep);
14977         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14978
14979         offset = samr_dissect_element_ChangePasswordUser3_reject(tvb, offset, pinfo, tree, drep);
14980         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14981
14982         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
14983
14984         if (status != 0)
14985                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
14986
14987         return offset;
14988 }
14989
14990 static int
14991 samr_dissect_ChangePasswordUser3_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14992 {
14993         pinfo->dcerpc_procedure_name="ChangePasswordUser3";
14994         offset = samr_dissect_element_ChangePasswordUser3_server(tvb, offset, pinfo, tree, drep);
14995         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14996         offset = samr_dissect_element_ChangePasswordUser3_account(tvb, offset, pinfo, tree, drep);
14997         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
14998         offset = samr_dissect_element_ChangePasswordUser3_nt_password(tvb, offset, pinfo, tree, drep);
14999         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
15000         offset = samr_dissect_element_ChangePasswordUser3_nt_verifier(tvb, offset, pinfo, tree, drep);
15001         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
15002         offset = samr_dissect_element_ChangePasswordUser3_lm_change(tvb, offset, pinfo, tree, drep);
15003         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
15004         offset = samr_dissect_element_ChangePasswordUser3_lm_password(tvb, offset, pinfo, tree, drep);
15005         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
15006         offset = samr_dissect_element_ChangePasswordUser3_lm_verifier(tvb, offset, pinfo, tree, drep);
15007         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
15008         offset = samr_dissect_element_ChangePasswordUser3_password3(tvb, offset, pinfo, tree, drep);
15009         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
15010         return offset;
15011 }
15012
15013 static int
15014 samr_dissect_element_Connect5_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15015 {
15016         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);
15017
15018         return offset;
15019 }
15020
15021 static int
15022 samr_dissect_element_Connect5_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15023 {
15024         char *data;
15025
15026         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_samr_samr_Connect5_system_name, FALSE, &data);
15027         proto_item_append_text(tree, ": %s", data);
15028
15029         return offset;
15030 }
15031
15032 static int
15033 samr_dissect_element_Connect5_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15034 {
15035         offset = samr_dissect_bitmap_ConnectAccessMask(tvb, offset, pinfo, tree, drep, hf_samr_samr_Connect5_access_mask, 0);
15036
15037         return offset;
15038 }
15039
15040 static int
15041 samr_dissect_element_Connect5_level_in(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15042 {
15043         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_Connect5_level_in, 0);
15044
15045         return offset;
15046 }
15047
15048 static int
15049 samr_dissect_element_Connect5_info_in(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15050 {
15051         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);
15052
15053         return offset;
15054 }
15055
15056 static int
15057 samr_dissect_element_Connect5_info_in_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15058 {
15059         offset = samr_dissect_ConnectInfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_Connect5_info_in, *0);
15060
15061         return offset;
15062 }
15063
15064 static int
15065 samr_dissect_element_Connect5_level_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15066 {
15067         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);
15068
15069         return offset;
15070 }
15071
15072 static int
15073 samr_dissect_element_Connect5_level_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15074 {
15075         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_Connect5_level_out, 0);
15076
15077         return offset;
15078 }
15079
15080 static int
15081 samr_dissect_element_Connect5_info_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15082 {
15083         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);
15084
15085         return offset;
15086 }
15087
15088 static int
15089 samr_dissect_element_Connect5_info_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15090 {
15091         offset = samr_dissect_ConnectInfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_Connect5_info_out, *0);
15092
15093         return offset;
15094 }
15095
15096 static int
15097 samr_dissect_element_Connect5_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15098 {
15099         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);
15100
15101         return offset;
15102 }
15103
15104 static int
15105 samr_dissect_element_Connect5_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15106 {
15107         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_Connect5_connect_handle, 0);
15108
15109         return offset;
15110 }
15111
15112 /* IDL: NTSTATUS samr_Connect5( */
15113 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *system_name, */
15114 /* IDL: [in] samr_ConnectAccessMask access_mask, */
15115 /* IDL: [in] uint32 level_in, */
15116 /* IDL: [ref] [in] [switch_is(level_in)] samr_ConnectInfo *info_in, */
15117 /* IDL: [out] [ref] uint32 *level_out, */
15118 /* IDL: [out] [ref] [switch_is(*level_out)] samr_ConnectInfo *info_out, */
15119 /* IDL: [out] [ref] policy_handle *connect_handle */
15120 /* IDL: ); */
15121
15122 static int
15123 samr_dissect_Connect5_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15124 {
15125         guint32 status;
15126
15127         pinfo->dcerpc_procedure_name="Connect5";
15128         offset = samr_dissect_element_Connect5_level_out(tvb, offset, pinfo, tree, drep);
15129         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
15130
15131         offset = samr_dissect_element_Connect5_info_out(tvb, offset, pinfo, tree, drep);
15132         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
15133
15134         offset = samr_dissect_element_Connect5_connect_handle(tvb, offset, pinfo, tree, drep);
15135         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
15136
15137         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
15138
15139         if (status != 0)
15140                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
15141
15142         return offset;
15143 }
15144
15145 static int
15146 samr_dissect_Connect5_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15147 {
15148         pinfo->dcerpc_procedure_name="Connect5";
15149         offset = samr_dissect_element_Connect5_system_name(tvb, offset, pinfo, tree, drep);
15150         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
15151         offset = samr_dissect_element_Connect5_access_mask(tvb, offset, pinfo, tree, drep);
15152         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
15153         offset = samr_dissect_element_Connect5_level_in(tvb, offset, pinfo, tree, drep);
15154         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
15155         offset = samr_dissect_element_Connect5_info_in(tvb, offset, pinfo, tree, drep);
15156         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
15157         return offset;
15158 }
15159
15160 static int
15161 samr_dissect_element_RidToSid_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15162 {
15163         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);
15164
15165         return offset;
15166 }
15167
15168 static int
15169 samr_dissect_element_RidToSid_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15170 {
15171         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_RidToSid_domain_handle, 0);
15172
15173         return offset;
15174 }
15175
15176 static int
15177 samr_dissect_element_RidToSid_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15178 {
15179         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_RidToSid_rid, 0);
15180
15181         return offset;
15182 }
15183
15184 static int
15185 samr_dissect_element_RidToSid_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15186 {
15187         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);
15188
15189         return offset;
15190 }
15191
15192 static int
15193 samr_dissect_element_RidToSid_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15194 {
15195         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);
15196
15197         return offset;
15198 }
15199
15200 static int
15201 samr_dissect_element_RidToSid_sid__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15202 {
15203         offset = samr_dissect_struct_dom_sid2(tvb,offset,pinfo,tree,drep,hf_samr_samr_RidToSid_sid,0);
15204
15205         return offset;
15206 }
15207
15208 /* IDL: NTSTATUS samr_RidToSid( */
15209 /* IDL: [in] [ref] policy_handle *domain_handle, */
15210 /* IDL: [in] uint32 rid, */
15211 /* IDL: [out] [ref] dom_sid2 **sid */
15212 /* IDL: ); */
15213
15214 static int
15215 samr_dissect_RidToSid_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15216 {
15217         guint32 status;
15218
15219         pinfo->dcerpc_procedure_name="RidToSid";
15220         offset = samr_dissect_element_RidToSid_sid(tvb, offset, pinfo, tree, drep);
15221         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
15222
15223         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
15224
15225         if (status != 0)
15226                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
15227
15228         return offset;
15229 }
15230
15231 static int
15232 samr_dissect_RidToSid_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15233 {
15234         pinfo->dcerpc_procedure_name="RidToSid";
15235         offset = samr_dissect_element_RidToSid_domain_handle(tvb, offset, pinfo, tree, drep);
15236         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
15237         offset = samr_dissect_element_RidToSid_rid(tvb, offset, pinfo, tree, drep);
15238         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
15239         return offset;
15240 }
15241
15242 static int
15243 samr_dissect_element_SetDsrmPassword_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15244 {
15245         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);
15246
15247         return offset;
15248 }
15249
15250 static int
15251 samr_dissect_element_SetDsrmPassword_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15252 {
15253         offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_SetDsrmPassword_name,0);
15254
15255         return offset;
15256 }
15257
15258 static int
15259 samr_dissect_element_SetDsrmPassword_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15260 {
15261         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetDsrmPassword_unknown, 0);
15262
15263         return offset;
15264 }
15265
15266 static int
15267 samr_dissect_element_SetDsrmPassword_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15268 {
15269         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);
15270
15271         return offset;
15272 }
15273
15274 static int
15275 samr_dissect_element_SetDsrmPassword_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15276 {
15277         offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,drep,hf_samr_samr_SetDsrmPassword_hash,0);
15278
15279         return offset;
15280 }
15281
15282 /* IDL: NTSTATUS samr_SetDsrmPassword( */
15283 /* IDL: [unique(1)] [in] lsa_String *name, */
15284 /* IDL: [in] uint32 unknown, */
15285 /* IDL: [unique(1)] [in] samr_Password *hash */
15286 /* IDL: ); */
15287
15288 static int
15289 samr_dissect_SetDsrmPassword_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15290 {
15291         guint32 status;
15292
15293         pinfo->dcerpc_procedure_name="SetDsrmPassword";
15294         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
15295
15296         if (status != 0)
15297                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
15298
15299         return offset;
15300 }
15301
15302 static int
15303 samr_dissect_SetDsrmPassword_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15304 {
15305         pinfo->dcerpc_procedure_name="SetDsrmPassword";
15306         offset = samr_dissect_element_SetDsrmPassword_name(tvb, offset, pinfo, tree, drep);
15307         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
15308         offset = samr_dissect_element_SetDsrmPassword_unknown(tvb, offset, pinfo, tree, drep);
15309         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
15310         offset = samr_dissect_element_SetDsrmPassword_hash(tvb, offset, pinfo, tree, drep);
15311         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
15312         return offset;
15313 }
15314
15315 static int
15316 samr_dissect_element_ValidatePassword_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15317 {
15318         offset = samr_dissect_enum_ValidatePasswordLevel(tvb, offset, pinfo, tree, drep, hf_samr_samr_ValidatePassword_level, 0);
15319
15320         return offset;
15321 }
15322
15323 static int
15324 samr_dissect_element_ValidatePassword_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15325 {
15326         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);
15327
15328         return offset;
15329 }
15330
15331 static int
15332 samr_dissect_element_ValidatePassword_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15333 {
15334         offset = samr_dissect_ValidatePasswordReq(tvb, offset, pinfo, tree, drep, hf_samr_samr_ValidatePassword_req, *0);
15335
15336         return offset;
15337 }
15338
15339 static int
15340 samr_dissect_element_ValidatePassword_rep(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15341 {
15342         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);
15343
15344         return offset;
15345 }
15346
15347 static int
15348 samr_dissect_element_ValidatePassword_rep_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15349 {
15350         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);
15351
15352         return offset;
15353 }
15354
15355 static int
15356 samr_dissect_element_ValidatePassword_rep__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15357 {
15358         offset = samr_dissect_ValidatePasswordRep(tvb, offset, pinfo, tree, drep, hf_samr_samr_ValidatePassword_rep, *0);
15359
15360         return offset;
15361 }
15362
15363 /* IDL: NTSTATUS samr_ValidatePassword( */
15364 /* IDL: [in] samr_ValidatePasswordLevel level, */
15365 /* IDL: [ref] [in] [switch_is(level)] samr_ValidatePasswordReq *req, */
15366 /* IDL: [out] [ref] [switch_is(level)] samr_ValidatePasswordRep **rep */
15367 /* IDL: ); */
15368
15369 static int
15370 samr_dissect_ValidatePassword_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15371 {
15372         guint32 status;
15373
15374         pinfo->dcerpc_procedure_name="ValidatePassword";
15375         offset = samr_dissect_element_ValidatePassword_rep(tvb, offset, pinfo, tree, drep);
15376         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
15377
15378         offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
15379
15380         if (status != 0)
15381                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
15382
15383         return offset;
15384 }
15385
15386 static int
15387 samr_dissect_ValidatePassword_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15388 {
15389         pinfo->dcerpc_procedure_name="ValidatePassword";
15390         offset = samr_dissect_element_ValidatePassword_level(tvb, offset, pinfo, tree, drep);
15391         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
15392         offset = samr_dissect_element_ValidatePassword_req(tvb, offset, pinfo, tree, drep);
15393         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
15394         return offset;
15395 }
15396
15397
15398 static dcerpc_sub_dissector samr_dissectors[] = {
15399         { 0, "Connect",
15400            samr_dissect_Connect_request, samr_dissect_Connect_response},
15401         { 1, "Close",
15402            samr_dissect_Close_request, samr_dissect_Close_response},
15403         { 2, "SetSecurity",
15404            samr_dissect_SetSecurity_request, samr_dissect_SetSecurity_response},
15405         { 3, "QuerySecurity",
15406            samr_dissect_QuerySecurity_request, samr_dissect_QuerySecurity_response},
15407         { 4, "Shutdown",
15408            samr_dissect_Shutdown_request, samr_dissect_Shutdown_response},
15409         { 5, "LookupDomain",
15410            samr_dissect_LookupDomain_request, samr_dissect_LookupDomain_response},
15411         { 6, "EnumDomains",
15412            samr_dissect_EnumDomains_request, samr_dissect_EnumDomains_response},
15413         { 7, "OpenDomain",
15414            samr_dissect_OpenDomain_request, samr_dissect_OpenDomain_response},
15415         { 8, "QueryDomainInfo",
15416            samr_dissect_QueryDomainInfo_request, samr_dissect_QueryDomainInfo_response},
15417         { 9, "SetDomainInfo",
15418            samr_dissect_SetDomainInfo_request, samr_dissect_SetDomainInfo_response},
15419         { 10, "CreateDomainGroup",
15420            samr_dissect_CreateDomainGroup_request, samr_dissect_CreateDomainGroup_response},
15421         { 11, "EnumDomainGroups",
15422            samr_dissect_EnumDomainGroups_request, samr_dissect_EnumDomainGroups_response},
15423         { 12, "CreateUser",
15424            samr_dissect_CreateUser_request, samr_dissect_CreateUser_response},
15425         { 13, "EnumDomainUsers",
15426            samr_dissect_EnumDomainUsers_request, samr_dissect_EnumDomainUsers_response},
15427         { 14, "CreateDomAlias",
15428            samr_dissect_CreateDomAlias_request, samr_dissect_CreateDomAlias_response},
15429         { 15, "EnumDomainAliases",
15430            samr_dissect_EnumDomainAliases_request, samr_dissect_EnumDomainAliases_response},
15431         { 16, "GetAliasMembership",
15432            samr_dissect_GetAliasMembership_request, samr_dissect_GetAliasMembership_response},
15433         { 17, "LookupNames",
15434            samr_dissect_LookupNames_request, samr_dissect_LookupNames_response},
15435         { 18, "LookupRids",
15436            samr_dissect_LookupRids_request, samr_dissect_LookupRids_response},
15437         { 19, "OpenGroup",
15438            samr_dissect_OpenGroup_request, samr_dissect_OpenGroup_response},
15439         { 20, "QueryGroupInfo",
15440            samr_dissect_QueryGroupInfo_request, samr_dissect_QueryGroupInfo_response},
15441         { 21, "SetGroupInfo",
15442            samr_dissect_SetGroupInfo_request, samr_dissect_SetGroupInfo_response},
15443         { 22, "AddGroupMember",
15444            samr_dissect_AddGroupMember_request, samr_dissect_AddGroupMember_response},
15445         { 23, "DeleteDomainGroup",
15446            samr_dissect_DeleteDomainGroup_request, samr_dissect_DeleteDomainGroup_response},
15447         { 24, "DeleteGroupMember",
15448            samr_dissect_DeleteGroupMember_request, samr_dissect_DeleteGroupMember_response},
15449         { 25, "QueryGroupMember",
15450            samr_dissect_QueryGroupMember_request, samr_dissect_QueryGroupMember_response},
15451         { 26, "SetMemberAttributesOfGroup",
15452            samr_dissect_SetMemberAttributesOfGroup_request, samr_dissect_SetMemberAttributesOfGroup_response},
15453         { 27, "OpenAlias",
15454            samr_dissect_OpenAlias_request, samr_dissect_OpenAlias_response},
15455         { 28, "QueryAliasInfo",
15456            samr_dissect_QueryAliasInfo_request, samr_dissect_QueryAliasInfo_response},
15457         { 29, "SetAliasInfo",
15458            samr_dissect_SetAliasInfo_request, samr_dissect_SetAliasInfo_response},
15459         { 30, "DeleteDomAlias",
15460            samr_dissect_DeleteDomAlias_request, samr_dissect_DeleteDomAlias_response},
15461         { 31, "AddAliasMember",
15462            samr_dissect_AddAliasMember_request, samr_dissect_AddAliasMember_response},
15463         { 32, "DeleteAliasMember",
15464            samr_dissect_DeleteAliasMember_request, samr_dissect_DeleteAliasMember_response},
15465         { 33, "GetMembersInAlias",
15466            samr_dissect_GetMembersInAlias_request, samr_dissect_GetMembersInAlias_response},
15467         { 34, "OpenUser",
15468            samr_dissect_OpenUser_request, samr_dissect_OpenUser_response},
15469         { 35, "DeleteUser",
15470            samr_dissect_DeleteUser_request, samr_dissect_DeleteUser_response},
15471         { 36, "QueryUserInfo",
15472            samr_dissect_QueryUserInfo_request, samr_dissect_QueryUserInfo_response},
15473         { 37, "SetUserInfo",
15474            samr_dissect_SetUserInfo_request, samr_dissect_SetUserInfo_response},
15475         { 38, "ChangePasswordUser",
15476            samr_dissect_ChangePasswordUser_request, samr_dissect_ChangePasswordUser_response},
15477         { 39, "GetGroupsForUser",
15478            samr_dissect_GetGroupsForUser_request, samr_dissect_GetGroupsForUser_response},
15479         { 40, "QueryDisplayInfo",
15480            samr_dissect_QueryDisplayInfo_request, samr_dissect_QueryDisplayInfo_response},
15481         { 41, "GetDisplayEnumerationIndex",
15482            samr_dissect_GetDisplayEnumerationIndex_request, samr_dissect_GetDisplayEnumerationIndex_response},
15483         { 42, "TestPrivateFunctionsDomain",
15484            samr_dissect_TestPrivateFunctionsDomain_request, samr_dissect_TestPrivateFunctionsDomain_response},
15485         { 43, "TestPrivateFunctionsUser",
15486            samr_dissect_TestPrivateFunctionsUser_request, samr_dissect_TestPrivateFunctionsUser_response},
15487         { 44, "GetUserPwInfo",
15488            samr_dissect_GetUserPwInfo_request, samr_dissect_GetUserPwInfo_response},
15489         { 45, "RemoveMemberFromForeignDomain",
15490            samr_dissect_RemoveMemberFromForeignDomain_request, samr_dissect_RemoveMemberFromForeignDomain_response},
15491         { 46, "QueryDomainInfo2",
15492            samr_dissect_QueryDomainInfo2_request, samr_dissect_QueryDomainInfo2_response},
15493         { 47, "QueryUserInfo2",
15494            samr_dissect_QueryUserInfo2_request, samr_dissect_QueryUserInfo2_response},
15495         { 48, "QueryDisplayInfo2",
15496            samr_dissect_QueryDisplayInfo2_request, samr_dissect_QueryDisplayInfo2_response},
15497         { 49, "GetDisplayEnumerationIndex2",
15498            samr_dissect_GetDisplayEnumerationIndex2_request, samr_dissect_GetDisplayEnumerationIndex2_response},
15499         { 50, "CreateUser2",
15500            samr_dissect_CreateUser2_request, samr_dissect_CreateUser2_response},
15501         { 51, "QueryDisplayInfo3",
15502            samr_dissect_QueryDisplayInfo3_request, samr_dissect_QueryDisplayInfo3_response},
15503         { 52, "AddMultipleMembersToAlias",
15504            samr_dissect_AddMultipleMembersToAlias_request, samr_dissect_AddMultipleMembersToAlias_response},
15505         { 53, "RemoveMultipleMembersFromAlias",
15506            samr_dissect_RemoveMultipleMembersFromAlias_request, samr_dissect_RemoveMultipleMembersFromAlias_response},
15507         { 54, "OemChangePasswordUser2",
15508            samr_dissect_OemChangePasswordUser2_request, samr_dissect_OemChangePasswordUser2_response},
15509         { 55, "ChangePasswordUser2",
15510            samr_dissect_ChangePasswordUser2_request, samr_dissect_ChangePasswordUser2_response},
15511         { 56, "GetDomPwInfo",
15512            samr_dissect_GetDomPwInfo_request, samr_dissect_GetDomPwInfo_response},
15513         { 57, "Connect2",
15514            samr_dissect_Connect2_request, samr_dissect_Connect2_response},
15515         { 58, "SetUserInfo2",
15516            samr_dissect_SetUserInfo2_request, samr_dissect_SetUserInfo2_response},
15517         { 59, "SetBootKeyInformation",
15518            samr_dissect_SetBootKeyInformation_request, samr_dissect_SetBootKeyInformation_response},
15519         { 60, "GetBootKeyInformation",
15520            samr_dissect_GetBootKeyInformation_request, samr_dissect_GetBootKeyInformation_response},
15521         { 61, "Connect3",
15522            samr_dissect_Connect3_request, samr_dissect_Connect3_response},
15523         { 62, "Connect4",
15524            samr_dissect_Connect4_request, samr_dissect_Connect4_response},
15525         { 63, "ChangePasswordUser3",
15526            samr_dissect_ChangePasswordUser3_request, samr_dissect_ChangePasswordUser3_response},
15527         { 64, "Connect5",
15528            samr_dissect_Connect5_request, samr_dissect_Connect5_response},
15529         { 65, "RidToSid",
15530            samr_dissect_RidToSid_request, samr_dissect_RidToSid_response},
15531         { 66, "SetDsrmPassword",
15532            samr_dissect_SetDsrmPassword_request, samr_dissect_SetDsrmPassword_response},
15533         { 67, "ValidatePassword",
15534            samr_dissect_ValidatePassword_request, samr_dissect_ValidatePassword_response},
15535         { 0, NULL, NULL, NULL }
15536 };
15537
15538 void proto_register_dcerpc_samr(void)
15539 {
15540         static hf_register_info hf[] = {
15541         { &hf_samr_samr_QueryDisplayInfo2_level,
15542           { "Level", "samr.samr_QueryDisplayInfo2.level", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
15543         { &hf_samr_samr_Connect5_connect_handle,
15544           { "Connect Handle", "samr.samr_Connect5.connect_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15545         { &hf_samr_samr_Connect2_system_name,
15546           { "System Name", "samr.samr_Connect2.system_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15547         { &hf_samr_samr_AcctFlags_ACB_DONT_REQUIRE_PREAUTH,
15548           { "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 }},
15549         { &hf_samr_samr_DomainInfo_oem,
15550           { "Oem", "samr.samr_DomainInfo.oem", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15551         { &hf_samr_samr_DispInfoAscii_entries,
15552           { "Entries", "samr.samr_DispInfoAscii.entries", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15553         { &hf_samr_samr_QueryAliasInfo_level,
15554           { "Level", "samr.samr_QueryAliasInfo.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_AliasInfoEnum_vals), 0, NULL, HFILL }},
15555         { &hf_samr_samr_DispEntryFullGroup_idx,
15556           { "Idx", "samr.samr_DispEntryFullGroup.idx", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15557         { &hf_samr_samr_QueryGroupInfo_info,
15558           { "Info", "samr.samr_QueryGroupInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15559         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_LOGON_SCRIPT,
15560           { "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 }},
15561         { &hf_samr_samr_UserInfo21_primary_gid,
15562           { "Primary Gid", "samr.samr_UserInfo21.primary_gid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15563         { &hf_samr_samr_DomGeneralInformation2_lockout_duration,
15564           { "Lockout Duration", "samr.samr_DomGeneralInformation2.lockout_duration", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
15565         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_ACCT_EXPIRY,
15566           { "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 }},
15567         { &hf_samr_samr_DispInfoGeneral_count,
15568           { "Count", "samr.samr_DispInfoGeneral.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15569         { &hf_samr_samr_CreateUser_rid,
15570           { "Rid", "samr.samr_CreateUser.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15571         { &hf_samr_samr_QueryDisplayInfo3_total_size,
15572           { "Total Size", "samr.samr_QueryDisplayInfo3.total_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15573         { &hf_samr_samr_GetDomPwInfo_info,
15574           { "Info", "samr.samr_GetDomPwInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15575         { &hf_samr_samr_QuerySecurity_sdbuf,
15576           { "Sdbuf", "samr.samr_QuerySecurity.sdbuf", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15577         { &hf_samr_samr_UserInfo3_workstations,
15578           { "Workstations", "samr.samr_UserInfo3.workstations", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15579         { &hf_samr_samr_QueryUserInfo2_info,
15580           { "Info", "samr.samr_QueryUserInfo2.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15581         { &hf_samr_samr_QueryDisplayInfo3_start_idx,
15582           { "Start Idx", "samr.samr_QueryDisplayInfo3.start_idx", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15583         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_PARAMETERS,
15584           { "Samr Field Parameters", "samr.samr_FieldsPresent.SAMR_FIELD_PARAMETERS", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_PARAMETERS_tfs), ( 0x00200000 ), NULL, HFILL }},
15585         { &hf_samr_samr_DomGeneralInformation_num_users,
15586           { "Num Users", "samr.samr_DomGeneralInformation.num_users", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15587         { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_ALIAS,
15588           { "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 }},
15589         { &hf_samr_samr_UserInfo21_acct_flags,
15590           { "Acct Flags", "samr.samr_UserInfo21.acct_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
15591         { &hf_samr_samr_CreateDomainGroup_access_mask,
15592           { "Access Mask", "samr.samr_CreateDomainGroup.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
15593         { &hf_samr_samr_UserInfo5_profile_path,
15594           { "Profile Path", "samr.samr_UserInfo5.profile_path", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15595         { &hf_samr_samr_AcctFlags_ACB_PW_EXPIRED,
15596           { "Acb Pw Expired", "samr.samr_AcctFlags.ACB_PW_EXPIRED", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_PW_EXPIRED_tfs), ( 0x00020000 ), NULL, HFILL }},
15597         { &hf_samr_samr_OpenUser_rid,
15598           { "Rid", "samr.samr_OpenUser.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15599         { &hf_samr_samr_ValidatePasswordReq3_hash,
15600           { "Hash", "samr.samr_ValidatePasswordReq3.hash", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15601         { &hf_samr_samr_Connect2_access_mask,
15602           { "Access Mask", "samr.samr_Connect2.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
15603         { &hf_samr_samr_SetUserInfo_user_handle,
15604           { "User Handle", "samr.samr_SetUserInfo.user_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15605         { &hf_samr_samr_QueryDomainInfo_info,
15606           { "Info", "samr.samr_QueryDomainInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15607         { &hf_samr_samr_UserInfo_info16,
15608           { "Info16", "samr.samr_UserInfo.info16", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15609         { &hf_samr_samr_SetBootKeyInformation_unknown1,
15610           { "Unknown1", "samr.samr_SetBootKeyInformation.unknown1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15611         { &hf_samr_samr_GroupInfo_attributes,
15612           { "Attributes", "samr.samr_GroupInfo.attributes", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15613         { &hf_samr_samr_DomInfo3_force_logoff_time,
15614           { "Force Logoff Time", "samr.samr_DomInfo3.force_logoff_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
15615         { &hf_samr_samr_ChangePasswordUser_new_nt_crypted,
15616           { "New Nt Crypted", "samr.samr_ChangePasswordUser.new_nt_crypted", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15617         { &hf_samr_samr_ChangePasswordUser3_reject,
15618           { "Reject", "samr.samr_ChangePasswordUser3.reject", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15619         { &hf_samr_samr_QueryDomainInfo2_info,
15620           { "Info", "samr.samr_QueryDomainInfo2.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15621         { &hf_samr_samr_UserInfo1_description,
15622           { "Description", "samr.samr_UserInfo1.description", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15623         { &hf_samr_samr_SetAliasInfo_info,
15624           { "Info", "samr.samr_SetAliasInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15625         { &hf_samr_samr_ChangePasswordUser_cross1_present,
15626           { "Cross1 Present", "samr.samr_ChangePasswordUser.cross1_present", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
15627         { &hf_samr_samr_UserInfo5_primary_gid,
15628           { "Primary Gid", "samr.samr_UserInfo5.primary_gid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15629         { &hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_NO_CLEAR_CHANGE,
15630           { "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 }},
15631         { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT,
15632           { "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 }},
15633         { &hf_samr_samr_Connect4_system_name,
15634           { "System Name", "samr.samr_Connect4.system_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15635         { &hf_samr_samr_QueryDisplayInfo3_buf_size,
15636           { "Buf Size", "samr.samr_QueryDisplayInfo3.buf_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15637         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_NUM_LOGONS,
15638           { "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 }},
15639         { &hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_BAD_PASSWORD_COUNT,
15640           { "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 }},
15641         { &hf_samr_samr_Connect5_access_mask,
15642           { "Access Mask", "samr.samr_Connect5.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
15643         { &hf_samr_samr_Ids_ids,
15644           { "Ids", "samr.samr_Ids.ids", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15645         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_LAST_PWD_CHANGE,
15646           { "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 }},
15647         { &hf_samr_samr_UserInfo20_parameters,
15648           { "Parameters", "samr.samr_UserInfo20.parameters", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15649         { &hf_samr_samr_UserInfo18_lm_pwd,
15650           { "Lm Pwd", "samr.samr_UserInfo18.lm_pwd", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15651         { &hf_samr_samr_UserInfo1_account_name,
15652           { "Account Name", "samr.samr_UserInfo1.account_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15653         { &hf_samr_samr_ChangePasswordUser2_lm_change,
15654           { "Lm Change", "samr.samr_ChangePasswordUser2.lm_change", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
15655         { &hf_samr_samr_UserInfo21_description,
15656           { "Description", "samr.samr_UserInfo21.description", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15657         { &hf_samr_samr_UserInfo21_profile_path,
15658           { "Profile Path", "samr.samr_UserInfo21.profile_path", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15659         { &hf_samr_samr_ValidatePassword_req,
15660           { "Req", "samr.samr_ValidatePassword.req", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15661         { &hf_samr_samr_AcctFlags_ACB_DISABLED,
15662           { "Acb Disabled", "samr.samr_AcctFlags.ACB_DISABLED", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_DISABLED_tfs), ( 0x00000001 ), NULL, HFILL }},
15663         { &hf_samr_samr_UserInfo21_private_data_sensitive,
15664           { "Private Data Sensitive", "samr.samr_UserInfo21.private_data_sensitive", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
15665         { &hf_samr_samr_ChangePasswordUser_nt_cross,
15666           { "Nt Cross", "samr.samr_ChangePasswordUser.nt_cross", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15667         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_ACCOUNT_NAME,
15668           { "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 }},
15669         { &hf_samr_samr_UserInfo21_rid,
15670           { "Rid", "samr.samr_UserInfo21.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15671         { &hf_samr_samr_OpenGroup_access_mask,
15672           { "Access Mask", "samr.samr_OpenGroup.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
15673         { &hf_samr_samr_ValidatePasswordReq3_password,
15674           { "Password", "samr.samr_ValidatePasswordReq3.password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15675         { &hf_samr_samr_UserInfo5_logon_script,
15676           { "Logon Script", "samr.samr_UserInfo5.logon_script", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15677         { &hf_samr_samr_RidWithAttributeArray_count,
15678           { "Count", "samr.samr_RidWithAttributeArray.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15679         { &hf_samr_samr_AddGroupMember_group_handle,
15680           { "Group Handle", "samr.samr_AddGroupMember.group_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15681         { &hf_samr_samr_ValidatePasswordInfo_pwd_history_len,
15682           { "Pwd History Len", "samr.samr_ValidatePasswordInfo.pwd_history_len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15683         { &hf_samr_samr_DispInfoFullGroups_entries,
15684           { "Entries", "samr.samr_DispInfoFullGroups.entries", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15685         { &hf_samr_samr_UserInfo5_bad_password_count,
15686           { "Bad Password Count", "samr.samr_UserInfo5.bad_password_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
15687         { &hf_samr_samr_DomainInfo_info5,
15688           { "Info5", "samr.samr_DomainInfo.info5", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15689         { &hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_ADD_MEMBER,
15690           { "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 }},
15691         { &hf_samr_samr_UserInfo_info6,
15692           { "Info6", "samr.samr_UserInfo.info6", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15693         { &hf_samr_samr_Connect5_info_out,
15694           { "Info Out", "samr.samr_Connect5.info_out", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15695         { &hf_samr_samr_Connect_connect_handle,
15696           { "Connect Handle", "samr.samr_Connect.connect_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15697         { &hf_samr_samr_UserInfo3_logon_script,
15698           { "Logon Script", "samr.samr_UserInfo3.logon_script", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15699         { &hf_samr_samr_SetUserInfo_level,
15700           { "Level", "samr.samr_SetUserInfo.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_UserInfoLevel_vals), 0, NULL, HFILL }},
15701         { &hf_samr_samr_UserInfo21_last_logon,
15702           { "Last Logon", "samr.samr_UserInfo21.last_logon", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
15703         { &hf_samr_samr_GetBootKeyInformation_domain_handle,
15704           { "Domain Handle", "samr.samr_GetBootKeyInformation.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15705         { &hf_samr_samr_QueryDisplayInfo3_returned_size,
15706           { "Returned Size", "samr.samr_QueryDisplayInfo3.returned_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15707         { &hf_samr_samr_ValidatePasswordReq3_account,
15708           { "Account", "samr.samr_ValidatePasswordReq3.account", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15709         { &hf_samr_samr_UserInfo7_account_name,
15710           { "Account Name", "samr.samr_UserInfo7.account_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15711         { &hf_samr_samr_UserInfo23_info,
15712           { "Info", "samr.samr_UserInfo23.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15713         { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_1,
15714           { "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 }},
15715         { &hf_samr_samr_UserInfo3_last_logon,
15716           { "Last Logon", "samr.samr_UserInfo3.last_logon", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
15717         { &hf_samr_samr_UserInfo_info10,
15718           { "Info10", "samr.samr_UserInfo.info10", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15719         { &hf_samr_samr_EnumDomainGroups_max_size,
15720           { "Max Size", "samr.samr_EnumDomainGroups.max_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15721         { &hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_NO_ANON_CHANGE,
15722           { "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 }},
15723         { &hf_samr_samr_UserInfo3_full_name,
15724           { "Full Name", "samr.samr_UserInfo3.full_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15725         { &hf_samr_samr_SetUserInfo2_user_handle,
15726           { "User Handle", "samr.samr_SetUserInfo2.user_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15727         { &hf_samr_samr_DispEntryAscii_account_name,
15728           { "Account Name", "samr.samr_DispEntryAscii.account_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15729         { &hf_samr_samr_UserInfo11_logon_script,
15730           { "Logon Script", "samr.samr_UserInfo11.logon_script", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15731         { &hf_samr_samr_ChangePasswordUser_lm_present,
15732           { "Lm Present", "samr.samr_ChangePasswordUser.lm_present", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
15733         { &hf_samr_samr_AddMultipleMembersToAlias_sids,
15734           { "Sids", "samr.samr_AddMultipleMembersToAlias.sids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15735         { &hf_samr_samr_OpenDomain_domain_handle,
15736           { "Domain Handle", "samr.samr_OpenDomain.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15737         { &hf_samr_samr_DomInfo13_sequence_num,
15738           { "Sequence Num", "samr.samr_DomInfo13.sequence_num", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
15739         { &hf_samr_samr_UserInfo_info21,
15740           { "Info21", "samr.samr_UserInfo.info21", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15741         { &hf_samr_samr_ValidatePasswordReq_req1,
15742           { "Req1", "samr.samr_ValidatePasswordReq.req1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15743         { &hf_samr_samr_GetAliasMembership_domain_handle,
15744           { "Domain Handle", "samr.samr_GetAliasMembership.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15745         { &hf_samr_samr_AcctFlags_ACB_MNS,
15746           { "Acb Mns", "samr.samr_AcctFlags.ACB_MNS", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_MNS_tfs), ( 0x00000020 ), NULL, HFILL }},
15747         { &hf_samr_samr_DispEntryFullGroup_description,
15748           { "Description", "samr.samr_DispEntryFullGroup.description", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15749         { &hf_samr_samr_SetSecurity_sdbuf,
15750           { "Sdbuf", "samr.samr_SetSecurity.sdbuf", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15751         { &hf_samr_samr_ValidatePasswordReq2_account,
15752           { "Account", "samr.samr_ValidatePasswordReq2.account", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15753         { &hf_samr_samr_LookupNames_names,
15754           { "Names", "samr.samr_LookupNames.names", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15755         { &hf_samr_samr_PasswordProperties_DOMAIN_REFUSE_PASSWORD_CHANGE,
15756           { "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 }},
15757         { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_CHANGE_GROUP_MEMBERSHIP,
15758           { "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 }},
15759         { &hf_samr_samr_PwInfo_password_properties,
15760           { "Password Properties", "samr.samr_PwInfo.password_properties", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
15761         { &hf_samr_samr_ValidatePasswordReq_req2,
15762           { "Req2", "samr.samr_ValidatePasswordReq.req2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15763         { &hf_samr_samr_DomGeneralInformation2_lockout_window,
15764           { "Lockout Window", "samr.samr_DomGeneralInformation2.lockout_window", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
15765         { &hf_samr_samr_QueryDisplayInfo2_returned_size,
15766           { "Returned Size", "samr.samr_QueryDisplayInfo2.returned_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15767         { &hf_samr_samr_SetBootKeyInformation_unknown2,
15768           { "Unknown2", "samr.samr_SetBootKeyInformation.unknown2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15769         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_LAST_LOGON,
15770           { "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 }},
15771         { &hf_samr_samr_RidToSid_rid,
15772           { "Rid", "samr.samr_RidToSid.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15773         { &hf_samr_samr_Ids_count,
15774           { "Count", "samr.samr_Ids.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15775         { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_SET_LOC_COM,
15776           { "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 }},
15777         { &hf_samr_samr_AcctFlags_ACB_SMARTCARD_REQUIRED,
15778           { "Acb Smartcard Required", "samr.samr_AcctFlags.ACB_SMARTCARD_REQUIRED", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_SMARTCARD_REQUIRED_tfs), ( 0x00001000 ), NULL, HFILL }},
15779         { &hf_samr_samr_ChangePasswordUser3_nt_verifier,
15780           { "Nt Verifier", "samr.samr_ChangePasswordUser3.nt_verifier", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15781         { &hf_samr_samr_UserInfo_info17,
15782           { "Info17", "samr.samr_UserInfo.info17", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15783         { &hf_samr_samr_LookupRids_types,
15784           { "Types", "samr.samr_LookupRids.types", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15785         { &hf_samr_samr_DeleteGroupMember_rid,
15786           { "Rid", "samr.samr_DeleteGroupMember.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15787         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_PROFILE_PATH,
15788           { "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 }},
15789         { &hf_samr_samr_ChangePasswordUser3_lm_change,
15790           { "Lm Change", "samr.samr_ChangePasswordUser3.lm_change", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
15791         { &hf_samr_samr_CreateUser2_rid,
15792           { "Rid", "samr.samr_CreateUser2.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15793         { &hf_samr_samr_LookupRids_rids,
15794           { "Rids", "samr.samr_LookupRids.rids", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15795         { &hf_samr_samr_UserInfo1_primary_gid,
15796           { "Primary Gid", "samr.samr_UserInfo1.primary_gid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15797         { &hf_samr_samr_GetMembersInAlias_alias_handle,
15798           { "Alias Handle", "samr.samr_GetMembersInAlias.alias_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15799         { &hf_samr_samr_ValidatePasswordReq1_info,
15800           { "Info", "samr.samr_ValidatePasswordReq1.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15801         { &hf_samr_samr_UserInfo21_home_drive,
15802           { "Home Drive", "samr.samr_UserInfo21.home_drive", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15803         { &hf_samr_samr_AcctFlags_ACB_PWNOEXP,
15804           { "Acb Pwnoexp", "samr.samr_AcctFlags.ACB_PWNOEXP", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_PWNOEXP_tfs), ( 0x00000200 ), NULL, HFILL }},
15805         { &hf_samr_samr_DomOEMInformation_oem_information,
15806           { "Oem Information", "samr.samr_DomOEMInformation.oem_information", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15807         { &hf_samr_samr_SetBootKeyInformation_connect_handle,
15808           { "Connect Handle", "samr.samr_SetBootKeyInformation.connect_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15809         { &hf_samr_samr_EnumDomainAliases_num_entries,
15810           { "Num Entries", "samr.samr_EnumDomainAliases.num_entries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15811         { &hf_samr_samr_AcctFlags_ACB_SVRTRUST,
15812           { "Acb Svrtrust", "samr.samr_AcctFlags.ACB_SVRTRUST", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_SVRTRUST_tfs), ( 0x00000100 ), NULL, HFILL }},
15813         { &hf_samr_samr_OpenAlias_domain_handle,
15814           { "Domain Handle", "samr.samr_OpenAlias.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15815         { &hf_samr_samr_DomGeneralInformation_oem_information,
15816           { "Oem Information", "samr.samr_DomGeneralInformation.oem_information", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15817         { &hf_samr_samr_UserInfo_info8,
15818           { "Info8", "samr.samr_UserInfo.info8", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15819         { &hf_samr_samr_UserInfo25_info,
15820           { "Info", "samr.samr_UserInfo25.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15821         { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_GROUP_MEMBERSHIP,
15822           { "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 }},
15823         { &hf_samr_samr_CreateDomainGroup_name,
15824           { "Name", "samr.samr_CreateDomainGroup.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15825         { &hf_samr_samr_DomGeneralInformation_num_groups,
15826           { "Num Groups", "samr.samr_DomGeneralInformation.num_groups", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15827         { &hf_samr_samr_SetGroupInfo_info,
15828           { "Info", "samr.samr_SetGroupInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15829         { &hf_samr_samr_EnumDomainAliases_resume_handle,
15830           { "Resume Handle", "samr.samr_EnumDomainAliases.resume_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15831         { &hf_samr_samr_DomGeneralInformation_num_aliases,
15832           { "Num Aliases", "samr.samr_DomGeneralInformation.num_aliases", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15833         { &hf_samr_samr_EnumDomainAliases_max_size,
15834           { "Max Size", "samr.samr_EnumDomainAliases.max_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15835         { &hf_samr_samr_UserInfo21_full_name,
15836           { "Full Name", "samr.samr_UserInfo21.full_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15837         { &hf_samr_samr_GetDomPwInfo_domain_name,
15838           { "Domain Name", "samr.samr_GetDomPwInfo.domain_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15839         { &hf_samr_samr_UserInfo3_primary_gid,
15840           { "Primary Gid", "samr.samr_UserInfo3.primary_gid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15841         { &hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_LOOKUP_INFO,
15842           { "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 }},
15843         { &hf_samr_samr_UserInfo_info5,
15844           { "Info5", "samr.samr_UserInfo.info5", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15845         { &hf_samr_samr_RidWithAttribute_rid,
15846           { "Rid", "samr.samr_RidWithAttribute.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15847         { &hf_samr_samr_UserInfo3_home_directory,
15848           { "Home Directory", "samr.samr_UserInfo3.home_directory", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15849         { &hf_samr_samr_ChangePasswordUser_cross2_present,
15850           { "Cross2 Present", "samr.samr_ChangePasswordUser.cross2_present", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
15851         { &hf_samr_samr_DeleteAliasMember_sid,
15852           { "Sid", "samr.samr_DeleteAliasMember.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15853         { &hf_samr_samr_ValidatePassword_rep,
15854           { "Rep", "samr.samr_ValidatePassword.rep", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15855         { &hf_samr_samr_ValidatePasswordInfo_fields_present,
15856           { "Fields Present", "samr.samr_ValidatePasswordInfo.fields_present", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
15857         { &hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_REMOVE_MEMBER,
15858           { "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 }},
15859         { &hf_samr_samr_SetMemberAttributesOfGroup_unknown1,
15860           { "Unknown1", "samr.samr_SetMemberAttributesOfGroup.unknown1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15861         { &hf_samr_samr_GetDisplayEnumerationIndex2_level,
15862           { "Level", "samr.samr_GetDisplayEnumerationIndex2.level", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
15863         { &hf_samr_samr_AcctFlags_ACB_ENC_TXT_PWD_ALLOWED,
15864           { "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 }},
15865         { &hf_samr_samr_AliasInfo_description,
15866           { "Description", "samr.samr_AliasInfo.description", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15867         { &hf_samr_samr_QueryDisplayInfo_info,
15868           { "Info", "samr.samr_QueryDisplayInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15869         { &hf_samr_samr_GroupInfoAll_num_members,
15870           { "Num Members", "samr.samr_GroupInfoAll.num_members", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15871         { &hf_samr_samr_SetGroupInfo_group_handle,
15872           { "Group Handle", "samr.samr_SetGroupInfo.group_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15873         { &hf_samr_status,
15874           { "NT Error", "samr.status", FT_UINT32, BASE_HEX, VALS(NT_errors), 0, NULL, HFILL }},
15875         { &hf_samr_samr_UserInfo5_rid,
15876           { "Rid", "samr.samr_UserInfo5.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15877         { &hf_samr_samr_UserInfo12_profile_path,
15878           { "Profile Path", "samr.samr_UserInfo12.profile_path", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15879         { &hf_samr_samr_LookupDomain_connect_handle,
15880           { "Connect Handle", "samr.samr_LookupDomain.connect_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15881         { &hf_samr_samr_UserInfo21_comment,
15882           { "Comment", "samr.samr_UserInfo21.comment", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15883         { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_2,
15884           { "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 }},
15885         { &hf_samr_samr_UserInfo_info14,
15886           { "Info14", "samr.samr_UserInfo.info14", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15887         { &hf_samr_samr_CreateUser2_access_granted,
15888           { "Access Granted", "samr.samr_CreateUser2.access_granted", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15889         { &hf_samr_samr_ConnectInfo1_client_version,
15890           { "Client Version", "samr.samr_ConnectInfo1.client_version", FT_UINT32, BASE_DEC, VALS(samr_samr_ConnectVersion_vals), 0, NULL, HFILL }},
15891         { &hf_samr_samr_UserInfo5_acct_flags,
15892           { "Acct Flags", "samr.samr_UserInfo5.acct_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
15893         { &hf_samr_samr_UserInfo24_password_expired,
15894           { "Password Expired", "samr.samr_UserInfo24.password_expired", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
15895         { &hf_samr_samr_AcctFlags_ACB_NOT_DELEGATED,
15896           { "Acb Not Delegated", "samr.samr_AcctFlags.ACB_NOT_DELEGATED", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_NOT_DELEGATED_tfs), ( 0x00004000 ), NULL, HFILL }},
15897         { &hf_samr_samr_SetDsrmPassword_name,
15898           { "Name", "samr.samr_SetDsrmPassword.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15899         { &hf_samr_samr_Connect_system_name,
15900           { "System Name", "samr.samr_Connect.system_name", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
15901         { &hf_samr_samr_DomInfo1_min_password_age,
15902           { "Min Password Age", "samr.samr_DomInfo1.min_password_age", FT_INT64, BASE_DEC, NULL, 0, NULL, HFILL }},
15903         { &hf_samr_samr_LookupNames_domain_handle,
15904           { "Domain Handle", "samr.samr_LookupNames.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15905         { &hf_samr_samr_LookupRids_num_rids,
15906           { "Num Rids", "samr.samr_LookupRids.num_rids", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15907         { &hf_samr_samr_GroupInfoDescription_description,
15908           { "Description", "samr.samr_GroupInfoDescription.description", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15909         { &hf_samr_samr_RidAttrArray_count,
15910           { "Count", "samr.samr_RidAttrArray.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15911         { &hf_samr_samr_QueryUserInfo_level,
15912           { "Level", "samr.samr_QueryUserInfo.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_UserInfoLevel_vals), 0, NULL, HFILL }},
15913         { &hf_samr_samr_GroupAttrs_SE_GROUP_LOGON_ID,
15914           { "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 }},
15915         { &hf_samr_samr_DispEntryGeneral_account_name,
15916           { "Account Name", "samr.samr_DispEntryGeneral.account_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15917         { &hf_samr_samr_QueryAliasInfo_alias_handle,
15918           { "Alias Handle", "samr.samr_QueryAliasInfo.alias_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15919         { &hf_samr_samr_AcctFlags_ACB_HOMDIRREQ,
15920           { "Acb Homdirreq", "samr.samr_AcctFlags.ACB_HOMDIRREQ", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_HOMDIRREQ_tfs), ( 0x00000002 ), NULL, HFILL }},
15921         { &hf_samr_samr_CryptPasswordEx_data,
15922           { "Data", "samr.samr_CryptPasswordEx.data", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15923         { &hf_samr_samr_SetAliasInfo_alias_handle,
15924           { "Alias Handle", "samr.samr_SetAliasInfo.alias_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15925         { &hf_samr_samr_ValidatePasswordInfo_bad_password_time,
15926           { "Bad Password Time", "samr.samr_ValidatePasswordInfo.bad_password_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
15927         { &hf_samr_samr_AcctFlags_ACB_USE_DES_KEY_ONLY,
15928           { "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 }},
15929         { &hf_samr_samr_DispInfo_info1,
15930           { "Info1", "samr.samr_DispInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15931         { &hf_samr_samr_SetDomainInfo_level,
15932           { "Level", "samr.samr_SetDomainInfo.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_DomainInfoClass_vals), 0, NULL, HFILL }},
15933         { &hf_samr_samr_DispInfo_info4,
15934           { "Info4", "samr.samr_DispInfo.info4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15935         { &hf_samr_samr_DomInfo8_domain_create_time,
15936           { "Domain Create Time", "samr.samr_DomInfo8.domain_create_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
15937         { &hf_samr_samr_ChangePasswordUser_old_nt_crypted,
15938           { "Old Nt Crypted", "samr.samr_ChangePasswordUser.old_nt_crypted", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15939         { &hf_samr_samr_DomGeneralInformation_force_logoff_time,
15940           { "Force Logoff Time", "samr.samr_DomGeneralInformation.force_logoff_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
15941         { &hf_samr_samr_DomInfo12_lockout_threshold,
15942           { "Lockout Threshold", "samr.samr_DomInfo12.lockout_threshold", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
15943         { &hf_samr_samr_GroupInfoAttributes_attributes,
15944           { "Attributes", "samr.samr_GroupInfoAttributes.attributes", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
15945         { &hf_samr_samr_CreateDomainGroup_domain_handle,
15946           { "Domain Handle", "samr.samr_CreateDomainGroup.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15947         { &hf_samr_samr_SamArray_entries,
15948           { "Entries", "samr.samr_SamArray.entries", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15949         { &hf_samr_samr_UserInfo_info9,
15950           { "Info9", "samr.samr_UserInfo.info9", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15951         { &hf_samr_samr_Connect3_access_mask,
15952           { "Access Mask", "samr.samr_Connect3.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
15953         { &hf_samr_samr_ChangePasswordUser2_lm_password,
15954           { "Lm Password", "samr.samr_ChangePasswordUser2.lm_password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15955         { &hf_samr_samr_DispEntryGeneral_full_name,
15956           { "Full Name", "samr.samr_DispEntryGeneral.full_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15957         { &hf_samr_samr_DomGeneralInformation2_general,
15958           { "General", "samr.samr_DomGeneralInformation2.general", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15959         { &hf_samr_samr_AliasInfoAll_num_members,
15960           { "Num Members", "samr.samr_AliasInfoAll.num_members", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15961         { &hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_SET_INFO,
15962           { "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 }},
15963         { &hf_samr_samr_DispEntryFull_description,
15964           { "Description", "samr.samr_DispEntryFull.description", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15965         { &hf_samr_samr_LookupDomain_domain_name,
15966           { "Domain Name", "samr.samr_LookupDomain.domain_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15967         { &hf_samr_samr_ValidatePasswordRep_ctr3,
15968           { "Ctr3", "samr.samr_ValidatePasswordRep.ctr3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15969         { &hf_samr_samr_QueryDisplayInfo3_max_entries,
15970           { "Max Entries", "samr.samr_QueryDisplayInfo3.max_entries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15971         { &hf_samr_samr_DomInfo6_primary,
15972           { "Primary", "samr.samr_DomInfo6.primary", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15973         { &hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_COMPLEX,
15974           { "Domain Password Complex", "samr.samr_PasswordProperties.DOMAIN_PASSWORD_COMPLEX", FT_BOOLEAN, 32, TFS(&samr_PasswordProperties_DOMAIN_PASSWORD_COMPLEX_tfs), ( 0x00000001 ), NULL, HFILL }},
15975         { &hf_samr_samr_DeleteGroupMember_group_handle,
15976           { "Group Handle", "samr.samr_DeleteGroupMember.group_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15977         { &hf_samr_samr_Connect5_system_name,
15978           { "System Name", "samr.samr_Connect5.system_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
15979         { &hf_samr_samr_UserInfo21_bad_password_count,
15980           { "Bad Password Count", "samr.samr_UserInfo21.bad_password_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
15981         { &hf_samr_samr_UserInfo21_acct_expiry,
15982           { "Acct Expiry", "samr.samr_UserInfo21.acct_expiry", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
15983         { &hf_samr_samr_EnumDomainUsers_max_size,
15984           { "Max Size", "samr.samr_EnumDomainUsers.max_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15985         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_ALLOW_PWD_CHANGE,
15986           { "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 }},
15987         { &hf_samr_samr_LookupNames_rids,
15988           { "Rids", "samr.samr_LookupNames.rids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
15989         { &hf_samr_samr_DomInfo1_min_password_length,
15990           { "Min Password Length", "samr.samr_DomInfo1.min_password_length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
15991         { &hf_samr_samr_ValidatePasswordReq3_pwd_must_change_at_next_logon,
15992           { "Pwd Must Change At Next Logon", "samr.samr_ValidatePasswordReq3.pwd_must_change_at_next_logon", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
15993         { &hf_samr_samr_QuerySecurity_handle,
15994           { "Handle", "samr.samr_QuerySecurity.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
15995         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_WORKSTATIONS,
15996           { "Samr Field Workstations", "samr.samr_FieldsPresent.SAMR_FIELD_WORKSTATIONS", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_WORKSTATIONS_tfs), ( 0x00000400 ), NULL, HFILL }},
15997         { &hf_samr_samr_GetDisplayEnumerationIndex_idx,
15998           { "Idx", "samr.samr_GetDisplayEnumerationIndex.idx", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
15999         { &hf_samr_samr_DomInfo9_domain_server_state,
16000           { "Domain Server State", "samr.samr_DomInfo9.domain_server_state", FT_UINT32, BASE_DEC, VALS(samr_samr_DomainServerState_vals), 0, NULL, HFILL }},
16001         { &hf_samr_samr_Connect5_level_out,
16002           { "Level Out", "samr.samr_Connect5.level_out", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16003         { &hf_samr_samr_CreateUser2_user_handle,
16004           { "User Handle", "samr.samr_CreateUser2.user_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16005         { &hf_samr_samr_UserInfo5_last_logon,
16006           { "Last Logon", "samr.samr_UserInfo5.last_logon", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16007         { &hf_samr_samr_ChangePasswordUser2_server,
16008           { "Server", "samr.samr_ChangePasswordUser2.server", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16009         { &hf_samr_samr_SetDomainInfo_info,
16010           { "Info", "samr.samr_SetDomainInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16011         { &hf_samr_samr_SamArray_count,
16012           { "Count", "samr.samr_SamArray.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16013         { &hf_samr_samr_UserInfo24_password,
16014           { "Password", "samr.samr_UserInfo24.password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16015         { &hf_samr_samr_DispEntryFull_idx,
16016           { "Idx", "samr.samr_DispEntryFull.idx", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16017         { &hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_INITIALIZE_SERVER,
16018           { "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 }},
16019         { &hf_samr_samr_DispEntryFull_acct_flags,
16020           { "Acct Flags", "samr.samr_DispEntryFull.acct_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16021         { &hf_samr_samr_DomInfo13_modified_count_at_last_promotion,
16022           { "Modified Count At Last Promotion", "samr.samr_DomInfo13.modified_count_at_last_promotion", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
16023         { &hf_samr_samr_GetAliasMembership_sids,
16024           { "Sids", "samr.samr_GetAliasMembership.sids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16025         { &hf_samr_samr_UserInfo_info1,
16026           { "Info1", "samr.samr_UserInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16027         { &hf_samr_samr_GroupAttrs_SE_GROUP_RESOURCE,
16028           { "Se Group Resource", "samr.samr_GroupAttrs.SE_GROUP_RESOURCE", FT_BOOLEAN, 32, TFS(&samr_GroupAttrs_SE_GROUP_RESOURCE_tfs), ( 0x20000000 ), NULL, HFILL }},
16029         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_DESCRIPTION,
16030           { "Samr Field Description", "samr.samr_FieldsPresent.SAMR_FIELD_DESCRIPTION", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_DESCRIPTION_tfs), ( 0x00000010 ), NULL, HFILL }},
16031         { &hf_samr_samr_UserInfo18_nt_pwd,
16032           { "Nt Pwd", "samr.samr_UserInfo18.nt_pwd", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16033         { &hf_samr_samr_UserInfo21_nt_owf_password,
16034           { "Nt Owf Password", "samr.samr_UserInfo21.nt_owf_password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16035         { &hf_samr_samr_OpenAlias_alias_handle,
16036           { "Alias Handle", "samr.samr_OpenAlias.alias_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16037         { &hf_samr_samr_SetMemberAttributesOfGroup_group_handle,
16038           { "Group Handle", "samr.samr_SetMemberAttributesOfGroup.group_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16039         { &hf_samr_samr_UserInfo23_password,
16040           { "Password", "samr.samr_UserInfo23.password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16041         { &hf_samr_samr_UserInfo21_last_logoff,
16042           { "Last Logoff", "samr.samr_UserInfo21.last_logoff", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16043         { &hf_samr_samr_DispInfo_info2,
16044           { "Info2", "samr.samr_DispInfo.info2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16045         { &hf_samr_samr_EnumDomainUsers_resume_handle,
16046           { "Resume Handle", "samr.samr_EnumDomainUsers.resume_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16047         { &hf_samr_samr_ValidatePasswordRepCtr_status,
16048           { "Status", "samr.samr_ValidatePasswordRepCtr.status", FT_UINT1632, BASE_DEC, VALS(samr_samr_ValidationStatus_vals), 0, NULL, HFILL }},
16049         { &hf_samr_samr_SetMemberAttributesOfGroup_unknown2,
16050           { "Unknown2", "samr.samr_SetMemberAttributesOfGroup.unknown2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16051         { &hf_samr_samr_DomainInfo_general2,
16052           { "General2", "samr.samr_DomainInfo.general2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16053         { &hf_samr_samr_UserInfo2_reserved,
16054           { "Reserved", "samr.samr_UserInfo2.reserved", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16055         { &hf_samr_samr_DispInfoFull_count,
16056           { "Count", "samr.samr_DispInfoFull.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16057         { &hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_GET_MEMBERS,
16058           { "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 }},
16059         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_COUNTRY_CODE,
16060           { "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 }},
16061         { &hf_samr_samr_ValidatePasswordReq2_password,
16062           { "Password", "samr.samr_ValidatePasswordReq2.password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16063         { &hf_samr_samr_UserInfo5_logon_hours,
16064           { "Logon Hours", "samr.samr_UserInfo5.logon_hours", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16065         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_HOME_DIRECTORY,
16066           { "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 }},
16067         { &hf_samr_samr_AcctFlags_ACB_NO_AUTH_DATA_REQD,
16068           { "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 }},
16069         { &hf_samr_samr_DeleteUser_user_handle,
16070           { "User Handle", "samr.samr_DeleteUser.user_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16071         { &hf_samr_samr_QueryDomainInfo_level,
16072           { "Level", "samr.samr_QueryDomainInfo.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_DomainInfoClass_vals), 0, NULL, HFILL }},
16073         { &hf_samr_samr_UserInfo26_password,
16074           { "Password", "samr.samr_UserInfo26.password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16075         { &hf_samr_samr_ValidatePasswordReq1_password_matched,
16076           { "Password Matched", "samr.samr_ValidatePasswordReq1.password_matched", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16077         { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_ATTRIBUTES,
16078           { "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 }},
16079         { &hf_samr_samr_UserInfo21_account_name,
16080           { "Account Name", "samr.samr_UserInfo21.account_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16081         { &hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_SET_INFO,
16082           { "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 }},
16083         { &hf_samr_samr_UserInfo2_comment,
16084           { "Comment", "samr.samr_UserInfo2.comment", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16085         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_RID,
16086           { "Samr Field Rid", "samr.samr_FieldsPresent.SAMR_FIELD_RID", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_RID_tfs), ( 0x00000004 ), NULL, HFILL }},
16087         { &hf_samr_samr_UserInfo_info23,
16088           { "Info23", "samr.samr_UserInfo.info23", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16089         { &hf_samr_samr_UserInfo18_password_expired,
16090           { "Password Expired", "samr.samr_UserInfo18.password_expired", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16091         { &hf_samr_samr_QueryDisplayInfo2_total_size,
16092           { "Total Size", "samr.samr_QueryDisplayInfo2.total_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16093         { &hf_samr_samr_UserInfo25_password,
16094           { "Password", "samr.samr_UserInfo25.password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16095         { &hf_samr_samr_ChangePasswordUser2_lm_verifier,
16096           { "Lm Verifier", "samr.samr_ChangePasswordUser2.lm_verifier", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16097         { &hf_samr_samr_SetDomainInfo_domain_handle,
16098           { "Domain Handle", "samr.samr_SetDomainInfo.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16099         { &hf_samr_samr_UserInfo4_logon_hours,
16100           { "Logon Hours", "samr.samr_UserInfo4.logon_hours", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16101         { &hf_samr_samr_UserInfo5_home_directory,
16102           { "Home Directory", "samr.samr_UserInfo5.home_directory", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16103         { &hf_samr_samr_DomInfo12_lockout_duration,
16104           { "Lockout Duration", "samr.samr_DomInfo12.lockout_duration", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
16105         { &hf_samr_samr_CreateUser_account_name,
16106           { "Account Name", "samr.samr_CreateUser.account_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16107         { &hf_samr_samr_UserInfo9_primary_gid,
16108           { "Primary Gid", "samr.samr_UserInfo9.primary_gid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16109         { &hf_samr_samr_Connect4_connect_handle,
16110           { "Connect Handle", "samr.samr_Connect4.connect_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16111         { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_LOGONINFO,
16112           { "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 }},
16113         { &hf_samr_samr_RidToSid_domain_handle,
16114           { "Domain Handle", "samr.samr_RidToSid.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16115         { &hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_LAST_SET,
16116           { "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 }},
16117         { &hf_samr_samr_DomGeneralInformation_domain_name,
16118           { "Domain Name", "samr.samr_DomGeneralInformation.domain_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16119         { &hf_samr_samr_CreateUser2_account_name,
16120           { "Account Name", "samr.samr_CreateUser2.account_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16121         { &hf_samr_samr_QueryGroupMember_group_handle,
16122           { "Group Handle", "samr.samr_QueryGroupMember.group_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16123         { &hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_CREATE_DOMAIN,
16124           { "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 }},
16125         { &hf_samr_samr_DispEntryGeneral_rid,
16126           { "Rid", "samr.samr_DispEntryGeneral.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16127         { &hf_samr_samr_LookupDomain_sid,
16128           { "Sid", "samr.samr_LookupDomain.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16129         { &hf_samr_samr_AddAliasMember_sid,
16130           { "Sid", "samr.samr_AddAliasMember.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16131         { &hf_samr_samr_QueryAliasInfo_info,
16132           { "Info", "samr.samr_QueryAliasInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16133         { &hf_samr_samr_ValidatePasswordReq2_hash,
16134           { "Hash", "samr.samr_ValidatePasswordReq2.hash", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16135         { &hf_samr_samr_UserInfo21_fields_present,
16136           { "Fields Present", "samr.samr_UserInfo21.fields_present", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16137         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_EXPIRED_FLAG,
16138           { "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 }},
16139         { &hf_samr_samr_ValidatePasswordReq2_password_matched,
16140           { "Password Matched", "samr.samr_ValidatePasswordReq2.password_matched", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16141         { &hf_samr_samr_CreateUser2_domain_handle,
16142           { "Domain Handle", "samr.samr_CreateUser2.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16143         { &hf_samr_samr_QuerySecurity_sec_info,
16144           { "Sec Info", "samr.samr_QuerySecurity.sec_info", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16145         { &hf_samr_samr_AddGroupMember_rid,
16146           { "Rid", "samr.samr_AddGroupMember.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16147         { &hf_samr_samr_DomainInfo_info12,
16148           { "Info12", "samr.samr_DomainInfo.info12", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16149         { &hf_samr_samr_OpenGroup_domain_handle,
16150           { "Domain Handle", "samr.samr_OpenGroup.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16151         { &hf_samr_samr_QueryDisplayInfo_max_entries,
16152           { "Max Entries", "samr.samr_QueryDisplayInfo.max_entries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16153         { &hf_samr_samr_EnumDomains_resume_handle,
16154           { "Resume Handle", "samr.samr_EnumDomains.resume_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16155         { &hf_samr_samr_UserInfo_info7,
16156           { "Info7", "samr.samr_UserInfo.info7", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16157         { &hf_samr_samr_GroupInfo_all2,
16158           { "All2", "samr.samr_GroupInfo.all2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16159         { &hf_samr_samr_UserInfo1_full_name,
16160           { "Full Name", "samr.samr_UserInfo1.full_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16161         { &hf_samr_samr_QueryDisplayInfo3_domain_handle,
16162           { "Domain Handle", "samr.samr_QueryDisplayInfo3.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16163         { &hf_samr_samr_RemoveMemberFromForeignDomain_domain_handle,
16164           { "Domain Handle", "samr.samr_RemoveMemberFromForeignDomain.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16165         { &hf_samr_samr_OpenGroup_group_handle,
16166           { "Group Handle", "samr.samr_OpenGroup.group_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16167         { &hf_samr_samr_EnumDomainGroups_resume_handle,
16168           { "Resume Handle", "samr.samr_EnumDomainGroups.resume_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16169         { &hf_samr_samr_SetUserInfo2_info,
16170           { "Info", "samr.samr_SetUserInfo2.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16171         { &hf_samr_samr_QueryGroupInfo_group_handle,
16172           { "Group Handle", "samr.samr_QueryGroupInfo.group_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16173         { &hf_samr_samr_ChangePasswordUser3_nt_password,
16174           { "Nt Password", "samr.samr_ChangePasswordUser3.nt_password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16175         { &hf_samr_samr_UserInfo21_buf_count,
16176           { "Buf Count", "samr.samr_UserInfo21.buf_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16177         { &hf_samr_samr_PwInfo_min_password_length,
16178           { "Min Password Length", "samr.samr_PwInfo.min_password_length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16179         { &hf_samr_samr_UserInfo21_lm_owf_password,
16180           { "Lm Owf Password", "samr.samr_UserInfo21.lm_owf_password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16181         { &hf_samr_samr_DomGeneralInformation_sequence_num,
16182           { "Sequence Num", "samr.samr_DomGeneralInformation.sequence_num", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
16183         { &hf_samr_samr_UserInfo26_password_expired,
16184           { "Password Expired", "samr.samr_UserInfo26.password_expired", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16185         { &hf_samr_samr_ChangePasswordUser_old_lm_crypted,
16186           { "Old Lm Crypted", "samr.samr_ChangePasswordUser.old_lm_crypted", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16187         { &hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_GET_MEMBERS,
16188           { "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 }},
16189         { &hf_samr_samr_AcctFlags_ACB_NORMAL,
16190           { "Acb Normal", "samr.samr_AcctFlags.ACB_NORMAL", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_NORMAL_tfs), ( 0x00000010 ), NULL, HFILL }},
16191         { &hf_samr_samr_GroupInfo_all,
16192           { "All", "samr.samr_GroupInfo.all", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16193         { &hf_samr_samr_UserInfo16_acct_flags,
16194           { "Acct Flags", "samr.samr_UserInfo16.acct_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16195         { &hf_samr_samr_UserInfo2_country_code,
16196           { "Country Code", "samr.samr_UserInfo2.country_code", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16197         { &hf_samr_samr_AddGroupMember_flags,
16198           { "Flags", "samr.samr_AddGroupMember.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16199         { &hf_samr_samr_UserInfo10_home_directory,
16200           { "Home Directory", "samr.samr_UserInfo10.home_directory", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16201         { &hf_samr_samr_CreateDomainGroup_group_handle,
16202           { "Group Handle", "samr.samr_CreateDomainGroup.group_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16203         { &hf_samr_samr_QueryUserInfo2_user_handle,
16204           { "User Handle", "samr.samr_QueryUserInfo2.user_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16205         { &hf_samr_samr_OemChangePasswordUser2_server,
16206           { "Server", "samr.samr_OemChangePasswordUser2.server", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16207         { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_CHANGE_PASSWORD,
16208           { "Samr User Access Change Password", "samr.samr_UserAccessMask.SAMR_USER_ACCESS_CHANGE_PASSWORD", FT_BOOLEAN, 32, TFS(&samr_UserAccessMask_SAMR_USER_ACCESS_CHANGE_PASSWORD_tfs), ( 0x00000040 ), NULL, HFILL }},
16209         { &hf_samr_samr_AliasInfo_all,
16210           { "All", "samr.samr_AliasInfo.all", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16211         { &hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_BAD_PASSWORD_TIME,
16212           { "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 }},
16213         { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_NAME_ETC,
16214           { "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 }},
16215         { &hf_samr_samr_ChangePasswordUser3_password3,
16216           { "Password3", "samr.samr_ChangePasswordUser3.password3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16217         { &hf_samr_samr_UserInfo13_description,
16218           { "Description", "samr.samr_UserInfo13.description", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16219         { &hf_samr_samr_UserInfo21_lm_password_set,
16220           { "Lm Password Set", "samr.samr_UserInfo21.lm_password_set", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16221         { &hf_samr_samr_UserInfo_info2,
16222           { "Info2", "samr.samr_UserInfo.info2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16223         { &hf_samr_samr_EnumDomainUsers_domain_handle,
16224           { "Domain Handle", "samr.samr_EnumDomainUsers.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16225         { &hf_samr_samr_LookupRids_domain_handle,
16226           { "Domain Handle", "samr.samr_LookupRids.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16227         { &hf_samr_samr_LogonHours_bits,
16228           { "Bits", "samr.samr_LogonHours.bits", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16229         { &hf_samr_samr_OpenUser_domain_handle,
16230           { "Domain Handle", "samr.samr_OpenUser.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16231         { &hf_samr_samr_CreateUser2_access_mask,
16232           { "Access Mask", "samr.samr_CreateUser2.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16233         { &hf_samr_samr_GroupAttrs_SE_GROUP_ENABLED_BY_DEFAULT,
16234           { "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 }},
16235         { &hf_samr_samr_EnumDomainGroups_sam,
16236           { "Sam", "samr.samr_EnumDomainGroups.sam", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16237         { &hf_samr_samr_GroupInfoAll_name,
16238           { "Name", "samr.samr_GroupInfoAll.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16239         { &hf_samr_samr_ValidatePasswordRep_ctr2,
16240           { "Ctr2", "samr.samr_ValidatePasswordRep.ctr2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16241         { &hf_samr_samr_UserInfo_info24,
16242           { "Info24", "samr.samr_UserInfo.info24", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16243         { &hf_samr_samr_DomainInfo_info3,
16244           { "Info3", "samr.samr_DomainInfo.info3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16245         { &hf_samr_samr_EnumDomainGroups_num_entries,
16246           { "Num Entries", "samr.samr_EnumDomainGroups.num_entries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16247         { &hf_samr_samr_AcctFlags_ACB_PWNOTREQ,
16248           { "Acb Pwnotreq", "samr.samr_AcctFlags.ACB_PWNOTREQ", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_PWNOTREQ_tfs), ( 0x00000004 ), NULL, HFILL }},
16249         { &hf_samr_samr_UserInfo3_bad_password_count,
16250           { "Bad Password Count", "samr.samr_UserInfo3.bad_password_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16251         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_CODE_PAGE,
16252           { "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 }},
16253         { &hf_samr_samr_ChangePasswordUser_new_lm_crypted,
16254           { "New Lm Crypted", "samr.samr_ChangePasswordUser.new_lm_crypted", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16255         { &hf_samr_samr_LookupNames_types,
16256           { "Types", "samr.samr_LookupNames.types", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16257         { &hf_samr_samr_SamEntry_idx,
16258           { "Idx", "samr.samr_SamEntry.idx", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16259         { &hf_samr_samr_UserInfo3_logon_hours,
16260           { "Logon Hours", "samr.samr_UserInfo3.logon_hours", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16261         { &hf_samr_samr_ChangePasswordUser3_account,
16262           { "Account", "samr.samr_ChangePasswordUser3.account", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16263         { &hf_samr_samr_DomInfo8_sequence_num,
16264           { "Sequence Num", "samr.samr_DomInfo8.sequence_num", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
16265         { &hf_samr_samr_ValidatePasswordInfo_pwd_history,
16266           { "Pwd History", "samr.samr_ValidatePasswordInfo.pwd_history", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16267         { &hf_samr_samr_Connect3_unknown,
16268           { "Unknown", "samr.samr_Connect3.unknown", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16269         { &hf_samr_samr_GetDisplayEnumerationIndex2_idx,
16270           { "Idx", "samr.samr_GetDisplayEnumerationIndex2.idx", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16271         { &hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_LOOKUP_DOMAIN,
16272           { "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 }},
16273         { &hf_samr_samr_ConnectInfo1_unknown2,
16274           { "Unknown2", "samr.samr_ConnectInfo1.unknown2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16275         { &hf_samr_samr_TestPrivateFunctionsUser_user_handle,
16276           { "User Handle", "samr.samr_TestPrivateFunctionsUser.user_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16277         { &hf_samr_samr_QueryDisplayInfo2_domain_handle,
16278           { "Domain Handle", "samr.samr_QueryDisplayInfo2.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16279         { &hf_samr_samr_AliasInfoAll_name,
16280           { "Name", "samr.samr_AliasInfoAll.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16281         { &hf_samr_samr_Connect_access_mask,
16282           { "Access Mask", "samr.samr_Connect.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16283         { &hf_samr_samr_GetUserPwInfo_user_handle,
16284           { "User Handle", "samr.samr_GetUserPwInfo.user_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16285         { &hf_samr_samr_DispEntryFull_rid,
16286           { "Rid", "samr.samr_DispEntryFull.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16287         { &hf_samr_samr_OpenAlias_access_mask,
16288           { "Access Mask", "samr.samr_OpenAlias.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16289         { &hf_samr_samr_GroupInfo_description,
16290           { "Description", "samr.samr_GroupInfo.description", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16291         { &hf_samr_samr_OpenGroup_rid,
16292           { "Rid", "samr.samr_OpenGroup.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16293         { &hf_samr_samr_GroupAttrs_SE_GROUP_OWNER,
16294           { "Se Group Owner", "samr.samr_GroupAttrs.SE_GROUP_OWNER", FT_BOOLEAN, 32, TFS(&samr_GroupAttrs_SE_GROUP_OWNER_tfs), ( 0x00000008 ), NULL, HFILL }},
16295         { &hf_samr_samr_EnumDomainAliases_sam,
16296           { "Sam", "samr.samr_EnumDomainAliases.sam", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16297         { &hf_samr_samr_LogonHours_units_per_week,
16298           { "Units Per Week", "samr.samr_LogonHours.units_per_week", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16299         { &hf_samr_samr_DomGeneralInformation_role,
16300           { "Role", "samr.samr_DomGeneralInformation.role", FT_UINT32, BASE_DEC, VALS(samr_samr_Role_vals), 0, NULL, HFILL }},
16301         { &hf_samr_samr_QueryDisplayInfo2_buf_size,
16302           { "Buf Size", "samr.samr_QueryDisplayInfo2.buf_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16303         { &hf_samr_samr_DomainInfo_info13,
16304           { "Info13", "samr.samr_DomainInfo.info13", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16305         { &hf_samr_samr_SetSecurity_sec_info,
16306           { "Sec Info", "samr.samr_SetSecurity.sec_info", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16307         { &hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_STORE_CLEARTEXT,
16308           { "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 }},
16309         { &hf_samr_samr_DomGeneralInformation2_lockout_threshold,
16310           { "Lockout Threshold", "samr.samr_DomGeneralInformation2.lockout_threshold", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16311         { &hf_samr_samr_UserInfo21_last_password_change,
16312           { "Last Password Change", "samr.samr_UserInfo21.last_password_change", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16313         { &hf_samr_samr_ChangePasswordUser2_account,
16314           { "Account", "samr.samr_ChangePasswordUser2.account", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16315         { &hf_samr_samr_ChangePasswordUser3_lm_password,
16316           { "Lm Password", "samr.samr_ChangePasswordUser3.lm_password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16317         { &hf_samr_samr_UserInfo3_account_name,
16318           { "Account Name", "samr.samr_UserInfo3.account_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16319         { &hf_samr_samr_Connect3_system_name,
16320           { "System Name", "samr.samr_Connect3.system_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
16321         { &hf_samr_samr_UserInfo_info11,
16322           { "Info11", "samr.samr_UserInfo.info11", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16323         { &hf_samr_samr_DomainInfo_info9,
16324           { "Info9", "samr.samr_DomainInfo.info9", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16325         { &hf_samr_samr_SamEntry_name,
16326           { "Name", "samr.samr_SamEntry.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16327         { &hf_samr_samr_UserInfo3_acct_flags,
16328           { "Acct Flags", "samr.samr_UserInfo3.acct_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16329         { &hf_samr_samr_UserInfo3_allow_password_change,
16330           { "Allow Password Change", "samr.samr_UserInfo3.allow_password_change", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16331         { &hf_samr_samr_QueryDomainInfo2_level,
16332           { "Level", "samr.samr_QueryDomainInfo2.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_DomainInfoClass_vals), 0, NULL, HFILL }},
16333         { &hf_samr_samr_GetDisplayEnumerationIndex_name,
16334           { "Name", "samr.samr_GetDisplayEnumerationIndex.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16335         { &hf_samr_samr_ValidatePasswordReq3_info,
16336           { "Info", "samr.samr_ValidatePasswordReq3.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16337         { &hf_samr_samr_ValidatePasswordInfo_lockout_time,
16338           { "Lockout Time", "samr.samr_ValidatePasswordInfo.lockout_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16339         { &hf_samr_samr_Connect4_access_mask,
16340           { "Access Mask", "samr.samr_Connect4.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16341         { &hf_samr_samr_UserInfo17_acct_expiry,
16342           { "Acct Expiry", "samr.samr_UserInfo17.acct_expiry", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16343         { &hf_samr_samr_DomInfo1_password_history_length,
16344           { "Password History Length", "samr.samr_DomInfo1.password_history_length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16345         { &hf_samr_samr_AcctFlags_ACB_USE_AES_KEYS,
16346           { "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 }},
16347         { &hf_samr_samr_QueryUserInfo_info,
16348           { "Info", "samr.samr_QueryUserInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16349         { &hf_samr_samr_DomGeneralInformation_primary,
16350           { "Primary", "samr.samr_DomGeneralInformation.primary", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16351         { &hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_SHUTDOWN_SERVER,
16352           { "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 }},
16353         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_LM_PASSWORD_PRESENT,
16354           { "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 }},
16355         { &hf_samr_samr_RemoveMemberFromForeignDomain_sid,
16356           { "Sid", "samr.samr_RemoveMemberFromForeignDomain.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16357         { &hf_samr_samr_UserInfo5_home_drive,
16358           { "Home Drive", "samr.samr_UserInfo5.home_drive", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16359         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_FORCE_PWD_CHANGE,
16360           { "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 }},
16361         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_LAST_LOGOFF,
16362           { "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 }},
16363         { &hf_samr_samr_RidWithAttributeArray_rids,
16364           { "Rids", "samr.samr_RidWithAttributeArray.rids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16365         { &hf_samr_samr_DeleteDomainGroup_group_handle,
16366           { "Group Handle", "samr.samr_DeleteDomainGroup.group_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16367         { &hf_samr_samr_Password_hash,
16368           { "Hash", "samr.samr_Password.hash", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16369         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_OWF_PWD,
16370           { "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 }},
16371         { &hf_samr_samr_UserInfo_info25,
16372           { "Info25", "samr.samr_UserInfo.info25", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16373         { &hf_samr_samr_QueryDisplayInfo_start_idx,
16374           { "Start Idx", "samr.samr_QueryDisplayInfo.start_idx", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16375         { &hf_samr_samr_UserInfo3_home_drive,
16376           { "Home Drive", "samr.samr_UserInfo3.home_drive", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16377         { &hf_samr_samr_UserInfo_info13,
16378           { "Info13", "samr.samr_UserInfo.info13", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16379         { &hf_samr_samr_DeleteAliasMember_alias_handle,
16380           { "Alias Handle", "samr.samr_DeleteAliasMember.alias_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16381         { &hf_samr_samr_QueryDomainInfo_domain_handle,
16382           { "Domain Handle", "samr.samr_QueryDomainInfo.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16383         { &hf_samr_samr_ChangePasswordUser2_nt_password,
16384           { "Nt Password", "samr.samr_ChangePasswordUser2.nt_password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16385         { &hf_samr_samr_RidAttrArray_attributes,
16386           { "Attributes", "samr.samr_RidAttrArray.attributes", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16387         { &hf_samr_samr_ValidatePasswordInfo_bad_pwd_count,
16388           { "Bad Pwd Count", "samr.samr_ValidatePasswordInfo.bad_pwd_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16389         { &hf_samr_samr_QueryGroupMember_rids,
16390           { "Rids", "samr.samr_QueryGroupMember.rids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16391         { &hf_samr_samr_UserInfo21_password_expired,
16392           { "Password Expired", "samr.samr_UserInfo21.password_expired", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16393         { &hf_samr_samr_EnumDomains_buf_size,
16394           { "Buf Size", "samr.samr_EnumDomains.buf_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16395         { &hf_samr_samr_DomInfo1_max_password_age,
16396           { "Max Password Age", "samr.samr_DomInfo1.max_password_age", FT_INT64, BASE_DEC, NULL, 0, NULL, HFILL }},
16397         { &hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_ADD_MEMBER,
16398           { "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 }},
16399         { &hf_samr_samr_GroupInfoAll_description,
16400           { "Description", "samr.samr_GroupInfoAll.description", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16401         { &hf_samr_samr_UserInfo3_logon_count,
16402           { "Logon Count", "samr.samr_UserInfo3.logon_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16403         { &hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_HISTORY,
16404           { "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 }},
16405         { &hf_samr_samr_AcctFlags_ACB_PARTIAL_SECRETS_ACCOUNT,
16406           { "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 }},
16407         { &hf_samr_samr_GroupInfo_name,
16408           { "Name", "samr.samr_GroupInfo.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16409         { &hf_samr_samr_UserInfo3_force_password_change,
16410           { "Force Password Change", "samr.samr_UserInfo3.force_password_change", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16411         { &hf_samr_samr_ChangePasswordUser_nt_present,
16412           { "Nt Present", "samr.samr_ChangePasswordUser.nt_present", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16413         { &hf_samr_samr_UserInfo21_home_directory,
16414           { "Home Directory", "samr.samr_UserInfo21.home_directory", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16415         { &hf_samr_samr_UserInfo_info12,
16416           { "Info12", "samr.samr_UserInfo.info12", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16417         { &hf_samr_samr_OemChangePasswordUser2_password,
16418           { "Password", "samr.samr_OemChangePasswordUser2.password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16419         { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_ALIAS,
16420           { "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 }},
16421         { &hf_samr_samr_EnumDomainGroups_domain_handle,
16422           { "Domain Handle", "samr.samr_EnumDomainGroups.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16423         { &hf_samr_opnum,
16424           { "Operation", "samr.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16425         { &hf_samr_samr_ChangePasswordUser3_server,
16426           { "Server", "samr.samr_ChangePasswordUser3.server", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16427         { &hf_samr_samr_QueryUserInfo_user_handle,
16428           { "User Handle", "samr.samr_QueryUserInfo.user_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16429         { &hf_samr_samr_GetDisplayEnumerationIndex2_name,
16430           { "Name", "samr.samr_GetDisplayEnumerationIndex2.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16431         { &hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_LOOKUP_INFO,
16432           { "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 }},
16433         { &hf_samr_samr_GetGroupsForUser_user_handle,
16434           { "User Handle", "samr.samr_GetGroupsForUser.user_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16435         { &hf_samr_samr_QueryDomainInfo2_domain_handle,
16436           { "Domain Handle", "samr.samr_QueryDomainInfo2.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16437         { &hf_samr_samr_UserInfo14_workstations,
16438           { "Workstations", "samr.samr_UserInfo14.workstations", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16439         { &hf_samr_samr_GetDisplayEnumerationIndex_domain_handle,
16440           { "Domain Handle", "samr.samr_GetDisplayEnumerationIndex.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16441         { &hf_samr_samr_DispInfo_info3,
16442           { "Info3", "samr.samr_DispInfo.info3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16443         { &hf_samr_samr_DomainInfo_info8,
16444           { "Info8", "samr.samr_DomainInfo.info8", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16445         { &hf_samr_samr_DispInfoGeneral_entries,
16446           { "Entries", "samr.samr_DispInfoGeneral.entries", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16447         { &hf_samr_samr_UserInfo8_full_name,
16448           { "Full Name", "samr.samr_UserInfo8.full_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16449         { &hf_samr_samr_UserInfo21_logon_count,
16450           { "Logon Count", "samr.samr_UserInfo21.logon_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16451         { &hf_samr_samr_UserInfo21_code_page,
16452           { "Code Page", "samr.samr_UserInfo21.code_page", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16453         { &hf_samr_samr_DispEntryFullGroup_acct_flags,
16454           { "Acct Flags", "samr.samr_DispEntryFullGroup.acct_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16455         { &hf_samr_samr_AcctFlags_ACB_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION,
16456           { "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 }},
16457         { &hf_samr_samr_SetUserInfo_info,
16458           { "Info", "samr.samr_SetUserInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16459         { &hf_samr_samr_OpenDomain_sid,
16460           { "Sid", "samr.samr_OpenDomain.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16461         { &hf_samr_samr_CreateUser2_acct_flags,
16462           { "Acct Flags", "samr.samr_CreateUser2.acct_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16463         { &hf_samr_samr_DispEntryFull_account_name,
16464           { "Account Name", "samr.samr_DispEntryFull.account_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16465         { &hf_samr_userPwdChangeFailureInformation_filterModuleName,
16466           { "Filtermodulename", "samr.userPwdChangeFailureInformation.filterModuleName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16467         { &hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_LENGTH,
16468           { "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 }},
16469         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_HOME_DRIVE,
16470           { "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 }},
16471         { &hf_samr_samr_DomainInfo_info1,
16472           { "Info1", "samr.samr_DomainInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16473         { &hf_samr_samr_RidAttrArray_rids,
16474           { "Rids", "samr.samr_RidAttrArray.rids", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16475         { &hf_samr_samr_ValidatePasswordRep_ctr1,
16476           { "Ctr1", "samr.samr_ValidatePasswordRep.ctr1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16477         { &hf_samr_samr_UserInfo18_nt_pwd_active,
16478           { "Nt Pwd Active", "samr.samr_UserInfo18.nt_pwd_active", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16479         { &hf_samr_samr_AcctFlags_ACB_DOMTRUST,
16480           { "Acb Domtrust", "samr.samr_AcctFlags.ACB_DOMTRUST", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_DOMTRUST_tfs), ( 0x00000040 ), NULL, HFILL }},
16481         { &hf_samr_samr_ChangePasswordUser_lm_cross,
16482           { "Lm Cross", "samr.samr_ChangePasswordUser.lm_cross", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16483         { &hf_samr_samr_UserInfo3_profile_path,
16484           { "Profile Path", "samr.samr_UserInfo3.profile_path", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16485         { &hf_samr_samr_DomInfo13_domain_create_time,
16486           { "Domain Create Time", "samr.samr_DomInfo13.domain_create_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16487         { &hf_samr_samr_AcctFlags_ACB_WSTRUST,
16488           { "Acb Wstrust", "samr.samr_AcctFlags.ACB_WSTRUST", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_WSTRUST_tfs), ( 0x00000080 ), NULL, HFILL }},
16489         { &hf_samr_samr_DispEntryAscii_idx,
16490           { "Idx", "samr.samr_DispEntryAscii.idx", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16491         { &hf_samr_samr_DomInfo5_domain_name,
16492           { "Domain Name", "samr.samr_DomInfo5.domain_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16493         { &hf_samr_samr_UserInfo5_logon_count,
16494           { "Logon Count", "samr.samr_UserInfo5.logon_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16495         { &hf_samr_samr_UserInfo5_last_logoff,
16496           { "Last Logoff", "samr.samr_UserInfo5.last_logoff", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16497         { &hf_samr_samr_CreateDomainGroup_rid,
16498           { "Rid", "samr.samr_CreateDomainGroup.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16499         { &hf_samr_samr_ValidatePassword_level,
16500           { "Level", "samr.samr_ValidatePassword.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_ValidatePasswordLevel_vals), 0, NULL, HFILL }},
16501         { &hf_samr_samr_UserInfo6_full_name,
16502           { "Full Name", "samr.samr_UserInfo6.full_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16503         { &hf_samr_samr_LookupRids_names,
16504           { "Names", "samr.samr_LookupRids.names", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16505         { &hf_samr_samr_UserInfo10_home_drive,
16506           { "Home Drive", "samr.samr_UserInfo10.home_drive", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16507         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_ACCT_FLAGS,
16508           { "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 }},
16509         { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_GROUPS,
16510           { "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 }},
16511         { &hf_samr_samr_OemChangePasswordUser2_account,
16512           { "Account", "samr.samr_OemChangePasswordUser2.account", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16513         { &hf_samr_samr_RemoveMultipleMembersFromAlias_sids,
16514           { "Sids", "samr.samr_RemoveMultipleMembersFromAlias.sids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16515         { &hf_samr_samr_QueryDisplayInfo2_info,
16516           { "Info", "samr.samr_QueryDisplayInfo2.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16517         { &hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_ENUM_DOMAINS,
16518           { "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 }},
16519         { &hf_samr_samr_UserInfo_info4,
16520           { "Info4", "samr.samr_UserInfo.info4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16521         { &hf_samr_samr_DomInfo1_password_properties,
16522           { "Password Properties", "samr.samr_DomInfo1.password_properties", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16523         { &hf_samr_samr_UserInfo21_logon_script,
16524           { "Logon Script", "samr.samr_UserInfo21.logon_script", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16525         { &hf_samr_samr_AcctFlags_ACB_AUTOLOCK,
16526           { "Acb Autolock", "samr.samr_AcctFlags.ACB_AUTOLOCK", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_AUTOLOCK_tfs), ( 0x00000400 ), NULL, HFILL }},
16527         { &hf_samr_samr_CreateUser_domain_handle,
16528           { "Domain Handle", "samr.samr_CreateUser.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16529         { &hf_samr_samr_GetBootKeyInformation_unknown,
16530           { "Unknown", "samr.samr_GetBootKeyInformation.unknown", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16531         { &hf_samr_samr_RidWithAttribute_attributes,
16532           { "Attributes", "samr.samr_RidWithAttribute.attributes", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16533         { &hf_samr_samr_CryptPassword_data,
16534           { "Data", "samr.samr_CryptPassword.data", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16535         { &hf_samr_samr_AliasInfo_name,
16536           { "Name", "samr.samr_AliasInfo.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16537         { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_USER,
16538           { "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 }},
16539         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_COMMENT,
16540           { "Samr Field Comment", "samr.samr_FieldsPresent.SAMR_FIELD_COMMENT", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_COMMENT_tfs), ( 0x00000020 ), NULL, HFILL }},
16541         { &hf_samr_samr_UserInfo3_last_password_change,
16542           { "Last Password Change", "samr.samr_UserInfo3.last_password_change", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16543         { &hf_samr_samr_Shutdown_connect_handle,
16544           { "Connect Handle", "samr.samr_Shutdown.connect_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16545         { &hf_samr_samr_OpenDomain_access_mask,
16546           { "Access Mask", "samr.samr_OpenDomain.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16547         { &hf_samr_samr_DispEntryFullGroup_rid,
16548           { "Rid", "samr.samr_DispEntryFullGroup.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16549         { &hf_samr_samr_Connect2_connect_handle,
16550           { "Connect Handle", "samr.samr_Connect2.connect_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16551         { &hf_samr_samr_GroupAttrs_SE_GROUP_ENABLED,
16552           { "Se Group Enabled", "samr.samr_GroupAttrs.SE_GROUP_ENABLED", FT_BOOLEAN, 32, TFS(&samr_GroupAttrs_SE_GROUP_ENABLED_tfs), ( 0x00000004 ), NULL, HFILL }},
16553         { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_INFO_2,
16554           { "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 }},
16555         { &hf_samr_samr_ValidationBlob_length,
16556           { "Length", "samr.samr_ValidationBlob.length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16557         { &hf_samr_samr_QueryDisplayInfo2_start_idx,
16558           { "Start Idx", "samr.samr_QueryDisplayInfo2.start_idx", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16559         { &hf_samr_samr_DispEntryGeneral_idx,
16560           { "Idx", "samr.samr_DispEntryGeneral.idx", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16561         { &hf_samr_samr_UserInfo21_logon_hours,
16562           { "Logon Hours", "samr.samr_UserInfo21.logon_hours", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16563         { &hf_samr_samr_UserInfo21_country_code,
16564           { "Country Code", "samr.samr_UserInfo21.country_code", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16565         { &hf_samr_samr_AddAliasMember_alias_handle,
16566           { "Alias Handle", "samr.samr_AddAliasMember.alias_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16567         { &hf_samr_samr_SetDsrmPassword_hash,
16568           { "Hash", "samr.samr_SetDsrmPassword.hash", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16569         { &hf_samr_samr_DomainInfo_general,
16570           { "General", "samr.samr_DomainInfo.general", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16571         { &hf_samr_samr_QueryDisplayInfo_domain_handle,
16572           { "Domain Handle", "samr.samr_QueryDisplayInfo.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16573         { &hf_samr_samr_GroupAttrs_SE_GROUP_MANDATORY,
16574           { "Se Group Mandatory", "samr.samr_GroupAttrs.SE_GROUP_MANDATORY", FT_BOOLEAN, 32, TFS(&samr_GroupAttrs_SE_GROUP_MANDATORY_tfs), ( 0x00000001 ), NULL, HFILL }},
16575         { &hf_samr_samr_UserInfo5_description,
16576           { "Description", "samr.samr_UserInfo5.description", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16577         { &hf_samr_samr_DomInfo7_role,
16578           { "Role", "samr.samr_DomInfo7.role", FT_UINT32, BASE_DEC, VALS(samr_samr_Role_vals), 0, NULL, HFILL }},
16579         { &hf_samr_samr_UserInfo21_workstations,
16580           { "Workstations", "samr.samr_UserInfo21.workstations", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16581         { &hf_samr_samr_DispEntryGeneral_description,
16582           { "Description", "samr.samr_DispEntryGeneral.description", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16583         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_PRIVATE_DATA,
16584           { "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 }},
16585         { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_ENUM_ACCOUNTS,
16586           { "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 }},
16587         { &hf_samr_samr_ValidatePasswordReq_req3,
16588           { "Req3", "samr.samr_ValidatePasswordReq.req3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16589         { &hf_samr_samr_ChangePasswordUser2_nt_verifier,
16590           { "Nt Verifier", "samr.samr_ChangePasswordUser2.nt_verifier", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16591         { &hf_samr_samr_AcctFlags_ACB_TRUSTED_FOR_DELEGATION,
16592           { "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 }},
16593         { &hf_samr_samr_EnumDomains_connect_handle,
16594           { "Connect Handle", "samr.samr_EnumDomains.connect_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16595         { &hf_samr_samr_UserInfo_info18,
16596           { "Info18", "samr.samr_UserInfo.info18", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16597         { &hf_samr_samr_CreateDomAlias_access_mask,
16598           { "Access Mask", "samr.samr_CreateDomAlias.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16599         { &hf_samr_samr_UserInfo21_force_password_change,
16600           { "Force Password Change", "samr.samr_UserInfo21.force_password_change", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16601         { &hf_samr_samr_GetDisplayEnumerationIndex2_domain_handle,
16602           { "Domain Handle", "samr.samr_GetDisplayEnumerationIndex2.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16603         { &hf_samr_samr_TestPrivateFunctionsDomain_domain_handle,
16604           { "Domain Handle", "samr.samr_TestPrivateFunctionsDomain.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16605         { &hf_samr_samr_DomGeneralInformation_domain_server_state,
16606           { "Domain Server State", "samr.samr_DomGeneralInformation.domain_server_state", FT_UINT32, BASE_DEC, VALS(samr_samr_DomainServerState_vals), 0, NULL, HFILL }},
16607         { &hf_samr_samr_SetBootKeyInformation_unknown3,
16608           { "Unknown3", "samr.samr_SetBootKeyInformation.unknown3", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16609         { &hf_samr_samr_Connect3_connect_handle,
16610           { "Connect Handle", "samr.samr_Connect3.connect_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16611         { &hf_samr_samr_EnumDomainUsers_num_entries,
16612           { "Num Entries", "samr.samr_EnumDomainUsers.num_entries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16613         { &hf_samr_samr_ValidatePasswordReq2_info,
16614           { "Info", "samr.samr_ValidatePasswordReq2.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16615         { &hf_samr_samr_LookupNames_num_names,
16616           { "Num Names", "samr.samr_LookupNames.num_names", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16617         { &hf_samr_samr_QueryDisplayInfo3_level,
16618           { "Level", "samr.samr_QueryDisplayInfo3.level", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16619         { &hf_samr_userPwdChangeFailureInformation_extendedFailureReason,
16620           { "Extendedfailurereason", "samr.userPwdChangeFailureInformation.extendedFailureReason", FT_UINT32, BASE_DEC, VALS(samr_samPwdChangeReason_vals), 0, NULL, HFILL }},
16621         { &hf_samr_samr_QueryDisplayInfo2_max_entries,
16622           { "Max Entries", "samr.samr_QueryDisplayInfo2.max_entries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16623         { &hf_samr_samr_ValidatePasswordInfo_last_password_change,
16624           { "Last Password Change", "samr.samr_ValidatePasswordInfo.last_password_change", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16625         { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_LOCALE,
16626           { "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 }},
16627         { &hf_samr_samr_AddMultipleMembersToAlias_alias_handle,
16628           { "Alias Handle", "samr.samr_AddMultipleMembersToAlias.alias_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16629         { &hf_samr_samr_OpenUser_access_mask,
16630           { "Access Mask", "samr.samr_OpenUser.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16631         { &hf_samr_samr_RemoveMultipleMembersFromAlias_alias_handle,
16632           { "Alias Handle", "samr.samr_RemoveMultipleMembersFromAlias.alias_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16633         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_LOGON_HOURS,
16634           { "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 }},
16635         { &hf_samr_samr_ChangePasswordUser3_dominfo,
16636           { "Dominfo", "samr.samr_ChangePasswordUser3.dominfo", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16637         { &hf_samr_samr_ValidationBlob_data,
16638           { "Data", "samr.samr_ValidationBlob.data", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16639         { &hf_samr_samr_UserInfo18_lm_pwd_active,
16640           { "Lm Pwd Active", "samr.samr_UserInfo18.lm_pwd_active", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16641         { &hf_samr_samr_CreateDomAlias_domain_handle,
16642           { "Domain Handle", "samr.samr_CreateDomAlias.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16643         { &hf_samr_samr_UserInfo_info26,
16644           { "Info26", "samr.samr_UserInfo.info26", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16645         { &hf_samr_samr_EnumDomainAliases_domain_handle,
16646           { "Domain Handle", "samr.samr_EnumDomainAliases.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16647         { &hf_samr_samr_GroupInfoAll_attributes,
16648           { "Attributes", "samr.samr_GroupInfoAll.attributes", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16649         { &hf_samr_samr_DomainInfo_info7,
16650           { "Info7", "samr.samr_DomainInfo.info7", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16651         { &hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_CONNECT_TO_SERVER,
16652           { "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 }},
16653         { &hf_samr_samr_EnumDomains_num_entries,
16654           { "Num Entries", "samr.samr_EnumDomains.num_entries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16655         { &hf_samr_samr_UserInfo21_parameters,
16656           { "Parameters", "samr.samr_UserInfo21.parameters", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16657         { &hf_samr_samr_DispEntryGeneral_acct_flags,
16658           { "Acct Flags", "samr.samr_DispEntryGeneral.acct_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16659         { &hf_samr_samr_AcctFlags_ACB_TEMPDUP,
16660           { "Acb Tempdup", "samr.samr_AcctFlags.ACB_TEMPDUP", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_TEMPDUP_tfs), ( 0x00000008 ), NULL, HFILL }},
16661         { &hf_samr_samr_DispInfoFullGroups_count,
16662           { "Count", "samr.samr_DispInfoFullGroups.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16663         { &hf_samr_samr_OpenUser_user_handle,
16664           { "User Handle", "samr.samr_OpenUser.user_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16665         { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_INFO_1,
16666           { "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 }},
16667         { &hf_samr_samr_GetAliasMembership_rids,
16668           { "Rids", "samr.samr_GetAliasMembership.rids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16669         { &hf_samr_samr_CreateDomAlias_alias_handle,
16670           { "Alias Handle", "samr.samr_CreateDomAlias.alias_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16671         { &hf_samr_samr_UserInfo6_account_name,
16672           { "Account Name", "samr.samr_UserInfo6.account_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16673         { &hf_samr_samr_UserInfo_info3,
16674           { "Info3", "samr.samr_UserInfo.info3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16675         { &hf_samr_samr_Connect5_level_in,
16676           { "Level In", "samr.samr_Connect5.level_in", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16677         { &hf_samr_samr_DomInfo12_lockout_window,
16678           { "Lockout Window", "samr.samr_DomInfo12.lockout_window", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
16679         { &hf_samr_samr_CreateUser_user_handle,
16680           { "User Handle", "samr.samr_CreateUser.user_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16681         { &hf_samr_samr_RidToSid_sid,
16682           { "Sid", "samr.samr_RidToSid.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16683         { &hf_samr_samr_GetUserPwInfo_info,
16684           { "Info", "samr.samr_GetUserPwInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16685         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_SEC_DESC,
16686           { "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 }},
16687         { &hf_samr_samr_EnumDomainUsers_acct_flags,
16688           { "Acct Flags", "samr.samr_EnumDomainUsers.acct_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16689         { &hf_samr_samr_UserInfo3_rid,
16690           { "Rid", "samr.samr_UserInfo3.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16691         { &hf_samr_samr_DomainInfo_info6,
16692           { "Info6", "samr.samr_DomainInfo.info6", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16693         { &hf_samr_samr_CreateDomAlias_alias_name,
16694           { "Alias Name", "samr.samr_CreateDomAlias.alias_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16695         { &hf_samr_samr_EnumDomainUsers_sam,
16696           { "Sam", "samr.samr_EnumDomainUsers.sam", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16697         { &hf_samr_samr_DispInfo_info5,
16698           { "Info5", "samr.samr_DispInfo.info5", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16699         { &hf_samr_samr_GetGroupsForUser_rids,
16700           { "Rids", "samr.samr_GetGroupsForUser.rids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16701         { &hf_samr_samr_UserInfo3_last_logoff,
16702           { "Last Logoff", "samr.samr_UserInfo3.last_logoff", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16703         { &hf_samr_samr_ValidatePasswordRepCtr_info,
16704           { "Info", "samr.samr_ValidatePasswordRepCtr.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16705         { &hf_samr_samr_CreateDomAlias_rid,
16706           { "Rid", "samr.samr_CreateDomAlias.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16707         { &hf_samr_samr_SetGroupInfo_level,
16708           { "Level", "samr.samr_SetGroupInfo.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_GroupInfoEnum_vals), 0, NULL, HFILL }},
16709         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_NT_PASSWORD_PRESENT,
16710           { "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 }},
16711         { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_SET_PASSWORD,
16712           { "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 }},
16713         { &hf_samr_samr_SetUserInfo2_level,
16714           { "Level", "samr.samr_SetUserInfo2.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_UserInfoLevel_vals), 0, NULL, HFILL }},
16715         { &hf_samr_samr_UserInfo5_acct_expiry,
16716           { "Acct Expiry", "samr.samr_UserInfo5.acct_expiry", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16717         { &hf_samr_samr_OpenAlias_rid,
16718           { "Rid", "samr.samr_OpenAlias.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16719         { &hf_samr_samr_Close_handle,
16720           { "Handle", "samr.samr_Close.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16721         { &hf_samr_samr_Connect5_info_in,
16722           { "Info In", "samr.samr_Connect5.info_in", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16723         { &hf_samr_samr_UserInfo21_nt_password_set,
16724           { "Nt Password Set", "samr.samr_UserInfo21.nt_password_set", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16725         { &hf_samr_samr_UserInfo_info20,
16726           { "Info20", "samr.samr_UserInfo.info20", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16727         { &hf_samr_samr_UserInfo21_private_data,
16728           { "Private Data", "samr.samr_UserInfo21.private_data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16729         { &hf_samr_samr_CreateUser_access_mask,
16730           { "Access Mask", "samr.samr_CreateUser.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
16731         { &hf_samr_samr_UserInfo5_account_name,
16732           { "Account Name", "samr.samr_UserInfo5.account_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16733         { &hf_samr_samr_DispInfoFull_entries,
16734           { "Entries", "samr.samr_DispInfoFull.entries", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16735         { &hf_samr_samr_UserInfo5_full_name,
16736           { "Full Name", "samr.samr_UserInfo5.full_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16737         { &hf_samr_samr_ChangePasswordUser3_lm_verifier,
16738           { "Lm Verifier", "samr.samr_ChangePasswordUser3.lm_verifier", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16739         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_PRIMARY_GID,
16740           { "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 }},
16741         { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_3,
16742           { "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 }},
16743         { &hf_samr_samr_GroupAttrs_SE_GROUP_USE_FOR_DENY_ONLY,
16744           { "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 }},
16745         { &hf_samr_samr_DispInfoAscii_count,
16746           { "Count", "samr.samr_DispInfoAscii.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16747         { &hf_samr_samr_GetMembersInAlias_sids,
16748           { "Sids", "samr.samr_GetMembersInAlias.sids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16749         { &hf_samr_samr_QueryDisplayInfo3_info,
16750           { "Info", "samr.samr_QueryDisplayInfo3.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16751         { &hf_samr_samr_OemChangePasswordUser2_hash,
16752           { "Hash", "samr.samr_OemChangePasswordUser2.hash", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16753         { &hf_samr_samr_ChangePasswordUser_user_handle,
16754           { "User Handle", "samr.samr_ChangePasswordUser.user_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16755         { &hf_samr_samr_QueryUserInfo2_level,
16756           { "Level", "samr.samr_QueryUserInfo2.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_UserInfoLevel_vals), 0, NULL, HFILL }},
16757         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_BAD_PWD_COUNT,
16758           { "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 }},
16759         { &hf_samr_samr_ValidatePasswordReq3_clear_lockout,
16760           { "Clear Lockout", "samr.samr_ValidatePasswordReq3.clear_lockout", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
16761         { &hf_samr_samr_Connect4_client_version,
16762           { "Client Version", "samr.samr_Connect4.client_version", FT_UINT32, BASE_DEC, VALS(samr_samr_ConnectVersion_vals), 0, NULL, HFILL }},
16763         { &hf_samr_samr_GetDisplayEnumerationIndex_level,
16764           { "Level", "samr.samr_GetDisplayEnumerationIndex.level", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16765         { &hf_samr_samr_UserInfo5_workstations,
16766           { "Workstations", "samr.samr_UserInfo5.workstations", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16767         { &hf_samr_samr_DispEntryFullGroup_account_name,
16768           { "Account Name", "samr.samr_DispEntryFullGroup.account_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16769         { &hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_LOCKOUT_TIME,
16770           { "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 }},
16771         { &hf_samr_samr_QueryDisplayInfo_total_size,
16772           { "Total Size", "samr.samr_QueryDisplayInfo.total_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16773         { &hf_samr_samr_UserInfo1_comment,
16774           { "Comment", "samr.samr_UserInfo1.comment", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16775         { &hf_samr_samr_DeleteDomAlias_alias_handle,
16776           { "Alias Handle", "samr.samr_DeleteDomAlias.alias_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16777         { &hf_samr_samr_EnumDomains_sam,
16778           { "Sam", "samr.samr_EnumDomains.sam", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16779         { &hf_samr_samr_UserInfo2_code_page,
16780           { "Code Page", "samr.samr_UserInfo2.code_page", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16781         { &hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_LOCKOUT_ADMINS,
16782           { "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 }},
16783         { &hf_samr_samr_DomGeneralInformation_unknown3,
16784           { "Unknown3", "samr.samr_DomGeneralInformation.unknown3", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16785         { &hf_samr_samr_OpenDomain_connect_handle,
16786           { "Connect Handle", "samr.samr_OpenDomain.connect_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16787         { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_SET_ATTRIBUTES,
16788           { "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 }},
16789         { &hf_samr_samr_QueryDisplayInfo_buf_size,
16790           { "Buf Size", "samr.samr_QueryDisplayInfo.buf_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16791         { &hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_REMOVE_MEMBER,
16792           { "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 }},
16793         { &hf_samr_samr_QueryGroupInfo_level,
16794           { "Level", "samr.samr_QueryGroupInfo.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_GroupInfoEnum_vals), 0, NULL, HFILL }},
16795         { &hf_samr_samr_SetAliasInfo_level,
16796           { "Level", "samr.samr_SetAliasInfo.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_AliasInfoEnum_vals), 0, NULL, HFILL }},
16797         { &hf_samr_samr_QueryDisplayInfo_level,
16798           { "Level", "samr.samr_QueryDisplayInfo.level", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
16799         { &hf_samr_samr_UserInfo21_buffer,
16800           { "Buffer", "samr.samr_UserInfo21.buffer", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16801         { &hf_samr_samr_SetDsrmPassword_unknown,
16802           { "Unknown", "samr.samr_SetDsrmPassword.unknown", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16803         { &hf_samr_samr_UserInfo5_last_password_change,
16804           { "Last Password Change", "samr.samr_UserInfo5.last_password_change", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16805         { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_GROUP,
16806           { "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 }},
16807         { &hf_samr_samr_QueryDisplayInfo_returned_size,
16808           { "Returned Size", "samr.samr_QueryDisplayInfo.returned_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
16809         { &hf_samr_samr_UserInfo21_allow_password_change,
16810           { "Allow Password Change", "samr.samr_UserInfo21.allow_password_change", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
16811         { &hf_samr_samr_ConnectInfo_info1,
16812           { "Info1", "samr.samr_ConnectInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16813         { &hf_samr_samr_SetSecurity_handle,
16814           { "Handle", "samr.samr_SetSecurity.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
16815         { &hf_samr_samr_FieldsPresent_SAMR_FIELD_FULL_NAME,
16816           { "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 }},
16817         { &hf_samr_samr_AliasInfoAll_description,
16818           { "Description", "samr.samr_AliasInfoAll.description", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
16819         };
16820
16821
16822         static gint *ett[] = {
16823                 &ett_dcerpc_samr,
16824                 &ett_samr_security_secinfo,
16825                 &ett_samr_samr_AcctFlags,
16826                 &ett_samr_samr_ConnectAccessMask,
16827                 &ett_samr_samr_UserAccessMask,
16828                 &ett_samr_samr_DomainAccessMask,
16829                 &ett_samr_samr_GroupAccessMask,
16830                 &ett_samr_samr_AliasAccessMask,
16831                 &ett_samr_samr_SamEntry,
16832                 &ett_samr_samr_SamArray,
16833                 &ett_samr_samr_PasswordProperties,
16834                 &ett_samr_samr_DomInfo1,
16835                 &ett_samr_samr_DomGeneralInformation,
16836                 &ett_samr_samr_DomInfo3,
16837                 &ett_samr_samr_DomOEMInformation,
16838                 &ett_samr_samr_DomInfo5,
16839                 &ett_samr_samr_DomInfo6,
16840                 &ett_samr_samr_DomInfo7,
16841                 &ett_samr_samr_DomInfo8,
16842                 &ett_samr_samr_DomInfo9,
16843                 &ett_samr_samr_DomGeneralInformation2,
16844                 &ett_samr_samr_DomInfo12,
16845                 &ett_samr_samr_DomInfo13,
16846                 &ett_samr_samr_DomainInfo,
16847                 &ett_samr_samr_Ids,
16848                 &ett_samr_samr_GroupAttrs,
16849                 &ett_samr_samr_GroupInfoAll,
16850                 &ett_samr_samr_GroupInfoAttributes,
16851                 &ett_samr_samr_GroupInfoDescription,
16852                 &ett_samr_samr_GroupInfo,
16853                 &ett_samr_samr_RidAttrArray,
16854                 &ett_samr_samr_AliasInfoAll,
16855                 &ett_samr_samr_AliasInfo,
16856                 &ett_samr_samr_UserInfo1,
16857                 &ett_samr_samr_UserInfo2,
16858                 &ett_samr_samr_LogonHours,
16859                 &ett_samr_samr_UserInfo3,
16860                 &ett_samr_samr_UserInfo4,
16861                 &ett_samr_samr_UserInfo5,
16862                 &ett_samr_samr_UserInfo6,
16863                 &ett_samr_samr_UserInfo7,
16864                 &ett_samr_samr_UserInfo8,
16865                 &ett_samr_samr_UserInfo9,
16866                 &ett_samr_samr_UserInfo10,
16867                 &ett_samr_samr_UserInfo11,
16868                 &ett_samr_samr_UserInfo12,
16869                 &ett_samr_samr_UserInfo13,
16870                 &ett_samr_samr_UserInfo14,
16871                 &ett_samr_samr_UserInfo16,
16872                 &ett_samr_samr_UserInfo17,
16873                 &ett_samr_samr_Password,
16874                 &ett_samr_samr_UserInfo18,
16875                 &ett_samr_samr_UserInfo20,
16876                 &ett_samr_samr_FieldsPresent,
16877                 &ett_samr_samr_UserInfo21,
16878                 &ett_samr_samr_CryptPassword,
16879                 &ett_samr_samr_UserInfo23,
16880                 &ett_samr_samr_UserInfo24,
16881                 &ett_samr_samr_CryptPasswordEx,
16882                 &ett_samr_samr_UserInfo25,
16883                 &ett_samr_samr_UserInfo26,
16884                 &ett_samr_samr_UserInfo,
16885                 &ett_samr_samr_RidWithAttribute,
16886                 &ett_samr_samr_RidWithAttributeArray,
16887                 &ett_samr_samr_DispEntryGeneral,
16888                 &ett_samr_samr_DispInfoGeneral,
16889                 &ett_samr_samr_DispEntryFull,
16890                 &ett_samr_samr_DispInfoFull,
16891                 &ett_samr_samr_DispEntryFullGroup,
16892                 &ett_samr_samr_DispInfoFullGroups,
16893                 &ett_samr_samr_DispEntryAscii,
16894                 &ett_samr_samr_DispInfoAscii,
16895                 &ett_samr_samr_DispInfo,
16896                 &ett_samr_samr_PwInfo,
16897                 &ett_samr_userPwdChangeFailureInformation,
16898                 &ett_samr_samr_ConnectInfo1,
16899                 &ett_samr_samr_ConnectInfo,
16900                 &ett_samr_samr_ValidateFieldsPresent,
16901                 &ett_samr_samr_ValidationBlob,
16902                 &ett_samr_samr_ValidatePasswordInfo,
16903                 &ett_samr_samr_ValidatePasswordRepCtr,
16904                 &ett_samr_samr_ValidatePasswordRep,
16905                 &ett_samr_samr_ValidatePasswordReq3,
16906                 &ett_samr_samr_ValidatePasswordReq2,
16907                 &ett_samr_samr_ValidatePasswordReq1,
16908                 &ett_samr_samr_ValidatePasswordReq,
16909         };
16910
16911         proto_dcerpc_samr = proto_register_protocol("NULL", "SAMR", "samr");
16912         proto_register_field_array(proto_dcerpc_samr, hf, array_length (hf));
16913         proto_register_subtree_array(ett, array_length(ett));
16914 }
16915
16916 void proto_reg_handoff_dcerpc_samr(void)
16917 {
16918         dcerpc_init_uuid(proto_dcerpc_samr, ett_dcerpc_samr,
16919                 &uuid_dcerpc_samr, ver_dcerpc_samr,
16920                 samr_dissectors, hf_samr_opnum);
16921 }